Nadzieja w usługach

Jedna wielka aplikacja

Usługi sieciowe diametralnie zmieniają sposób wykorzystania oprogramowania. Zamiast dużych aplikacji, mamy do czynienia ze zbiorem specjalistycznych, dowolnie rozproszonych usług, z których część może być pilnie strzeżona, reszta zaś udostępniona określonym użytkownikom zgodnie z ich uprawnieniami - wewnątrz lub na zewnątrz organizacji. Usługi można publikować lub wycofywać, co zasadniczo ułatwia zarządzanie.

Jeżeli nawet usługa nie jest aktywna, pozostaje elementem pewnej uporządkowanej struktury.Pojawienie się Web Services nie oznacza, że dotychczasowe aplikacje mają być wyrzucone. Wręcz przeciwnie - podobnie jak niegdyś rzecz się miała z Internetem - funkcje istniejących aplikacji (legacy systems) można "opakować" i udostępnić jako usługi sieciowe i to przy stosunkowo małym nakładzie pracy. Takie możliwości są dziś oferowane przez praktycznie wszystkie liczące się na rynku narzędzia programistyczne.

Łatwość integracji wpływa na przyspieszenie jej tempa, co ma fundamentalne znaczenie dla kosztów przedsięwzięcia. Dzięki usługom sieciowym wdrożenie nowej aplikacji i włączenie jej do firmowego krwiobiegu czy zintegrowanie systemów dwóch firm powinno sprowadzać się do określenia zakresu i konfiguracji wzajemnie udostępnianych usług. Będzie to wymagać raczej czynności administracyjnych lub wdrożeniowych, a nie programistycznych.

Usługi sieciowe zacierają różnice pomiędzy warstwami, np. serwerem, aplikacją kliencką, bazą danych itd. Ten sam system może być zarówno dostawcą usług, pośrednikiem w ich wyszukiwaniu, jak i użytkownikiem usług udostępnianych przez inne systemy. Pozwala to w nowy sposób spojrzeć na architekturę systemów, a w zasadzie całych środowisk informatycznych. W kontekście usług sieciowych trudno jest mówić o wyodrębnionych aplikacjach - można raczej mówić o przenikających się, wzajemnie obsługujących i uzupełniających zestawach funkcji.

Wątpliwości na dziś

Nadzieja w usługach

Architektura usług sieciowych

Gdyby rozważyć możliwości oferowane przez usługi sieciowe, informatyczna nirwana wydaje się już całkiem blisko. Niestety, to tylko złudzenie. Nadzieje wiązane z usługami sieciowymi mają szansę się urzeczywistnić tylko wtedy, gdy Web Services spełnią pełny zestaw wymagań stawianych tradycyjnym rozwiązaniom korporacyjnym. Dla decydentów technologia ma znaczenie o tyle, o ile jest w stanie zapewnić realizację celów biznesowych. Nieuchronnie pojawiają się więc pytania o wydajność, uwierzytelnianie, bezpieczeństwo transmisji, gwarancje dostępności. Co usługi sieciowe mają do zaoferowania w tych obszarach?

Wykorzystanie formatów i protokołów opartych na XML na każdym etapie przetwarzania wymaga wydajnych parserów XML i ich ścisłej integracji ze wszystkimi typami oprogramowania - począwszy od baz danych, poprzez warstwy pośrednie, skończywszy na interfejsach komunikacyjnych. Niepomiernie wzrośnie rola serwerów WWW (czy określenie WWW jest tu jeszcze na miejscu?), które będą musiały obsłużyć zwiększone natężenie ruchu. Ponadto komunikacja między klientem a usługą odbywa się na zasadach peer-to-peer, co powoduje, że kontrolowanie i wykrywanie nieprawidłowości w ruchu sieciowym staje się zagadnieniem bardziej złożonym niż w przypadku aplikacji tradycyjnych.

Kolejna kwestia to bezpieczeństwo. Otwarta komunikacja jest być może wygodna z punktu widzenia integracji z systemami firewall działającymi w warstwie TCP/IP, jednak wymaga dodatkowych form zabezpieczeń i narzędzi kontrolnych działających - tak jak same usługi sieciowe - w warstwie aplikacyjnej. W szczególności chodzi tu o rozwiązania mogące analizować nie tylko nagłówki IP, lecz także działanie protokołów wyższych warstw HTTP i przenoszonych przez nie protokołów opartych na XML, a nawet zawartości pakietów - tzw. firewalle XML.

Usługi sieciowe mają w założeniu stanowić jedyny interfejs dostępu do procesów realizowanych przez poszczególne systemy komputerowe. Ponieważ uprawnienia są definiowane na poziomie interfejsów i obiektów aplikacji, istnieje potencjalna możliwość omyłkowego udostępnienia użytkownikowi znacznie większej funkcjonalności, niż jest to w konkretnym przypadku konieczne. Sytuacja taka jest niepożądana, ponieważ powoduje zagrożenie atakami logicznymi lub atakami typu Denial of Service.


TOP 200