Szybki zestaw informacji

Fast Infoset (lub FI ) to międzynarodowy standard, który określa format kodowania binarnego dla zestawu informacji XML ( XML Infoset ) jako alternatywę dla formatu dokumentu XML . Ma na celu zapewnienie wydajniejszej serializacji niż tekstowy format XML.

FI jest faktycznie bezstratną kompresją , analogiczną do gzip , dla XML, z wyjątkiem tego, że podczas gdy oryginalne formatowanie jest tracone, żadne informacje nie są tracone podczas konwersji z XML do FI iz powrotem do XML. Podczas gdy celem kompresji jest zmniejszenie fizycznego rozmiaru danych, FI ma na celu optymalizację zarówno rozmiaru dokumentu, jak i wydajności przetwarzania.

Specyfikacja Fast Infoset jest zdefiniowana zarówno przez ITU-T, jak i organy normalizacyjne ISO / IEC . FI jest oficjalnie zdefiniowany w ITU-T Rec. X.891 i ISO/IEC 24824-1 oraz zatytułowany Fast Infoset . Norma została opublikowana przez ITU-T 14 maja 2005 r., a przez ISO 4 maja 2007 r. Dokument standardu Fast Infoset można pobrać ze strony internetowej ITU . Chociaż dokument nie stwierdza ograniczeń dotyczących własności intelektualnej (IP) dotyczących implementacji lub użytkowania, strona ii ostrzega, że ​​otrzymano powiadomienia, a temat może nie być całkowicie wolny od stwierdzeń dotyczących własności intelektualnej.

Powszechnym błędnym przekonaniem jest to, że FI wymaga obsługi narzędzia ASN.1 . Chociaż formalna specyfikacja używa notacji ASN.1, standard zawiera Encoding Control Notation (ECN), a narzędzia ASN.1 nie są wymagane przez implementacje.

Alternatywą dla FI jest FleXPath.

Struktura

Podstawowym formatem pliku jest ASN.1 , z blokami znaczników/długości/wartości. Wartości tekstowe atrybutów i elementów są przechowywane z przedrostkami długości, a nie ogranicznikami końcowymi, a segmenty danych nie wymagają zmiany znaczenia dla znaków specjalnych. Odpowiedniki znaczników końcowych („terminatory”) są potrzebne tylko na końcu listy elementów potomnych. Dane binarne są przesyłane w formacie natywnym i nie muszą być konwertowane na format transmisji, taki jak base64 .

Fast Infoset to format wyższego poziomu zbudowany na formularzach i notacji ASN.1. Nazwy elementów i atrybutów są przechowywane w strumieniu oktetów, w przeciwieństwie do tradycyjnych schematów kodowania ASN.1. W rezultacie konwencjonalny plik XML można odzyskać ze strumienia binarnego bez odniesienia do schematu XML, a schemat XML nie musi być wyrażony jako definicja ASN.1. ("Tagi" ASN.1 to tylko nazwy typów, np. String, Integer lub typy złożone). ASN.1 wraz z ECN służy do definiowania formatu pliku.

Dla większości ciągów znaków tworzona jest tabela indeksów, która zawiera nazwy elementów i atrybutów oraz ich wartości. Oznacza to, że tekst powtarzających się znaczników i wartości pojawia się tylko raz na dokument.

Implementacje

Implementacja referencyjna

Implementacja Java specyfikacji FI jest dostępna jako część implementacji JAXB w środowisku Eclipse. Biblioteka jest open source i jest rozpowszechniana na warunkach licencji Apache 2.0. Kilka projektów korzysta z tej implementacji, w tym implementacja referencyjna dla JAX-WS używana w Eclipse Metro .

Implementacja QtitanFastInfoset dla C++ jest dostępna na licencji komercyjnej jako komponent środowiska Qt .

Wydajność

Ponieważ szybkie zestawy informacji są kompresowane jako część procesu generowania XML, są znacznie szybsze niż użycie algorytmów kompresji w stylu Zip w strumieniu XML, chociaż dane wyjściowe nie są tak dobrze skompresowane.

Wydajność parsowania typu SAX Fast Infoset jest również znacznie szybsza niż wydajność parsowania XML 1.0, nawet bez żadnej kompresji typu Zip. Typowy wzrost szybkości analizowania obserwowany dla referencyjnej Java to 10-krotny wzrost w porównaniu z Java Xerces i 4-krotny wzrost w stosunku do sterownika Piccolo (jednego z najszybszych parserów XML opartych na Javie).

Typowe aplikacje

Urządzenia przenośne — urządzenia mobilne zazwyczaj mają połączenia danych o niskiej przepustowości i wolniejsze procesory. Fast Infoset wykorzystuje mniejszą przepustowość niż XML i jest szybszy w przetwarzaniu, co czyni go lepszym wyborem.

Przechowywanie dużych ilości danych — podczas przechowywania danych XML w pliku lub bazie danych ilość danych wytwarzanych przez system często przekracza rozsądne granice, co wiąże się z szeregiem szkód: czasy dostępu wydłużają się w miarę odczytywania większej ilości danych, obciążenie procesora rośnie w miarę Przetwarzanie danych XML wymaga więcej mocy, a koszty przechowywania rosną. Przechowywanie danych XML w formacie Fast Infoset pozwala zmniejszyć ilość danych nawet o 80 procent.

Przekazywanie XML przez Internet — gdy aplikacja przesyła dane przez Internet, przepustowość sieci może być głównym wąskim gardłem, poważnie obniżając wydajność aplikacji klienckich i ograniczając moc serwera do przetwarzania żądań. [ potrzebne źródło ] Zmniejszenie rozmiaru danych przesyłanych przez Internet skraca czas potrzebny do wysłania lub odebrania wiadomości oraz zwiększa liczbę transakcji, które serwer może przetworzyć w ciągu godziny.

Zobacz też

Linki zewnętrzne