Wymagania dotyczące realizacji systemów informatycznych przygotowanych z myślą o klientach mogą być różne. Te dotyczą zarówno sfery użytkowej, wszechstronności działania, jak i walorów wizualnych. Istotną częścią takiego indywidualnego zamówienia jest proces zwany service oriented architecture (SOA). Co warto o nim wiedzieć?
Zdj 1. SOA to przykład wszechstronnie stosowanego oprogramowania. Jego przykładem może być CRM
Źródło: https://www.thebluediamondgallery.com/tablet/images/crm.jpg
SOA to tzw. architektura zorientowana programowo. Narzędzie przygotowane na bazie service oriented architecture powinno spełniać wymagania indywidualnego podejścia do potrzeb użytkownika.
SOA – co to jest?
W praktyce service oriented architecture to architektura oprogramowania (różnego rodzaju), która ma wspierać komunikację zróżnicowanych usług w sieci, mimo tego, że funkcjonują one w różnych obszarach i są zainstalowane na różnych systemach. Co ważne, zadaniem SOA jest, aby usługi te były jednocześnie niezależne od siebie, wszechstronne, wielokrotnego użytku i umożliwiające działania na różnych płaszczyznach.
Istotny jest fakt, że usługi oparte na SOA wydzielone są za interfejsem, a dzięki temu zarządzanie systemem jest bardzo łatwe. Dlaczego service oriented architecture jest tak istotny dla firm? Ponieważ zwiększa on efektywność korzystania z usług systemów, które są wdrożone w firmie.
- SOA ułatwia szybkie łącznie z oprogramowaniem wewnętrznym i zewnętrznym firmy
- Ułatwia integrowanie konkretnego oprogramowania firmy bez pośrednich wtyczek, które utrudniają rozwój aplikacji.
- Ułatwia wdrożenie nowych produktów na rynek, obniżając koszt realizacji związanych z tym zadań informatycznych.
Zdj 2. Przykład schematu SOA
Źródło: https://upload.wikimedia.org/wikipedia/commons/8/84/SOA_Detailed_Diagram.png
Z czego składa się service-oriented architecture?
SOA to tak naprawdę wiele luźno powiązanych ze sobą aplikacji, które powiązane są komponentami (usługami). Każdy z komponentów realizuje inne funkcje i odpowiada za wykonanie zróżnicowanych zadań biznesowych. Architektura SOA może komunikować się ze sobą za pośrednictwem wewnętrznej sieci, w tym np. protokołu HTTP.
Jakie są najważniejsze elementy składające się na SOA?
- Usługi – podstawiony element SOA, określający usługi biznesowe.
- Interfejsy usługi – każda usługa posiada swój interfejs, ułatwiający wewnętrzną komunikację.
- Komunikacja usługi – służy do wewnętrznej komunikacji między kolejnymi usługami. Oparty jest na różnego rodzaju protokołach.
- Zarządzanie usługami – umożliwia tworzenie usług, zarządzanie nimi i modyfikowanie według potrzeb.
- Ponowne wykorzystanie usługi – modułowe wykorzystanie starych usług do nowych zadań.
- Luźne sprzężenie – niezależne od siebie działanie usług. Ewentualny błąd jednej, nie wpływa na drugi.
- Rejestr usług – ułatwia katalogowanie wszystkich usług dostępnych w środowisku
Najpopularniejszym rodzajem narzędzia opartego na SOA jest system wspomagania relacji z klientami i pracownikami firmy, znany jako CRM.
Zalety i wady SOA
Do zalet SOA zaliczymy przede wszystkim wszechstronność działania, niższy koszt wdrażania kolejnych usług, wysoki standard przygotowania kolejnych modułów, prostą integrację między usługami oraz bezpieczeństwo (systemy oparte są na bardzo rozbudowanej kontroli dostępu). Z pewnością warto pamiętać też o łatwym utrzymaniu infrastruktury, skalowaniu zapotrzebowania systemu i dużych możliwościach działania w wielu branżach.
Rozwiązanie takie jak service oriented architecture ma jednak pewne wady. System SOA jest podatny na awarie, bo wystarczy niewielka awaria elementu infrastruktury, a wiele usług przestaje być dostępna dla użytkowników. Stworzenie sieci jest też pracochłonne, wymaga dużych nakładów pracy oraz skomplikowanych narzędzi. W przypadku zbytniego obciążenia systemu, istnieje też ryzyko zmniejszenia jego wydajności.
Mimo to, rozwiązania technologiczne oparte na SOA traktowane są jako innowacyjne i rozwojowe. Wiele przedsiębiorstw opiera już i będzie opierać swoje funkcjonowanie (lub część funkcjonowania) właśnie na wdrożeniu systemów service oriented architecture.