Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Service Oriented Architectures Rafal Lukawiecki, Project Botticelli This presentation was created.

Podobne prezentacje


Prezentacja na temat: "Service Oriented Architectures Rafal Lukawiecki, Project Botticelli This presentation was created."— Zapis prezentacji:

1 Service Oriented Architectures Rafal Lukawiecki, Project Botticelli This presentation was created by Clemens Vasters of newtelligence GmbH. It is copyright by Newtelligence GmbH and by Microsoft and has been translated and presented with their permission. Thank you, Clemens!

2 2 Informacja o Copyright, czyli o Prawach Autorskich © 2003 newtelligence Aktiengesellschaft newtelligence AG Gilleshütte 99 D Korschenbroich The presentation content is provided for your personal information only. Any commercial or non-commercial use of the presentation in full or of any text or graphics requires a license from newtelligence AG. This presentation is protected by the German Copyright Act, EU copyright regulations and international treaties. Newtelligence permited Project Botticelli Ltd to deliver this presentation. Full Copyright is also held by Microsoft Corp © 2003, with whose additional explicit permission this presentation is delivered by Project Botticelli Ltd

3 3 Cele Pokazać niedaleką przyszłość paradygmatów programowania i projektowania architektur informatycznych Pokazać niedaleką przyszłość paradygmatów programowania i projektowania architektur informatycznych Dać kilka rad jak przygotować się na ten kierunek zmian Dać kilka rad jak przygotować się na ten kierunek zmian

4 4 Plan sesji Kilka rzeczy dobrych, kilka złych Kilka rzeczy dobrych, kilka złych Wprowadzenie do SOA Wprowadzenie do SOA Enterprise Service Bus Enterprise Service Bus Jak? Jak? Podsumowanie Podsumowanie

5 5 Kilka rzeczy dobrych, kilka złych Podejścia do programowania - Paradygmaty

6 6 Architektury Strukturalne Dobre podejście Dobre podejście Obietnica: organizacja i powtórne użycie kodu Obietnica: organizacja i powtórne użycie kodu Procedury, funkcje i dane Procedury, funkcje i dane Informatyka wyszła z ery lodowcowej Informatyka wyszła z ery lodowcowej W swoim czasie osiągnięto wiele: W swoim czasie osiągnięto wiele: Monolityczne, odizolowane aplikacje serwerowe Monolityczne, odizolowane aplikacje serwerowe Asynchroniczne serwisy przetwarzania wsadowego (batch) Asynchroniczne serwisy przetwarzania wsadowego (batch) Synchroniczne serwisy terminalowe Synchroniczne serwisy terminalowe

7 7 Obiektowe-zorientowanie (OO) Bardzo dobre Bardzo dobre Obietnica: organizacja i powtórne wykorzystanie kodu Obietnica: organizacja i powtórne wykorzystanie kodu Klasy (dane i fukcje razem ze sobą) Klasy (dane i fukcje razem ze sobą) Zwiększenie produktywności developerów Zwiększenie produktywności developerów W swoim czasie osiągnięto wiele: W swoim czasie osiągnięto wiele: Monolityczne aplikacje klient-serwer Monolityczne aplikacje klient-serwer Bogate, interakcyjne interfejsy graficzne (GUI) Bogate, interakcyjne interfejsy graficzne (GUI) Stan-zachowujące (stateful) serwery o dużej wydajności lecz niskiej skalowalności Stan-zachowujące (stateful) serwery o dużej wydajności lecz niskiej skalowalności

8 8 Zorientowanie na komponenty Bardzo, bardzo dobry pomysł Bardzo, bardzo dobry pomysł Obietnica: organizacja i powtórne wykorzystanie kodu Obietnica: organizacja i powtórne wykorzystanie kodu Komponenty (grupowanie interfejsów) Komponenty (grupowanie interfejsów) Niezależność od implementacji Niezależność od implementacji Współpraca między-aplikacyjna stała się rzeczywistością Współpraca między-aplikacyjna stała się rzeczywistością Super! Super! Wielo-poziomowe, wielo-warstwowe aplikacje Wielo-poziomowe, wielo-warstwowe aplikacje Duże osiągi wydajności i wysoka skalowalność Duże osiągi wydajności i wysoka skalowalność OLE! OLE!

9 9 SP, OOP, COP Programowanie Strukturalne, Programowanie OO, Programowanie Komponentowe Złe pomysły... Złe pomysły... Paradygmaty programowania Paradygmaty programowania One opisywały jak programować, a nie jak projektować architektury One opisywały jak programować, a nie jak projektować architektury Architektura była wymuszana przez styl programowania Architektura była wymuszana przez styl programowania Abstrakcja koncepcji lecz konkretne nie- elastyczne rzutowanie w języki Abstrakcja koncepcji lecz konkretne nie- elastyczne rzutowanie w języki Reprezentacje w Pascalu, C++, CORBA, COM Reprezentacje w Pascalu, C++, CORBA, COM Wtórne wykorzystanie kodu ograniczone wewnątrz domenu Wtórne wykorzystanie kodu ograniczone wewnątrz domenu Wtórne wykorzystywanie między domenami bardzo bolesne w planowaniu i realizacji Wtórne wykorzystywanie między domenami bardzo bolesne w planowaniu i realizacji Kłopot przekraczania granic domen abstrakcji Kłopot przekraczania granic domen abstrakcji Zbędne wymuszanie rozwiązań synchronicznych Zbędne wymuszanie rozwiązań synchronicznych

10 10 Wprowadzenie do Service-Oriented Architectures (SOA)

11 11 Czego dziś potrzebujemy? Mało jest już projektów aplikacji typu zielone działka (od zera), większość to brązowa działka Mało jest już projektów aplikacji typu zielone działka (od zera), większość to brązowa działka Nowe rozwiązania z reguły wykorzystują istniejące Nowe rozwiązania z reguły wykorzystują istniejące Istniejące systemy potrzebują nowych Istniejące systemy potrzebują nowych Systemy heterogeniczne Systemy heterogeniczne Upgrade-y i ulepszenia nie są synchronizowane Upgrade-y i ulepszenia nie są synchronizowane Brak jednej rodziny systemów operacyjnych i architektur sprzętowych Brak jednej rodziny systemów operacyjnych i architektur sprzętowych Efekt Big Bang Efekt Big Bang Wszystko umyka coraz to dalej od wszystkiego Wszystko umyka coraz to dalej od wszystkiego Wszystko chce dostępu i prawa manipulacji każdą bazą danych... Wszystko chce dostępu i prawa manipulacji każdą bazą danych...

12 12 Czego ponadto chcielibyśmy? Organizacji i powtórnego wykorzystanie kodu... Organizacji i powtórnego wykorzystanie kodu... Wzdłóż warstw i aplikacji Wzdłóż warstw i aplikacji Wszerz organizacji biznesowych i granic zaufania Wszerz organizacji biznesowych i granic zaufania Niezależności od implementacji Niezależności od implementacji Współpraca oparta o standardy Współpraca oparta o standardy Niezależność od języka programowania i platformy Niezależność od języka programowania i platformy Dynamicznego grupowania Dynamicznego grupowania Koncentracja lub rozproszenie klasterowe zależnie od potrzeb Koncentracja lub rozproszenie klasterowe zależnie od potrzeb

13 13 Czego nie chcemy Obsługiwać zdolności (tranzakcje, bezpieczeństwo itd.) Obsługiwać zdolności (tranzakcje, bezpieczeństwo itd.) Topić się w logice wyszukiwania, wywoływania i niezawodnej obsługi serwisów Topić się w logice wyszukiwania, wywoływania i niezawodnej obsługi serwisów Tracić czas na pisanie nowych schematów pracy (workflow) dla serwisów infrastrukturalnych Tracić czas na pisanie nowych schematów pracy (workflow) dla serwisów infrastrukturalnych

14 14 Zorientowanie na serwisy (Service-Orientation) Czym jest Serwis? Czym jest Serwis? Jakaś dostępna funkcjonalność Jakaś dostępna funkcjonalność Lokalizacja, platforma i styl kodowania nie mają znaczenia Lokalizacja, platforma i styl kodowania nie mają znaczenia Wnioski Wnioski Zakładaj: zawsze zdalny (remote) dostęp Zakładaj: zawsze zdalny (remote) dostęp Zakładaj: zawsze oczekuj dostępu z przeróżnych platform Zakładaj: zawsze oczekuj dostępu z przeróżnych platform Zignoruj wewnętrzną implementację serwisu Zignoruj wewnętrzną implementację serwisu

15 15 Unikaj tych założeń Nie myśl o serwisie jako o: Nie myśl o serwisie jako o: Transakcji, obiekcie czy funkcji Transakcji, obiekcie czy funkcji Synchronicznym czy asynchronicznym Synchronicznym czy asynchronicznym Zachowującym-stan czy bezstanowym Zachowującym-stan czy bezstanowym Adresie, który wywołujesz Adresie, który wywołujesz Bo serwisy mogą być: Bo serwisy mogą być: Odbiorcami wiadomości (aplikacje) Odbiorcami wiadomości (aplikacje) Obsługą i przetwarzaniem wiadomości (infrastruktura) Obsługą i przetwarzaniem wiadomości (infrastruktura) Nośnikami wiadomości (transport) Nośnikami wiadomości (transport)

16 16 Terminologia Wiadomość (message) Wiadomość (message) Dane wymieniane między serwisami Dane wymieniane między serwisami Nie obiekty! Kod podróżuje źle. Nie obiekty! Kod podróżuje źle. Contekst (context) Contekst (context) Definiuje zakres (scope) działania i konwersjacji Definiuje zakres (scope) działania i konwersjacji Dla stanu i infrastrukturalnych ustawień Dla stanu i infrastrukturalnych ustawień Odbiorcy (destinations) Odbiorcy (destinations) Docelowy serwis lub klasa serwisów Docelowy serwis lub klasa serwisów Nie "http://gdzieśtam/" Nie "http://gdzieśtam/"

17 17 Więc, czym są serwisy? Naprawdę są tylko dwa typy serwisów Producenci wiadomości Działaj i dodawaj do wiadomości Konsumenci wiadomości Zjadaj kawałki wiadomości i reaguj na nie Wiadomości płyną przez rurociągi Rurociąg (pipeline) jest szeregiem serwisów Czyli szeregi producentów i konsumentów Wiadomości rosną i kurczą się przepływając

18 18 Przykłady serwisów Infrastruktury podstawowe Infrastruktury podstawowe Transport, autentykacja, autoryzacja, tranzakcyjność, itd. Transport, autentykacja, autoryzacja, tranzakcyjność, itd. Monitoring i wsparcie operacyjne Monitoring i wsparcie operacyjne Statystyka i śledzenie wydajności, serwisy konfiguracyjne, zdobywanie-i- instalacja (provisioning) Statystyka i śledzenie wydajności, serwisy konfiguracyjne, zdobywanie-i- instalacja (provisioning) Serwisy biznesowe Serwisy biznesowe Integracja procesu obsługi zamówień, logistyka, śledzenie, przenośne zbieranie danych w fabryce, … Integracja procesu obsługi zamówień, logistyka, śledzenie, przenośne zbieranie danych w fabryce, …

19 19 Współpraca niezależnie od wybranej technologii SOAP i XML jak na razie jedyną praktyczną naszą nadzieją SOAP i XML jak na razie jedyną praktyczną naszą nadzieją COM, CORBA, RMI zakładają wiedzę o konkretnej platformie COM, CORBA, RMI zakładają wiedzę o konkretnej platformie Cokolwiek ustalone na poziomie binarnym zakłada wybór platformy Cokolwiek ustalone na poziomie binarnym zakłada wybór platformy Dowolny transport zakłada platformę... Dowolny transport zakłada platformę... W tej chwili koncentrujemy się na XML InfoSet W tej chwili koncentrujemy się na XML InfoSet

20 20 CRuntime BRuntime AC Sec ERPUDDI TxSecTx Serwisy w rurociągu AB XML Proxy Dis- patch Security context prop. Trans- action prop. Digital Signing Signat. verifi- cation Tx Enlist- ment Authen- tication, Authz. Rou- ting XML

21 21 Workflow Orchestration i Business Logic Prezentacja – Interfejs Zewnętrzny Services Bus – Magistrala Serwisowa Customer Data UI Customer Data Data Access Orders Data UI Orders Data Data Access Shipping Data UI Shipping Data Data Access Poziomy Funkcjonalne Customer Data Logic Orders Data Logic Shipping Data Logic Customer Service J2EE Orders Service.NET Shipping Service CICS Komponenty Serwisy Service Bus (Broker) Customer Service London Orders Service Paris Shipping Service Düsseldorf Customer Service My Company Orders Service My Company Shipping Service FedEx/UPS Customer Service (Provider) Orders Service (Provider) Shipping Service (Provider) Service Discovery Message "Servicing" Message Dispatch Service Registry Oś Domen Oś Infrastruktury

22 22 Opublikowywanie i znajdowanie (Publishing & Discovery) Serwisy trzeba udostępnić Serwisy trzeba udostępnić Jakie serwisy są dostępne? Jakie serwisy są dostępne? Klasy, taksonomie... Klasy, taksonomie... Lokalizacja Lokalizacja Separacja środowiska deweloperskiego i produkcyjnego Separacja środowiska deweloperskiego i produkcyjnego Granice regionalne, prawa, wiarygodności lub zuafania Granice regionalne, prawa, wiarygodności lub zuafania Potrzeba znaleźć serwis Potrzeba znaleźć serwis Statycznie i dynamicznie Statycznie i dynamicznie

23 23 Zdolności (Capabilities) Potrzeba możliwości negocjacji zdolności Potrzeba możliwości negocjacji zdolności Bezpieczeństwo (możliwości i potrzeby) Bezpieczeństwo (możliwości i potrzeby) Kontekst Kontekst Tranzakcyjność Tranzakcyjność Niezawodność komunikacji Niezawodność komunikacji Potrzeba znaleźć możliwości nawiązywania komunikacji Potrzeba znaleźć możliwości nawiązywania komunikacji

24 24 Rola Pośrednika Serwisów (Service Broker) Broker może być konceptualny, nie koniecznie konkretnym systemem Broker może być konceptualny, nie koniecznie konkretnym systemem Może się składać z kilku serwisów Może się składać z kilku serwisów Może być rozdystrybuowany Może być rozdystrybuowany Raczej będzie oparty o rurociągi Raczej będzie oparty o rurociągi Utrzymuje rejestr serwisów Utrzymuje rejestr serwisów Do tego wymyślono UDDI Do tego wymyślono UDDI Zajmuje się najlepszym załatwieniem takich rzeczy jak: Zajmuje się najlepszym załatwieniem takich rzeczy jak: Routing, QoS (jakość serwisu), wywoływanie, zaufanie, bezpieczeństwo, monitoring... Routing, QoS (jakość serwisu), wywoływanie, zaufanie, bezpieczeństwo, monitoring...

25 25 Rola Dostarczyciela Serwisów (Service Provider) Oferuje wiele serwisów Oferuje wiele serwisów Funkcjonalności biznesowe, lub Funkcjonalności biznesowe, lub Infrastrukturalne Infrastrukturalne Implementuje kontrakty dobrze-znane (well-known), czyli te, na których można zawsze polegać Implementuje kontrakty dobrze-znane (well-known), czyli te, na których można zawsze polegać Wiadomości, konwersacja i komunikacja Wiadomości, konwersacja i komunikacja Objawia zdolności Objawia zdolności Kontekst, tranzakcyjność... Kontekst, tranzakcyjność... Implementacja zostaje sekretem Implementacja zostaje sekretem

26 26 Rola Konsumenta Serwisów (Service Consumer) Łączy się z serwisami i nimi steruje Łączy się z serwisami i nimi steruje Interakcja z użytkownikiem Interakcja z użytkownikiem Interakcja automatycznie sterowana schematami pracy (workflow) Interakcja automatycznie sterowana schematami pracy (workflow) Może być serwisem Agregacja (Aggregation) Może być serwisem Agregacja (Aggregation) Nie interesuje go typ implementacji Nie interesuje go typ implementacji Tylko go interesują kontrakty Tylko go interesują kontrakty Wiadomości Wiadomości Żądana jakość serwisu (QoS) Żądana jakość serwisu (QoS) Pożądane zdolności Pożądane zdolności

27 27 Jak? Przechodzenie na service-oriented architecture

28 28 Oczywiście: Zaimplementuj rejestr serwisów UDDI jest dobry, LDAP też UDDI jest dobry, LDAP też UDDI zostało na to stworzone UDDI zostało na to stworzone Windows Server 2003 ma w sobie UDDI Server Windows Server 2003 ma w sobie UDDI Server LDAP jest szeroko znany LDAP jest szeroko znany Implementacja w Active Directory Implementacja w Active Directory Pomyśl o klasach serwisów Pomyśl o klasach serwisów Infrastruktura, biznesowe Infrastruktura, biznesowe Kategorie, funkcjonalność, dopasowanie do potrzeb Kategorie, funkcjonalność, dopasowanie do potrzeb Lokalizacja Lokalizacja Odkrywanie-znajdowanie (discover) Odkrywanie-znajdowanie (discover) Zacznij statycznie w czasie budowania systemu ale planuj na dynamiczne Zacznij statycznie w czasie budowania systemu ale planuj na dynamiczne

29 29 Oczywiście: Zaimplementuj router WSE SDK dobrym początkiem bo używa standardy WS-* WSE SDK dobrym początkiem bo używa standardy WS-* WS-Security, WS-Routing WS-Security, WS-Routing Buduje na wydajności ASP.NET Buduje na wydajności ASP.NET Ważne: Rób nie więcej niż trzeba Ważne: Rób nie więcej niż trzeba Nie przesadź w planach Nie przesadź w planach Nie buduj na wieczność Nie buduj na wieczność Proste jest dobre Proste jest dobre Weź pod uwagę architekturę store-and- forward Weź pod uwagę architekturę store-and- forward BizTalk Server oczywiście już jest routerem, i więcej! BizTalk Server oczywiście już jest routerem, i więcej!

30 30 Nieoczywiste: Implementuj N- tier (n-warstw) Fasada serwisów w ASP.NET Fasada serwisów w ASP.NET Najlepszy wybór do serwisów w.NET Najlepszy wybór do serwisów w.NET WSE SDK do routing i bezpieczeństwa WSE SDK do routing i bezpieczeństwa XSD WSDL Kod XSD WSDL Kod Odizoluj warstwy biznesu i danych Odizoluj warstwy biznesu i danych Korzystaj z Enterprise Services (Windows Server 2003), także dla starszych aplikacji COM+ Korzystaj z Enterprise Services (Windows Server 2003), także dla starszych aplikacji COM+ Korzystaj z Serviced Components Korzystaj z Serviced Components Dalej używaj stored procedures dla danych Dalej używaj stored procedures dla danych Czyli, po staremu jak na razie! Czyli, po staremu jak na razie!

31 31 Encapsulate (owijaj) Istniejący kod (Windows) Istniejący kod (Windows) Owiń w fasadę w ASP.NET Owiń w fasadę w ASP.NET COM+ : Owiń i udostępnij jako serwis COM+ : Owiń i udostępnij jako serwis DLL/COM : Owiń w Serviced Comp's DLL/COM : Owiń w Serviced Comp's Istniejący kod (Unix itd.) Istniejący kod (Unix itd.) Zawiń w fasadę Apache Axis Zawiń w fasadę Apache Axis WebSphere: używaj najnowszej WebSphere: używaj najnowszej WebLogic: używaj najnowszej WebLogic: używaj najnowszej Inne UNIXy: używaj Axis Inne UNIXy: używaj Axis...a może by przenieść do.NET ?...a może by przenieść do.NET ?

32 32Wydajność SOA raczej wymaga XML SOA raczej wymaga XML Droższy w wydajnośći niż dane binarne Droższy w wydajnośći niż dane binarne Więcej poziomów pośrednich Więcej poziomów pośrednich Weź pod uwagę dwa prawa: Weź pod uwagę dwa prawa: Prawo Moore, siła procesorów podwaja się co 18 miesięcy, oraz… Prawo Moore, siła procesorów podwaja się co 18 miesięcy, oraz… Siła = PracaCzas

33 33Podsumowując SOA to ewolucja SOA to ewolucja Nic tu bardzo radykalnego Nic tu bardzo radykalnego Zespolenie doskonałych idei, które dawniej nie były ze sobą związane Zespolenie doskonałych idei, które dawniej nie były ze sobą związane Wiadomość jest sednem! Wiadomość jest sednem! Myśl wiadomość a nie wywołanie Myśl wiadomość a nie wywołanie XML jest lepszy niż dane binarne XML jest lepszy niż dane binarne Asynchroniczność jest dobra Asynchroniczność jest dobra


Pobierz ppt "Service Oriented Architectures Rafal Lukawiecki, Project Botticelli This presentation was created."

Podobne prezentacje


Reklamy Google