Inżynieria oprogramowania- Grupa dra inż. Leszka Grocholskiego II UWr 2009/2010 Aleksandra Kloc, Adam Grycner, Mateusz Łyczek Wasza-fota.pl Projekt struktury systemu Historia zmian tego dokumentu Data Wersja Autor Opis zmian 2009/11/16 1.0 Zespół Utworzenie dokumentu 2009/11/16 1.0 Adam Grycner Sprzęt 2009/11/20 1.1 Adam Grycner Oprogramowanie, narzędzia, struktura Tablica 1: Historia zmian
SPIS TREŚCI SPIS TREŚCI Spis treści 1 Sprzęt 2 1.1 Serwerybazydanych... 2 1.2 SerweryWWW... 2 1.3 Inne... 2 1.4 Podsumowanie... 3 2 Oprogramowanie systemowe 3 3 Narzędzia programistyczne 3 4 Struktura logiczna 4 1
1 SPRZĘT 1 Sprzęt Serwis Wasza-fota.pl, ze względu na planowany duży ruch, musi być ulokowany na najwyższej jakości serwerach. Jednostka centralna zepweni komfort przeglądania naszego portalu, a serwery baz danych pozwoli umieścić wystarczającą ilość zdjęć. 1.1 Serwery bazy danych Naszym celem jest takie zorganizowanie serwerów baz danych, aby zapewnić użytkownikom szybkie wykonywanie transakcji(efektywność), działanie serwisu przez 90% czasu(niezawodność) oraz odporność na jakiekolwiek próby kradzieży informacji(bezpieczeństwo). Koniecznością jest zastosowanie rozproszonego modelu serwerów baz danych. W tym modelu będziemy stosować zapis większością(jeden ze sposobów zorganizowania rozproszonej bazy danych). Baza danych powinna być bardzo pojemna. Aby zapewnić odpowiednią pojemność, każdy serwer będzie miał po cztery tera-bajtowe dyski. Ponadto wszystkie serwery będą wyposażonewprocesoryotaktowaniu3ghzorazpamięcioperacyjneorozmiarze16gb.oto przykładowy sprzęt, który można użyć w naszych serwerach: 8xXeonDPE542Quadcore4x4,2GHz 16GBDDR5-42ECCRegistered 8x1420GBSAS420.000obr./min. Według naszego zespołu takie parametry oraz rozproszoność serwerów baz danych może zagwarantować przedstawione w dokumencie wizji cechy produktu. 1.2 SerweryWWW Serwer WWW nie będzie, aż tak obciążony jak serwery baz danych, jednakże na tej części będzie spoczywało najbardziej odpowiedzialne zadanie. Serwer WWW z tego względu musi być wielce niezawodny. Aby zapewnić praktycznie stałe połączenie między naszym serwisem, a użytkownikami, zostaną użyte trzy jednostki robocze, w tym dwie zapasowe. Każda ze stacji będzie podłączona do sieci internetowej przy pomocy łącza o przepustowości 42 gigabitów. 1.3 Inne Oprócz serwerów WWW i serwerów bazy danych, musimy zakupić serwery usług oraz serwery monitorujące. Serwery usług będą odpowiedzialne za czynności typu wystawianie faktury, realizowanie opłat itd. Serwery usług zostały wydzielone, jako osobna logiczna jednostka z powodów bezpieczeństwa. Operacje finansowe powinny być wykonywane na serwerze o podwyższonym rygorze bezpieczeństwa. 2
1.4 Podsumowanie 3 NARZĘDZIA PROGRAMISTYCZNE Serwery monitorujące będą odpowiedzialne za śledzenie ruchu na naszym serwisie. Będą odpowiednio reagowały na zwiększającą się ilość użytkowników. 1.4 Podsumowanie Będę teraz chciał przedstawić dlaczego taka architektura serwerów pozwoli nam zrealizować przedstawione w dokumencie wizji cechy. 1. Możliwość rozbudowania Dzięki zastosowaniu rozproszonej struktury serwerów, nasz serwis będzie łatwo skalowalny. Nie będzie problemem dołączenie do systemu kolejnej jednostki roboczej. 2. Efektywność Przedstawiona powyżej prędkość dostępu do dysku i rozmiar pamięci RAM gwarantuje, że operacja jednostkowa(pojedyncze zapytanie wykonane przez klienta) nie będzie wykonana wolniej niż 0,05 sekundy. Podłączenie serwerów www za pomocą łącz o przepustowości 42 GB zapewni każdemu użytkownikowi prędkość wysyłania 1 Mbit/s oraz prędkość pobierania 100 Mbit/s. 3. Niezawodność Rozproszoność bazy oraz zastosowanie zapasowych serwerów WWW pozwoli na dostęp do serwisu przez co najmniej 90% czas w ciągu roku. Jedynym momentem, w którym serwis nie będzie dostępny będzie aktualizacja oprogramowania. Awaria serwera nie będzie miała wpływu na działanie serwisu. 2 Oprogramowaniesystemowe Nasze serwery będą miały zainstalowany najbardziej niezawodny system operacyjny- Linux. Wykorzystamy jedną z jego dystrybucji o nazwie Debian. Oprócz tego do zarządzania ruchem wykorzystamy Cisco 2800 SP SERVICES Feature Pack, który zwiększy niezawodność, bezpieczeństwo, a przede wszystkim efektywność naszego serwisu. Jako system zarządzania bazami danych bedzie użyty Oracle Enterprise Edition, który też pozwoli spełnić postawione wcześniej wymagania niefunkcjonalne. 3 Narzędziaprogramistyczne Przy tworzeniu naszego projektu wykorzystamy następujące narzędzia wspomagające rozwój projektu m.in.: Google code- system kontroli wersji, który ułatwia komunikację zespołu. Dzięki temu narzędziu mamy pewność, że programiści będą pracowali zawsze nad najnowszą wersją projektu. Microsoft project- program do zarządzania projektami 3
4 STRUKTURA LOGICZNA Netbeans- zintegrowane środowisko programistyczne phpmyadmin- narzędzie służące do łatwego zarządzania bazami danych DIA- oprogramowanie do tworzenia diagramów ER Umbrello- narzędzie do tworzenia diagramów UML Bugzilla- system kontroli błędów Glade- narzędzie do tworzenia interfejsów QtDesigner- oprogramowanie wspomagające tworzenie interfejsów Firefox- przeglądarka internetowa potrzebna do wykonania testów poprawności portalu L A TEX-systemskładudrukarskiego Kile-edytordo L A TEX Acrobat Reader- przeglądarka dokumentów pdf dvipdf-narzędziedozamianyplikówwformaciedvinaformatpdf 4 Strukturalogiczna Nasz serwis będzie miał strukturę Model-Widok-Kontroler zwaną też modelem trójwartswowym. Składa się on z trzech logicznych części Interfejs użytkownika opisany w dokumencie- TODO Logika aplikacji opisana w dokumencie- TODO Bazadanychopisanawdokumencie-TODO Diagram architektury systemu został przedtswiony na poniższym rysunku. 4
4 STRUKTURA LOGICZNA Interfejs użytkownika będzie się składał z następujących części: zarządzanie profilu użytkownika FAQ wyszukiwarka zdjęć i imprez skrzynka na wiadomości prywatne okno galerii zarządzanie odbitkami(fotograf) zarządzanie cenami(fotograf) zarządzanie efektami(fotograf) zarządzanie pakietami(fotograf) zarządzanie zleceniami(fotograf) 5