Кіріспе
Деректерді серияландыру форматы Fast Infoset (немесе FI) - XML ақпарат жиынтығының (XML Infoset) XML құжаты форматына балама ретінде екілік кодтау форматын анықтайтын халықаралық стандарт. Ол мәтінге негізделген XML форматына қарағанда тиімді сериалдастыруды қамтамасыз етуді көздейді. FI - бұл XML үшін gzip-ке ұқсас, шынымен жоғалмайтын сығылу, бірақ бастапқы пішімдеу жоғалған кезде, XML-ден FI-ге және XML-ге қайта түрлендіруде ешқандай ақпарат жоғалмайды. Сығудың мақсаты физикалық деректердің көлемін азайту болса, FI құжаттың көлемін және өңдеу өнімділігін оңтайландыруды көздейді. Fast Infoset спецификациясын ITU T және ISO/IEC стандарттау органдары айқындайды. FI ресми түрде ITU T Rec-та анықталады. X.891 және ISO/IEC 24824 1 және "Fast Infoset" деп аталады. Стандартты ITU T 2005 жылы 14 мамырда, ал ISO 2007 жылы 4 мамырда жариялады. "Fast Infoset" стандартты құжатын ITU веб-сайтынан жүктеуге болады. Құжатта интеллектуалдық меншік (ИС) шектеулері енгізілгені немесе қолданылғаны айтылмаса да, екінші беті ескертуде, ол хабарламалар алды және тақырып ИС-тен мүлдем арылмауы мүмкін. Жалпы қате түсінік бойынша, FI ASN.1 құралын қолдауы керек. Ресми спецификация ASN.1 белгісін қолданғанымен, стандартта ЭКН (Энкодтауды басқару белгісі) бар және ASN.1 құралдары іске асырылу үшін қажет емес. FI-ге балама FleXPath болып табылады.
Fast Infoset (or FI) is an international standard that specifies a binary encoding format for the XML Information Set (XML Infoset) as an alternative to the XML document format. It aims to provide more efficient serialization than the text based XML format. FI is effectively a lossless compression, analogous to gzip, for XML, except that while the original formatting is lost, no information is lost in the conversion from XML to FI, and back to XML. While the purpose of compression is to reduce physical data size, FI aims to optimize both document size and processing performance. The Fast Infoset specification is defined by both the ITU T and the ISO/IEC standards bodies. FI is officially defined in ITU T Rec. X.891 and ISO/IEC 24824 1, and entitled Fast Infoset. The standard was published by ITU T on May 14, 2005, and by ISO on May 4, 2007. The Fast Infoset standard document can be downloaded from the ITU website. Though the document does not assert intellectual property (IP) restrictions on implementation or use, page ii warns that it has received notices and the subject may not be completely free of IP assertions. A common misconception is that FI requires ASN.1 tool support. Although the formal specification uses ASN.1 notation, the standard includes Encoding Control Notation (ECN) and ASN.1 tools are not required by implementations. An alternative to FI is FleXPath.
Құрылымы
Негізгі файл пішімі ASN.1 болып табылады, тег/ұзындығы/саны блоктарымен. Атрибуттар мен элементтердің мәтіндік мәндері соңғы делимитаторлар емес, ұзындығы префикстермен сақталады, ал дерек сегменттері арнайы таңбалар үшін ақауды қажет етпейді. Соңғы тегтердің эквиваленті ("терминаторлар") тек бала элементтер тізімінің соңында қажет. Бинарлық деректер жергілікті форматта жіберіледі және оларды base64 сияқты беру форматына түрлендірудің қажеті жоқ. Fast Infoset ASN.1 формалары мен белгілері негізінде жасалған жоғары деңгейдегі формат. Элементтер мен атрибуттардың атаулары дәстүрлі ASN.1 кодтау схемаларынан айырмашылығы октет ағынында сақталады. Нәтижесінде, XML схемасына сілтеме жасамай, екілік ағыстан әдеттегі XML файлын қалпына келтіруге болады және XML схемасын ASN.1 анықтамасы ретінде көрсетудің қажеті жоқ. (ASN.1 "Тэгтер" тек типтің атауы, мысалы, String, Integer немесе күрделі типтер.) ASN.1 файл пішімін анықтау үшін ECN-мен бірге қолданылады. Көптеген тізбектер үшін индекс кестесі құрылады, оған элемент пен атрибут атаулары және олардың мәндері кіреді. Бұл қайталанған тегтер мен мәндердің мәтіні құжат бойынша бір рет қана пайда болады дегенді білдіреді.
Анықтамалық іске асыру
FI спецификациясының Java-ны іске асыруы JAXB-нің Eclipse-ті іске асыруының бөлігі ретінде қол жетімді. Кітапхана ашық бастапқы кодымен және Apache 2.0 лицензиясы бойынша таратылады. Бірнеше жобалар осы іске асыруды қолданады, оның ішінде JAX WS-ге арналған эталондық іске асыру Eclipse Metro-да қолданылады. C++ үшін QtitanFastInfoset іске асырылуы Qt фреймворктің компоненті ретінде коммерциялық лицензия бойынша қол жетімді.
Өнер көрсету
Тез инфосеттер XML генерациялау процесінің бір бөлігі ретінде сығылғандықтан, олар XML ағынында Zip стилідегі сығылу алгоритмдерін қолданудан әлдеқайда жылдам, бірақ шығыс сондай сығымдалмаған. Fast Infoset-тің SAX түрін талдаудың өнімділігі, тіпті Zip стилімен қысусыз да, XML 1.0-дің талдау өнімділігінен әлдеқайда жылдам. Java-ның эталондық іске асырылуында байқалатын талдау жылдамдығының типтік өсуі Java Xerces-ке қарағанда 10 есе, ал Piccolo драйверіне қарағанда 4 есе (Java-ға негізделген ең жылдам XML талдаушыларының бірі) болып табылады.
Типтік қолданулар
Портативті құрылғылар Мобильді құрылғыларда, әдетте, төмен жолақтылықтағы деректер қосылыстары мен баяу CPU болады. Fast Infoset XML-ге қарағанда аз жолақты пайдаланады және өңдеу жылдам, сондықтан ол жоғары таңдау болып табылады. Үлкен көлемде деректерді сақтау XML файлын немесе деректер қорын сақтау кезінде жүйе өндіретін деректердің көлемі жиі орынды шектерден асып түседі, бірқатар кемшіліктері бар: деректерді көбірек оқыған сайын қол жеткізу уақыты өседі, XML деректерін өңдеу үшін көбірек қуат қажет болған сайын CPU жүктемесі өседі, және сақтау шығындары өседі. XML деректерін Fast Infoset форматында сақтау арқылы деректердің көлемі 80 пайызға дейін азаюы мүмкін. XML-ті Интернет арқылы жіберу Қолданба интернет арқылы деректерді өткізгенде, желілік жолақтың кеңдігі үлкен бөтелке болуы мүмкін, бұл клиент бағдарламаларының жұмысын нашарлатады және сервердің сұраныстарды өңдеу қабілетін шектейді. Интернет арқылы берілетін деректердің көлемін азайту хабарламаны жіберу немесе қабылдау үшін қажетті уақытты қысқартады және сервердің сағатына өңдей алатын транзакциялардың санын арттырады.