Sprawozdanie

Transkrypt

Sprawozdanie
Informatyka, studia dzienne, mgr II st.
Semestr II
Programowanie Aplikacji Internetowych
Prowadzący: dr inż. Marcin Kwapisz, mgr inż. Wiktor Wandachowicz
Mateusz Grotek 186816
Tomasz Król 186833
Michał Łysik 186840
Paweł Tarasiuk 186875
2013/2014
poniedziałek, 14:15
Sprawozdanie - etap 4.
Warstwa usług, logika biznesowa
W aktywnej bazie danych przechowywane są obiekty biznesowe. Baza zarządza także
logiką biznesową. Zawiera reguły które umożliwiają, lub uniemożliwiają dodawanie,
modyfikację i usuwanie obiektów biznesowych. Baza waliduje wchodzące do niej dane i
zapewnia ich integralność. Centrala firmy posiada bazę główną. Każdy oddział posiada bazę
oddziałową. Baza oddziałowa jest kopią fragmentu bazy głównej dotyczącej jednego oddziału.
Synchronizacja odbywa się automatycznie co określony czas. Synchronizacją baz zajmuje się
konektor.
Konektor udostępnia dane z bazy w postaci webservice'ów. Zajmuje się także synchronizacją
między bazami oddziałowymi a centralną bazą danych. Centrala firmy posiada konektor główny,
a każdy oddział własny konektor oddziałowy. Dodatkowo konektor oddziałowy może podczas
przetwarzania zapytania SOAP od aplikacji wykonać (jeśli jest taka potrzeba) dodatkowe
zapytanie SOAP do konektora centrali. Dzieje się tak jeżeli odbywa się zapytanie o dane
trzymane tylko w centrali, a nie w oddziałowej bazie danych.
Aplikacja komunikuje się z konektorem i wysyła do niego zapytania o dane. Jest jedna aplikacja
centrali i każdy oddział posiada własne aplikacje oddziałowe. Aplikacja przetwarza dane
otrzymane z zapytań do postaci kodu wysyłanego do przeglądarki użytkownika.
Synchronizacja danych między centralą a oddziałem
Synchronizacja jest wywoływana co jakiś czas przez wywołanie WebService'u o nazwie
synchronize w oddziale. Wymagało to utworzenia kilku dodatkowych funkcji w WebService
centrali, które odpowiadają za synchronizację.
Procedurę synchronizacji można opisać następująco:
1. Oddział łączy się z centralą i wysyła wszystkie swoje dane. Załóżmy, że dane centrala
umieszcza w tabelach interfejsowych, które są czyszczone po każdej synchronizacji (np.
tzw. tabele tymczasowe jak w Oracle itp.)
2. Centrala najpierw zajmuje się rekordami Person. Synchronizuje je ona z uwzględnieniem
pola changed wg powyższej instrukcji bazując na PESEL. Jak widać id nie musi być
takie samo i nie ma znaczenia.
3. Gdy już mamy zsynchronizowane osoby zajmujemy się rekordami Department. W danych przesłanych znajdujemy rekord Department z pustym superior (załóżmy, że
nazywa się "Oddział w Łodzi"). Znajdujemy w tabeli w centrali rekord z pustym superior
(załóżmy, że nazywa się "Dział Główny"). Wśród dzieci (w sensie drzewa) działu
głównego znajdujemy rekord o nazwie zgodnej z nazwą oddziału (czyli "Oddział w Łodzi"). Wyrzucamy z tabeli w centrali wszystkie rekordy Department, które znajdują
się poniżej (w sensie drzewa) rekordu "Oddział w Łodzi", oraz sam ten rekord.Bierzemy
rekord "Oddział w Łodzi" z tabeli interfejsowej i przenosimy do tabeli w centrali (z
nowym id). Następnie rekurencyjnie schodzimy w dół drzewa działów i analogicznie
przenosimy odpowiednie rekordy (z nowym id). Jak przenosimy każdy z działów, to od
razu przenosimy też przypisane do niego stanowiska (rekordy Position) z nowym id, ale
zmieniamy w nich pola person, aby pasowały do id osób w bazie centrali, które może
być różne niż id w oddziale (czyli id a tabeli tymczasowej).
4. Funkcja zwraca do oddziału swoje rekordy:
a. Osób (Person) w których w centrali były changed=prawda, a w oddziale
changed=fałsz (innych nie musi, by oddział już ma poprawne te rekordy)
b. Nową wersję rekordów PositionType
5. Oddział synchronizuje zwrócone rekordy osób (na podstawie ich PESEL). Następnie
czyści tablice z rodzajami staniowisk i wstawia ich nową wersję otrzymaną z centrali.
Interfejs użytkownika aplikacji klienckich, prezentacja aplikacji
Interfejs graficzny centrali
Zarządzanie działami
Zarządzanie stanowiskami
Zarządzanie pracownikami
Interfejs graficzny oddziału
Zarządzanie działami wewnątrz oddziału
Zarządzanie stanowiskami w oddziale
Zarządzanie pracownikami oddziału
Zarządzanie typami stanowisk w oddziale