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