Кіріспе

Деректерді серияландыру форматы 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 болып табылады.

Құрылымы

Негізгі файл пішімі 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-ті Интернет арқылы жіберу Қолданба интернет арқылы деректерді өткізгенде, желілік жолақтың кеңдігі үлкен бөтелке болуы мүмкін, бұл клиент бағдарламаларының жұмысын нашарлатады және сервердің сұраныстарды өңдеу қабілетін шектейді. Интернет арқылы берілетін деректердің көлемін азайту хабарламаны жіберу немесе қабылдау үшін қажетті уақытты қысқартады және сервердің сағатына өңдей алатын транзакциялардың санын арттырады.