240 likes | 248 Views
Podejście usługowe SOA. Jolanta Sala Halina Tańska. Usługa jest pojęciem podstawowym dla SOA. Usługa biznesowa ( business service) pojedynczy komponent dostarczany przez IT do biznesu i wspierający realizację określonego zadania występującego w jednym lub więcej procesach biznesowych
E N D
Podejście usługowe SOA Jolanta Sala Halina Tańska
Usługa jest pojęciem podstawowym dla SOA • Usługa biznesowa (business service) pojedynczy komponent dostarczany przez IT do biznesu i wspierający realizację określonego zadania występującego w jednym lub więcej procesach biznesowych • Usługa sieciowa (web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności • Usługa IT (IT service) wg ITIL opiera się na dostarczaniu i zarządzaniu usługami IT poprzez procesy, w tym kontekście usługa jest pojęciem komercyjnym, opisanym w umowie pomiędzy Dostawcą (IT) i Odbiorcą (Biznes) m.in. outsourcing usług IT
SOA - usługi na pierwszym miejscu • Architektura ukierunkowana na usługi to standaryzowane podejście organizacji i projektowania, wiążące ściśle IT z procesami biznesowymi. Zaczyna się ono i kończy na procesach biznesowych, organizując do realizacji wspólnego celu rozproszony zestaw technologii. • SOA (Service OrientedArchitecture) to oparta na standardach struktura, w której są budowane, wdrażane, zarządzane i aranżowane usługi, mające zapewnić sprawniejszą infrastrukturę IT, szybko reagującą na zmieniające się wymagania biznesu. • W architekturze ukierunkowanej na usługi informacje i procesy - niegdyś przypisane do aplikacji stworzonych do realizacji jednego konkretnego celu - stają się elementami zbioru szeroko dostępnych i elastycznych usług programowych, które można integrować i wielokrotnie wykorzystywać.
SOA - usługi na pierwszym miejscu Architektura SOA musi umożliwiać dynamiczne dodawanie i konfigurowanie usług na bieżąco, a także modyfikowanie przepływów logicznych między nimi, dopasowując sposób działania systemu do zmian w procesach biznesowych. Celem architektury ukierunkowanej na usługi jest stworzenie w przedsiębiorstwie elastycznej i trwałej infrastruktury, która ułatwi połączenie dowolnego zbioru aplikacji w dowolnym czasie, tak aby możliwe było sprostanie wyzwaniom rynkowym.
SOA - usługi na pierwszym miejscu • Rozmach tego podejścia czyni z SOA koncepcję dość ogólnikową. • Jednak potencjalne korzyści upatrywane w obniżce kosztów IT oraz większej sprawności biznesowej zachęcają wiele organizacji do podjęcia trudu wdrożenia tej architektury. • Jednym z motywów takich decyzji jest też to, że SOA może przynosić "efekt transformacji" w obrębie całego przedsiębiorstwa, przy zachowaniu większości aplikacji i infrastruktury już wdrożonej. • U podstaw SOA stoją trzy podstawowe koncepcje: • wirtualizacja usług, • usługi wielokrotnego użytku, • brokery usług.
1 Wirtualizacja usług • Usługa jest kawałkiem kodu, który może być wywołany przez innego programistę za pośrednictwem publikowanego interfejsu metadanych, określanego jako "kontrakt usługowy". • SOA wymaga zdefiniowania usług wielokrotnego użytku na wysokim poziomie, bez wikłania w to kodu aplikacyjnego. • W ramach SOA każda usługa powinna mieć rozpoznawalne funkcje biznesowe, które odgrywają jasno określoną rolę dla wielu aplikacji. • Przykładem takich usług biznesowych wielokrotnego użytku jest np.: weryfikacja tożsamości, przechowanie danych adresowych, wyliczenie wynagrodzenia itp.
2 Usługa wielokrotnego użytku • Możliwość wielokrotnego używania usługi, to istotna obniżka kosztów. • Podstawową zasadą przy wdrażaniu SOA jest zachęcanie programistów do użytkowania istniejących usług - niezależnie kto je zaprojektował - w jak największym, możliwym zakresie. • Programiści, przy konstruowaniu nowych aplikacji, powinni tworzyć jak najmniej nowego kodu. • Nowy kod powinien jedynie ulepszać aranżację nowych wzorców interakcji między istniejącymi usługami. • Większy zakres ponownego wykorzystaniu kodów przekłada się na niższe koszty i skraca cykle projektowe.
2 Usługa wielokrotnego użytku • Większy zakres ponownego wykorzystaniu kodów przekłada się na niższe koszty i skraca cykle projektowe. • W praktyce cecha ta w dużej mierze zależy od warstwy pośredniczącej, która pozwala na współdziałanie usług za pośrednictwem sieci. • W coraz większym zakresie wybieraną dla SOA strukturą pośrednicząca są środowiska web services, wykorzystujące WSDL (Web Services DesciptionLanguage), SOAP (Simple Object Access Protocol) i inne standardy WS-. • Jednak w wielu implementacjach SOA usługi są współdzielone, aranżowane i wywoływane w tradycyjnych środowiskach pośredniczących, które współdziałają na różne sposoby. • Dla ekspozycji interfejsów aplikacyjnych w środowisku SOA można zamiast web services wybrać też XML, który jest transportowany protokołem HTTP lub transferu plików.
3 Brokery usług • Brokery usług pozwalają programistom na deklarowanie swoich programowych "kontraktów usług" i innych metadanych opisujących - we współdzielonym rejestrze online, repozytorium czy katalogu. • Infrastruktura brokerów usług przybiera wiele form i są one często specyficzne dla poszczególnych środowisk pośredniczących i platformowych. • Standard UDDI (Universal Desciption, Discovery and Integration) definiuje środowisko brokerów usług dla web services. • Inne popularne środowiska brokerów usług obejmują: CommonObjectRequest Broker ArchitectureNaming Service, DistributedComputing Environment Cali Directory Service, Windows NT Registry, Java RemoteMethodInvocation Registry i repozytoria Electronic Business XML. • W charakterze węzłów brokerów usług SOA można też wykorzystywać systemy zarządzania bazą danych.
1 2 Podsumowanie 3 koncepcji SOA 3 • Istotą prawdziwego środowiska SOA jest niezależność od platformy, zarówno operacyjnej, jak i aplikacyjnej. • Tak więc przy każdej implementacji należy dbać o to, aby nie wprowadzać specyficznych zależności od WSDL, SOAP, UDDI i innych standardów czy specyfikacji web services. • Budując SOA, usługi webowe i inne środowiska projektowe, współdziałania czy operacyjne, powinno się traktować jak szczegół implementacyjny. • SOA jest ciągle jeszcze w fazie rozwojowej. W rzeczywistości jest stanem docelowym, do którego wiele organizacji może się zbliżyć, ale nigdy nie osiągnie w pełni. • Sprowadza się to do maksymalizacji wykorzystania usług i minimalizacji ich redundancji, w złożonych, wieloplatformowych środowiskach rozproszonych.
1 2 Podsumowanie 3 koncepcji SOA 3 • SOA jest podejściem do projektowania systemów informatycznych, które zakłada współdzielenie funkcji aplikacyjnych wywoływanych w sieci. • Jest to sposób na zrobienie więcej mniejszym wysiłkiem. • Aplikacje mają być budowane szybciej, w sposób przyrostowy, z niewielką liczbą nowych wierszy kodu. • Potencjał SOA tkwi w tym, że niewielkie koszty budowy nowych aplikacji ulegają dalszemu zmniejszeniu w miarę zwiększania stopnia wykorzystania usług. • Trudność polega jednak na tym, że adaptacja SOA wymaga zmiany tradycyjnego myślenia o: modelowaniu, projektowaniu, integracji, wdrożeniu i zarządzaniu aplikacjami. • Wiele z oszczędności, jakie daje SOA, ma swoje źródło w zdolności konsolidowania, w ramach całej organizacji, tzw. silosów nadmiarowej funkcjonalności aplikacyjnej i danych.
Architektura zorientowana na usługiPrzykład podstawowych składników SOA
Według analiz ForresterResearch • Projektowanie oparte na SOA może być początkowo droższe od tradycyjnego podejścia, gdy poszczególne etapy rozpatruje się oddzielnie, z uwzględnieniem budowania poszczególnych komponentów aplikacji. • Jednak gdy te aplikacyjne komponenty zaczynają być w coraz szerszym zakresie używane wielokrotnie, SOA staje się podejściem bardziej efektywnym niż podejście tradycyjne. • SOA jest jednak nadal koncepcją dość mglistą dla wielu specjalistów IT i w mniemaniu wielu osób rozciąga się na szeroki krąg luźno związanych ze sobą technologii i podejść. • Badania przeprowadzone wśród największych firm w Stanach Zjednoczonych (2005), wykazały, że 70% respondentów już zaimplementowało SOA, a oszacowano, że planuje wdrożyć 51% średnich firm i 46% małych.
Małymi krokami do celu • Z SOA wiązane są nadzieje na sprawną przebudowę infrastruktury IT w biegu. • Im bardziej dynamiczny biznes, tym więcej może skorzystać na dobrej implementacji SOA. • Także im więcej sprzymierzeńców, którzy podzielają wizję SOA, tym lepiej. • Pomocne jest w szczególności pozyskanie silnych partnerów w ramach organizacji, szczególnie ze sfery zarządzania biznesowego, którzy rozumieją konieczność obniżki kosztów i przyspieszenia reakcji na zmiany w całej organizacji. • Taka wspólna wizja może być rozległa, ale opłaca się startować z małym projektem. • Dobrze jest zaczynać od udostępnienia w formie usługi kilku tradycyjnych aplikacji o krytycznym znaczeniu, zapewniając na początek dostęp do ważnych danych i funkcji innym aplikacjom.
Małymi krokami do celu • Można też użyć współdzielonych usług do wyeliminowania redundancji wśród kilku trudnych do utrzymania aplikacji, których funkcjonalność się pokrywa. • Takie projekty mogą przynosić widoczne korzyści m.in.: • ograniczenie kosztów integracji infrastruktury IT i szybsze reagowanie na potrzeby; • zwiększenie elastyczności i efektywności działania w obliczu takich wyzwań, jak: fuzje i przejęcia, konsolidacja oraz konieczność przestrzegania przepisów i regulacji prawnych; • uproszczenie procesu tworzenia, serwisowania i eksploatacji aplikacji oraz obniżenie związanych z tym kosztów; • zapewnienie działom IT elastyczności pozwalającej sprostać stale zmieniającym się potrzebom przedsiębiorstwa. • Należy przede wszystkim odpowiedzieć sobie na pytanie, jakie są te problemy biznesowe, które próbujemy rozwiązać, i jak się one mają do innych obszarów funkcjonalnych organizacji?
Narzędzia SOA • Głównymi poziomami infrastruktury opartej na SOA są brokery usług, motory aranżacji, środowiska warstw pośredniczących opartych na wymianie wiadomości oraz narzędzia zarządzania na poziomie usług. • Projektanci używają często graficznych narzędzi definiowania procesów, pozwalające im na specyfikowanie zadań aranżacji, zależności, routingu i kroków procesu za pomocą diagramów. Podejście to nazywa się także projektowaniem typu model-driven. • Środowiska MOM (Message-OrientedMiddleware) zapewniają możliwość ponownego użycia usługi, przewidując protokoły: gwarantowanej dostawy wiadomości (reliablemessaging), powiadamiania o zdarzeniach oraz publikowania i subskrypcji, które łączą punkty końcowe aplikacji heterogenicznych w szynę usługową przedsiębiorstwa. • Zarządzanie infrastrukturami na poziomie usług zapewnia monitorowanie, optymalizowanie, sterowanie i integrację rozproszonych środowisk aplikacyjnych. Bardziej rozpowszechnionym określeniem tej funkcjonalności jest WSM (Web Sentice Management).
Jak to zrobić? Jednym ze sposobów są działania w trzech obszarach: • SOA Governance– zadaniem jest przygotowanie reguł, podziału odpowiedzialności, itp., czyli: modelu procesów, według którego usługi będą przygotowywane (SOA Design) i zarządzane (SOA Management) a następnie monitorowanie wykonania i udoskonalenie tychże procesów. • SOA Design – jest zespołem działań i środków (w ramach procesów wytyczonych przez SOA Governancemającym na celu przygotowanie nowej usługi lub zmianę (łącznie z wycofaniem) istniejącej usługi. • SOA Management – obejmuje administrację infrastrukturą IT, monitorowanie, strojenie jak również wsparcie przy wdrożeniu nowych i zmienionych usług. Obowiązuje zasada 4xP: • People(zasoby ludzkie, wiedza, umiejętności, świadomość, komunikacja) • Processes(organizacja zarządzania i pracy poprzez odpowiedni model procesów) • Products (technologie, oprogramowanie, sprzęt) • Partners (współpraca z poddostawcami wewnętrznymi i zewnętrznymi, współpraca pomiędzy wszystkimi stronami zainteresowanymi)
Dostawcy SOA IBM, SAP, Oracle, Software AG, BEA, Cisco, HP, MS i inni Przykład: Service Oriented Network Arcitecture firmy Cisco
Przykład: SOMA (Service Oriented Modelling and Architecture) Szablon (SOMA) procesów wytwórczych dla rozwiązań SOA zbudowany przez IBM na bazie klasycznego RUP (RationalUnifiedProcess) jest dostępny w formie plug-in do narzędzia RUP MethodComposer lub w formie darmowej publikacji HTML.
Materiały źródłowe • Józef Muszyński, SOA - usługi na pierwszym miejscu, Computerworld, 2006, https://www.computerworld.pl/news/SOA-uslugi-na-pierwszym-miejscu,316935.html • Jarosław Łagowski, SOA – Ideologia nie technologia, XV Konferencja PLUG, 2009, http://www.ploug.org.pl/wp-content/uploads/ploug-konferencja-15-13_SOA_-_Ideologia_nie_technologia.pdf • Piotr Waszczuk, SOA: czym jest, czym nie jest?, Computerworld, 2008, https://www.computerworld.pl/news/SOA-czym-jest-czym-nie-jest,148360.html • Rafał Jakubowski, SOA? O co chodzi?, Computerworld, 2008, https://www.computerworld.pl/news/SOA-O-co-chodzi,322849.html