print
A A A

SOA – Service Oriented Architecture

Termin “Service Oriented Architecture” jest określeniem architektury systemów rozproszonych, w których wyróżnia się:

  • usługobiorcę – klienta korzystającego z usług
  • dostawcę usług – usługą jest realizacja pewnego przetwarzania z wykorzystaniem dostarczonych danych
  • rejestr usług – miejsce, gdzie klient uzyskuje informacje o potrzebnych mu usługach

Podstawą SOA jest wykorzystanie przesyłania komunikatów do wymiany informacji między uczestnikami przetwarzania. Architektury usługowe odróżnia się od architektur obiektowych i architektur komponentowych.

Dostarczając usługę w ramach architektury usługowej należy w ogólnie znanym i dostępnym rejestrze dokonać zgłoszenia:

  • miejsca dostępności usługi
  • sposobu korzystania z usługi

Klient chcący korzystać z określonej usługi:

  • wyszukuje w ogólnie znanych i dostępnych rejestrach opisy świadczonych usług
  • wybiera najbardziej mu odpowiadającą
  • kontaktuje się z serwerem usługi w celu realizacji przetwarzania

Sposób korzystania z usługi jest równoważny interfejsowi oprogramowania realizującego usługę. Interfejs taki powinien być napisany w sposób niezależny od:

  • języka programowania
  • systemu operacyjnego
  • sprzętu realizującego obliczenia

Sposób powiązania usługodawcy z usługobiorcą za pomocą tak określonych interfejsów określa się jako luźny (loosely coupled). Usługi zgłoszone w systemach SOA mogą być jednocześnie klientami innych usług. W ten sposób można tworzyć złożone schematy przetwarzania (workflows) składające się z wielu, odpowiednio zorganizowanych usług. Architektura usługowa (SOA) jest w tym ujęciu przeciwstawiona architekturze komponentowej (CBD)‏.

  • ten sam cel - ponowne wykorzystanie oprogramowania
  • SOA - realizacja za pomocą organizacji usług sieciowych
  • CBD - lokalne komponowanie dostarczonych fragmentów oprogramowania

WebServices

SOA i CBSE

SOA i CBSE są konkurencyjnymi technikami dostarczania gotowych „cegieł” do budowania programów. Komponenty są implementacjami interfejsów dla konkretnego środowiska (nie ma wspólnego języka definiowania interfejsów), elementy SOA realizują opublikowaną funkcjonalność (języki opisu z założenia mają być powszechnymi standardami). Pakowanie i montaż komponentów są czynnościami fazy tworzenia oprogramowania, kombinacja wykonawców usług odbywa się dynamicznie, w trakcie realizacji programu. Realizacja usług korzysta ze standardowych protokołów sieciowych, komponenty są zazwyczaj silniej zintegrowane.

«Oparcie na komponentach     Diagramy pakietów UML»