Praktyczna wizja

SOA (Service Oriented Architecture) to styl projektowania infrastruktury IT mający na celu maksymalizację operatywności w udostępnianiu i wykorzystywaniu komponentów (tu: usług biznesowych) w rozproszonych strukturach.

Nie jest to nowe podejście w projektowaniu oprogramowania, ale dzięki rosnącemu zainteresowaniu i rozpowszechnianiu usług sieciowych (WebServices) SOA nabiera walorów praktycznych, oferując wymierne kosztowo korzyści i zalety w stosunku do tradycyjnej architektury.

Kto zignoruje SOA, naraża się na ryzyko pozostania w tyle za konkurencją, lepiej przygotowaną do obsługi klientów i potrafiącą sprawnie dostosowywać się do nowych warunków. Potencjał SOA jest duży, w ocenach Gartnera już w tym roku 80% inicjatyw w IT będzie zorientowana na architekturę w oparciu o usługi sieciowe.

Nie budzi to zdziwienia, jeśli weźmie się pod uwagę często wymieniane konkretne korzyści, które może zapewnić SOA:

  • Sprawność biznesowa. SOA powoduje, że sfera IT łatwo może być dopasowywana do zmieniających się procesów biznesowych i warunków rynkowych. Rekonfiguracja luźno powiązanych (niezależnych) usług biznesowych jest prosta, szybka i stosunkowo tania.
  • Oszczędności. Organizacje implementujące SOA mogą osiągnąć znaczne oszczędności poprzez swobodne wykorzystywanie współdzielonych usług biznesowych bez ich powielania dla różnych inicjatyw IT.
  • Optymalizacja inwestycji w IT. Strategia SOA nie wymaga natychmiastowej wymiany komponentów i przebudowy infrastruktury IT. Implementowana stopniowo, pozwala wykorzystać i udostępniać dotychczasowe rozwiązania.
  • Dopasowanie IT do procesów biznesowych. SOA przekształca systemy IT w samodzielne usługi, odpowiadające aktualnym procesom biznesowym i wymaganiom operacyjnym. To dopasowanie ułatwia funkcje usługowe IT w wspieraniu działań biznesowych.

Wartość dla biznesu

SOA zmienia charakterystykę współdziałania aplikacji IT. Aplikacje stają się współdzielonymi zasobami, niezależnymi wzajemnie od siebie i od używanych platform i języków programowania, stwarzając możliwości integracji na bazie standardów informatycznych i branżowych.

Eliminowana jest konieczność inwestowania znacznego czasu i zasobów w celu pisania specjalizowanych interfejsów i adapterów, integracja staje się prosta. Dzięki standaryzacji zmniejsza się również konieczność i zakres modyfikacji samych aplikacji w przypadku zmian lub implementacji nowych procesów.

SOA zwiększa sprawność i wydajność sfery IT w zaspokajaniu potrzeb biznesowych. Nowe procesy mogą być wspierane i integrowane w systemach IT „na życzenie”, w odpowiedzi na nowe wyzwania biznesowe.

Dodatkowo z uwagi na reprezentację usług w wysokopoziomowych terminach biznesowych IT akceptuje i używa tego samego języka. Z SOA systemy IT szybciej i pełniej adaptują się do celów organizacji i procesów, zapewniając większą tolerancję dla zmian.

SOA oferuje łatwą drogę do zwiększenia szybkości wprowadzania nowych usług i produktów, wspierając szybkie zmiany warunków biznesowych i wykorzystanie istniejących elementów. Jedną z najczęściej podkreślanych korzyści jest łatwość adaptacji IT w przypadku zmian organizacyjnych.

Fuzje, przejęcia, wewnętrzne zmiany organizacyjne, outsourcing, rozszerzanie obszarów IT poza granice firm, nowe kanały dystrybucji i integracja branżowa – to pola, na których stosowanie SOA wnosi nową wartość.

3, 2, 1 – start

Adaptacja struktur IT do SOA nie odbywa się błyskawicznie. Pewna rozwaga, dyktowana warunkami biznesowymi, oraz sprawny kalkulator wydają się niezbędne.

Należy pamiętać, że korzyści ze stosowania SOA pojawiają się we wsparciu zmian w biznesie, a tych IT nie powinno wymuszać. Realny świat nadaje SOA wymiar raczej długofalowej strategii zmian niż szybkich inwestycji z emocjonującymi stopami zwrotu.

Analiza i przejęcie kontroli nad zmianami w zakresie IT dyktowanymi wymaganiami biznesowymi – to chyba najwłaściwszy początek. Wyzwalaczem może być nawet niewielka inicjatywa; „przerobienie” modułu funkcyjnego z repozytorium SAP na WebService trwa chwilę, a dostęp do SAP XI, komponentu oferowanego z każdym nowym kontraktem przez SAP, oraz jego zastosowanie nie są ogromnym wyzwaniem.

Adaptacja struktur IT do SOA nie odbywa się błyskawicznie. Pewna rozwaga, dyktowana warunkami biznesowymi, oraz sprawny kalkulator wydają się niezbędne

W efekcie nowe rozwiązanie będzie miało dodatkową wartość, którą dzięki SOA możemy efektywnie wykorzystać. A i kolejne projekty pewnie uda się realizować łatwiej.

SOA to szansa na szybsze rozwiązywanie problemów biznesowych. Wzrost wydajności w budowaniu rozwiązań powinien być mierzalny i z SOA powinno być łatwiej niż bez. Jeśli nie, na przykład gdy programiści zaczną narzekać, że muszą wykonywać różne akrobacje, aby korzystać z usług aplikacji – oznacza to, że coś jest nie tak.

Elastyczność i rozszerzalność to w praktyce pole do podejmowania kompromisowych decyzji. Nikt nie jest w stanie dokładnie przewidzieć, z jakimi wymaganiami spotkamy się w przyszłości i co będzie kluczowe dla ich spełnienia.

Zmiany również powinny mieć kontrolowany zakres, aby ich skala nie stała się świętym Graalem, bo obietnice w typu: „gdy już będziemy mieli… to wtedy…” są trudno akceptowalne.

Proste jest piękne

Złożoność rozwiązań zawsze będzie wymagała szczególnej uwagi. Za ekranem z prezentacją w PowerPoint stoją w stojakach serwery z aplikacjami, które wymagają konfiguracji, administracji i serwisowania.

Osobiste doświadczenia prowadzą mnie do wniosku, że wielkim dostawcom oprogramowania z trudem przychodzi oferowanie prostych, klarownych rozwiązań, nawet takich, które w pełni wyzwalają potencjał wcześniej oferowanych produktów.

Nie chodzi tu o celowe działanie „pewnej grupy” (modne słowo) programistów w wielkich firmach zainteresowanych budowaniem coraz to bardziej złożonych aplikacji – a może raczej, nazwijmy to „cele korporacyjne” związane z działaniem nakierowanym na tworzenie wartości.

Wiara, że złożoność technologiczna „kompleksowych rozwiązań” stanowi barierę utrzymującą klientów, sprawdza się (niestety) w praktyce. Jednak dekompozycja dużych aplikacji biznesowych i swoboda w wyborze i budowaniu przy użyciu najlepszych komponentów – to właśnie główny sens SOA.

Na początku lutego Yahoo! udostępnił publicznie serwis Yahoo Pipes (http://pipes.yahoo.com), pozwalający łatwo przetwarzać strumienie informacji RSS z różnych źródeł i tworzyć aplikacje kompozytowe w stylu SOA. Bez programowania, instalacji czegokolwiek, z efektownym interfejsem (AJAX) użytkownika w kilkanaście minut nieprzygotowana osoba może skonstruować własne aplikacje.

Oczywiście skala zastosowań jest dużo mniejsza niż realne wymagania SOA, jednak to proste, nietworzące żadnych narzutów administracyjnych rozwiązanie rodzi tęsknotę właśnie za prostotą i skutecznością. SAP Visual Composer może być tu pewnym odnośnikiem i porównaniem, wytyczając właściwe kierunki dla przyszłych narzędzi.

Na koniec ważny element, o którym nie można zapomnieć – interfejs użytkownika. To jeden ze słabszych elementów w SOA, czego powodem jest zapewne brak standaryzacji i upowszechnienia ogólnie akceptowanych rozwiązań i narzędzi.

Do automatyzacji procesów niewymagających specjalnych interakcji użytkownika SOA może sprawdzać się znakomicie. Jeśli jednak konieczna jest interakcja z użytkownikiem, to korzystanie z portalu jest rozwiązaniem praktycznym, ale mimo wszystko trochę złożonym i kompromisowym.

Cóż, SOA uczy kompromisów. Niemniej jednak mam nadzieję, że dostawcy oprogramowania i ich klienci podzielają zdanie, że SOA nie jest celem samym w sobie, a jest nim lepsze wspieranie działań biznesowych, mierzalna efektywność IT oraz wykorzystanie istniejących komponentów aplikacyjnych. Nie ma złotych środków. Szczególnie w zakresie IT.