24
Opis architektury systemu „ISOiWUT” Michal Lewowski Piotr Skowron Michal Matczuk Piotr Wygocki 4 czerwca 2006 1

Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Opis architektury systemu „ISOiWUT”

Michał Lewowski Piotr Skowron Michał Matczuk Piotr Wygocki

4 czerwca 2006

1

Page 2: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Spis tresci1 Wprowadzenie 3

1.1 Zakres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Ograniczenia i załozenia 3

3 Warstwy systemu 43.1 Motywacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 Architektura systemu 5

5 Przypadki uzycia 95.1 Dodawac oferty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105.2 Wyszukiwac oferty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.3 Rezerwowac oferte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.4 Potwierdzac rezerwacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.5 Motywacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6 Wdrozenie projektu 21

7 Dane 22

8 Historia zmian 23

2

Page 3: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

1 WprowadzenieCelem niniejszego dokumentu jest opisanie budowy systemu ISOiWUT oraz omówienie róz-nych aspektów realizacji tego projektu. Dokument ten ma w załozeniu pokrywac i wyjasniacwszystkie kluczowe decyzje architektoniczne podjete podczas projektowania tego systemu.

1.1 ZakresW skład niniejszego dokumentu wchodza:

• omówienie logicznego podziału systemu na warstwy

• omówienie architektury systemu

• opis realizacji głównych przypadków uzycia od strony systemu

• omówienie przechowywanych danych oraz sposobu ich gromadzenia

• opis wdrozenia systemu

2 Ograniczenia i załozeniaW załozeniach projektu zakładamy, ze projekt bedzie tworzony w jezykach :

• PHP 4.2

• JavaScript

Zakładamy prace systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania bazadanych PostgreSQL wersja 8.1.4 z zainstalowanym systemem operacyjnym unix (freeBSD).

3

Page 4: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

3 Warstwy systemuPodział na warstwy systemu prezentuje ponizszy diagram:

System jest podzielony na 5 warstw :

• warstwa kliencka - widok

Warstwa odpowiedzialna za wizualizacje działania systemu. Działa w połaczeniu z prze-gladarka zainstalowana po stronie uzytkownika.

• warstwa prezentera

Logika, która odpowiada za poprawne obsługiwanie zadan uzytkownika.

• warstwa integracji

Fasada odpowiedzialna za wykonywanie zadan wartwy prezentera odnoszacych sie do da-nych.

• warstwa modelu

Warstwa odpowiedzialna za logiczne modelowanie danych w systemie.

• warstwa bazy danych

Warstwa odpowiedzialna za fizyczne przechowywanie danych.

3.1 MotywacjaPowyzszy podział na warstwy jest dosc standardowy i sprawdził sie w wielu analogicznych pro-jektach, a ponadto dobrze modeluje logiczna dekompozycje systemu ISOiWUT. Wybrane narze-dzia do tworzenia systemu umozliwiaja odzwierciedlenie warstw w projekcie.

4

Page 5: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

4 Architektura systemuSystem ISOiWUT bedzie zaprojektowany zgodnie z ponizszym diagramem klas :

5

Page 6: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Klasa widok ( z intuicyjnym dziedziczeniem odpowiadajacym pakietom Modelu ) odpowiadaza graficzne przedstawienie pracy systemu uzytkownikowi. Klasa Prezenter ( z intuicyjnym dzie-dziczeniem ) reaguje na akcje uzytkownika Klasa Fasada jest odpowiedzialna za komunikowa-nie Prezentera z Modelem. Prezenter wywołuje odpowiednia metode obiektu tej klasy, a Fasadamartwi sie, jak od strony danych ( Modelu ) obsłuzyc te prosbe. Klasy modelu reprezentujakonkretne dane w systemie.

Omówimy krótko główne pakiety modelu :

• Forum

6

Page 7: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Forum składa sie z tematów, a kazdy temat zawiera posty, czyli pojedyncze wypowiedzijednego uzytkownika. Ponizszy diagram prezentuje dokładniej zaleznosci w systemie. Naanalogicznej zasadzie działaja pozostałe moduły.

• System uzytkowników

Klasy z tego pakietu reprezentuja uzytkownika w systemie ISOiWUT oraz pamietaja jegodane, preferencje. Klasa Sesja reprezentuje pojedyncze logowanie uzytkownika w syste-mie.

• System opisów podrózy

Ten pakiet reprezentuje klasy zwiazane z modułem opisów podrózy na stronie. Kazdymopis podrózy moze miec wiele komentarzy.

7

Page 8: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

• System prywatnych wiadomosci

Klasa wiadomosc odpowiada jednej wiadomosci przesłanej miedzy dwoma uzytkowni-kami.

• System FAQ

Klasy reprezentuja pojedyncze pytanie i odpowiedz zawarta w module FAQ.

• System zarzadzania ofertami

Oferty w systemie reprezentowane sa jako obiekty klasy Oferta. Kazda oferta moze zo-stac zarezerwowana ( odpowiada temu obiekt Rezerwacja ). Rezerwacja pociaga za sobaobowiazek potwierdzenia ( Potwierdzenie ). W systemie zarzadzania ofertami istnieje tezobiekt Wyszukiwarka, która odpowiada za wyszukiwanie ofert przez Uzytkownika o za-danych kryteriach i przekazanie ich w odpowiedniej formie, do pytajacych obiektów.

• System obsługi błedów

Klasa bład reprezentuje błedy w systemie. Kazdy bład ma swój kod i jest powiazany zkonkretnym komunikatem, który jest w razie koniecznosci prezentowany uzytkownikowi.

8

Page 9: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

5 Przypadki uzyciaOpisane ponizej przypadki uzycia sa równiez omówione w dokumencie Use-Case.

9

Page 10: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

5.1 Dodawac ofertyPopatrzmy na diagram stanów tego przypadku uzycia :

Diagram przebiegu ułatwia zrozumienie mechanizmu działania całego systemu, który jestpodobny w swojej idei w kazdym kolejnym przypadku. Interakcje z uzytkownikiem obsługujePrezenter ( w tym przypadku jego podklasa - PrezenterOferty ), po otrzymaniu prosby o obsługeformularza. Tworzy on wtedy obiekt Oferta, który przechowuje dane formularza i pomaga Pre-zenterowi zwalidowac poprawnosc danych. Nastepnie Prezenter wyciaga potrzebne mu jeszczeinformacje, czyli sprawdza czy uzytkownik jest rzeczywiscie zalogowany i jesli tak, to pobierajego id. O ile po drodze nie wystapiły zadne błedy, Prezenter zleca teraz Fasadzie dodanie odpo-wiedniej oferty.

10

Page 11: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Dodawanie ofert : interfejs i prezenter

11

Page 12: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Zobaczmy teraz bardziej szczegółowo, co dzieje sie w Modelu w tym przypadku uzycia.Fasada otrzymała zlecenie dodania oferty i wie, ze dane wprowadzone przez uzytkownika sa juzpoprawne. Tworzy wiec obiekt Oferta, który reprezentuje dana oferte i ten obiekt zapisuje siez bazy danych tworzac odpowiednie zapytanie SQL i wywołujac je na obiekcie Baza Danych,który jest typowa, prosta nakładka na baze danych :

Dodawanie ofert : model

12

Page 13: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

5.2 Wyszukiwac ofertyDiagram stanów dla przypadku wyszukiwanie oferty :

Ten przypadek uzycia jest realizowany analogicznie od poprzedniego jezeli chodzi o ideeprzesyłania komunikatów miedzy obiektami. Ponownie Prezenter korzysta z Fasady by wycia-gnac interesujace go dane z Modelu.

13

Page 14: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Wyszukiwac oferte : interfejs i prezenter

14

Page 15: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Diagram tego, co dzieje sie w Modelu podczas wyszukiwania ofert :

15

Page 16: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

5.3 Rezerwowac oferteRezerwowac oferte : interfejs i prezenter

16

Page 17: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Diagram tego, co dzieje sie w Modelu podczas rezerwowania oferty. Warto zwrócic uwage,ze zarezerwowanie powoduje automatyczne wysłanie powiadomienia do uzytkownika, któregooferte zarezerwowano.

17

Page 18: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Diagram komunikacji dla rezerwowania oferty:

18

Page 19: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

5.4 Potwierdzac rezerwacje

Klient po zarezerwowaniu oferty dostaje wiadomosc poczta elektroniczna z prosba o potwie-rzenie rezerwacji. Wiadomosc zawiera dwa hiperlinki. Jeden którego otworzenie powoduje po-twierdzenie rezerwacji, oraz drugi którego otworzenie powoduje usuniecie rezerwacji. Podczasrezerwacji obiekt Sesja sprawdza czy uzytkonik jest zalogowany i czy jest tym uzytkownikiemktóry zarezerwował oferte, nastepnie jesli uzytkonik ma prawo by potwierdzic rezerwacje wyko-nywana jest metoda potwierdzRezerwacje Fasady.

Potwierdzac rezerwacje : interfejs i prezenter

19

Page 20: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

20

Page 21: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

Diagram tego, co robi model podczas potwierdzania rezerwacji.

5.5 MotywacjeW projekcie jest uzyty typowy dla obiektowych aplikacji podział na model widok oraz prezen-ter. Do generowania widoku bedziemy uzywac systemu wzorców Smarty, pozwala on w łatwe iszybkie dopasowanie wygladu aplikacji do naszych potrzeb, ponadto jego integracja z aplikacjanie sprawia problemów. Prezenter nie odwołuje sie bezposrednio do modelu, kontakt z modelemjest realizowany za pomoca obiektu Fasada co sprawi ze, łatwiejsze stanie sie wprowadzaniezmian w modelu oraz dodawanie nowych funkcjonalnosci. Do komunikacji z baza danych uzy-wamy obiektu BazaDanych jego rola jest łaczenie sie z baza danych i wykonywanie zapytan.Dzieki temu uzyskujemy łatwosc dostosowania aplikacji do innych systemów baz danych, po-nadto poprawiamy bezpieczenstwo oraz zapewniamy wieksza wygode przy pisaniu kodu.

21

Page 22: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

6 Wdrozenie projektu

Wdrozenie projektu polega w głównej mierze na odpowiedniej konfiguracji komputerów be-dacych serwerami (działajacych pod freeBSD).

Na jednym serwerze systemu zostanie zainstalowany system zarzadzania baza danych Post-greSQL 8.1.4 oraz serwer WWW Apache 2.2. Serwer zostanie połaczony z internetem łaczemszerokopasmowym. Zostanie wykupiony dla niego stały adres DNS oraz domena. Serwer WWWbedzie odpowiadał na zadania przegladarek internetowych (po HTTP i HTTPS) w komputerachklienckich. Dalsza czesc wdrozenia zajma testy opisane szczegółowiej w oddzielnym dokumen-cie : Plan testów.

22

Page 23: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

7 DanePonizszy diagram przedstawia encje w bazie danych:

23

Page 24: Opis architektury systemu „ISOiWUT”sroka/archiwalne/2006io/...Zakładamy prace˛ systemu na serwerze Apache w wersji 2.2 z systemem zarzadzania˛ baza˛ danych PostgreSQL wersja

8 Historia zmian

30 maja 2006r. - pierwsza wersja dokumentu31 maja 2006r. - dodano diagramy w przypadkach uzycia

24