Projektowanie obiektowe oprogramowania Wykład 15 Elementy architektury Enterprise (2) Single Sign-on Enterprise Service Bus Wiktor Zychla 2012

Podobne dokumenty
Projektowanie obiektowe oprogramowania Architektura systemów (3) Service Oriented Architecture Wykład 15 Wiktor Zychla 2014

Architektura systemów (3) Service Oriented Architecture Wykład 15 Wiktor Zychla 2018

Projektowanie obiektowe oprogramowania Wykład 14 Architektura systemów (1), Interoperability Wiktor Zychla 2013

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Wypożyczalnia VIDEO. Technologie obiektowe

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Ministerstwo Finansów

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Platforma Informacyjno-Płatnicza PLIP

ActiveXperts SMS Messaging Server

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

1 Wprowadzenie do J2EE

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Architektura aplikacji

1. Wymagania dla lokalnej szyny ESB

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Aplikacja przeznaczona dla wszystkich firm produkcyjnych, handlowych oraz usługowych działających w modelu B2B

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

Analiza i projektowanie aplikacji Java

Platforma epuap. Igor Bednarski kierownik projektu epuap2 CPI MSWiA. Kraków, r.

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

INFORMATYKA Pytania ogólne na egzamin dyplomowy

EJB 3.0 (Enterprise JavaBeans 3.0)

Identity Management w Red Hat Enterprise Portal Platform. Bolesław Dawidowicz

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

OPERATOR SYSTEMU PRZESYŁOWEGO

Java Developers Day. Implementacja ESB przy użyciu Mule. ESB Mule Obsługa zamówień DEMO

Serwery LDAP w środowisku produktów w Oracle

SOA Web Services in Java

Wykład 1 Inżynieria Oprogramowania

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

System Obsługi Wniosków

Kolejkowanie wiadomości Standard MQ (JMS)

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Kraków, 2 kwietnia 2004 r.

76.Struktura oprogramowania rozproszonego.

Wymagania systemu OTAGO od systemów obsługi terminali płatniczych. Gdańsk,

Komunikacja i wymiana danych

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

System Express ELIXIR

ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia 27 stycznia 2011 r.

Nowa odsłona wyodrębnienie i kierunki jego rozwoju Łysomice

Szczegółowe informacje dotyczące przekazywania do Bankowego Funduszu Gwarancyjnego informacji kanałem teletransmisji

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Quatra Max EDI. Moduł do elektronicznej wymiany danych w modelu B2B oraz B2G

Zdalne wywoływanie procedur RPC

nr sprawy: BZP ML Wrocław, dn. 20 lutego 2014 r. SPROSTOWANIE DO INFORMACJI DLA WYKONAWCÓW NR 13

Zdalne wywoływanie procedur RPC

Enterprise Integration Patterns z wykorzystaniem Apache Camel

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Funkcje systemu infokadra

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Wzorce projektowe. dr inż. Marcin Pietroo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Mechanizmy pracy równoległej. Jarosław Kuchta

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

REGULAMIN KORZYSTANIA Z KART PŁATNICZYCH BANKU POCZTOWEGO S.A. W RAMACH PORTFELI CYFROWYCH

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

EXSO-CORE - specyfikacja

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Zagadnienia projektowania aplikacji J2EE

Zmiany na. wyodrębnienie i kierunki jego rozwoju Dubiecko

Wprowadzenie do programowania aplikacji mobilnych

Funkcje w systemie IMI i odpowiadające im zadania

Nowa odsłona wyodrębnienie i kierunki jego rozwoju Międzyzdroje

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

INSTRUKCJA UŻYTKOWNIKA Repozytorium Dokumentów Elektronicznych KS-EDE ISO 9001:2008 Dokument: Wydanie:

Zmiany na. wyodrębnienie i kierunki jego rozwoju Kraków

Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny "doręczyciel"

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

DOTACJE NA INNOWACJE

Dni Użytkowników Aplikacji QAD Interoperacyjność z QXtend

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

System automatycznego wysyłania SMSów SaldoSMS

Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

E-faktura Sage. nasz pomysł na e-fakturę. WERCOM Sp. z o.o. Złoty Autoryzowany Partner Sage, tel , biuro@wercom.pl,

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Architektura systemu e-schola

Nowa odsłona wyodrębnienie i kierunki jego rozwoju

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Biuletyn techniczny. Eksport i import przelewów za pomocą usługi sieciowej

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Transkrypt:

Projektowanie obiektowe oprogramowania Wykład 15 Elementy architektury Enterprise (2) Single Sign-on Enterprise Service Bus Wiktor Zychla 2012 1 Single sign-on porównanie protokołów Protokół SSO określa sekwencję komunikatów, prowadzącą do wymiany informacji o tożsamości użytkownika między aplikacją a usługą poświadczania tożsamości. Dla każdego z protokołów ta sekwencja się różni. Z uwagi na podobieństwa, można wyróżnić pewne cechy wspólne różnych protokołów: Protokoły oparte o SAML (np. WS-Federation) sekwencja wymiany komunikatów między aplikacją (RP) a usługą (STS) odbywa się zawsze za pośrednictwem przeglądarki i kończy się przesłaniem dużego, podpisanego XMLa, który zawiera komplet informacji o użytkowniku Protokoły oparte o token dostępowy (ang. access token) (np. OAuth2) sekwencja wymiany komunikatów między aplikacją a usługą prowadzi do ustalenia pewnego długiego ciągu znaków, który pozwala aplikacji na wchodzenie w imieniu użytkownika do różnych usług za pośrednictwem dowolnie bogatego API po stronie usługi. W praktyce w ten sposób można precyzyjniej przekazywać dane między aplikacją a usługą, ponieważ aplikacja może wielokrotnie używać tego samego tokena do dostępu do różnych danych po stronie usługi. Protokoły oparte o zbudowanie wzajemnego zaufania (ang. association) (np. OpenID) sekwencja wymiany komunikatów obejmuje pewne komunikaty wymieniane bezpośrednio między aplikacją a usługą, umożliwiające zbudowanie relacji zaufania i w konsekwencji podpisanie informacji o tożsamości użytkownika (odpowiednik certyfikatu podpisującego token w imieniu usługi w protokole WS-Federation) 2 Enterprise Service Bus Enterprise Service Bus (Integracyjna Szyna Usług) jeden z modeli architektury aplikacji, w którym moduły komunikują się udostępniając sobie nawzajem usługi za pośrednictwem dodatkowego komponentu integracyjnego. W praktyce wzorca tego używa się najczęściej do zbudowania środowiska ze zintegrowanymi przepływami usług tam, gdzie wcześniej działały tylko rozproszone aplikacje. Przykład system płacowy i system księgowy. Moduł płacowy przygotowuje paski wypłat, księgowość księguje wypłaty, przygotowuje i wysyła przelewy przez bank, zwraca do płac zwrotnie informację o zaksięgowaniu poleceń wypłaty.

Inny przykład dane osobowe użytkownika modyfikowane są w jednej aplikacji, źródłowej i są automatycznie aktualizowane w każdej innej aplikacji systemu. Jeszcze inny przykład dwa niezależne systemy bankowe, integracja przelewów i innych operacji finansowych natychmiastowa aktualizacja między systemami. 2.1 Modele integracji aplikacji 2.1.1 Integracja przez wymianę plików Możliwe do implementacji w niejednolitym środowisku Konieczność ręcznej ingerencji użytkownika w proces czyni ten proces bezużytecznym tam gdzie oczekuje się automatyczności przepływów danych 2.1.2 Integracja przez wspólną bazę danych Integracja jest automatyczna i natychmiastowa Hohpe/Woolf: Duża struktura danych paraliżuje swój rozwój W ten sposób nie da się integrować aplikacji pochodzących od różnych dostawców If the technical difficulties of designing a unified schema aren't enough, there are also severe political difficulties. If a critical application is likely to suffer delays in order to work with a unified schema, then often there is irresistable pressure to separate. Human conflicts between departments often exacerbate this problem 2.1.3 Integracja przez usługi aplikacyjne (Web Services) Możliwe do implementacji w niejednolitym środowisku Można integrować aplikacje różnych producentów Właściwie jedyna wada przypadłość sieci połączeń 2.1.4 Integracja za pośrednictwem szyny usług Połączenie pomysłu integracji przez usługi aplikacyjne z ideą wzorca Observer Każda aplikacja łączy się z szyną usług i publikuje lub subskrybuje powiadomienia Złożoność sieci połączeń jest liniowa każda aplikacja integruje się tylko z szyną usług

Szyna dostarcza mechanizmów wiarygodnego dostarczania komunikatów 2.2 Szyna usług - podstawowe pojęcia Publish/Subscribe wzorzec wymiany komunikatów w szynie usług, w którym wybrane aplikacje pełnią rolę publikatorów komunikatów (powiadomień), a inne pełnią rolę subskrybentów tych komunikatów. Na tym atomowym wzorcu oparte są pozostałe wzorce złożone Request/Reply i Saga. Request/Reply wzorzec wymiany komunikatów w szynie usług, w którym aplikacja zadaje zapytanie do szyny usług, a jedna (zwyczajowo) z aplikacji jest zarejestrowana jako dostawca takich danych i odpowiada na żądanie. Należy zauważyć, że R/R implementuje się z wykorzystaniem wzorca P/S R/R dla aplikacji A i B wygląda następująco: B subskrybuje komunikatu typu Żądam danych typu X A subskrybuje komunikat typu Odpowiedź na zapytanie o dane typu X A publikuje komunikat typu Żądam danych typu X B otrzymuje komunikat i go przetwarza; publikuje komunikat typu Odpowiedź na zapytanie o dane typu X i w adresata wstawia A (opcjonlanie) Szyna filtruje komunikat tak żeby dostał go tylko A A otrzymuje odpowiedź Saga (inaczej long running transaction; transakcja długoterminowa) wzorzec wymiany komunikatów w szynie usług, oparty o złożony proces biznesowy, którego koordynatorem jest szyna. Proces zwykle składa się z atomowych kroków, najważniejsze z nich to komunikacja z portami wejścia/wyjścia. Przykładowa saga: komunikat od konsultanta do spraw sprzedaży z wnioskiem o kredyt dla klienta trafia do szyny. Jeśli kwota kredytu jest mniejsza niż 1000$, szyna tworzy komunikat typu aprobata wniosku i przekazuje nowy komunikat do serwera departamentu wypłacania kredytów. Jeśli kwota kredytu jest większa lub równa 1000$, szyna przekazuje ten komunikat dalej, do serwera departamentu kredytowego, gdzie komunikat oczekuje w systemie na akceptację kierownika działu. Szyna oczekuje na odpowiedź nie dłużej niż 48h. Jeśli w tym czasie nadchodzi odpowiedź pozytywna szyna konwertuje ją na komunikat typu aprobata wniosku i przekazuje nowy komunikat do serwera departamentu wypłacania kredytów. Jeśli odpowiedź jest odmowna lub upłynęło więcej niż

48h, szyna tworzy komunikat typu odmowa i przekazuje zwrotnie do systemu, w którym zobaczy go konsultant. Rysunek 1 (za http://www.codeproject.com/articles/13277/configuring-biztalk-orchestrations-to-handle-un-ty) (Uwaga! Diagram nie odpowiada treści przykładowego procesu!) Asynchroniczna komunikacja dlaczego rozproszonych usług integracyjnych nie można zaimplementować tak samo jak wzorca Observer? Dlatego że subskrybenci mają różne tempo przetwarzania powiadomień. Sto powiadomień od A do B i C może być przez B przetwarzane w ciągu 1 sekundy, a przez C w ciągu 1 godziny. Szyna musi wiarygodnie koordynować przekazywanie komunikatów i wymaga wsparcia jakiegoś repozytorium trwałego, np. relacyjnej bazy danych lub usługi kolejkowania wiadomości. Specyfikacje formatów wymiany danych zwyczajowo szyny usług do integracji aplikacji niejednolitych technologicznie wykorzystują nośnik XML, wsparty opcjonalnie walidacją XSD

Port wejścia szyny są usługami zewnątrzprocesowymi; typowa szyna usług jest równocześnie usługą systemową (demonem systemowym). To oznacza, że komunikat trzeba do szyny jakoś dostarczyć. Port wejścia jest abstrakcją źródła danych, a typowe tzw. adaptery (implementacje konkretne) obejmują: relacyjne bazy danych, system plików czy usługi aplikacyjne. Na przykład więc port wejścia używający adaptera systemu plików przyjmuje komunikat w postaci pliku pojawiającego się w określonym folderze. Aplikacja aby wysłać komunikat do szyny tworzy plik XML o określonej składni w tymże wybranym folderze, a szyna aktywnie podejmuje i przetwarza komunikat. Mówimy że port wejścia pracuje w trybie pull, kiedy szyna musi aktywnie monitować jakiś zasób w celu stwierdzenia, że pojawiają się tam dane. W trybie pull pracują adaptery system plików i relacyjna baza danych. Mówimy że port wejścia pracuje w trybie push, kiedy usługa przekazania komunikatu jest wzbudzana na żądanie, bez potrzeby monitorowania zasobu. Tak działa adapter usługa aplikacyjna dane są przekazane do szyny przez wywołanie jakiejś jej usługi aplikacyjnej. Port wyjścia abstrakcja miejsca, w które szyna dostarcza dane. Typowe adaptery są podobne jak w przypadku portów wejścia. Na przykład port wyjścia używający adaptera usługi aplikacyjnej dostarczy komunikat do aplikacji w ten sposób, że wywoła jakąś określoną usługę aplikacyjną (web service) po stronie aplikacji. Mówimy że port wyjścia działa w trybie pull, kiedy aplikacja-subskrybent musi aktywnie monitować jakiś zasób, żeby zorientować się że szyna ma dla niej jakieś dane. Na przykład port wyjścia używający adaptera usługa aplikacyjna po stronie szyny, wymaga od aplikacji regularnego monitorowania stanu portu (wywoływania określonej metody) w celu stwierdzenia czy pojawiły się jakieś dane. Mówimy że port wyjścia działa w trybie push, jeśli szyna danych aktywnie przekazuje komunikat do subskrybenta. Na przykład port wyjścia używający adaptera usługa aplikacyjna po stronie

subskrybenta, po pojawieniu się komunikatu po prostu wywoła aktywnie wskazaną usługę aplikacyjną. Oczywista obserwacja porty wejścia z adapterami w trybie push są wydajniejsze i pozwalają na niemal on-line przekazywanie powiadomień. Jedyny problem jest taki, że to nie zawsze technicznie jest możliwe, na przykład tryb push dla portów wyjścia nie jest możliwy jeśli subskrybent nie jest aplikacją serwerową, posiadającą własne usługi aplikacyjne; z kolei tryb pull zawsze jest możliwy na portach wyjścia, bo szyna jest usługą serwerową. 2.3 Przegląd implementacji Usługi ESB mają dziesiątki mniejszych i większych implementacji. Trochę wyobrażenia można nabrać przeglądając (niepełny!) rejestr na wiki: http://en.wikipedia.org/wiki/comparison_of_business_integration_software Możliwe są proste i tanie implementacje wykorzystujące np. mechanizmy Pub/Sub w WCF, podsystem Workflow Foundation czy wprost usługi kolejkowania wiadomości (MSMQ, JMS) opakowane jakąś implementacją adapterów dla wybranych portów wejścia wyjścia. 2.4 Przykład Interaktywny przykład najprostszej możliwej implementacji szyny integracyjnej opartej o MSMQ i darmową technologię Mass Transit. http://masstransit-project.com/ 2.5 Literatura 1. Hohpe, Woolf Enterprise Integration Patterns, http://www.eaipatterns.com/ - podręcznik wzorców integracyjnych, szczegółowo omawia wzorzec ESB i szereg jego podwzorców