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.