1 / 82

Komponentowe i rozproszone

Komponentowe i rozproszone. Systemy rozproszone. 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. Połączenia nie są bez znaczenia ….

adie
Download Presentation

Komponentowe i rozproszone

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Komponentowe i rozproszone Systemyrozproszone

  2. System ≠ aplikacja • Aplikacja: jedenproces, jeden system op., jedenkomputer • System: wieleprocesow, (zwykle) wielesystemów op. iwielekomputerów • System = N*aplikacja => połączenia

  3. Połączenianiesąbezznaczenia … Typowezałożeniadeweloperów (iarchitektów) dlasystemówrozproszonych: • Sieć jest niezawodna • Opóźnienianiesąproblemem • Pasmonie jest problemem • Sieć jest bezpieczna • Topologiasięniezmienia • Administrator zawszewie co robić • Kosztytransportudanychniesąproblemem • Sieć jest jednorodna Deutsch 94 Gosling 97

  4. Połączenianiesąbezznaczenia … Typowezałożeniadeweloperów (I architektów) dlasystemówrozproszonych: • … • System jest atomowy/monolityczny • System jest skończony • Logikabiznesowamoże (ipowinna) byćscentralizowana Neward 06

  5. 3 wymiarysystemu • Scalability • Availiability • Reliability

  6. Przykładowysklep Marketing Sklep Księgowość Spedycja Magazyn ObsługaKlientów

  7. Przykładowafunkcjonalność

  8. Marketing Sklep Księgowość Spedycja Magazyn ObsługaKlientów

  9. A gdziesądane?

  10. Marketing Sklep Księgowość Spedycja Magazyn ObsługaKlientów

  11. Możebyćgorzej? Towary Transakcje Marketing Sklep Spedycja Klienci Księgowość Magazyn ObsługaKlientów

  12. To byłatylkojednaakcja … • Sąiinne: • Raporty • Przeceny • Przyjecienowychtowarów • Wysyłka • Zwrotyireklamacje * Liczbaużytkowników

  13. Podejściesynchroniczne – powoli, ale przynajmniejdziała • Procesygłównieczekająnawyniki/zasoby/potwierdzenie • Deadlock/problemy w jednympodsystemiemożezdegradowaćcały system • Lepszysprzętczęstooznacza, żepoświęcamywięcejcykli (szybszego) procesoranaczekanie • Timeout – powodujeponowienieżądania (a stare możebyćjeszczeprzetważane) • System działa w developmencie a w produkcji (odrazulubnie) całośćpada

  14. Podejściesynchroniczne - czasemniedziała … • Maintenance/awariajednegoserweramożespowodowaćzatrzymaniecałegosystemu • Przenosimyserwer - Jaknp. zmienićadresację w sieci? • Skalujemy system – jakdodaćdrugąinstancjęserwisumagazyn? • Co z utrzymywaniemstarychwersji ?

  15. Zależności • Utrudniają development • Utrudniająwdrażanie • Ograniczająstabilność • Utrudniajązarządzanieiutrzymanie • Niemożnaichwyeliminować ale trzeba je ograniczać ...

  16. Zależności (coupling) w kodzie • Powiązaniewynika z zalezności • Wywołaniefunkcjizalęzyodsygnaturyczylikodwywołujacyzależyoddefinicjifunkcji • Miaryzależności w kodzie • Ca – liczbaklas (funkcji), którezależąoddanejklasy (funkcji) • Ce - liczbaklas (funkcji), odktórychzależydanaklasa (funkcja)

  17. Zależności (coupling) w systemach • Platformowe (protokół, format – interoperability) • Czasowe (żądanie - odpowiedź) • Przestrzenne (adresy – identyfikacja)

  18. Kilkascenariuszy • Zmianaszczegółówimplementacyjnychserwisu • Zmiana (deplyment) komponentuodktóregozależywieleserwisów • Upadekbazy = timeout + utratadanych • Deadlock = rollback transakcji • Upadekserwisu = bladprzywywołaniu

  19. Redukcjapowiązań ... jest złożona Platformowe Czasowe Przestrzenne Afferent Efferent

  20. Jak ? • Ca, Ce – zależności w kodzie, SOA – opieramysięnakontraktach • Platformowe – użycie XML • Przestrzenny – wirtualneendpointy, routowanie (np. potypiekomunikatu) • Czasowe – asynchronicznekomunikaty

  21. Wołaniesynchroniczne • Tradycyjne WS, RPC, COM, WCF (?) SerwisA SerwisB Wołaniesynchroniczne czekanie praca zwrot

  22. Wołanieasynchroniczne • Typowaimplementacjatworzynowywątek, któryczekasynchronicznieiwykonuje callback (w swoimkontekście) • Wątekgłównyitakczekanawyniki (ale możeew. uruchomićkilkazapytań)

  23. Wołaniajednokierunkowe • ASP.NET: oneway • WCF: IsOneWay=True • Kolejki

  24. Wołaniajednokierunkowe • ASP.NET: oneway • WCF: IsOneWay=True • Kolejki Serwis Klient Wysyłaipracujedalej Id • Odpowiedź: • ekspozycja interfejsu przez klienta • pooling w oczekiwaniu na odpowiedź

  25. Podejście request response (synch lubasynch) • Możliweproblemy

  26. Upadekserwera DB App Tx [HTTP] $$ Order Call 1 of 3 Call 2 of 3 Krytyczny update dla Windows Rollback Co siedzieje z zamówieniem ?

  27. Baza jest wyłączona DB App Tx Exception Down Zapis do logu [HTTP] $$ Order Call 1 of 3 Co siedzieje z zamówieniem?

  28. Gdyprzydarzysie deadlock DB App Tx Exception A B Zapis do logu [HTTP] $$ Order Call 1 of 3 Call 2 of 3 Deadlock Co siedzieje z zamówieniem ?

  29. Co zmiania messaging? Tx Q Receive App DB $$ Order Call 1 of 3 Call 2 of 3 Rollback Rollback Zamówieniewraca do kolejki

  30. Wołaniausług vs. messaging A B C D $$ Order Niemożnawycofać [HTTP] Invoke DB WS Rollback Deadlock

  31. Wołaniausług vs. messaging A B C D $$ Order [HTTP] Invoke DB Msg Messaging Gateway WS Przybłędziekomunikatniezostaniewysłany

  32. Wzorzec: Adreszwrotny Oddzielnykanałdlaodpowiedzi Serwis B Serwis A Addreszwrotny Addreszwrotny Kiedyś w przyszłości

  33. Adreszwrotny jest ważny PozwalanarównoważenieobciążeniaIubutworzeniepotokuobsługujacegozlecenia Service B Server 2 Service A Server 1 Service A Server 3 Request 0 Request 1 Response 1

  34. Skorelowane Request/Response W bardziejskomplikowanychprzypadkach id umożliwiaskojarzenie req. i resp. Serwis B Serwis A Ticket (guid) Kiedyś w przyszłości Ticket (guid)

  35. Publish / Subscribe • Zdarzenianapoziomiesystemowym • Wystąpieniezdarzeniaoznaczawysłaniekomunikatu • Obsługazdarzeniaodpowiadaobsłużeniukomunikatu • Zdarzeniapowinnybyćrozpatrywanenapoziomibiznesowym (zmieniłsiestanzamówienia, ktoś ma innyadres, rabtitd.)

  36. Kolejnośćzdarzeń Zaakceptowane Rachunkowosc Sprzedaz Zaakceptowane Opłacone CzekanaOpłacone (którejużbyło) Nie ma zamówienia w DB Komunikatzostaje odrzucony Spedycja

  37. Kolejnośćzdarzeń • Nienależyzakładaćkonkretnejkolejnościnadchodzeniakomunikatów • W przypadkuproblemówmoznazałożyćpróbęponownegoprzetworzeniakomunikatu w przyszłości • Zyski to m.in. Lepszaskalowalność Większaodpornośćnabłędy

  38. Własnośćkomunikatu • Co oznaczawłasność ? • W ReqRespniezabardzowiadomokto jest wlaścicielemformatu/protokolu • W PubSubwłaścicielem jest publikujący

  39. Publish / Subscribe

  40. Subscribe • Abyzredukowaćpowiazaniaprzestrzenne (spatial coupling) niezbędne jest mapowaniemiędzytypemkomunikatuiadresemsewisu • Subskrypcjaoznaczagotowość do obsługidanegotypukomunikatów • rejestracjahandleraoznaczawłaśniesubbskrypcje • (możeprzekładaćsięnawysłaniewewnętrznychkomunikatów w obrębieinfrastruktury) • W takimwypadkuzapamietywany jest adreshandlera.

  41. Subscriber Publisher Subscribe Subscriber Subscriber Subscriber Subscriber

  42. Subscriber Publisher abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh Subscriber Subscriber Subscriber Subscriber

  43. Stylarchitektoniczny 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órwskazówek nt. tego co jest a co nie jest dozwolone.

  44. SOA jest stylemarchitektonicznym • SOA opierasięnakomunikatach • Soazakładaautonomięserwisów • … • Dwanajczestszepodejscia Bus vs. Broker służąredukcjipowiązańprzstrzennych

  45. Stylarchitektoniczny Broker Inicjatorżądausługiodbrokera Broker obsługujepokoleiżądaniaiprzekazuje je dalej Service B Service C Service A Broker Service D

  46. Cechy Broker-a • Broker jest fizycznieodseparowany • Całakomunikacjaodbywasięprzezniego • Broker musiobsłużyćupadkiserwisówiprzekazywaniewiadomości • Broker stanowi “single point of failure” – musibyćwydajnyiniezwyklestabilny • Technologie: BizTalk, CORBA, UDDI

  47. Zalety Broker-a • Dziekiskoncentrowaniukomunikacji w jednymmiejscułatwozarządzaćcentralniekonfiguracją • Łatwe jest uzyskanieinteligentnegoprzekazywaniadanych, tramsformacje, orkiestracjeitd. • Niewymagawieluzmian w serwisach

  48. Wady Broker-a • Naruszaautonomięserwisów • Stanowi “single point of failure” i b. często jest wąskimgardłem

  49. StylarchitektonicznySzyna • Źródłaiujściazdarzeńkomunikująsięzapośrednictwemkanałów w szynie • Źródłoumieszczakomunikaty (zdarzenia) w kanale a ujscie jest notyfikowaneodostępnościkomunikatu Source Sink Bus Sink Source

  50. TopologiaSzyny App App App App Bus.dll Bus.dll Bus.dll Bus.dll App App App App Bus.dll Bus.dll Bus.dll Bus.dll

More Related