WBstat 4 Note di rilascio
overview
- ampliato database
- introdotte nuove metodologie di rilascio
- migliorato output gecko.version
- integrata la gestione degli OS Windows
- nuovo formato file xml (v4.1)
- integrata gestione architetture di sistema [ "System.Arch" ]
- revisionato il sistema di identificazione lingua del browser
- migliorato e velocizzato riconoscimento OS e BROWSER
- sostitito Browser_Url con Useragent_Url
- introdotta nuova funzione Debug
- introdotti risultati "Special.Handheld.x" (v4.1)
- introdotto risultato Screen ("Special.Screen" v4.1)
- introdotto risultato "Special.AppleWebKit" (v4.1)
- tutti i risultati speciali raggruppati sotto "Special.x" (v4.1)
- introdotto nuovo sistema di categorizzazione browser e os (update v4.1)
- scissione OS.Subtype in OS.Core e OS.Distro (nuove distro v4.1)
- minori modifiche da menzionare (update v4.1)
VERSIONI
- La versione 4.0.x contiene profonde modifiche rispetto alla 3.x
- La versione 4.1.x contiene importanti modifiche rispetto alla 4.0.x
- La versione 4.2.x contiene minori modifiche rispetto alla 4.1.x
NOVITA' E MODIFICHE
ampliato database
la versione 4 di WBstat segna un netto ampliamento del database di riferimento per il riconoscimento dei browser e dei sistemi operativi.
il supporto (versione 4.0.1) contiene informazioni circa 150 browser, 200 robot di vario genere e 75 sistemi operativi
tutte queste informazioni sono state ricercate, analizzate e rese pubbliche tramite il sito http://www.useragents.org
introdotte nuove metodologie di rilascio
è anche stata decisa una scissione (dato il continuo ampliamento del database) delle informazioni di supporto dal core vero e proprio.
le informazioni di supporto (incluse in file XML) verranno indicate con versioni X.X.Y, dove X.X è la versione del core (wbstat4_class.asp) e Y è, appunto, la versione del supporto XML
il rilascio dei database di supporto XML sarà quindi continuo e costante, al contrario il core sarà ampliato e modificato solo quando necessario.
per eventuali aggiornamenti del supporto sarà solo necessario scambiare i file XML con quelli più recenti.
i file di supporto per singoli core non saranno compatibili con core precedenti o successivi. ad ogni nuovo rilascio del core saranno rilasciati anche corrispondenti file di supporto.
saranno distribuiti i file XML aggiornati solo per l'ultimo core rilasciato.
funzione Gecko.version
la funzione Gecko_version (che restituisce informazioni sotto l'item "Gecko.Version") è stata modificata rendendola maggiormente fruibile.
Prima restituiva semplicemente la data di rilascio della versione come indicata nella user-agent, ora invece restituisce la versione del motore gecko.
è stata inoltre aggiunto l'item "Gecko.Version.Release" che restituisce la data di rilascio (così come faceva "Gecko.Version" in wbstat 3.x)
(dalla versione 4.1 l'item "Gecko.Version" si chiama "Special.Gecko.Version" e l'item "Gecko.Release" si chiama "Special.Gecko.Release")
nuova gestione database e windows
grazie all'utilizzo del nuovo database di useragents.org le quantità di browser e sistemi operativi (e annesse informazioni) riconosciute e restituite è notevolemente aumentato. è stata inoltre modificata la struttura delle definizioni in XML: il file wbstat3_os_windows.xml è stato integrato nel database principale wbstat4_os.xml
le informazioni aggiuntive relative ai sistemi operativi windows sono state integrate nella classe.
nuovo formato file xml (v4.1)
per permettere un più sereno porting della classe in altri linguaggi è cominciata un'operazione di "pulizia" su larga scala che continuerà nelle prossime versioni; il primo passo è stato quello di riscrivere i file xml dei database della classe.
Nella versione 3.x e 4.0 i file venivano generati direttamente da un recordset ADO; dalla versione 4.1 i file vengono generati automaticamente in un formato xml semplice e diretto, facilmente leggibile da un qualsiasi parser xml.
Il nodo root, di ogni file di specifica, si chiama <wbstatspec> e possiede 3 attributi: type="xxx", version="4.1", release="1".
Type è la tipologia di specifica e allo stato attuale esistono 5 tipologie: agent (specifiche dei browser e robots), os (specifiche dei sistemi operativi), languages (specifiche delle lingue dei browser, mantenuti per compatibilità con v3.x), linuxdistro (distribuzioni linux) e handheld (dispositivi portatili).
Ogni file ha un wbstatspec di root con all'interno nodi figli che rappresentano i record del database centrale, con una serie di attributi specifici per ogni tipologia.
Le novità introdotte sono quindi di migliore supporto per futuri porting e, più nel pratico, un sistema di controllo compatibilità di versione fra le specifiche xml e la classe.
Nelle future versioni altre specifiche, ora inserite direttamente nel codice sorgente, verranno portate su xml, così come è avvenuto in questa versione per le distribuzioni linux
architetture hardware
grazie alle ricerche effettuate per useragents.org ora WBstat riconosce in maniera più precisa le architetture hardware, sia che siano indicate in useragent, che deducedole dai sistemi operativi riconosciuti.
le architetture correttamente riconosciute sono le seguenti (restituito come valore testuale in OS.Arch):
0 - i386, IA-32
1 - IA-64
2 - AMD-64
A - m68k
B - PowerPC
E - Sparc Sun4c - m - u
G - HP-UX
H - PARISC - HPPA
L - MIPS
O - DEC Alpha
P - DEC VAX
T - ARM
U - PC98
Y - S/390
Z - ZSeries
il riconoscimento avviene in una prima fase tramite useragent (e relative regular expression di riferimento), e in mancato esito positivo viene effettuata una ricerca sulle architetture supportate dal sistema operativo riconosciuto. in caso di incertezza viene indicata l'architettura utilizzata in maniera più probabile.
il mancato riconoscimento del sistema operativo costituisce anche un impossibilità di determinazione dell'architettura hardware.
riconoscimento lingua del browser
è stato ampiamente revisionato il sistema di riconoscimento della lingua del browser: il sistema si basa ora sui codici lingua ufficiali ISO 639 identificando correttamente più di 180 lingue ufficiali.
la conversione dei codici lingua nel nome della lingua viene effettuato da una funzione disattivabile e disponibile anche esternamente alla classe (nel caso in cui venga archiviato solo il codice lingua e in una fase successiva si intenda restituire un output leggibile.
vengono inoltre fornite tutte le bandiere relative alle lingue, puntabili tramite una funzione specifica che converte il codice lingua in una path ai file .gif
riconoscimento browser e os
sempre grazie al nuovo database useragents.org è aumentato il corretto riconoscimento di browser e sistemi operativi.
oltre a ciò sono migliorati i tempi medi di esecuzione della classe:
WBstat 3.1: tempo medio di esecuzione 54ms
WBstat 4.0beta: tempo medio di esecuzione 46ms
i valori si riferiscono a un ciclo di 100 istanze della classe con riconoscimento completo di 100 useragent (differenti).
il test è stato eseguito su una macchina PC 1700mhz 512mb RAM
ovviamente sono valori indicativi del miglioramento delle prestazioni, non dei reali valori di esecuzione, che dipendono da una grande quantità di variabili.
funzione browser_url()
la funzione browser_url e il risultato item conseguente ("Browser.Url") sono stati sostituiti da un più corretto Useragent_url (e item "Useragent.Url").
la classe non restituisce più informazioni circa il sito internet del browser, ma solo ed esclusivamente url o email trovate all'interno della useragent.
per informazioni sul browser ora è infatti possibile consultare il database online di useragents.org
funzione Debug()
la funzione Debug(), utilizzata principalmente per restituire output leggibile in funzione di controllo o debug, è stata ricostruita da zero per restituire un output HTML più semplice e pulito.
introdotti risultati "Special.Handheld.x" (v4.1)
sono stati introdotti due nuovi risultati relativi ai dispositivi mobili (92 Mobile, 90 Palm): Special.Handheld.Name e Special.Handheld.Version. queste due stringhe, sommate, rappresentano il nome di un dispositivo mobile (es: Nokia N73).
questa aggiunta è utile per identificare al meglio i dispositivi a prescindere dal sistema operativo che montano (proprietario, javaos, symbianos...) e quindi per poter avere dati certamente più precise che nelle precedenti versioni.
introdotto risultato "Screen" ("Special.Screen" v4.1)
è stato introdotto il risultato Screen (poiché presente spesso in useragent di dispositivi mobili) che rappresenta la risoluzione dello schermo di un dispositivo (es: 160x160).
(dalla versione 4.1 l'item Screen si chiama Special.Screen)
introdotto risultato "Special.AppleWebKit" (v4.1)
è stato introdotto il risultato Special.AppleWebKit che rappresenta semplicemente la versione del motore applewebkit (se il browser lo utilizza).
tutti i risultati speciali raggruppati sotto "Special.x" (v4.1)
dalla versione 4.1 tutti i risultati speciali ( "Mozilla.Version", "Gecko.Version.Release", "Gecko.Version", "Framework.Version" ) prendono il prefisso "Special".
Lista completa:
- "Special.Mozilla.Version"
- "Special.Gecko.Version.Release"
- "Special.Gecko.Version"
- "Special.Framework.Version"
- "Special.AppleWebKit.Version" (v4.1)
- "Special.Screen"
- "Special.Handheld.Name" (v4.1)
- "Special.Handheld.Version" (v4.1)
sistema di categorizzazione (update v4.1)
per fornire un output facilmente utilizzabile da sistemi automatizzati, le precedenti versioni di WBstat (e mi riferisco in particolare alla versione 3.x) restituivano tramite Browser.Type, Browser.Subtype, OS.Type e OS.Subtype informazioni di categorizzazione.
il sistema era basato su tabelle di riferimento e sistemi numerici; queste tabelle sono quindi state modificate e aggiornate con un nuovo sistema di categorizzazione.
si prega quindi, nell'aggiornamento dei propri sistemi dalla versione 3 alla versione 4 di controllare le compatibilità delle tabelle (nel caso in cui se ne facesse uso).
tabella browser.type wbstat 3
0 - Search Engine Spider
1 - Validator & Checker
2 - Offline Browser
3 - Downloader
8 - Others
9 - ROBOT
10 - Internet Browser
15 - Multimedia Browser
20 - WAP Browser
tabella browser.subtype wbstat 4
000 - Search Engine Spider
001 - Validator & Checker
002 - Email Collector
008 - Others
510 - Internet Browser
515 - Multimedia Browser
520 - WAP Browser
530 - Feed Reader/Aggregator
550 - Applications (v4.1)
590 - Downloader
591 - Offline Browser
999 - UNKNOWN
tabella os.type wbstat 3
0 - Operating System
1 - Console, Mobile, Palm
tabella os.core wbstat 4
10 - DOS
15 - Windows
20 - Macintosh
30 - UNIX Based
90 - Palm
92 - Mobile
95 - console
99 - UNKNOWN
l'item OS.Subtype è stato eliminato.
l'item Browser.Type e OS.Type restituiscono un valore Byte, come indicato in tabella l'item OS.Subtype che restituiva informazioni ambigue nella versione 3.x è stato rinominato OS.Core e OS.Distro
da os.subtype a os.core
os.core (precedentemente nominato OS.Subtype) restituisce informazioni circa il cuore del sistema operativo.
la tabella di riferimento dei dati in output chiarisce facilmente le cose.
"os.core" restituisce valore numerico, "os.core.description" il valore testuale
10 > DOS > indica sistemi DOS (MS-DOS, PC-DOS-2000...)
16 > WIN-NT > Windows architettura NT (NT, 2000, XP, 2003, Vista)
15 > WIN-9x > Windows architettura 9x (3.1, 95, 98, ME)
20 > MAC > indica sistemi MACINTOSH (compreso MacOS X)
30 > UNIX > indica sistemi basati su UNIX
90 > PALM > indica sistemi palmari
92 > MOBILE > indica sistemi mobile (cellulari)
95 > console> indica sistemi di gioco
0 > OTHER > indica sistemi di altro tipo di architettura propria
da os.subtype a os.distro v4.0 / os.distro.name e os.distro.version v.4.1
è stata introdotta a favore dell'abolizione dell'ambigua OS.Subtype, l'item OS.Distro.
questo item restituisce (quando conosciuta) la distribuzione del sistema operativo Linux.
le distribuzioni riconoscibili (non nel 100% dei casi) sono le seguenti:
v4.0 > Debian, Mandrake, Slackwave, RedHat, Gentoo, Suse, Ubuntu
v4.1 > Mepis, PCLinuxOS, Backtrack2, Pardus
con la versione 4.1 è stato inoltre introdotto il nuovo item "OS.Distro.Version" e rinominato "OS.Distro" in "OS.Distro.Name".
Per alcune distribuzioni (es: Ubuntu, Mandrake) ora viene riconosciuta anche la versione.
minori modifiche da menzionare (update v4.1)
- il browser "Firefox" è ora chiamato "Mozilla Firefox"
- identificazione corretta della versione del browser "Safari" (precedentemente indicava un valore numerico a 3 cifre [es: "Safari 419"], ora indica l'effettiva versione [es: "Safari 2"]
- identificazione corretta della versione del browser "Omniweb" (precedentemente indicava un valore numerico a 3 cifre [es: "Omniweb 558"], ora indica l'effettiva versione [es: "Omniweb 5.0"] (v4.1)
- nella versione di "Opera" viene indicata solo la Major version [es: "Opera 9.2" --> "Opera 9"]


CCBot 1.0
Sconosciuto