Jak zbudować architekturę zorientowaną na usługi (SOA)
©. com | Bakhtiar Zein
w tym artykule skupiamy się na temacie architektury zorientowanej na usługi (Soa). Zaczynamy od głębokiego nurkowania w 1) SOA: opis, a następnie omówienie 2) budowanie architektury zorientowanej na usługi.
Architektura zorientowana na usługi: opis
co to jest SOA?
Soa lub Architektura zorientowana na usługi to metoda, dzięki której różne rodzaje usług mogą współdziałać ze sobą niezależnie. Usługa jest samodzielną częścią funkcjonalności, a kilka usług można łączyć w celu zapewnienia użytkowania i funkcjonalności aplikacji na dużą skalę. SOA ułatwia interakcję i współpracę części oprogramowania na komputerach PC podłączonych do sieci. Wzorzec projektowy SOA polega na tym, że komponenty aplikacji w nim mogą oferować usługi innym takim komponentom, głównie za pośrednictwem sieci. Każdy system komputerowy może uruchomić dowolną liczbę usług, z których każdy jest zbudowany w celu wymiany informacji z innymi różnymi usługami w sieci bez pomocy człowieka.
w terminologii biznesowej SOA to zestaw usług IT dopasowanych do biznesu, które razem odnoszą się do celów i procesów firmy biznesowej. Konstrukcja konstrukcyjna SOA zapewnia dostosowanie do wymagań biznesu, a także rozwiązania technologicznego tego samego.
główne elementy SOA
oto główne elementy SOA:
- Soa Drivers – SOA drivers lub enterprise business drivers to takie rzeczy jak konkurencja, strategia, siły regulacyjne i siły rynkowe. Wszystkie te elementy łączą się, aby napędzać architekturę biznesową i nadać kształt zarządzaniu wydajnością w całej firmie
- czynniki wpływające na SOA-pięć głównych czynników wpływających na SOA to model biznesowy przedsiębiorstwa, optymalizacja wydajności przedsiębiorstwa, racjonalizacja portfela, definicja semantyki przedsiębiorstwa i Kluczowe wskaźniki wydajności. Posiadanie modelu biznesowego jest ważne dla prawidłowego dostosowania usług do celów i celów biznesu. Semantyczny model informacji daje wspólne i ogólne informacje związane z biznesem dla danego przedsiębiorstwa. Kluczowe wskaźniki efektywności lub KPI umożliwiają ocenę wpływu SOA i ułatwiają pomiar procesów biznesowych. Z drugiej strony racjonalizacja portfela umożliwia konsolidację i uproszczenie aplikacji, danych i infrastruktury.
- Soa Implementation – jeśli chodzi o wdrożenie, usługi i procesy biznesowe są głównymi aspektami. Procesy biznesowe kojarzone są głównie z celami biznesowymi i celami operacyjnymi, podczas gdy z drugiej strony usługi biznesowe muszą być dobrze dopasowane i mają kluczowe znaczenie dla elastycznego i skutecznego wdrożenia SOA. Niektóre inne aspekty związane z implementacją SOA to repozytoria treści przedsiębiorstwa, semantyczne wiadomości i usługi integracyjne. Informacje reprezentują zasoby danych firmy, a dane te są przekazywane w postaci dokumentów, które zapewniają rodzaj semantycznych wiadomości między usługami i procesami.
- Soa Support-wszystkie funkcje i elementy z istniejących aplikacji i systemów są udostępniane i wykorzystywane do usług przy wsparciu niektórych usług integracyjnych, które usuwają osłony z istniejących funkcji za pośrednictwem nowych interfejsów usług.
główne zasady SOA
poniżej znajduje się lista głównych zasad SOA:
- Architektura usług – fizyczny układ lub projekt poszczególnych usług, które przewyższają wszystkie zasoby, które były używane przez usługę.
- Architektura kompozycji usługowej – wszystkie usługi opracowane przy użyciu metod projektowania zorientowanego na usługi są zorientowane na kompozycję i to jest ich główna cecha. Architektura ta jest zatem kompozycją poszczególnych architektur różnych usług.
- service inventory architecture – Architektura ta powstała z planu service inventory, w którym spis usług składa się z usług, które automatyzują procedury firm.
- Architektura korporacyjna zorientowana na usługi-ten typ składa się z architektur kompozycji, usług, a także inwentaryzacji.
Ewolucja koncepcji SOA
- projekt monolityczny – projekt ten był związany ze stosunkowo niestrukturalnym kodowaniem proceduralnym
- projekt zorientowany obiektowo i strukturalnie – jest to projekt, który obejmuje jednostki programowe oparte na funkcjonalnościach.
- projektowanie klient-serwer (projektowanie dwupoziomowe)-jest to koncepcja projektowania rozproszonego i wiąże się z grupowaniem funkcjonalności w dwie warstwy.
- Projektowanie obiektów rozproszonych (projektowanie multitier) – projekt ten obejmuje interakcje obiektów w heterogenicznym środowisku i projektowanie obiektów rozproszonych.
- Component object Model architecture-jest to konstrukcja, w której istnieje agregacja elementów w logiczne części z silnie typami, a także dobrze zdefiniowanym interfejsem.
- Architektura zorientowana na usługi – jest to projekt, który obejmuje interakcje i komunikację między usługami o gruboziarnistych interfejsach ze standardowymi interfejsami dla elastycznej interoperacyjności.
SOA i JAVA
wielu programistów uważa, że SOA, podobnie jak usługi internetowe, są ze sobą synonimami, ale to nieprawda. Mogą również wierzyć, że po prostu nie można zbudować SOA bez korzystania z usług internetowych, ale w rzeczywistości SOA jest zasadą projektowania, ale Usługi internetowe są rodzajem technologii implementacji. Oznacza to, że SOA może być w rzeczywistości budowany bez korzystania z technologii implementacji określonego rodzaju. Ale Java jest innym rodzajem tradycyjnej technologii, która może być wykorzystana do rozwoju lub budowy architektury zorientowanej na usługi.
głównym celem SOA jest stworzenie luźnego sprzężenia między modułami, a aplikacja może być zbudowana tam, gdzie Moduły nie są ze sobą zbyt ciasno połączone. Ten rodzaj struktury można zbudować lub utworzyć za pomocą Javy.
jakie są cechy SOA?
- luźne połączenie-usługi w SOA są połączone luźno, tworząc jedno połączenie. Zakłada to jedynie niewielką współzależność między poszczególnymi służbami. Główną ideą jest ograniczenie współzależności do poziomu, w którym zgodność jest nadal utrzymywana.
- standardowy interfejs usług – jednym z podstawowych wymagań SOA jest potrzeba standaryzacji interfejsów, a także szczegółów. Szczegółowe informacje muszą obejmować, jakie dane są potrzebne, w jaki sposób można korzystać z usługi i jak należy stosować zasady.
- Reusability-w SOA, reusability usług jest możliwe w całym łańcuchu procesów również przez inne strony, a także do innych celów.
- możliwość znalezienia usługi-Inną cechą jest to, że usługa musi być łatwo znaleziona, aby z niej korzystać. Wszystkim konsumentom udostępniane są repozytoria usług, które składają się z interfejsu i sposobu realizacji usługi.
- Autonomia usług – każda usługa musi być w stanie działać i funkcjonować niezależnie. Termin ten wskazuje na te usługi, które są samowystarczalne i są w stanie samodzielnie zarządzać zasobami, logiką i środowiskiem.
- zdolność do orkiestracji usług – jest to proces, w którym pojedyncza usługa jest łączona z innymi tego typu usługami, aby skutkować większymi procesami lub jednostkami biznesowymi. Jest to kolejna cecha lub wymóg dla SOA.
- Bezpaństwowość usług – wykonanie usług opiera się na koncepcji świadczenia określonej usługi. Bierze to pod uwagę przechowywanie danych, ale tylko wtedy, gdy wymóg jest określony lub wymagany w szczególności.
zalety i zalety SOA
- lepsze zwroty z inwestycji – jedną z największych zalet SOA jest to, że oferuje doskonały zwrot z inwestycji. Ponieważ proces ten obejmuje tworzenie solidnych warstw, każda z tych warstw usług oferuje lepszy zwrot z inwestycji dokonanych w celu stworzenia oprogramowania.
- mobilność kodu – jest to kolejna ważna zaleta SOA i jest możliwa dzięki przejrzystości lokalizacji w architekturze zorientowanej na usługi. Większość klientów nie obchodzi, gdzie znajdują się usługi, ponieważ istnieje dynamiczne powiązanie, a także wyszukiwanie usług. Oznacza to, że firmy korzystające z SOA mogą przenosić usługi na różne maszyny lub przenosić je do zewnętrznych dostawców usług.
- możliwość ponownego użycia-kolejną zaletą SOA jest to, że różne kody i usługi mogą być używane w kółko. Istnieje wygoda ponownego użycia usługi w czasie działania i jest to tak proste, jak znalezienie usługi w katalogu i powiązanie z nią. Deweloperzy nie muszą się martwić o platformy i inne niezgodności.
- wsparcie dla różnych typów klientów-każda firma może korzystać z wielu typów klientów i wielu klientów, aby uzyskać dostęp do usługi w SOA. Dzieje się tak dlatego, że w takiej strukturze lub koncepcji warstwy zostały podzielone na usługi, a warstwy klienckie i różne typy klientów są prostsze do wdrożenia.
- wyższy poziom dostępności-kilka serwerów ma kilka przypadków korzystania z nich usług ze względu na fakt, że SOA obsługuje przejrzystość lokalizacji. Oznacza to, że ogólna dostępność jest bardzo wysoka. Na przykład, jeśli maszyna lub część sieci przestaje działać lub ma jakiś problem, żądania mogą być przekierowywane do innych usług bez wiedzy klienta lub niepokojenia się nim.
- mniej wad-to główna zaleta SOA. Prawdopodobieństwo wystąpienia usterek jest znacznie niższe, a ogólne testy znacznie lepsze dzięki opublikowanym interfejsom usług, które można łatwo przetestować. Więcej testów przekłada się na większy poziom dokładności i mniej wad.
Soa Challenges
- brak przestrzeni testowej – jednym z największych wyzwań w SOA jest brak przestrzeni testowej. W typowej architekturze nie ma dobrze ukształtowanych lub wyrafinowanych narzędzi lub metod testowania usługi bezgłowej, takiej jak wiadomość lub usługa bazy danych. Głównym celem SOA jest oferowanie elastyczności firmom i przedsiębiorstwom. Ale ze względu na brak zaufania horyzontalnego, trzeba zainwestować w ramy testowe, które ułatwiłyby wyzwanie.
- zarządzanie metadanymi usług – jest to powszechne i bardzo oczywiste wyzwanie SOA. Zarządzanie metadanymi usług jest nie tylko trudne, ale często bardzo skomplikowane. Przestrzeń architektoniczna oparta na usługach polega na interakcji usług ze sobą poprzez wymianę wiadomości. W takim scenariuszu pojedyncze usługi mogą czasami generować miliony wiadomości. Zarządzanie tymi wieloma usługami może stać się bardzo trudne, zwłaszcza gdy usługi są świadczone przez różne firmy i działy w firmie. Stwarza to wiele problemów z zaufaniem.
- zapewnienie odpowiedniego poziomu bezpieczeństwa – kolejnym wyzwaniem SOA jest zapewnienie odpowiedniego poziomu bezpieczeństwa. Zabezpieczenia zarządzane przez aplikacje nie są właściwą metodą lub modelem zabezpieczenia usług, ponieważ modele zabezpieczeń zaprojektowane w aplikacjach nie mogą wystarczyć, gdy aplikacja pokazuje się innym.
- interoperacyjność-staje się to kluczowym aspektem implementacji SOA. Często, dążąc do zmniejszenia lub zmniejszenia współzależności usług, zgodność między nimi może się zmniejszyć, ale zależność musi zostać zmniejszona do takiego poziomu, aby kompatybilność nadal mogła zostać utrzymana.
- szum sprzedawcy – istnieje znaczny szum sprzedawcy związany z SOA, co stwarza pewien poziom nieuzasadnionych oczekiwań. Chociaż istnieje wiele zalet SOA, może mieć również kilka wad. Na przykład SOA nie gwarantuje obniżenia kosztów IT, a nawet nie obiecuje poprawy sprawności systemów. Tak więc byłoby lepiej, gdyby istniało wyraźne rozróżnienie między szumem a rzeczywistością.
budowanie architektury zorientowanej na usługi
Soa Framework
aby zrozumieć, jak jest zbudowany SOA, musisz najpierw zrozumieć, czym jest jego framework.
SOA jest postrzegany jako 5 różnych warstw poziomych, które są:
- warstwa interfejsu użytkownika-są to aplikacje, które uzyskują dostęp do interfejsów usług lub aplikacji.
- warstwa procesów biznesowych-jest to warstwa, która jest usługą reprezentującą przypadki użycia biznesowego w odniesieniu do aplikacji.
- usługi-wiele usług łączy się w celu stworzenia całego przedsiębiorstwa.
- komponenty usługowe – są to te komponenty lub części, które są używane do budowy usług, takich jak interfejsy technologiczne i biblioteki techniczne itp.
- systemy operacyjne-jest to warstwa, która zawiera wzorce techniczne, modele danych i repozytorium danych itp.
Poniżej znajdują się pionowe warstwy SOA framework, które są stosowane i obsługiwane przez poziome:
- warstwa integracyjna-warstwa ta składa się z obsługi protokołu lub integracji platformy, integracji danych, integracji aplikacji i usług itp.
- jakość usług – czynniki, które składają się na jakość usług, obejmują dostępność, bezpieczeństwo, wydajność i inne.
- Informacje-ta warstwa głównie zajmuje się dostarczaniem informacji związanych z biznesem.
- Zarządzanie-ta warstwa lub warstwa strategii IT jest regulowana poziomymi warstwami w celu osiągnięcia możliwości, a także modelu działania, w razie potrzeby.
Soa Implementation Framework (SOAIF)
SOA implementation wymaga i wymaga oprogramowania infrastrukturalnego w czasie pracy, a także narzędzi. Może to być zbiorczo określane jako service-oriented architecture implementation framework lub SOAIF. Koncepcja ta ma na celu kompleksową strukturę, która oferuje wszystkie rodzaje technologii, które firma może wymagać nie tylko zbudować, ale także uruchomić SOA. Soaif składa się i obejmuje zarówno czas wykonania, jak i czas projektowania. Obejmuje również funkcje oprogramowania, które może być potrzebne firmie do uruchomienia SOA, a także jego zbudowania, w tym zorientowane na usługi:
- Modelowanie
- Integracja
- narzędzia
- Zarządzanie
- bezpieczeństwo
- procesy
podejścia do SOA
istnieją trzy główne typy lub metody lub podejścia, które pojawiają się dla informacji klubowych, różnych i systemów w firmie. Ponieważ różni dostawcy usług i firmy ścigają się w kierunku dostarczania rozwiązań klientom i konsumentom, podejścia te pomagają spełnić wymagania dotyczące usług gruboziarnistych, luźno przylegających i asynchronicznych.
1. Enterprise Service Bus
pierwszym podejściem, które pomaga zbudować i wdrożyć optymalny SOA jest enterprise service bus lub ESB. Takie podejście pomaga koordynować i porządkować różne elementy, które są w formie rozproszonych usług w sieci. Podejście to uznaje systemy za dyskretne i rozproszone usługi, które łączą się ze sobą poprzez asynchroniczną infrastrukturę zorientowaną na komunikaty. Tego rodzaju Infrastruktura zorientowana na komunikaty umożliwia posiadanie luźno powiązanych połączeń między niezależnymi usługami lub modułami.
2. Zarządzanie procesami biznesowymi
wiele firm od wielu lat stara się rozwiązywać problemy procesów biznesowych poprzez wdrożenie podejścia do zarządzania procesami biznesowymi. Takie podejście uwzględnia zasoby i systemy IT jako działania lub zadania, które uczestniczą w dobrze zsynchronizowanych i dobrze zaaranżowanych procedurach biznesowych. Narzędzia BPM są używane głównie w czasie modelowania i projektowania procedur, a nie przy ich użyciu do konstruowania procesów, które mogą osiągnąć cele integracji. Jest to główne wyzwanie BPM. Rozwiązania BPM same w sobie są wystarczające do spełnienia wymagań SOA, ponieważ nie składają się ze środowiska uruchomieniowego, które jest potrzebne dla luźno sprzężonych modułów.
3. Integracja zorientowana na usługi
trzecim i ostatnim podejściem do prawidłowego wdrożenia SOA jest podejście do integracji zorientowanej na usługi. To szczególne podejście wykorzystuje architektoniczne reguły przewodnie lub zasady, aby zbudować środowisko lub ekosystem usług, które firmy mogą dynamicznie łączyć i tworzyć procesy na najwyższym poziomie, które mogą spełniać stale zmieniające się i zmieniające się wymagania. Podejście to przechodzi obok ściśle powiązanych i kruchych modułów, tworząc rozróżnienie między konsumentem a producentem usługi. W ten sposób nakłada się aspekt luźnego sprzężenia, który jest potrzebny do prawidłowego wdrożenia SOA w celu spełnienia wymagań biznesowych. Nawet takie podejście samo w sobie nie jest wystarczające, aby zagwarantować długotrwałe interakcje między usługami.
najlepsze praktyki budowania SOA
podczas budowania SOA należy przestrzegać niektórych najlepszych i najbardziej zalet praktyk. Praktyki te są podane w następujący sposób:
- technologie wdrożeniowe są bardzo hyped, i trzeba pamiętać, aby nie skakać do nich ze względu na ich popularność. Należy dokładnie rozważyć, czy Usługi internetowe mają większy sens dla ich wymagań i potrzeb. Ważne jest, aby pamiętać, że budowanie aplikacji zorientowanych na usługi poprzez wykorzystanie technologii takich jak RMI może być bardziej odpowiednie dla przypadku firmy, a nie usług internetowych.
- trzeba pamiętać, aby nie tworzyć lub budować bardzo ściśle powiązanych lub połączonych modułów, ponieważ prowadzi to do kruchej konfiguracji lub infrastruktury.
- ważne jest utrzymanie interoperacyjności i w tym celu należy stosować się do najlepszych praktyk WS-I.
- jeśli nie widzisz sensu korzystania z usług internetowych, istnieje również wiele innych alternatywnych opcji, które można wybrać.