Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Komponentowe i rozproszone

Podobne prezentacje


Prezentacja na temat: "Komponentowe i rozproszone"— Zapis prezentacji:

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


Pobierz ppt "Komponentowe i rozproszone"

Podobne prezentacje


Reklamy Google