SOA

Systemy monolityczne

Po długiej dominacji monolitycznych architektur oprogramowania przyszedł czas ich zastąpienia przez systemy budowane zgodnie z paradygmatem SOA (ang. Service Oriented Architecture). Poprzez architektury monolityczne rozumiemy aplikacje, których tworzenie polega na statycznej i trwałej integracji modułów oprogramowania, co powoduje, że stworzone aplikacje są trudno modyfikowalne, a ich dostosowywanie do zmieniających się warunków otoczenia jest kosztowne i pracochłonne.

Paradygmat SOA (ang. Service Oriented Architecture)

Paradygmat SOA oznacza zorientowanie na usługi i zmianę filozofii wytwarzania systemów informatycznych - aplikacje tworzone są nie poprzez integrację, lecz poprzez kompozycję, a ich elementami składowymi są autonomiczne usługi, a nie moduły oprogramowania. Proces kompozycji charakteryzuje się elastycznością łączenia usług w aplikacje oraz dynamiką łączenia usług w czasie w zależności od bieżących potrzeb użytkownika.

Organization for the Advancement of Structured Information Standards (OASIS) definiuje SOA jako paradygmat organizacji i użytkowania rozproszonych możliwości usługowych oraz standardowych metod oferowania wzajemnej interakcji jak również wykorzystywania tych możliwości w celu dostarczenia wymiernych i określonych efektów.

Sonic Software definiuje SOA jako podejście do projektowania, wdrażania oraz eksploatacji systemów informatycznych, polegające na komponentowej budowie systemu z wykorzystaniem poszczególnych funkcji. Komponenty są nazywane usługami i mogą być publikowane lokalnie i globalnie. W przypadku zaistnienia takiej potrzeby usługi mogą być przekształcane w nowe procesy biznesowe.

Podsumowując powyższe, systemy zorientowane na usługi to implementacja koncepcji tworzenia systemów informatycznych, w której główny nacisk kładziony jest na definiowanie usług, które spełnią wymagania użytkownika. Zorientowanie na usługi dotyczy metod organizacyjnych i technicznych mających na celu lepsze powiązanie biznesowej strony organizacji z jej zasobami informatycznymi.

Wyniki badań porównawczych wskazują, że zastosowanie paradygmatu SOA pozwala, w porównaniu do podejścia klasycznego, na znaczące skrócenie zarówno czasu potrzebnego na budowę systemu informatycznego od podstaw, a także czasu potrzebnego na modyfikację systemu informatycznego przedsiębiorstwa. Redukcja dotyczy także czasu naprawy błędów w systemie opartym na paradygmacie.

Implementacje architektury SOA

Implementacje architektury SOA w tzw. czystej postaci (ang. pure SOA) praktycznie nie występują. Dojście do pełnej zgodności w wytycznymi paradygmatu może pochłonąć bardzo dużo czasu i środków finansowych. Przedsiębiorstwa decydują się jednak na wdrażanie pewnych elementów architektury, gdyż przynosi to wymierne korzyści w relatywnie krótkiej perspektywie czasowej. Podstawą techniczną architektury zorientowanej na usługi jest szyna integracyjna ESB (ang. Enterprise Service Bus). ESB jest platformą do budowania, dołączania i zarządzania aplikacjami i systemami implementowanymi m. in. w architekturze SOA. Szyna ESB spełnia następujące zadania:

  • pośredniczy w wymianie wiadomości pomiędzy systemami i umożliwia dostęp do świadczonych przez nie usług,
  • zapewnia interoperacyjność systemów wykonanych z zastosowaniem różnych technologii i architektur, oferując mechanizmy przetwarzania, transformacji i zapewnienia niezawodności komunikacji,
  • umożliwia stworzenie standaryzowanego modelu bezpieczeństwa, pozwalając równocześnie zastosować rozwiązania specyficzne dla wykorzystywanych systemów, udostępnia mechanizmy zarządzania, monitorowania i analizy komunikacji pomiędzy systemami.

Przykład architektury opartej o szynę integracyjną wdrożony przez Value Based Advisors w PKP Energetyka zamieszczony jest poniżej (źródło: http://www.microsoft.com):

 

Korzyści biznesowe: Korzyści informatyczne: Korzyści ekonomiczne:
  • następuje usprawnienie przepływu i dostępu do informacji w połączonych systemach informatycznych przedsiębiorstwa,
  • możliwa jest integracja z zewnętrznymi systemami informatycznymi,
  • możliwe jest tworzenie sieci powiązań między partnerami,
  • następuje zwiększenie elastyczności procesów biznesowych.
  • skrócenie czasu włączania kolejnych podsystemów m.in. dzięki komponowaniu nowych procesów biznesowych z istniejących usług SOA,
  • udostępnianie aplikacji w postaci usług do wykorzystania w ramach całego przedsiębiorstwa,
  • łatwość dodawania nowych funkcji systemów informatycznych,
  • odejście od integracji poprzez interfejsy komunikacyjne na rzecz łączenia usług za pomocą warstwy pośredniej,
  • możliwość łączenia aplikacji z różnych platform i technologii,
  • łatwiejszy dostęp do wspólnych zasobów,
  • ochrona zasobów na poziomie przedsiębiorstwa.
  • obniżenie kosztów integracji systemów informatycznych,
  • obniżenie kosztów związanych z wdrażaniem nowych systemów,
  • obniżenie kosztów funkcjonowania działu informatyki poprzez wielokrotne wykorzystanie tych samych zasobów przedsiębiorstwa,
  • niższe koszty utrzymania systemów, w których pokrywające się do tej pory funkcje biznesowe, realizowane przez różne aplikacje, są konsolidowane
  • w postaci usług,
  • zmniejszenie kosztów związanych z utrzymywaniem i konserwacją ujednoliconych systemów informatycznych.