MAS dr. Inż. Mariusz Trzaska Wykład 1 Prjektwanie i mdelwanie architektury systemu
Tematyka wykładu Infrmacje Mariusz Trzaska: Mdelwanie i implementacja systemów infrmatycznych. Rk 2008/11. Wersja elektrniczna (ebk działający na Windws, ios, Andrid, urządzeniach mbilnych raz czytnikach) w księgarni internetwej Virtual.pl: wersja PDF i epub. Wydawnictw PJWSTK. Strn 299. ISBN 978-83-89244-71-3: sklep PJWSTK. Fragmenty: http://www.mtrzaska.cm/mas-ksiazka Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 2
Literatura c.d. Infrmacje (2) Książki mdelwaniu, UML, biektwści; Książki dtyczące prgramwania: Java, C#, C++. Zaliczenie Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 3
Zagadnienia Wprwadzenie Prblemy i ich rzwiązanie Architektura - widki Różne rdzaje architektur Mainframe, Cienki klient, Dwuwarstwwa, Trójwarstwwa Architektura trójwarstwwa Mdel View Cntrller Pdsumwanie Wykrzystan: wykłady Sftware Architecture autrstwa Chandika Mendis (University f Mratuwa) artykuł Java SE Applicatin Design With MVC autrstwa Rbert Eckstein Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 4
Architektura Klucz d sprawienia by skmplikwane systemy stały się mżliwe d zbudwania. Efektywne zarządzanie twrzeniem skmplikwanych systemów Łatwiejsze kierwanie dużymi grupami pracwników Zwiększne pnwne użycie (reuse) Lepsza spójnść i integracja w ramach systemu Realizacja strategii bizneswych Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 5
Architektura dlaczeg? Nie mżesz wybudwać drapacza chmur w ten sam spsób c budy dla psa Bch, SD 99 Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 6
Architektura ptencjalne prblemy Dekmpzycja systemu Jak pdzielić system na mniejsze kawałki? Czy uwzględniliśmy wszystkie elementy? Czy pszczególne elementy pasują d siebie? Kntrla i zarządzanie Prblemy zrównleglenia Własnści bejmujące wiele aspektów systemu Kmprmisy Zapewnienie Pnwneg użycia Redukcji ksztów Krótkieg czasu d uzyskania gtweg rzwiązania (time t market) Integralnści systemu Rzszerzalnści Pielęgnwalnści Zgdnści z celami bizneswymi Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 7
Architektura - definicja Architektura bejmuje pis struktury systemu składająceg się z: Kmpnentów lub blków, Ich właściwści widcznych na zewnątrz, Zależnści pmiędzy nimi. Na pdstawie Bass, Clements, and Kazman. Sftware Architecture in Practice, Addisn-Wesley 1997 Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 8
Dekmpzycja systemu Odpwiedź na prblemy ze złżnścią Intelektualną Związaną z zarządzaniem Jak pdzielić system na mniejsze elementy? Enkapsulacja Luźne wiązanie Przejrzyste interfejsy i usługi Czy mamy wszystkie niezbędne elementy? Czy zapewniliśmy spełnienie wymagań Funkcjnalnych Niefunkcjnalnych Czy elementy pasują d siebie? Dbrze zdefiniwane interfejsy Rygrystyczne wytyczne Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 9
Decyzje architektniczne - zakres Na architekturę ma wpływ wiele decyzji, które nie mgą być pdjęte bez kmprmisów związanych z gólnymi celami systemu. Decyzje pwinny być pdejmwane z perspektywy całeg systemu lub nawet jeszcze szerzej. Decyzja, która mże być pdjęta krzystając z węższej perspektywy pwinna być przekazana właściwej jednstce lub grupie rbczej (architektura minimalistyczna; minimalist architecture) Decyzje architektniczne pwinny się skupiać na ważnych bszarach dużym wpływie na resztę systemu, pzstając w zgdzie z bizneswym celem (strategią) Cele strategiczne Ważne usługi Cechy systemu jak całści Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 10
Architektura - widki Kncepcyjny Diagram, Identyfikacja kmpnentów i przydział dpwiedzialnści Lgiczny Uaktualniny diagram kncepcyjny z interfejsami specyfikujący kmpnenty Prjekt współpracy kmpnentów, mechanizmów i prtkłów płączeń Wyknawczy (executin) Prcesy (diagramy interakcji) Przydział działających instancji kmpnentów dla prcesów, Ich współpraca Wykrzystanie zasbów Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 11
Widk kncepcyjny Identyfikuje wyskpzimwe kmpnenty z uwzględnieniem właściwej dekmpzycji. Zależnści, Spsby współpracy, Odpwiedzialnści, Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 12
Widk lgiczny Definiuje interfejsy i specyfikację kmpnentów: Precyzyjnie, Jednznacznie Określa dkładne spsby: interakcji, współpracy Pwinien zapewniać w miarę niezależny spsób pracy dla pszczególnych prgramistów. Twrzy dkładne diagramy architektury systemu Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 13
Uwzględnia: Widk wyknawczy fizyczny (implementacyjny) mdel Wdrżenie Odzwierciedlenie prcesów w działającym systemie Skalwalnść Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 14
Mainframe (systemy spadkwe) Nie jest t współczesny klient/serwer, ale są pewne pdbieństwa Użytkwnik łączy się z kmputerem centralnym za pmcą prsteg terminala, który przechwytuje plecenia klawiatury i przesyła je d jednstki centralnej Całe przetwarzanie dbywa się w kmputerze centralnym Mżna wykrzystywać różne platfrmy sprzętwe i systemwe Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 15
Architektury współdzielenia plików Nie jest t współczesny klient/serwer. Pliki były udstępniane przez serwer i pbierane na stacje rbczą. Następnie całe przetwarzanie (włączając w t lgikę bizneswą i dane) dbywał się na stacji rbczej Takie pdejście działa w miarę dbrze jeżeli bjętść danych nie jest duża. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 16
Klient - Serwer Pdejście wprwadzne w celu zastąpienia serwera plików. Krzystając z (relacyjneg) systemu zarządzania bazą danych (DBMS), plecenia (kwerendy, ang. queries) użytkwnika mgą być wyknywane natychmiast. Redukcja ruchu sieciweg pnieważ przesyłam tylk dane będące dpwiedzią na kwerendę (a nie wszystkie ptrzebne d bliczenia/ustalenia wyniku). Ułatwienie współpracy wielu użytkwników dzięki graficznemu interfejswi dstępu d danych. Wykrzystanie zdalneg wywływania prcedur (Remte Prcedure Calls - RPCs) lub języka zapytań (Standard Query Language - SQL) d kmunikacji pmiędzy klientem, a serwerem. Jedna z najbardziej (najbardziej ppularna?) architektur wykrzystywanych współcześnie. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 17
Architektura cienkieg klienta (thin client) Pdbna d klient-serwer Klient jest maszyną bardz słabych parametrach Całe przetwarzanie dbywa się na serwerze Nie zdbyła wielkiej ppularnści Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 18
Architektura dwuwarstwwa Składa się z trzech kmpnentów rzmieszcznych w dwóch warstwach: Klient (interfejs użytkwnika), Serwer (dane, lgika bizneswa) Interfejs użytkwnika + część funkcjnalnści Zarządzanie bazą danych + (większa) część funkcjnalnści Interfejs dstępu d aplikacji jest zlkalizwany na kmputerze użytkwnika, a funkcjnalnść bazdanwa na serwerze (zwykle maszyna duż mcniejsza). Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 19
Architektura dwuwarstwwa (2) Zarządzanie przetwarzaniem jest pdzielne pmiędzy śrdwisk użytkwnika, a śrdwisk systemu zarządzania bazą danych. Serwer bazy danych udstępnia: Dane, Prcedury, Wyzwalacze (ang. triggers), Spsób implementacji zarządzaniem danych i usługami przez dstawcę BD granicza elastycznść i wybór daneg systemu DBMS Limitwana zdlnść d przenszenia systemu z jedneg śrdwiska bazdanweg d inneg. Zakres funkcji Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 20
Architektura trójwarstwwa Główna zmiana w stsunku d architektury dwuwarstwwej: Ddan warstwę pśredniczącą (Middleware) pmiędzy interfejsem użytkwnika raz bazą danych Wiele spsbów implementacji raz zadań dla warstwy pśredniczącej: Mnitrwanie transakcji, Wymiana kmunikatów pmiędzy pzstałymi warstwami, Serwer aplikacji (Lgika bizneswa) Ddatkwe mżliwści Klejkwanie, Uruchamianie aplikacji, Specjalna prpagacja kmunikatów. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 21
Mnitrwanie transakcji Zdlnść d uaktualniania wielu różnych DBMS ów w czasie jednej (lgicznej) transakcji Przezrczysta praca z różnymi źródłami danych: Pliki, Architektura trójwarstwwa (2) Relacyjne DBMS, Obiektwe DBMS, Nadawanie (raz mdyfikwanie) prirytetów transakcjm Bezpieczeństw Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 22
Architektura trójwarstwwa (3) Wymiana kmunikatów Przetwarzanie asynchrniczne Krzyści, Prblemy Przetwarzanie synchrniczne Przezrczysta kmunikacja pmiędzy aplikacjami hetergenicznymi Inteligentne zarządzanie ruchem: Prirytety, Klejkwanie, Autmatyczne pwiadamianie zdarzeniach Separuje d prblemów związanych z kmunikacją Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 23
Serwer aplikacji Aplikacja jest uruchamiana na współdzielnym kmputerze, zamiast na kliencie Przetwarzanie GUI dbywa się pza serwerem Obsługa: Lgiki bizneswej, Dstępu d danych Pprawa bezpieczeństwa (klient nie ma bezpśrednieg dstępu d aplikacji) Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 24
Lepsza skalwalnść Niższe kszty pielęgnacji aplikacji na jednym serwerze niż na wielu kmputerach klienckich Przykłady: Apache Tmcat JBss Serwer aplikacji J2EE Plne, Zpe Serwer aplikacji (2) Websphere Applicatin Server Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 25
Typwe kmpnenty: Bezpieczeństw Płączenie d baz(y) danych Dstęp d zasbów Serwer aplikacji (3) Interfejsy d kmpnentów zewnętrznych Zarządzanie transakcjami Kmpnenty sterwane zdarzeniami (lub reagujące na zdarzenia) Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 26
Rzprszna aplikacja wielwarstwwa Aplikacja 1 Aplikacja 2 Aplikacja kliencka Dynamiczne strny HTML Kmputer kliencki Strny JSP Enterprise Beans Enterprise Beans Serwer aplikacyjny Baza danych Baza danych Serwer baz danych Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 27
Architektura trójwarstwwa typu ORB (Object Request Brker) Systemy typu klient/serwer wykrzystujące technlgie wspierające rzprszne biekty CORBA, RMI, DCOM, itd. Wspierają współpracę rzprsznych biektów, umżliwiając użytkwnikm budwę systemów przez łączenie biektów pchdzących z różnych źródeł (i wyknanych w różnych technlgiach) Szczegóły implementacyjne wykrzystywanych biektów są ukryte przed użytkwnikiem. Prgramista musi tylk znać interfejs pisujący dstęp d biektu Mim wielu zalet wydaje się, że nie są zbyt ppularne (?) Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 28
ORB Najważniejsze funkcje (usługi) technlgii ORB: Definiwanie interfejsów, Lkalizacja i ewentualna aktywacja zdalnych biektów, Kmunikacja pmiędzy biektami. Usługa lkalizująca ORB Ustanwienie płączenia Usługa aktywująca Aplikacja kliencka Kmunikacja Usługa zdalna (biekt) Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 29
ORB (2) Inne funkcje: Bezpieczeństw, Transakcje, Wyszukiwanie, Wiele spsbów realizacji ORB: Implementacja w kliencie, Oddzielne prcesy Część systemu peracyjneg czy serwera aplikacji Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 30
.NET Framewrk - Windws 2003 Serwer jak serwer aplikacji Enterprise Services Cnnectin Pling Distributed Transactins Security Messaging (MSMQ) Management/M nitring Źródł: MS Windws 2003 Technical Overview f Applicatin Services, MS Crpratin Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 31
Szkielet aplikacji Spring Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 32
Architektura warstwwa Wyzwania związane z twrzeniem dużych systemów Ogrmne ilści kdu źródłweg (setki tysięcy lub miliny linii) Wyskie skmplikwanie interakcji pmiędzy kmpnentami Rzległe wykrzystanie gtwych elemntów ( z półki ) Prgramwanie w wielu językach Duża liczba prgramistów (częst są t setki sób rzprsznych gegraficznie) Różne spsby pracy z danymi (w tym zapewnianie trwałści): Pliki, Bazy relacyjna, Bazy biektwe, Rzprszenie kmpnentów na różne platfrmy sprzętwe Rzbudwana wielzadaniwść Warstwwe diagramy są dbrym spsbem na pdzielenie dużych systemów na zarządzalne kawałki Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 33
Architektura warstwwa (2) Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 34
Diagram architektury warstwwej dla.net (przykład) Warstwa Prezentacji zapewnia (graficzny) interfejs użytkwnika. Przeważnie wykrzystuje Windws Frms lub ASP.NET. Warstwa Bizneswa realizuje bizneswą funkcjnalnść aplikacji. Realizwane jest t za pmcą jedneg z języków udstępnianych przez platfrmę.net. Stwrzne kmpnenty mgą być płączne z Micrsft.NET Enterprise Services i/lub z Micrsft BizTalk Server. Warstwa Danych zapewnia dstęp d zewnętrznych źródeł danych takich jak bazy danych (np. MS Access, MS SQL Server) czy pliki XML. Źródł: MSDN Patterns and Practices Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 35
Mdel View Cntrller Wzrzec prjektwy(?) pracwany w 1979 przez Trygve Reenskaug w Xerx Pal Alt Research Center. Bardz mcn wykrzystywany przy prgramwaniu z wykrzystaniem GUI na platfrmie Java. Jest pewną mdyfikacją architektury trójwarstwwej. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 36
Mdel View Cntrller (2) Składa się z trzech elementów (warstw): Mdel (mdel) - dane Widk (view) - wizualizacja Kntrler (cntrler) - zarządzanie Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 37
Mdel Reprezentacja danych (w tym metadanych), Definicja zasad rządzących dstępem d nich, Właściwa mdyfikacja danych (z uwzględnieniem np. pwiadamiania zmianach) Częst jest też pewneg rdzaju dwzrwaniem prcesów ze świata rzeczywisteg Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 38
Widk (view) Wizualizacja zawartści mdelu (danych). Dkładnie kreśla jak dane mają zstać wyświetlne. Musi właściwie reagwać na zmiany mdelu (danych). Technlgia push widk rejestruje się w mdelu celem trzymywania pwiadmień zmianach, Technlgia pull widk sam dpwiada za dpytywanie mdelu. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 39
Kntrler (cntrller) Tłumaczy działania użytkwnika na akcje, które dzwierciedlane będą w mdelu. W zależnści d rdzaju aplikacji: Aplikacja desktpwa: działaniami użytkwnika będą kliknięcia myszką lub wybry pzycji z menu, Aplikacja krpracyjna dstępna przez www: dpwiednie żądania HTTP GET raz POST Kntrler mże tez utwrzyć nwy widk Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 40
MVC - diagram Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 41
MVC przykład dla Javy SE 6 Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 42
MVC przykład dla Javy SE 6 (2) P utwrzeniu mdelu, widku raz kntrlera: Widk rejestruje się w mdelu celem trzymywania pwiadmień zmianach (push). Mdel nie jest świadmy istnienia kntrlera. Kntrler jest łączny z widkiem (krzystając z listener a). Kntrler trzymuje referencję pkazującą na mdel. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 43
MVC przykład dla Javy SE 6 (3) Gdy użytkwnik wykna jakąś aktywnść: Widk rzpznaje aktywnść GUI, np. kliknięcie na przycisku Widk wywłuje dpwiednią metdę z kntrlera Kntrler łączy się z mdelem ewentualnie mdyfikując jeg stan. Jeżeli mdel zstał zmdyfikwany, infrmuje tym widk(i) (krzystając z dpwiednich listener ów). Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 44
MVC nwe pdejście Różnice w stsunku d pprzedniej wersji Pwiadmienia zmianach stanu w mdelu są przekazywane za pmcą kntrlera. Czyli, kntrler kntrluje przepływ danych pmiędzy widkiem, a mdelem Takie pdejście pzwala na lepsze ddzielenie mdelu d widku. Klasyczna architektura trójwarstwwa? http://java.sun.cm/develper/technicalarticles/javase/mvc/index.html Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 45
Pdsumwanie Właściwie zaprjektwana architektura znacząc ułatwia (umżliwia) budwę dużych systemów kmputerwych Obecnie najppularniejsza jest architektura trójwarstwwa Interfejs użytkwnika, Lgika bizneswa, Źródł danych. Istnieje wiele gtwych rzwiązań wspierających twrzenie aplikacji w takiej architekturze. Mdelwanie i Analiza Systemów Infrmacyjnych (MAS), wykład 1 46