SOA – podstawy architektury

  • ,
  • ,

Service Oriented Architecture – SOA nie jest ani produktem, ani projektem. To pewien architektoniczny styl w organizowaniu IT. Architektura ta w ostatnich latach została ulepszona, przejmując i stosując dobre praktyki, które pojawiły się przed nią.

Service Oriented Architecture – SOA nie jest ani produktem, ani projektem. To pewien architektoniczny styl w organizowaniu IT. Architektura ta w ostatnich latach została ulepszona, przejmując i stosując dobre praktyki, które pojawiły się przed nią.

W KAŻDEJ ORGANIZACJI w ramach IT funkcjonują aplikacje, które zazwyczaj ogólnie klasyfikuje się jako back-end (aplikacje zaplecza) i front-end (aplikacje prezentacji). Aplikacje back-end mogą być uważane za połączenie warstwy biznesowej z warstwą danych. Poziom front-end to połączenie wszystkich warstw prezentacji.

Strefa back-end IT obejmuje wszystkie aplikacje projektowane w ramach J2EE, Microsoft .Net systemów CICS mainframe i innych technologiach, zawierające logikę biznesową danej organizacji. Obejmuje ona także procedury i dane przechowywane w bazach danych lub innych, różnorodnych formatach. Front-end obejmuje wszystkie możliwe kanały biznesowe, webowe lub desktopowe, web services lub Enterprise JavaBeans (EJB), udostępniane klientom lub partnerom biznesowym.

SOA dotyczy warstwy back-end i opisuje najlepsze sposoby organizacji zaplecza aplikacyjnego, zapewniając głównie w ysoką elastyczność (szybsze reakcje na zmiany) i wielodostępność istniejących zasobów IT. Te dwie cechy czynią z SOA jedną z bardziej atrakcyjnych architektur przedsiębiorstwa.

Aby SOA mogła zadziałać, zaplecze aplikacyjne przedsiębiorstwa musi być rozbite na zestaw usług. Każda taka usługa wykonuje specyficzne zadanie biznesowe. Usługi tworzące pewien zestaw mogą być powiązane ze sobą w formę procesu biznesowego.

W istocie SOA oddziela logikę procesu od logiki biznesowej. Logika biznesowa udostępniana jest jako usługa. Logika procesu jest tworzona poprzez połączenie tych usług.

Procedura łączenia usług w formę procesu biznesowego nazywana jest aranżacją (orchestration). Do budowania logiki procesu używane są specjalistyczne języki, takie jak BPEL (Business Process Execution Language). Silnik aranżacji zapewnia obsługę wykonawczą BPEL, ułatwiając w ten sposób wykonywanie procesów biznesowych.

ten sposób wykonywanie procesów biznesowych. BPEL może być użyty do budowania logiki procesu, ale jak buduje się usługę? Usługa jest specyficznym zadaniem biznesowym. Pierwszym krokiem w budowaniu takiej usługi jest identyfikacja pożądanej usługi w systemie. Analityk biznesowy powinien zidentyfikować powtarzalne zadania biznesowe, a także określić ich składowe. Takie zadania mogą być eksponowane jako usługa.

Z chwilą zidentyfikowania usługi kolejnym krokiem powinna być jej implementacja. Usługa musi być luźno powiązana i autonomiczna. Luźne powiązanie to wymóg SOA, aby usługi mogły być wywoływane z klienta dowolnego typu, niezależnie od języka i platformy, w jakich zostały zaimplementowane. Jedną z lepszych dróg eksponowania usług biznesowych w technologii SOA są web services.

SOA dąży do maksymalnej powtarzalności. Istniejące logiki biznesowe mogą być eksponowane w formie usług poprzez dopisanie odpowiednie otoczki programowej, która sprawi, że logika biznesowa będzie dostępna dla różnych systemów w środowisku heterogenicznym.

Większość zmian biznesowych jest związana z logiką procesu, a nie z logiką biznesu. Znacznie częściej wprowadzane są nowe procesy lub modyfikowane procesy istniejące, przy jednoczesnym utrzymaniu rdzenia biznesu w postaci niezmienionej. Dlatego też implementacja takich zmian wymaga jedynie modyfikacji lub utworzenia nowych skryptów BPEL, co zapewnia szybką reakcję na zmiany.

Jeżeli pominięte zostanie jakieś zadanie biznesowe, to wystarczy zaprojektować i przetestować jedynie usługę zawierającą tę logikę biznesową.

W związku z tym, że architektura SOA zapewnia możliwość projektowania przyrostowego, obniża zarówno ryzyko ogólne, jak i koszt zmian.