SOA – kolejny krok w inżynierii oprogramowania

Architektura zorientowana na usługi to naturalny krok ewolucyjny od podejść zorientowanych obiektowo (OO), proceduralnych oraz dano-centrycznych stosowanych we wdrażaniu rozwiązań.

Fundamentalnymi zasadami rządzącymi SOA są:

  • Wiadomości wymieniane pomiędzy uczestniczącymi systemami muszą być opisowe a nie instruktażowe, ponieważ system informatyczny świadczący usługę odpowiedzialny jest za wszelkie problemy. Komunikaty opisowe podają informacje o usłudze oraz o powiązanych z nią danych wejściowych i wyjściowych. Usługodawcy odpowiedzialni są za wskazówki; stąd też potrzeba na komunikaty instruktażowe nie istnieje.
  • Słownik oraz struktura komunikatów muszą być zrozumiałe przez wszystkie strony. To powszechne zrozumienie przez wszystkie strony wymaga ograniczenia słownictwa oraz struktury komunikatów, ale jest koniecznością dla skutecznego komunikowania.
  • Struktura komunikatu powinna być rozszerzalna.

W systemach opartych o SOA można zdefiniować mechanizm pozwalający aplikacji poszukującej na dynamiczne odkrycie aplikacji świadczącej wymaganą usługę. SOA wprowadza zestaw koncepcji i pomysłów, które nie są obecne w modelach tradycyjnych. Koncepcje te to:

  • Komponentowe spojrzenie na usługi biznesowe może dostarczać strategicznych biznesowych potrzeb wymagających elastyczności, wartości dodanej oraz oszczędności kosztów.
  • Podkreślenie elementu zarządzania operacyjnego usługi opartego na infrastrukturze opartej na usłudze.
  • Wdrożenie komponentu biznesowego mediacji i brokeringu usługowego.
  • Spojrzenie przedsiębiorstwa na komponenty biznesowe, ostry kontrakt z tradycyjnymi funkcjami aplikacji, które dostosowane były do wymogów niezależnych branży biznesowych.

Zastosowanie SOA pozwala na unikniecie wielu pułapek i niedogodności z jakimi borykają się firmy i ich kierownictwo. Przykładowo mające obsesję na punkcie czasu na rynku, firmy zapominają o zbadaniu wymogów klientów albo o testowaniu rozwiązań rynkowych w trakcie swojej ewolucji – co skutkuje szybkim wprowadzeniem na rynki złych produktów bądź usług. Rozszerzalność SOA pozwala zmniejszyć te koszty, gdyż zmianom podlegać będą niewielkie komponenty.

Inny przykład stanowią działy badania i rozwoju (B&R), które mają tendencję do ponownego wynajdywania koła. Ich skupienie na perfekcji ponad praktycznością zastosowania czasem spowalnia ich produktywność oraz tłumi jakość nowych rozwiązań. W tym przypadku zastosowanie przez SOA w charakterze stabilnych usług potrzebne jest do produktywności oraz by pozwolić na wprowadzenie zmian do modeli biznesowych za każdym razem gdy zarząd firmy zmieni kierunek strategiczny ? bądź gdy wymusi to konkurencja.

Kolejny przypadek stanowi problem dzielenia się pomysłami w celu stworzenia zintegrowanych rozwiązań lub wejścia na nowe rynki, które nie jest akceptowane przez pewne branże. Czasem, nawet w ramach jednej firmy, nie udaje się współpracować pomiędzy jednostkami albo działami produktowymi. Zastosowanie luźno zestawionych usług SOA pozwala na takie wykorzystanie komponentów, które w optymalny sposób wesprą organizacje dostarczając jej poszczególnym jednostkom takich usług jakich właśnie potrzebują bez konieczność radykalnych zmian.

Zastosowanie SOA a zwłaszcza możliwość ponownego użycia i rozszerzalność systemów tego typu pozwala podjąć decyzję prezesom firm, którzy unikają wprowadzania innowacji postrzeganych jako ryzyka to istniejących linii produktowych i usługowych oraz dla modeli firmowych. Krótko-terminowe oczekiwania zysku rynków finansowych napędzają najwyższych dyrektorów z awersją wobec ryzyka do odmowy finansowania innowacyjnych inicjatyw, które opłacają się jedynie w dłuższym okresie lub takich, które targetują rynki nie-kluczowe.

Połączenie SOA oraz usług sieciowych jest bardzo bliskie temu, czego firmy szukały w celu:

  • zrealizowania długo obiecywanego potencjału IT,
  • uzasadnienia wydatków na IT oraz kosztów kapitałowych,
  • dania osobom nie-technicznym jasnego zrozumienia tego, co robi IT, jak to robią oraz wyjaśnienia ich ogromnej wartości.

Ponadto architektura zorientowana na usługi:

  • oszczędza pieniądze, czas i ludzi,
  • eliminuje frustrację spowodowaną IT,
  • uzasadnia inwestycje w IT,
  • daje kierownictwu firmy jasne zrozumienie tego, co robi IT oraz jego wartości,
  • eliminuje zasadę 6-6 IT, która oznacza, że projekt zajmie 6 miesięcy i będzie kosztować 6-cyfrową sumę.

Pierwsze wdrożenia SOA pozwalają sądzić, że budowanie nowoczesnego biznesu w oparciu o systemy zorientowane na usługi może oznaczać sukces lub porażkę w przypadkach:

  • połączenia działów, wewnątrz-firmowego bądź między-firmowego,
  • rozszerzenia rynku,
  • dodania kluczowego partnera biznesowego, klienta bądź dostawcy,
  • rozszerzenia geograficznego,
  • gwałtownego ataku konkurencji.

Podsumowując wdrożenie SOA pozwala osiągnąć łatwość integracji poprzez budowanie systemu na bazie niewielkich, oddzielnych komponentów, które reprezentują usługi i które łatwo są połączone ze sobą za pomocą powszechnie stosowanych standardów. Małe komponenty realizujące atomowe czynności dają możliwość wielokrotnego stosowania tych samych składników oprogramowania, gdyż raz opracowana raz usługa może zostać wdrożona w dowolnej liczbie przypadków. Przykładowo usługa aktualizacji danych o klientach może być wykorzystana w dowolnym procesie wymagającym realizację takiego procesu. Łatwość integracji oraz możliwość wielokrotnego stosowania tych samych komponentów w konsekwencji skracają czas potrzebny do uruchomienia funkcji i pozwalają obniżyć koszt posiadania wszystkich aplikacji opartych na modelu SOA.

Technorati Tagi: SOA,Service Oriented Architecture,metodyki wytwarzania oprogramowania

Tekst jest fragmentem mojego artykułu, który ukazał się w Business Applications Review – Zintegrowane Systemy Zarządzania (nr 4/2008)

Podobne wpisy
Zintegrowane środowisko wytwarzania aplikacji web’owych na platformie .NET

W artykule przedstawiono opis pakietu narzędziowego VS.NET (Microsoft) z Rational XDE (IBM) do wytwarzania aplikacji webowych pracujących w środowisku urządzeń więcej

Rational Software Architect Pierwszy Krok

Technorati Tagi: Rational Software Architect,inżynieria oprogramowania W artykule zaprezentowano jak rozpocząć pracę z i opis elementów tego narzędzia CASE. Środowisko więcej

Wstęp do projektowania aplikacji w Rational Software Architect

Rational Software Architect jest kolejną po Rational Rose i Rational XDE generacją narzędzi wspierających twórców oprogramowania w czasie projektowania. RSA więcej

Rational Unified Process – Wstęp

Rational Unified Process jest zunifikowanym procesem wytwórczym oprogramowania dostarczającym praktycznych wskazówek, wzorców dokumentów i narzędzi, szablonów dokumentów oraz przykładów postępowania więcej

Reklama
MODESTO - licencje Enterprise Architect
Scroll to Top