S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.

Slides:



Advertisements
Podobne prezentacje
Longhorn Academy - AD Warszawa, 12 kwietnia 2007
Advertisements

Messaging w .NET.
Równoległość w środowisku rozproszonym
Mechanizmy pracy równoległej
Decyzje projektowe w .NET Framework
SYSTEMY OPERACYJNE KOMUNIKACJA MIĘDZYPROCESOWA
SQL Server Native XML Web Services
WEB SERVICE Stefan Rutkowski.
CORBA Łukasz Wnęk.
Rozszerzalność systemów rozproszonych
Microsoft Professional Developer Days 2004
ADAM Active Directory w trybie aplikacyjnym
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Service Oriented Architecture & Web Services
Artur Jonak empolis Polska Sp. z o.o.
XML w integracji aplikacji
XML w integracji aplikacji 11 grudnia XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły.
Mateusz Srebrny 15 grudnia 2003 Motif, okienka i obiekty Mateusz Srebrny 15 grudnia 2003.
Architektura systemu Gra strategiczna „Strusia Jama”
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 1.
Opracował: Patryk Kołakowski(s1715)
Internet Communication Engine
Systemy rozproszone Komunikacja (I)
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Systemy rozproszone W. Bartkiewicz Wykład 7. Kolejki komunikatów
Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
Wprowadzenie do SOA (Service Oriented Architecture)
Information Bridge Framework platforma integracji Microsoft Office 2003 z aplikacjami Line of Business Krzysztof Michalski10/01/2005.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Protokół IP w sieciach LAN
Paweł Fałat Katedra Informatyki Stosowanej
Dziedzina problemu. Opracowanie koncepcji, projekt i częściowa implementacja portalu ofert turystycznych.
Wprowadzenie do platformy J2EE
Architektura SOA.
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
Platforma udostępniająca skalowalną komunikację w środowisku rozproszonym Tomasz Hankus Jarosław Janik Konrad Tendera Opiekun: dr inż. Tomasz Szydło Prowadzący:
WCF 4.0 – What’s new? Maciej Grabek Allegro Group Sp. z o. o.
Platformy Technologiczne web services
Rozwój aplikacji przy wykorzystaniu ASP.NET
Aplikacje Internetowe
IT Asset Management Service
Integracja aplikacji Wykład 2
Web Serwisy w praktyce Technologie internetowe ( )
Message-Driven Bean.
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Jerzy Jelinek Paweł Korpowski
WebAPI – funkcjonalność i rozwój narzędzia
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Komponentowe i rozproszone Interludium. OOA vs SOA OOA (obiekty rozproszone): CORBA, COM(+), EJB Współdzielenie obiektów SOA (serwisy rozproszone): Autonomiczne.
Enterprise Architecture Patterns
Skalowanie aplikacji JPA na przykładzie Oracle TopLink Grid
Clustering Technologia klastrowa - architektura łącząca serwery i urządzenia pamięci masowych w celu zwiększenia niezawodności, bezpieczeństwa i wydajności.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
Komponentowe i rozproszone Interludium czyli krótki wykład o rozpraszaniu.
Podział sieci komputerowych
Bartosz Pawlak Wiktor Paliwoda Bezpieczeństwo Systemów Operacyjnych IMAP vs POP.
Sławomir Staśkiewicz JBossAS i EJB 3.1 Sławomir Staśkiewicz
Usługi webowe & Service- Oriented Architecture (SOA) S2523 Anna Jenerowicz.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Komponentowe systemy rozproszone Interludium czyli krótki wykład o rozpraszaniu.
Komponentowe i rozproszone (Web)Service Oriented Architecture.
Web services w PHP Inżynieria e-systemów - technologia Java Miłosz Dybizbański Małgorzata Gocał Kinga Knapik
Komponentowe systemy rozproszone
Aplikacje i usługi internetowe
Zapis prezentacji:

S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji

O mnie Bloguję: S IMON -S AYS -A RCHITECTURE. COM Twittuję: Koduję: DDDSample.Net, NetMX, WS-Man.Net Prezentuję Prowadzę szkolenia

WPROWADZENIE

Co to jest Usługa? Warstwa usługowa dla logiki aplikacji Usługa Web Service Usługa WCF Usługa SOAP/REST Usługa Windows Usługa biznesowa Usługa?

Tematyka usług Kompatybilność Aktywacja Transakcyjność Zorientowanie na dane vs zorientowane na operacje Interakcja Niezawodność Long-running services Bezpieczeństwo Messages vs RPC

KOMPATYBILNOŚĆ

Schemat i kontrakt XML jako format przesyłania danych XSD jako język definicji danych WSDL jako język definicji interfejsów (IDL)

Schemat i kontrakt RPC-style powinno być unikane, chyba, że mamy naprawdę dobre powody Kompatybilność należy wbudować w kontrakt BasicHttp jest najbardziej kompatybilnym bindingiem dla SOAP

TRANSAKCYJNOŚĆ

Święty Graal middleware-u Wraz ze wzrostem znaczenia systemów rozproszonych obiektów coraz większy nacisk na transakcyjność usług request-response zmniejszenie znaczenia kolejkowania Cel: stworzyć iluzję, że obiekty nie są rozproszone Efekt uboczny: wzrost złożoności

Usługa B Usługa A using (TransactionScope tx = new TransactionScope())

CORBA Transaction Service COM+ OleTx WCF OleTx WCF WS- AT Przyszłość transakcyjnych usług

Móc nie oznacza chcieć Bardzo ścisłe powiązanie, zarówno technologiczne, jak i czasowe Dodatkowy wysiłek administracyjny Kwestie zaufania -- polityczne Problem jest natury architektonicznej – nie rozwiąże go kolejna technologia Nie rób transakcyjnych usług jeśli nie musisz

INTERAKCJA

Interakcja Usługi to nie tylko schemat zapytanie – odpowiedź One-way Kolejkowane one-way Kolejkowane zapytanie-odpowiedź Publish/Subscribe

One-way Synchroniczna jednokierunkowa komunikacja skierowana Klient nawiązuje połączenie Klient wysyła komunikat Serwer odbiera komunikat Klient kończy połączenie Serwer przetwarza komunikat

One-way WCF Mogą blokować wywołującego, jeśli po stronie serwera kolejka żądań jest pełna Mogą blokować przetwarzanie innych wywołań one-way i synchronicznych Mogą blokować zamykanie proxy

Kolejkowane one-way Asynchroniczna jednokierunkowa komunikacja skierowana Klient zapisuje komunikat do kolejki Serwer odczytuje komunikat z kolejki Serwer przetwarza komunikat

Kolejkowane one-way WCF Zbudowane ponad MSMQ Wsparcie poison message queue Dozwolone tylko operacje jednokierunkowe NServiceBus / MassTransit Zbudowane ponad MSMQ Wsparcie poison message queue Operacje są z definicji jednokierunkowe Wsparcie dla Publish/Subscribe Load balancing out-of-the- box

Kolejkowane one-way WCF Zbudowane ponad MSMQ Dozwolone tylko operacje jednokierunkowe Wsparcie poison message queue Kiepsko wpasowuje się w model WCF

Kolejkowane one-way NSB Zbudowane ponad… MSMQ Operacje z definicji jednokierunkowe Wsparcie poison message queue Wsparcie dla publish-subscribe Load balancing out-of-the-box

Kolejkowane zapytanie-odpowiedź Asynchroniczna dwukierunkowa komunikacja skierowana Klient zapisuje komunikat do kolejki Serwer odczytuje komunikat z kolejki Serwer przetwarza komunikat Serwer zapisuje do (innej) kolejki komunikat do klienta Klient odczytuje komunikat W tym miejscu zaczyna się naprawdę druga jednokierunkowa wymiana komunikatów

Separuje czasowo klienta i serwer Klient wysyła żądanie, a następnie zapomina o nim (zapisuje stan procesu do bazy). Nie jest zablokowany – przetwarza kolejny proces Serwer przetwarza żądanie w dogodnej chwili, a następnie kolejkuje odpowiedź Klient odczytuje odpowiedź w dogodnej chwili, odczytuje z bazy stan zamrożonego procesu i kontynuuje przetwarzanie

Publish/Subscribe (A)synchroniczna jednokierunkowa komunikacja rozgłoszeniowa Zbudowana ponad (a)synchronicznym one-way Może wymagać zewnętrznego programu – infrastruktury Publish/Subscribe

Serwer Klient Infrastruktura Klient Subscribe Klient

Dlaczego (nie) Pub/Sub? Za Zmniejszenie ilości przesyłanych danych Zmniejszenie problemów wersjonowania Zmniejszenie powiązania między klientem i serwerem Przeciw Zmniejszenie przewidywalności komunikacji Dodatkowy kawałek infrastruktury Mniej naturalny dla programisty model interakcji

Podsumowanie Im prostszy protokół, tym większe potencjalne grono klientów Transakcyjność wzmacnia coupling między klientem, a serwerem Asynchroniczne schematy interakcji zmniejszają ten coupling

S IMON SAYS … A RCHITECTURE ! CZAS DLA WAS – Q & A Dziękuję za uwagę