Nadzieja w usługach
- Piotr Dorosz,
- 08.12.2003
Kto zapłaci za usługi
Wejście do świata usług sieciowych to znacznie bardziej skomplikowane zadanie niż, z pozoru łatwa, implementacja kilku standardów. Ogromna część pracy związanej z udostępnieniem usługi w sieci jest dla klienta niewidoczna. Praca ta wiąże się z wykorzystaniem odpowiednich narzędzi umożliwiających opublikowanie funkcji w postaci usługi sieciowej i umieszczenie jej w katalogach oraz staranną analizą (z biznesowego punktu widzenia), które procesy i w jaki sposób udostępnić w postaci architektury wielokomponentowej. Inne dylematy projektantów usług sieciowych dotyczą zapewnienia wysokiej dostępności i wiarygodności usługi w sieci, a na końcu wyboru odpowiedniej platformy sprzętowej.
Pojawia się zatem naturalne pytanie, czy koszty związane z tworzeniem usług sieciowych w organizacji nie okażą się zbyt wysokie w stosunku do korzyści, jakie może przynieść ta technologia? Na koszt całego przedsięwzięcia wpływa wiele czynników. Najważniejsze to: zakup platformy sprzętowej oraz narzędzi umożliwiających tworzenie i korzystanie z usług sieciowych, nakłady związane z tworzeniem oprogramowania przy użyciu wybranych technologii, koszty ponoszone podczas "cyklu życia oprogramowania" związane z instalowaniem, wdrożeniem i konfigurowaniem, administracją i zarządzaniem wydajnością, nakłady na szkolenia użytkowników i pracowników działu IT. Architektura usług sieciowych umożliwia w dużej mierze wykorzystanie istniejących w organizacji rozwiązań, niemniej wprowadza kolejną warstwę w modelu oprogramowania, co może skutkować koniecznością zwiększenia wydajności platformy sprzętowej i infrastruktury sieciowej.
Na rynku narzędzi programistycznych od pewnego czasu zarysowała się tendencja udostępniania developerom kompleksowych rozwiązań pozwalających na tworzenie oprogramowania również w formie usług sieciowych. W związku z tym twórcy oprogramowania na ogół nie są zmuszeni do zakupu dodatkowych licencji na narzędzia umożliwiające wykorzystanie i tworzenie Web Services.
Technologia usług sieciowych opiera się na ogólnie przyjętych standardach, które już dzisiaj są wspierane przez twórców środowisk programistycznych. Proces programowania i wykorzystania usług sieciowych jest już w dużym stopniu zautomatyzowany (dzięki różnego rodzaju kreatorom) i co za tym idzie relatywnie tani.
Nakłady na tworzenie oprogramowania mogą być zminimalizowane dzięki rozwojowi oferty usług sieciowych dostarczanych przez firmy zewnętrzne. Skala oszczędności związanych z wykorzystaniem gotowych usług będzie w dużej mierze zależeć od zaproponowanego przez dostawcę rozwiązania sposobu naliczania opłat. Możliwe są co najmniej dwa scenariusze: płatność za licencję umożliwiającą korzystanie z usługi lub opłata za każdorazowe jej użycie.
Nakłady związane z pracą programistów, projektantów i analityków będą różne na poszczególnych etapach "cyklu życia oprogramowania".
W fazie projektowania koszty nie powinny wzrosnąć. Narzędzia typu CASE wspierają projektowanie usług sieciowych, umożliwiając już na wczesnym etapie przekształcenie (przy użyciu kreatorów) tradycyjnej klasy w klasę wykorzystywaną jako Web Service, tworząc przy tym dodatkowe informacje dotyczące wdrożenia i kompilacji. Projektant, nawet bez dodatkowych mechanizmów wspierających użycie usług sieciowych, i tak ma do czynienia z klasą, która dopiero w późniejszych etapach rozwoju oprogramowania zostanie wykorzystana jako usługa.
Dostępne na rynku narzędzia używane w fazie implementacji na ogół wspierają tworzenie usług sieciowych. Istniejące mechanizmy umożliwiają tworzenie dokumentów XML na podstawie i odwrotnie - tworzenie obiektów na podstawie dokumentów XML. Jedyną dodatkową czynnością leżącą w gestii programistów będzie walidacja odbieranych dokumentów XML z oczekiwanym ich formatem. Operacja ta jednak nie jest trudna do przeprowadzenia w przypadku posługiwania się schematami dokumentów XML (XML Schema).
Za:
- Niezależność od platformy systemowej
- Wykorzystanie komunikatów tekstowych/XML
- Integracja środowisk CORBA i COM+
- Łatwość projektowania interfejsów dla istniejących aplikacji
- Możliwość integrowania systemów firmowych z systemami firm zewnętrznych
- Wsparcie wszystkich najważniejszych dostawców technologii
- Problemy z wydajnością
- Niepełna standaryzacja mechanizmów bezpieczeństwa
- Potrzeba wdrażania specjalistycznych rozwiązań typu firewalle XML, routery XML itd.
- Niepełna standaryzacja rozwiązań wysokiej dostępności
- Wciąż niewiele poważnych wdrożeń