Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Komponentowe i rozproszone
Systemy rozproszone
2
MGB 2003 System ≠ aplikacja Aplikacja: jeden proces, jeden system op., jeden komputer System: wiele procesow, (zwykle) wiele systemów op. i wiele komputerów System = N*aplikacja => połączenia © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3
Połączenia nie są bez znaczenia …
MGB 2003 Połączenia nie są bez znaczenia … Typowe założenia deweloperów (i architektów) dla systemów rozproszonych: Sieć jest niezawodna Opóźnienia nie są problemem Pasmo nie jest problemem Sieć jest bezpieczna Topologia się nie zmienia Administrator zawsze wie co robić Koszty transportu danych nie są problemem Sieć jest jednorodna Deutsch 94 Gosling 97 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
4
Połączenia nie są bez znaczenia …
MGB 2003 Połączenia nie są bez znaczenia … Typowe założenia deweloperów (I architektów) dla systemów rozproszonych: … System jest atomowy/monolityczny System jest skończony Logika biznesowa może (i powinna) być scentralizowana Neward 06 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
5
3 wymiary systemu Scalability Availiability Reliability
6
Przykładowy sklep Marketing Sklep Księgowość Spedycja Magazyn
Obsługa Klientów
7
Przykładowa funkcjonalność
8
Księgowość Marketing Obsługa Klientów Spedycja Sklep Magazyn
9
MGB 2003 A gdzie są dane? © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
10
Księgowość Marketing Obsługa Klientów Spedycja Sklep Magazyn
11
Może być gorzej? Marketing Towary Sklep Spedycja Transakcje Księgowość
Obsługa Klientów Spedycja Sklep Magazyn Towary Transakcje Klienci
12
To była tylko jedna akcja …
MGB 2003 To była tylko jedna akcja … Są i inne: Raporty Przeceny Przyjecie nowych towarów Wysyłka Zwroty i reklamacje * Liczba użytkowników © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
13
Podejście synchroniczne – powoli, ale przynajmniej działa
Procesy głównie czekają na wyniki/zasoby/potwierdzenie Deadlock/problemy w jednym podsystemie może zdegradować cały system Lepszy sprzęt często oznacza, że poświęcamy więcej cykli (szybszego) procesora na czekanie Timeout – powoduje ponowienie żądania (a stare może być jeszcze przetważane) System działa w developmencie a w produkcji (od razu lub nie) całość pada
14
Podejście synchroniczne - czasem nie działa …
Maintenance/awaria jednego serwera może spowodować zatrzymanie całego systemu Przenosimy serwer - Jak np. zmienić adresację w sieci? Skalujemy system – jak dodać drugą instancję serwisu magazyn? Co z utrzymywaniem starych wersji ?
15
Zależności Utrudniają development Utrudniają wdrażanie
Ograniczają stabilność Utrudniają zarządzanie i utrzymanie Nie można ich wyeliminować ale trzeba je ograniczać ...
16
Zależności (coupling) w kodzie
Powiązanie wynika z zalezności Wywołanie funkcji zalęzy od sygnatury czyli kod wywołujacy zależy od definicji funkcji Miary zależności w kodzie Ca – liczba klas (funkcji), które zależą od danej klasy (funkcji) Ce - liczba klas (funkcji), od których zależy dana klasa (funkcja)
17
Zależności (coupling) w systemach
Platformowe (protokół, format – interoperability) Czasowe (żądanie - odpowiedź) Przestrzenne (adresy – identyfikacja)
18
Kilka scenariuszy Zmiana szczegółów implementacyjnych serwisu
Zmiana (deplyment) komponentu od którego zależy wiele serwisów Upadek bazy = timeout + utrata danych Deadlock = rollback transakcji Upadek serwisu = blad przy wywołaniu
19
Redukcja powiązań ... jest złożona Platformowe Czasowe Przestrzenne
Afferent Efferent ... jest złożona
20
Jak ? Ca, Ce – zależności w kodzie, SOA – opieramy się na kontraktach
Platformowe – użycie XML Przestrzenny – wirtualne endpointy, routowanie (np. po typie komunikatu) Czasowe – asynchroniczne komunikaty
21
Wołanie synchroniczne
Serwis A Serwis B Wołanie synchroniczne czekanie praca zwrot Tradycyjne WS, RPC, COM, WCF (?)
22
Wołanie asynchroniczne
Typowa implementacja tworzy nowy wątek, który czeka synchronicznie i wykonuje callback (w swoim kontekście) Wątek główny i tak czeka na wyniki (ale może ew. uruchomić kilka zapytań)
23
Wołania jednokierunkowe
ASP.NET: oneway WCF: IsOneWay=True Kolejki
24
Wołania jednokierunkowe
ASP.NET: oneway WCF: IsOneWay=True Kolejki Klient Serwis Wysyła i pracuje dalej Id Odpowiedź: ekspozycja interfejsu przez klienta pooling w oczekiwaniu na odpowiedź
25
Podejście request response (synch lub asynch)
Możliwe problemy
26
Krytyczny update dla Windows
MGB 2003 Upadek serwera [HTTP] $$ Order DB App Tx Call 1 of 3 Call 2 of 3 Krytyczny update dla Windows Rollback Co sie dzieje z zamówieniem ? © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
27
Baza jest wyłączona Co sie dzieje z zamówieniem? App Tx
MGB 2003 Baza jest wyłączona [HTTP] $$ Order Call 1 of 3 DB App Tx Exception Down Zapis do logu Co sie dzieje z zamówieniem? © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
28
Gdy przydarzy sie deadlock
MGB 2003 Gdy przydarzy sie deadlock [HTTP] $$ Order DB App Tx Call 1 of 3 Call 2 of 3 Exception A B Zapis do logu Co sie dzieje z zamówieniem ? Deadlock © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
29
Co zmiania messaging? Tx Q App Zamówienie wraca do kolejki Rollback
MGB 2003 Co zmiania messaging? Rollback $$ Order Tx Q Receive Rollback App DB Call 1 of 3 Call 2 of 3 Zamówienie wraca do kolejki © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
30
Wołania usług vs. messaging
Rollback $$ Order A B C D Nie można wycofać [HTTP] Invoke DB WS Deadlock
31
Wołania usług vs. messaging
$$ Order A B C D Msg [HTTP] Invoke DB Messaging Gateway WS Przy błędzie komunikat nie zostanie wysłany
32
Wzorzec: Adres zwrotny
MGB 2003 Wzorzec: Adres zwrotny Serwis A Serwis B Addres zwrotny Addres zwrotny Kiedyś w przyszłości Oddzielny kanał dla odpowiedzi © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
33
Adres zwrotny jest ważny
MGB 2003 Adres zwrotny jest ważny Service A Server 1 Service B Server 2 Service A Server 3 Request 0 Request 1 Response 1 Pozwala na równoważenie obciążenia Iub utworzenie potoku obsługujacego zlecenia © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
34
Skorelowane Request/Response
MGB 2003 Skorelowane Request/Response Serwis A Serwis B Ticket (guid) Kiedyś w przyszłości Ticket (guid) W bardziej skomplikowanych przypadkach id umożliwia skojarzenie req. i resp. © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
35
Publish / Subscribe Zdarzenia na poziomie systemowym
MGB 2003 Publish / Subscribe Zdarzenia na poziomie systemowym Wystąpienie zdarzenia oznacza wysłanie komunikatu Obsługa zdarzenia odpowiada obsłużeniu komunikatu Zdarzenia powinny być rozpatrywane na poziomi biznesowym (zmienił sie stan zamówienia, ktoś ma inny adres, rabt itd.) © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
36
Kolejność zdarzeń Rachunko wosc Sprzedaz Spedycja Zaakceptowane
Opłacone Czeka na Opłacone (które już było) Nie ma zamówienia w DB Komunikat zostaje odrzucony Spedycja
37
Kolejność zdarzeń Nie należy zakładać konkretnej kolejności nadchodzenia komunikatów W przypadku problemów mozna założyć próbę ponownego przetworzenia komunikatu w przyszłości Zyski to m.in. Lepsza skalowalność Większa odporność na błędy
38
Własność komunikatu Co oznacza własność ?
MGB 2003 Własność komunikatu Co oznacza własność ? W ReqResp nie za bardzo wiadomo kto jest wlaścicielem formatu/protokolu W PubSub właścicielem jest publikujący © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
39
Publish / Subscribe MGB 2003
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
40
MGB 2003 Subscribe Aby zredukować powiazania przestrzenne (spatial coupling) niezbędne jest mapowanie między typem komunikatu i adresem sewisu Subskrypcja oznacza gotowość do obsługi danego typu komunikatów rejestracja handlera oznacza właśnie subbskrypcje (może przekładać się na wysłanie wewnętrznych komunikatów w obrębie infrastruktury) W takim wypadku zapamietywany jest adres handlera. © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
41
Subscriber Publisher Subscriber Subscriber Subscriber Subscriber
42
Subscriber Publisher Subscriber Subscriber Subscriber Subscriber
abcdefgh Subscriber abcdefgh abcdefgh Subscriber Subscriber abcdefgh abcdefgh Subscriber
43
Styl architektoniczny
MGB 2003 Styl architektoniczny An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style. Fielding 2000 Zbiór wskazówek nt. tego co jest a co nie jest dozwolone. © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
44
SOA jest stylem architektonicznym
MGB 2003 SOA jest stylem architektonicznym SOA opiera się na komunikatach Soa zakłada autonomię serwisów … Dwa najczestsze podejscia Bus vs. Broker służą redukcji powiązań przstrzennych © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
45
Styl architektoniczny Broker
MGB 2003 Styl architektoniczny Broker Inicjator żąda usługi od brokera Broker obsługuje po kolei żądania i przekazuje je dalej Service B Service A Service C Broker Service D © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
46
Cechy Broker-a Broker jest fizycznie odseparowany
MGB 2003 Cechy Broker-a Broker jest fizycznie odseparowany Cała komunikacja odbywa się przez niego Broker musi obsłużyć upadki serwisów i przekazywanie wiadomości Broker stanowi “single point of failure” – musi być wydajny i niezwykle stabilny Technologie: BizTalk, CORBA, UDDI © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
47
MGB 2003 Zalety Broker-a Dzieki skoncentrowaniu komunikacji w jednym miejscu łatwo zarządzać centralnie konfiguracją Łatwe jest uzyskanie inteligentnego przekazywania danych, tramsformacje, orkiestracje itd. Nie wymaga wielu zmian w serwisach © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
48
Wady Broker-a Narusza autonomię serwisów
MGB 2003 Wady Broker-a Narusza autonomię serwisów Stanowi “single point of failure” i b. często jest wąskim gardłem Wyjasnicz czemu B. narusza autonomie S. © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
49
Styl architektoniczny Szyna
MGB 2003 Styl architektoniczny Szyna Źródła i ujścia zdarzeń komunikują się za pośrednictwem kanałów w szynie Źródło umieszcza komunikaty (zdarzenia) w kanale a ujscie jest notyfikowane odostępności komunikatu Source Sink Bus Sink Source © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
50
Topologia Szyny App App Bus.dll Bus.dll App App Bus.dll Bus.dll
MGB 2003 Topologia Szyny App Bus.dll App Bus.dll App Bus.dll App Bus.dll © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
51
Cechy Szyny Szyna niekoniecznie jest fizycznie odseparowana
MGB 2003 Cechy Szyny Szyna niekoniecznie jest fizycznie odseparowana Kanały mogą być zarówno fizyczne jak logiczne Komunikacja jest rozproszona pomiedzy wieloma kanalami Szyna jest prostsza Brak ”single point of failure” © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
52
Zalety Szyny Brak “single point of failure”
MGB 2003 Zalety Szyny Brak “single point of failure” Nie narusza autonomii serwisu The “anti-broker” © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
53
Wady szyny Trudniejsza do zaprojektowania niż Broker MGB 2003
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
54
Komercyjne implementacje ESB
MGB 2003 Komercyjne implementacje ESB Adeptia ESB Suite Neudesic Neuron-ESB webmethods Enterprise Service Bus (SoftwareAG) NServiceBus Oracle Enterprise Service Bus (BEA Logic) (TIBCO) ActiveMatrix™ Service Bus Progress Sonic ESB IBM WebSphere ESB Red Hat JBoss Fuse IBM WebSphere Message Broker IONA (acquired by Progress) ttxNgine (3Txpert GmbH) InterSystems Ensemble Microsoft BizTalk Server Windows Azure Service Bus © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
55
Otwarte implementacje ESB
MGB 2003 Otwarte implementacje ESB Apache ServiceMix Mule Apache Synapse UltraESB JBoss ESB Talend ESB MassTransit Shuttle Service Bus NetKernel Red Hat Fuse ESB (based on Apache ServiceMix) NServiceBus Rhino Service Bus Petals ESB Spring Integration Open ESB WSO2 ESB © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
56
Połączenie obu światów
57
MGB 2003 Co to jest serwis? Serwis jest techniczną realizacją pewnych biznesowych możliwości. Serwis powinien przejechowywać (niekoniecznie być właścicielem) wszystkie dane i reguły niezbędne mu do działania © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
58
Czym serwis nie jest Serwis, który dostarcza tylko funkcjonalność a nie posiada stanu jest funkcją Np walidacja Serwis, który tylko posiada i udostępnia dane jest bazą danych CRUD
59
Przykład Sales Marketing Customer Care Place Order Save status locally
Save pricing locally Subscribe to Product Pricing Updated Subscribe to Customer Status Updated Publish Product Pricing Updated Publish Customer Status Updated Customer Care Marketing Publish Order Accepted
60
Zdarzenia w przykładowym systemie
Uzupełnienie magazynu Zmiana Ceny Otrzymanie zamówienia Wysyłka towaru Wystawienie faktury
61
Który serwis jest właścicielem strony?
62
Który serwis jest właścicielem strony?
Żaden
63
Posadowienie serwisów
Jeden komputer może gościć wiele serwisów Jedna aplikacja może obejmować wiele serwisów Pojedynczy workflow może angażować wiele serwisów Pojedyncza strona może łączyć dane z wielu serwisów
64
Kompozycja strony Server Katalog Ceny Magazyn Cross Sell
65
Amazon.com - sprzedaż
66
Który serwis odpowiada za proces?
67
Który serwis odpowiada za proces?
Żaden
68
Składowe workflow-u Rachunkowość Spedycja Sprzedaż Spedycja
69
Cache = efektywność+problemy
UI Facade BL DAL DB Cache If the result is that users are going to be seeing stale data anyway – why go all the way to the database? And if we’re going to be putting a cache in there anyway – we’re practically ensuring staleness, we just don’t tell anybody, right?
70
Zapytania ?
71
Dane zmieniają się często
Lista klientów Dane poprawne 10 minit temu We see this on Twitter and Facebook – telling us how long ago something happened
72
Zapytania powinny być proste
UI Query only Persistent View Model They’re tightly coupled anyway – sticking a bunch of layers in between won’t change that. This can be as simple as statically defined views on top of your tables. For security, you can define SELECT permissions on those views. Normalizacja implikuje zapytania oparte na wielu tabelach Widoki kosztują
73
Command Query Responsibility Segregation
74
CQRS Komendy są przetwarzane oddzielnie od zapytań
Wynik aktualizacji danych jest replikowany do widoku zapytań (cache) Możliwe jest w przechowywanie tylko listy komend i bieżącego stanu w cache They’re tightly coupled anyway – sticking a bunch of layers in between won’t change that. This can be as simple as statically defined views on top of your tables. For security, you can define SELECT permissions on those views.
75
Ale co zrobić z nieaktualnymi danymi w cache dla potrzeb query
Co jeżeli do generowana updateu użyte zostana niektualne dane Orders ID Total Date Shipped Account etc 317 $37.87 1/9/09 Yes A17T5 318 $99.99 3/7/09 319 $100.11 4/8/09 P313Z 320 $69.47 9/9/09 No P599Z They’re tightly coupled anyway – sticking a bunch of layers in between won’t change that. This can be as simple as statically defined views on top of your tables. For security, you can define SELECT permissions on those views. Save Cancel
76
Nowoczesny interfejs Może wcale nie trzeba korzystać z nieaktualnych danych lub nie trzeba ich pokazywać Ważne jest uchwycenie intencji Można troche “oszukać” Wysyłka może pójść na adres, który był aktualny kilka minut wcześniej Nie można oczekiwać, że zawse uda sie rezygnacja z wysyłki w ciagu kilku sekund Właściwy zakup udbywa sie przy potwierdzeniu a nie kliknieciu kup They’re tightly coupled anyway – sticking a bunch of layers in between won’t change that. This can be as simple as statically defined views on top of your tables. For security, you can define SELECT permissions on those views.
77
System rezerwacji I’m using this image because it’s small enough to understand what’s going on – to see the detail of what’s available, reserved, confirmed, etc. Now imagine larger scales…
78
System rezerwacji Each one of the slots here is a block of seats – not just one.
79
Tradycyjne podejście Checkboxy Po co użytkownikowi kilka miejsc
Bo chce zarezerwowac miejsca obok siebie dla rodziny/przyjaciół Problemem mogą wyścigi jesli kilka osób sprbuje zarezerwowac nakładające sie obszary
80
Uchwycenie intencji użytkownika
Rezerwacja grupowea: Mała grupa – siedzi razem Duża grupa – kilka małych grup Podaj liczbę miejsc Podaj typ miejsc – określa koszt Propozycja z czasowym ograniczeniem – wymaga potwierdzenia/płatności
81
Koszyk nie jest aktualny! Produkt pokazywany na podstawie cmd
Odgadywanie zmian Koszyk nie jest aktualny! Produkt pokazywany na podstawie cmd
82
Komenda vs. encja Łatwiej walidować komendę
Z mała iloscią danych Bardziej konkretną Chodzi o potencjalną poprawność (wynik nie jest ostateczny) Walidacja dyżych encji jest trudna
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.