Architektura na miarę

Punktowa prostota

Wiele systemów zbudowanych zgodnie z ideą SOA nie wymaga jednak takiego poziomu niezawodności, jeśli chodzi o zwykłe przekazywanie informacji. Przykładem może być tworzone przez firmę Corillian wykorzystywane przez banki oprogramowanie warstwy pośredniej - Voyager. Scott Hanselmann, główny architekt oprogramowania w Corillian, nie przejmuje się zbytnio pracami nad połączeniem WS-Reliability oraz WS-ReliableMessaging. Corillian korzysta z WS-Security, ale uważa SSL za równie efektywny w większości przypadków. Takie podejście wymaga stosowania routerów i oprogramowania pośredniczącego, niemniej firma rzadko z niego korzysta. W większości przypadków stosowana jest wymiana komunikatów punkt-punkt.

Scott Hanselmann nie przejmuje się także zbytnio UDDI, standardem katalogów usług web. Nie przekonuje go argument mówiący o tym, że usługi nieznajdujące się w katalogu nie będą ponownie wykorzystywane. "Odnalezienie usług nie stanowi dla programistów problemu" - uważa. Problemem jest natomiast łatwe i efektywne ich wykorzystywanie. W jego opinii przeciętny programista powinien być chroniony przed koniecznością bezpośredniego odwoływania się do XML i certyfikatów X. 509. Według Hanselmanna wystarczającym standardem z punktu widzenia programisty jest język opisu usług web - WSDL (Web Services Definition Language).

Oczywiście także WSDL zbiera krytyczne opinie. Według niektórych poziom złożoności i "dziwaczności" wersji 1.1 uczynił z tego standardu kulę u nogi SOA. Z niecierpliwością oczekiwana jest wersja 2.0. Mimo to miliony już działających usług web korzystają właśnie z WSDL 1.1 i przez najbliższe lata raczej to się nie zmieni.

Wykorzystując WSDL 1.1 Corillian, jak twierdzi, może opisywać obiekty, komunikaty i usługi w rdzeniu oprogramowania Voyager oraz wiązać te opisy z wewnętrznymi mechanizmami, które nie obsługują technologii XML. W miarę narastania potrzeby firma stworzyła powiązania alternatywne, które pozwalają klientom komunikować się z rdzeniem systemu za pośrednictwem usług web. Zdaniem Hanselmanna WSDL 1.1 rozwiązuje 80% problemów, zaś WSDL 2.0 rozwiąże być może 90%. Bez względu na to zarówno pierwsza, jak i druga wersja mogą stanowić kluczową technologię w tworzeniu aplikacji SOA.

Zabezpieczanie oznak życia

WS-Security to bez wątpienia najpopularniejszy zaawansowany standard usług web. Prawdę mówiąc, trudno znaleźć użytkowników z krwi i kości jakichkolwiek innych zaawansowanych standardów WS-*. O jednym z nielicznych przypadków migracji od prostych do bardziej skomplikowanych usług web może opowiedzieć Furrukh Khan z Centrum Medycznego Uniwersytetu Stanowego stanu Ohio.

Dane z urządzeń monitorujących stan zdrowia pacjentów są zapisywane w bazach danych i równocześnie dostarczane na inteligentne urządzenia klienckie, które umożliwiają obserwowanie, odtwarzanie, analizowanie oraz opisywanie strumienia danych. Strumienie te muszą być dostarczane jednocześnie do wielu urządzeń w niezawodny, bezpieczny sposób w czasie zbliżonym do rzeczywistego.

Pierwsza implementacja obsługującego ten proces systemu została oparta na opracowanych przez Microsoft rozszerzeniach WS-Eventing i korzystała ze standardu WS-Policy. Nie został on jeszcze zaakceptowany oficjalnie przez ciało standaryzacyjne; ma to jednak nastąpić wkrótce. WS-Policy było wykorzystywane do deklarowania sposobów uwierzytelniania w bazach danych, do żądania certyfikatów x. 509 podpisanych konkretnym kluczem oraz składania podpisów cyfrowych i szyfrowania.

Obecna implementacja, bazująca na wersji beta technologii

Microsoft Indigo (mającej być częścią Windows Vista implementacji zestawu zaawansowanych protokołów usług web), wykorzystuje WS-ReliableMessaging do zapewniania niezawodnego transportu komunikatów. Korzysta też z WS-SecureConversation - do optymalizacji działania kanału komunikacji, w którym przesyłane są duże ilości danych.

Furrukh Khan wyjaśnia, że korzystanie wyłącznie z WS-Security w połączeniu z WS-Policy nie zapewniłoby obsługi ruchu w czasie bliskim rzeczywistemu. Protokół, który potrzebował częstej wymiany informacji z systemem zarządzania tożsamością, sam wymagał przesyłania zbyt dużej ilości informacji. WS-SecureConversation, który umożliwia buforowanie danych o użytkownikach, eliminuje ten problem.

W połączeniu z zawartą w Indigo implementacją standardu WS-ReliableMessaging WS-SecureConversation pozwala na użycie routera jako brokera połączeń pomiędzy dwoma punktami i wycofanie go z uczestnictwa w komunikacji. To powoduje znaczne zwiększenie skalowalności systemu. "Wykorzystanie WS-Eventing ograniczało skalowalność systemu do 300 klientów na jeden router. Indigo może obsłużyć 638 klientów na jeden router" - mówi Furrukh Khan. Obecnie system obsługuje ponad tysiąc klientów, z których wszystkie pozwalają na obserwowanie oznak życia równocześnie. Informacje przekazywane są co 30 s.

Mówiąc o przejściu od WS-Eventing do Indigo, Furrukh Khan, podobnie jak wcześniej cytowany Scott Hanselmann, ma na myśli ochronę programistów przed zbytnim skomplikowaniem modelu. WS-Eventing obsługiwało tylko podstawowe scenariusze - w pozostałych przypadkach programiści i tak musieli opierać się na własnych definicjach XML. Dzięki wyższemu poziomowi abstrakcji oferowanemu przez Indigo, zachowana zostaje prostota modelu aplikacji. Indigo rozwiązało też inny, ważniejszy problem: koordynację usług web z usługami komunikacyjnymi dostępnymi na konkretnej platformie.

"W Indigo każda usługa web jest powiązana z usługą Microsoft Message Queue. W dotychczasowych systemach Microsoft Windows usługi biznesowe realizowane przez MSMQ są zupełnie oddzielone od usług web. Zarówno MSMQ, jak i XML to dwa oddzielne światy wykorzystujące całkiem oddzielne narzędzia. Różni członkowie zespołu muszą być ekspertami w różnych dziedzinach. Żadna z osób nie jest w stanie opanować ich wszystkich. Indigo znacznie więc pomaga programiście" - twierdzi Khan.

Realizacja kontraktów

System ochrony zdrowia w mieście Providence w stanie Rhode Island wspierają kliniczne i biznesowe aplikacje SOA oparte na typowej, prostej architekturze dwuwarstwowej oraz portalach dla pacjentów i lekarzy. Usługi biznesowe zostały odwzorowane w formie zestawów usług elementarnych. Owszem, miasto wykorzystuje niektóre zaawansowane standardy, na czele z WS-Security, ale informatycy nie stykają się z nimi bezpośrednio. "Opieramy się na implementacjach systemów zabezpieczeń stworzonych przez naszych dostawców" - mówi Mike Reagin, odpowiedzialny za rozwój systemów.

Dostawcą owych implementacji w przypadku Providence jest firma Infavrio. Jej oprogramowanie zarządza usługami web i zapewnia środowisko do ich uruchamiania. Infavrio zawiera rejestr UDDI, ale w związku z niewielką liczbą usług nie odgrywa on większej roli. Duże znaczenie ma jednak deklarowanie i egzekwowanie reguł kontrolujących te usługi, a także monitorowanie ich aktywności.

W modelu Infavrio usługi są udostępniane jako pary producent-konsument, z których każda zarządzana jest przez oddzielny "kontrakt". Przykładowo, główny indeks pacjentów to usługa wykorzystywana zarówno przez portale dla lekarzy, jak i te dla pacjentów - jednak w każdym przypadku w nieco inny sposób. Numer ubezpieczenia zdrowotnego pacjenta, który pojawia się na portalu dla pacjentów, nie może być publikowany w portalu dla lekarzy. Dzięki stworzeniu odrębnych interfejsów WSDL dla poszczególnych klientów, Infavrio umożliwia powtórne wykorzystanie usługi, co jednak nie wymaga pisania kodu - narzędzia Infavrio pozwalają osiągać to w sposób deklaratywny.

Wykorzystanie SOA przez Providence ma obecnie charakter testów wewnętrznych. Usługi zasilają informacjami portale, które nie są jednak bezpośrednio dostępne dla pacjentów. Z czasem ma się to jednak zmieniać. Mike Reagin jest przekonany, że kiedy to nastąpi, wykorzystanie standardów takich jak SOAP czy WSDL pozwoli na zrealizowanie bardziej zaawansowanych scenariuszy. Możliwe będzie np. zarządzanie usługami poprzez motory reguł oparte na BPEL, niezawodna komunikacja, audyt bezpieczeństwa. Które z elementów WS-* to umożliwią? O tym właśnie Mike Reagin rozmyśla po nocach. Kiedy nadejdzie właściwy czas, jak mówi, kupi, a nie samodzielnie zbuduje, niezbędną infrastrukturę.

Zaufanie do produktu

Bezpieczeństwo i niezawodna komunikacja stanowią kluczowe wymagania dla grupy Pfizer Global Pharmacuticals (PGP). Gigant farmaceutyczny zaspokoił je wdrażając rozwiązanie Network Director firmy Blue Titan, które steruje regułami działania routerów DataPower. Network Director jest sprzężony z systemem uwierzytelniania Oblix (Oracle). Według Martina Brodbecka, odpowiedzialnego w PGP za architekturę aplikacji, idealnym rozwiązaniem tego połączenia byłby standard WS-Security.

Warto zwrócić uwagę, że wiele standardów, o których mówi się, że były rozwijane przez dostawców, ma dziś znaczenie głównie dla nich samych. Niektórzy z architektów aplikacji, którzy wykorzystują w swoich systemach WS-Security, nie zdają sobie sprawy z tego, że w ich systemach stosowany jest także standard WS-Trust. Wszystko dlatego, że WS-Trust wykorzystywany jest np. wyłącznie do komunikacji pomiędzy przełącznikiem zarządzającym ruchem a systemem zarządzającym tożsamością. Komunikaty wymieniane między firmą a partnerami nie mają nic wspólnego z WS-Trust.

Drugim ważnym elementem dla Grupy PGP - poza bezpieczeństwem - jest niezawodna komunikacja. Na rynku jest wiele produktów warstwy pośredniej mogących realizować to zadanie. W PGP działa Network Director, ale w dłuższym okresie firma rozważa jednak wykorzystanie Indigo. Blue Titan w połączeniu z Indigo ma znacznie ułatwić pracę programistów.

Do krótkiej listy ważnych standardów, na której czele znajdują się WS-Security i WS-ReliableMessaging, Martin Brodbeck wymienia RSS, popularny format syndykacji treści. Niektórych może zaskoczyć, że ogromna korporacja ceni sobie ten element WS-mini. Jednak jeśli rozważy się sposób, w jaki przebiega praca grupowa i zarządzanie wiedzą w organizacji, zdziwienie znika. To, nad czym zastanawia się PGP, nie przypomina jednak typowego systemu blogów. Firma chce zwirtualizować wątki RSS, dzięki czemu będą one niezależne od adresów. W konsekwencji możliwe stanie się agregowanie ich ze względu na specyficzne funkcje biznesowe i zabezpieczanie ich przy użyciu takich samych deklaratywnych reguł, które zarządzają istniejącymi usługami web.

Mini, maxi czy w sam raz?

Mnogość, skomplikowanie i zakres standardów WS-* niewątpliwie przytłaczają, dlatego wydaje się, że wykonanie przynajmniej pewnych prac unifikacyjnych jest nieuniknione. Jak to zrobić? Rozwiązaniem jest seria planów i modeli referencyjnych publikowanych przez OASIS. Według przedstawicieli organizacji dokumenty te mają ułatwić architektom zrozumienie, jak rozmaite specyfikacje WS-*, które budowane są jako moduły większej całości, mogą być łączone w celu rozwiązywania konkretnych problemów.

Dla innych takie plany nie rozwiązują problemu. Pragmatycy potrzebują narzędzi, które pozwolą okiełznać nadmierną złożoność. Takim narzędziem może być platforma Indigo. Jeszcze inni mają nadzieję, że niedawna inicjatywa JBI (Java Business Integration) będzie stanowić siłę unifikującą - przynajmniej w świecie Java.

Oczywiście narzędzia i środowiska mają także ciemną stronę. Nawet jeśli protokoły są otwarte i standardowe, można zagubić się w warstwach tworzonych tuż powyżej. Przewidując taki właśnie rozwój wydarzeń, wielu praktyków koncentruje się na podstawowych standardach, czyli wersji mini - SOAP i WSDL.

Dla wielu praktyków "WS-* w sam raz" oznacza uwzględnienie przynajmniej niektórych aspektów bardziej zaawansowanych standardów, w szczególności WS-Security. Niektórzy idą dalej i mówią, że komplet specyfikacji WS-* jest nieodzowny do prawidłowego wdrożenia idei SOA. Tak naprawdę dobre wdrożenie to takie, w którym stopień komplikacji technologii odpowiada potrzebom.

Na podstawie Infoworld oprac. Rafał Jakubowski

BT zmierza ku SOA

Dostawcy usług telekomunikacyjnych konkurują poprzez dostarczanie klientom najnowszych usług. Już dziś lista tych usług obejmuje nie tylko pobieranie dzwonków i logo do telefonów komórkowych, ale także utrzymanie infrastruktury telekomunikacyjnej, a nawet realizowanie pewnych procesów biznesowych. SOA doskonale się sprawdza w sytuacji, kiedy usługi trzeba elastycznie dopasowywać do potrzeb klientów. Wspomaga tworzenie ofert obejmujących wykorzystanie produktów firm trzecich i integrowanie systemów firm trzecich z własnymi.

Dokładnie takie podejście przyjął British Telecom przy tworzeniu infrastruktury dostępu szerokopasmowego. Początkowo klienci BT kupowali tylko dostęp szerokopasmowy, z czasem jednak zainteresowali się modelem ASP i przekazaniem operatorowi opieki nad własnymi systemami. Hosting sprawdza się dobrze w przypadku firm zatrudniających mniej niż 100 pracowników, których działy IT zatrudniają kilka osób. To właśnie dla takich firm BT stworzyła ofertę integrującą jej własne usługi z usługami partnerów.

Niezwykle ważna dla BT była możliwość szybkiego testowania nowych usług na rynku. Jeśli okazywało się, że usługa jest dochodowa, można było ją zaoferować na większą skalę. Jeśli nie, BT chciała mieć możliwość przetestowania zmodyfikowanej oferty, zanim ostatecznie zostałaby ona włączona do standardowej oferty.

Firma szybko doszła do wniosku, że przyjęte założenia wymagają zastosowania architektury SOA. W przypadku tego projektu wybrano platformę Microsoft CSF (Connected Services Framework), opartą na rozszerzeniach BizTalk Server, SQL Server oraz Windows Server. Platforma CSF dostarcza komponentów i narzędzi dopasowanych do specyfiki wielu topologii, architektur i typów urządzeń, m.in. telefonów, urządzeń kieszonkowych i komputerów.

Dzięki gotowym interfejsom CSF umożliwia szybkie podłączanie nowych urządzeń do podstawowych systemów biznesowych. Dostarcza także katalog usług UDDI/WDSL oraz narzędzia i standardy niezbędne do definiowania poziomu usług oraz zarządzania tożsamością użytkowników (Active Directory i Identity Integration Server 2003). BizTalk Server obejmuje także motor obiegu dokumentów oraz szablony konfiguracji oprogramowania.


TOP 200