Ten temat ma zastosowanie tylko do konfiguracji produktu IBM Business Automation Workflow Advanced.

Architektura zorientowana na usługi

Architektura zorientowana na usługi (Service-oriented architecture - SOA), jest ogólnie zdefiniowanym standardem branżowym, który prezentuje wszystkie procesy biznesowe w sposób zorientowany na usługi. Zależności między usługami, takimi jak usługi WWW, zasoby aplikacyjne usług systemów Enterprise Information System (EIS), przepływy pracy i bazy danych, są sprowadzone do minimum, a implementacja każdej usługi jest ukryta.

Celem architektury zorientowanej na usługi jest rozdzielenie logiki integracji biznesowej od implementacji, aby programista integracji mógł skupić się na składaniu zintegrowanej aplikacji zamiast na szczegółach implementacji. Aby uzyskać ten cel, tworzone są komponenty usług zawierające implementacje poszczególnych usług wymaganych przez procesy biznesowe. Wynikiem jest architektura składająca się z trzech warstw (logika integracji biznesowej, komponenty usług oraz implementacja). Została ona przedstawiona na poniższym diagramie:

Separowanie logiki biznesowej, komponentów usług i implementacji

Ponieważ komponenty usług zawierają implementacje, mogą one być składane przy użyciu narzędzi graficznych przez programistę integracji, bez wiedzy na temat szczegółów implementacji. Komponenty usług udostępniają również opcję późniejszego dodania implementacji przez programistę integracji lub osobę pracującą na rzecz programisty integracji. Komponenty są składane ze sobą przy użyciu technik wizualnych. Innymi słowy użytkownikowi nie jest ujawniany kod komponentów. Na poziomie logiki biznesowej (przedstawionym na poniższym diagramie) komponenty są składane niezależnie od ich implementacji. Architektura zorientowana na usługi umożliwia następnie skupienie się na rozwiązywaniu problemów biznesowych poprzez wykorzystywanie i ponowne wykorzystywanie komponentów. Pozwala to uniknąć skupiania uwagi na technologii, która jest wykorzystywana do implementacji używanych usług.

Składanie komponentów usług niezależnie od ich implementacji

Najważniejsze korzyści płynące z użycia architektury zorientowanej na usługi

Współczesny świat biznesu charakteryzuje się dużym tempem rozwoju. Architektura zorientowana na usługi zapewnia elastyczność, która umożliwia reagowanie i wykorzystywanie zmieniających się warunków biznesowych. Zwiększa również łatwość utrzymania oprogramowania w późniejszym czasie. Te cele są realizowane przy użyciu następujących sposobów:
  • Konsolidowanie logiki biznesowej i danych biznesowych. Komponenty używane przez różne grupy użytkowników w korporacji, a nawet współużytkowane przez zbiór korporacji, mogą być wykorzystywane przez dowolną osobę. Wynika to z faktu, że komponenty te są zgodne ze standardami branżowymi takimi jak język WSDL (Web Services Descriptive Language) i język BPEL (Business Process Execution Language), które są niezależne od platformy i dostawcy. Dane są w spójny sposób reprezentowane przy użyciu tych samych sposobów, co umożliwia współużytkowanie ich przez komponenty architektury zorientowanej na usługi.
  • Wykorzystywanie istniejących aplikacji i systemów. Umieszczenie aplikacji i systemów wewnątrz kodu WSDL powoduje, że stają się one uniwersalnie dostępne dla każdego twórcy aplikacji w przedsiębiorstwie tworzącym bieżącą aplikację.
Jakie są podstawowe kwestie związane z projektowaniem w architekturze zorientowanej na usługi?
  • Komponenty są luźno sprzężone. Komponent uzyskujący dostęp do innego komponentu nie wymaga wiedzy na temat cech innego komponentu takich jak struktury danych, wywołania innych komponentów, zarządzanie transakcjami itp.
  • Komponenty można konfigurować. Aplikacja w architekturze zorientowanej na usługi, taka jak przedstawiona na wcześniejszym diagramie, może być postrzegana podobnie do diagramu konfiguracji. Istnieje możliwość dodawania, usuwania i konfigurowania komponentów, co pozwala tworzyć nowe aplikacje.
  • Komponenty współdziałają ze sobą. Każdy komponent może współdziałać z innym komponentem. Dotyczy to również komponentów tworzonych przy użyciu środowisk programistycznych różnych dostawców.
  • Komponenty są niezależne od położenia.

Te zasady tworzą wspólnie elastyczną architekturę, która umożliwia dostosowywanie się do szybko zmieniających się warunków biznesowych i wykorzystywanie ich potencjału.