XML na zwrotnicy

Routery XML to nowa klasa rozwiązań, których zadaniem jest sterowanie ruchem komunikatów XML zgodnie z logiką aplikacji opartych na usługach.

Routery XML to nowa klasa rozwiązań, których zadaniem jest sterowanie ruchem komunikatów XML zgodnie z logiką aplikacji opartych na usługach.

Dzięki niebywałej elastyczności w ciągu kilku lat od powstania XML stał się lingua franca informatyki. XML nadaje się do definiowania formatów dokumentów, opisu struktur baz danych, a nawet języków programowania i protokołów komunikacyjnych.

Ze względu na własności XML leży u podstaw ogromnej liczby technologii, m.in. ebXML (wymiana dokumentów biznesowych), XLink (łączenie dokumentów XML), XQL (język zapytań do baz danych) itd. Nawet język HTML doczekał się nowej specyfikacji opierającej się na XML - XHTML. Najbardziej zaawansowaną formą wykorzystania XML są całe architektury systemowe oparte na usługach (SOA - Service Oriented Architectures), w których za pomocą XML definiowane jest bez mała wszystko.

XML umożliwił informatyce oddalenie się od problemów sprzętowych i implementacyjnych, zrodził jednak problemy zupełnie innej natury. Przede wszystkim jako standard tekstowy XML nie należy do szczególnie "oszczędnych" - udział dokumentów XML w całości ruchu w sieciach wewnętrznych firm i Internecie bardzo szybko rośnie. Po wtóre, zyskujące na znaczeniu architektury SOA zakładają bardzo intensywną komunikację między poszczególnymi komponentami funkcjonalnymi (usługami, aplikacjami), przy czym komunikacja ta rządzi się prawami odmiennymi od tych, które działają w warstwie sieciowej, czyli na poziomie infrastruktury TCP/IP.

Dalsza popularyzacja XML tylko spiętrzy problemy i wyzwania dostrzegalne już dziś. W dobie powszechnego wykorzystania XML w komunikacji między systemami informatycznymi będą potrzebne nowe narzędzia do monitorowania sieci pod kątem założonej wydajności komunikacji oraz sterowania ruchem zgodnie z logiką i potrzebami aplikacji, a więc na podstawie m.in. rodzaju, struktury i treści komunikatów, a nie tylko w oparciu na "prostych" regułach routingu na poziomie IP. Takie funkcje pełnią właśnie XML - rozwiązania, które powstają już dziś, by móc stawić czoło wyzwaniom jutra.

Aplikacje rządzą siecią

Zapora XML na styku firmowego intranetu z Internetem

Zapora XML na styku firmowego intranetu z Internetem

Przykładowe umiejscowienie routera XML w infrastrukturze informatycznej firmy

Przykładowe umiejscowienie routera XML w infrastrukturze informatycznej firmy

Routery XML (XML router/switch) stanowią jeden z najlepszych przykładów rozwiązań umożliwiających filtrowanie i sterowanie przepływem danych na poziomie aplikacji (ADR - Application Data Routers). Po raz pierwszy routery XML pojawiły się na rynku w 2002 r.

Systemy tego typu mogą z powodzeniem znaleźć zastosowanie w kierowaniu ruchem również w odniesieniu do innych protokołów - nie tylko XML, np. do optymalizacji dostępu do baz danych. Z dużym prawdopodobieństwem znajdą zastosowanie w optymalizacji złożonych transakcji wykonywanych na wielu bazach danych czy nadawaniu priorytetów wiadomościom SOAP bądź dokumentom XML reprezentującym ważniejsze transakcje.

Kolejnym zastosowaniem rozwiązań ADR może być wykorzystanie ich jako aplikacji typu proxy, działających na poziomie aplikacji, które transformują żądania (kierowane np. do bazy danych) do postaci XML, a następnie zajmują się transformacją otrzymanych w wyniku dokumentów XML do żądanego przez klienta formatu.

Idąc krok dalej, można sobie wyobrazić, że jedną z możliwych dróg rozwoju rozwiązań ADR, a routerów XML w szczególności, będzie wykorzystanie ich jako uniwersalnej platformy do definiowania i zarządzania procesami biznesowymi organizacji. W zależności od potrzeb i konfiguracji XML może np. przekazać żądanie SOAP do serwera WWW obsługującego w organizacji tylko żądania SOAP lub udostępniającego wszystkie usługi sieciowe zewnętrznym klientom albo tylko konkretną i krytyczną dla działania korporacji usługę biznesową.

Dyżurny ruchu XML

Dokumenty XML mogą być przez rozwiązania typu ADR traktowane odpowiednio do ich zawartości. Reguły, jakimi kieruje się system ADR, mogą być zadane w postaci wyrażeń XPath - ich zastosowanie wydaje się naturalne. Rozwiązanie ADR może również odpowiednio reagować, jeżeli przekazywany dokument XML ma odpowiednią strukturę, określoną przez wskazany w nim dokument DTD lub XML Schema.

Przetwarzanie dokumentu może być uzależnione od dowolnych innych parametrów, np. zawartych w nim słów kluczowych, różnego rodzaju flag, typu aplikacji, przez którą ma być przetwarzany, ale także m.in. na podstawie parametrów zawartych w pakietach IP przenoszących dokument XML itd. W przypadku komunikatów o złożonej strukturze router XML może także dokonywać podziału komunikatu XML na części i każdą z nich wysłać do innej usługi/komponentu/systemu docelowego.

Trwają prace nad stworzeniem nowych standardów i technologii dedykowanych do filtrowania ogromnych ilości danych XML z bardzo dużą wydajnością. Jednym z nich jest XTrie - bardzo wydajny mechanizm indeksowania i filtrowania dużej liczby dokumentów XML oparty na XPath. XTrie opiera się na wielopoziomowych wyrażeniach XPath i pozwala na przeszukiwanie treści zarówno ustrukturalizowanych, jak i nieustrukturalizowanych danych. Więcej materiałów na ten temat i odnośniki do publikacji można znaleźć pod adresem:http://www.eurecom.fr/~felber/cr/ .

Komunikaty pod lupą

W warunkach, gdy komunikaty XML przenoszą ważne, często tajne dane, odpowiednio oprogramowany router XML może być wykorzystany jako dodatkowy mechanizm bezpieczeństwa, zajmujący się szyfrowaniem wysyłanych poza sieć korporacyjną organizacji dokumentów XML oraz deszyfrowaniem komunikatów napływających. Może też zajmować się uwierzytelnianiem zdalnych konsumentów lokalnych usług sieciowych.

Router XML może też pełnić funkcję specjalizowanej zapory XML (XML firewall). Żądania odwołujące się do nieistniejących usług lub np. zastrzeżonych metod dostępnych tylko wybranym użytkownikom mogą być filtrowane i odrzucane. Firewalle XML filtrują także nagłówki i treść dokumentów XML w poszukiwaniu niedozwolonych operacji lub prób ataków.

Potrzeba wdrażania zapór XML, wczoraj wydająca się dziwactwem, dziś zaczyna być coraz bardziej oczywista. Fakt niewykrycia niczego podejrzanego w warstwie sieciowej nie oznacza bynajmniej, że komunikacja za pośrednictwem XML jest bezpieczna. XML umożliwia konstruowanie złożonych komunikatów, w których treści lub konstrukcji może kryć się "bomba logiczna" lub próba wymuszenia operacji odczytu lub zapisu okreś-lonych danych. To zaś może być groźne zarówno dla serwera WWW, jak i systemów realizujących udostępniane przezeń usługi. Niezależnie od filtrowania w warstwach trzeciej i czwartej staje się więc konieczne filtrowanie także w warstwach wyższych - do siódmej włącznie.

Na drodze do sławy

Na rynku istnieje obecnie co najmniej kilkanaście rozwiązań ADR oferowanych na razie przez młode firmy głównie ze Stanów Zjednoczonych. Rozwiązania ADR dostępne są zarówno w postaci programowych platform middleware, jak i rozwiązań programowo-sprzętowych. W tym drugim przypadku immanentną częścią rozwiązania są zwykle specjalizowane akceleratory sprzętowe. Niektóre spośród tych firm zostaną wkrótce przejęte przez wielkich i włączone do oferty być może jako dodatkowa funkcjonalność przełączników/routerów/zapór aplikacyjnych. W ten sposób zwiększy się ich dostępność i obniżą się ceny - routery XML kosztują obecnie 50 tys. USD wzwyż za licencję na jedno urządzenie.

Piotr Dorosz jest inżynierem w firmie Pyton Management we Wrocławiu.