Informatyka Systemów Autonomicznych
Transkrypt
Informatyka Systemów Autonomicznych
Miłosz Naworski 150136 Wrocław 22.06.2009r Informatyka Systemów Autonomicznych Język XML i jego zastosowania Oczywiste jest, że Internet zmienia świat. W ciągu ostatnich dziesięciu lat, od kiedy Tim Berners-Lee zaprojektował sieć www oraz Marc Andreesen i spółka stworzyli Netscape Navigatora, który umożliwił pokazywanie treści WWW na komputerach PC i Mac, Internet z ciekawostki stał się głównym medium, z pomocniczego stał się podstawowym. Teraz zakładanie witryn jest obowiązkowe w każdej gałęzi przemysłu, często też stają się one częścią życia prywatnego. Ilość informacji dostępnych w Internecie praktycznie nie daje się już określić. Nikt dokładnie nie wie, ile istnieje stron, choć jest pewne, że ich liczba przekracza dwa miliardy. Niemalże wszystkie strony napisano w HTMLu – hipertekstowym języku znaczników, umożliwiającym łatwe, lecz eleganckie sformatowanie danych za pomocą specjalnych znaczników wstawianych do pliku tekstowego, które mogą być zinterpretowane na niemalże dowolnym komputerze i dowolnym systemie. Prostota HTMLa znakomicie ułatwia ekspansję sieci. Stronę może stworzyć dosłownie każdy. Jednak ta prostota narzuca takrze ograniczenia, gdy trzeba obsłużyć ogromną i stale rosnącą ilość informacji. XML to rozszerzalny język znaczników ( eXtensible Markup Language ) wywodzący się z tej samej technologii co HTML. Umożliwia on lepsze obsłużenie informacji, gdyż tego wymaga rozrastający się Internet. HTML zawdzięcza sukces swojej prostocie, łatwości użycia i tolerancji dla błędów. Łatwo jest go używać. Nie ma znaczenia wielkość liter, mało rygorystyczne jest stosowanie cudzysłowów, nie stanowią problemu niedomknięte znaczniki. Taka tolerancja ułatwia stosowanie tego języka. Jednak owa prostota HTMLa ogranicza zakres jego stosowania. Z uwagi na to, że znaczniki HTML głównie dotyczą formatowania, nie zawierają właściwie żadnych informacji o zawartości strony, wobec czego trudno jest jej użyć w innym kontekście. Jako, że HTML nie jest wymagający, jeśli chodzi o wielkość liter czy interpunkcje, przeglądarki muszą się bardzo napracować, aby prawidłowo wyświetlić kod HTML. Z uwagi na to, że HTML jest ograniczony w zakresie formatowania i dynamicznej zmiany zawartości, stworzono już wiele rozszerzeń. Zwykle były one tworzone w pośpiechu, w celu spełnienia jakiś doraźnych podszyb. Niestety, zwykle strony korzystające z takich rozszerzeń działają na konkretnych przeglądarkach. <BODY bgcolor=#000000> <center><img src=”image.jpg”></CENTER> <P>Jakiś tekst Mimo iż znaczniki nie są dokończone, niektóre atrybuty są umieszczone w nawiasach, inne nie, te same znaczniki są różnych wielkości, to strona będzie wyświetlać sie poprawnie. Dlatego XML jest traktowany jako alternatywa dla mało wymagającego HTML. Na pierwszy rzut oka XML jest bardzo podobny do HTML : mamy znaczniki, atrybuty i ich wartości. <?xml version=”1.0” encoding=”UTF-8”> <samochody> <marka>Fiat</marka> <marka>Honda></marka> <model>Punto</model> <model>Civic</model> </samochody> Jednak XML nie jest językiem do tworzenia stron internetowych, lecz językiem do tworzenia innych języków. XML umożliwia tworzenie wyspecjalizowanych języków, które z kolei pozwolą formatować dokumenty. Stąd właśnie bierze się siła XML : znacznik opisuje dane, które są dostępne też do innych zastosowań. Można stworzyć program, który odczyta potrzebne dane, ewentualnie dołączy dane z innych źródeł i da w wyniku jeszcze inne dane do innych potrzeb. Dane nie będą już gubione na stronach zapisanych w formacie HTML, ale zostaną oznakowane i będzie można ich używać stosowanie do potrzeb. Jak zawsze jednak, ma to swoją cenę. XML nie jest tak przyjazny użytkownikowi jak HTML. Aby ułatwić parserom analizę kodu XML, wymaga się przestrzegania wielkości stosowanych liter, stosowania cudzysłowów, zamykania znaczników oraz mnóstwa innych drobiazgów, bez których obyliby się użytkownicy HTMLa. Praktyczne zastosowanie XMLa jest z roku na rok coraz większe. Wraz z wersją 5 Internet Explorera oraz pierwszym Firefoxem, przeglądarki potrafią interpretować dokumenty XML. Jednak największą przeszkodą uniemożliwiającą stosowanie w sieci stron XML jest to, że przeglądarki nie obsługują standardów XLink i XPointer. Oznacza to, że przeglądarka nie może wyświetlić łączy ani obrazków na stronie XML. Konsorcjum W3C ( Word Wide Web Consorcium ) zaleca stosowanie XHTML – czyli systemu zapisywania znaczników HTML, zgodnie z precyzyjnymi regułami XML. Jednak moim zdaniem pisanie w XHTML jest problematyczne – traci się łatwość pisania w HTML, nie zyskując zalet XML. Jednak jest to jakiś standard, którego warto się trzymać aby nie było różnic w wyświetlaniu jednej strony w różnych przeglądarkach. Przedstawiony wcześniej kod HTML, dostosowany do standardu XHTML wygląda następująco: <body bgcolor=”#000000”> <center><img src=”image.jpg”/></center> <p>Jakiś tekst</p> </body> Rozwój XML przyczynił się do rozwoju sztucznej inteligencji w dziedzinie strategii prowadzenia dialogu typu komuter-człowiek. Pochodną języka XML jest AIML ( Artifical Inteligence Markup Language ). AIML został stworzony dla programu komputerowego ALICE symulującego człowieka, z którym można prowadzić rozmowy przy użyciu języka naturalnego i interfejsu tekstowego. Zadaniem takiego programu jest prowadzenie rozmowy, aby użytkownik miał wrażenie, że rozmawia z inteligentnym człowiekiem. Minimalna struktura tego języka to : <aiml> </aiml> Podstawowymi elementami wiedzy języka są znaczniki <category>, które zawierają po jednym znaczniku <pattern> i <template>. Znacznik <pattern> zawiera opis wzorca wypowiedzi wprowadzonej przez użytkownika, natomiast znacznik <template> reakcję programu na wypowiedź użytkownika. Ilustruje to następujący przykład: <aiml> <category> <pattern>Co słychać?</pattern> <template>U mnie wszystko dobrze.</template> </category> </aiml> XML znalazł dość szerokie zastosowania związane z multimediami, w co najmniej dwóch aspektach: bezpośredniego zapisu informacji multimedialnej, np. grafiki wektorowej (Scalable Vector Graphics – SVG) oraz sterowania przetwarzaniem informacji multimedialnej (np. SMIL czy Voice-ML). XML jest niezastąpionym środkiem reprezentowania informacji semistrukturalnej, tzn. takiej, gdzie informacje mają pewną strukturę, ale jest ona zmienna, słabo ustalona czy też częściowo nieistotna. Typowym przykładem takiej informacji są złożone dokumenty tekstowe, mające wprawdzie strukturę akapitów, podrozdziałów i rozdziałów, ale słabo sformalizowaną. Tego typu informacje dają się bez większych trudności zapisywać w XML, zaś bardzo źle reprezentuje się je w relacyjnych bazach danych. XML może tu zatem stanowić dobre uzupełnienie możliwości typowych baz danych. Jednym z pierwszych zastosowań XML – w pełni zgodnym z pierwotnymi intencjami twórców języka – jest tworzenie specjalistycznych struktur do przekazywania informacji naukowej, ekonomicznej itp. w społeczności specjalistów z danej dziedziny. Powstają zarówno specjalistyczne dialekty, mające charakter środowiskowych standardów (np. MathML do zapisu wzorów matematycznych, CML – Chemical Markup Language), jak i struktury tworzone ad-hoc na potrzeby konkretnych organizacji czy projektów. Specjalną rolę XML może i powinien odegrać w komunikacji w sferze publicznej, zwłaszcza w wymianie informacji między obywatelem czy przedsiębiorstwem a urzędem. Zastosowanie do takiej wymiany otwartego standardu jakim jest XML likwiduje przewagę, którą uzyskują firmy tworzące oprogramowanie dla urzędów. Istnienie takiej przewagi, a co za tym idzie przymusowe związanie obywateli czy przedsiębiorstw z określonym dostawcą oprogramowania, jawnie kłóci się z zasadami wolności gospodarczej i w praworządnym państwie nie powinno mieć miejsca (na gruncie krajowym wspomnieć tu można sprawy formatu wymiany danych z ZUS czy gromadzenia danych przez b. Kasy Chorych). Tymczasem w XML informacje wymieniać może nawet podmiot nie dysponujący specjalistycznym oprogramowaniem; do utworzenia odpowiedniego pliku danych wystarczać bowiem powinien dowolny edytor tekstowy, jeśli tylko format danych jest odpowiednio dobrze udokumentowany i opublikowany. Tego typu próby były (i – miejmy nadzieję – nadal będą) podejmowane, przykładem może być projekt formatu gromadzenia danych medycznych, ostatecznie porzucony z przyczyn dalekich od merytorycznych. Mającym obecnie największe znaczenie zastosowaniem XML jest, jak się wydaje, elektroniczna wymiana danych i dokumentów (EDI). XML idealnie nadaje się do wymiany dokumentów za pośrednictwem sieci Internet, np. w zastosowaniach z dziedziny handlu elektronicznego typu B2B (business to business) czy przy integracji systemów heterogenicznych. Ze względu na swą prostotę oraz dostępność narzędzi, XML zapewne wyprze klasyczne technologie i standardy EDI. W dziedzinie EDI istnieje znaczny dorobek standaryzacyjny co do treści dokumentów komunikatów dotyczących różnych dziedzin życia. Koncepcja XML/EDI zakłada zachowanie tego dorobku przez zawarcie semantyki wcześniej ustandaryzowanych komunikatów (np. EDIFACT) w składni XML. XML stał się bardzo popularny jako format zapisu różnego rodzaju plików konfiguracyjnych oprogramowania. XML jest prosty, łatwy w interpretacji przez użytkownika, a do interpretacji zawartości plików konfiguracyjnych użyć można standardowych parserów, co ułatwia pracę programistom. Przykładem takiego zastosowania mogą być deskryptory wdrożeniowe w technologii EJB. XML znalazł także zastosowanie w różnego rodzaju protokołach wymiany komunikatów, zdalnego wywoływania procedur itp. Jego zastosowanie zapewnia czytelność przesyłanych komunikatów, umożliwia też zastosowanie standardowych parserów XML do interpretacji tych komunikatów. Przykładami tego typu zastosowań są protokoły SOAP, XML-RPC i WebDAV. Technologia XML osiągnęła już dojrzałość i znalazła liczne ważne zastosowania. Jednak, jako rozwiązanie stosunkowo młode, XML stale się rozwija. Wychodzą kolejne wersje wcześniejszych standardów, są udoskonalane i rozbudowywane. Kolejne odsłony są pozbawiane błędów i wzbogacane o nowe możliwości. Powstają coraz to nowe rozwiązania takie jak np. XQuery czyli język zapytań do danych zapisanych z XML. Prowadzone są również prace nad nowymi modelami przetwarzania. Za bardzo szybko rozwijającymi się pracami standaryzacyjnymi nie nadążają twórcy implementacji, ale i tu widać znaczne postępy. Implementacjami standardów XML-owych zajmują się zarówno liczni komercyjni producenci oprogramowania, jak i główne organizacje tworzące oprogramowanie open-source. Zapewnia to zdrową równowagę, gdyż zmusza producentów do przestrzegania standardów – żaden z nich nie może narzucić własnych firmowych rozwiązań. Zalety XML zostały już docenione, można więc wysunąć twierdzenie, że język ten znalazł już swoje miejsce w informatyce.