Skalowalność rozwiązań Javowych w zastosowaniach komercyjnych Java4People Prezenter: Dawid Gruszczyński 1
Skalowalność wykorzystania Javy na przykładzie projektu spisu powszechnego 2011 (CENSUS) - Architektura systemu - Moduł synchronizacji - Statystyki - Bezpieczeństwo danych Remote Device Management – przykład zastosowania dla technologii mobilnych (RDM) Zastosowane technologie w projekcie mLearning Agenda 2
Przykład serwera komunikacyjnego z wykorzystaniem technologii Java CENSUS Serwer komunikacyjny: JBoss 5.1 Serwer bazy danych: Oracle Udział serwera komunikacyjnego: Obchód przed spisowy Spis rolny Obchód przed spisowy Spis ludności i mieszkań 3
CENSUS - Architektura systemu RDM – Remote Device Management SyncService – moduł synchronizacji UpdateService – moduł aktualizacji oprogramowania urządzeń mobilnych MapService – serwis odpowiadający za aktualizacje map SerwerSMS Kannel – moduł odpowiedzialny za zarządzanie wiadomościami SMS SKOM – Serwer komunikacyjny JBoss 5.1 4
SyncService – moduł odpowiedzialny za komunikację serwer – urządzenie. CENSUS - Moduł synchronizacji XML Serwer komunikacyjny Walidacja Transformacja Dodatkowe operacje Przesyłanie ADYS – Serwer GUS Deszyfracja 5 SOAP
CENSUS - Statystyki pracy systemu 6
7
CENSUS – Obciążenie systemu w warunkach dużego stresu 8
CENSUS - Statystyki Spis rolny: rachmistrzów Obchód przed spisowy: rachmistrzów synchronizacji dziennie Spis ludności i mieszkań: 6 milionów mieszkań = 6 milionów ankiet Statystyki ilości pracujących rachmistrzów. Stan na godzinę 09:00 dnia 13 kwietnia Ilość udanych synchronizacji od początku spisu (1 kwietnia): Ilość rachmistrzów, którzy wykonali przynajmniej jedną synchronizację od początku spisu: Ilość rachmistrzów, którzy wykonali przynajmniej jedną synchronizację w dniu dzisiejszym:
CENSUS - Bezpieczeństwo danych DB RC4 XML Serwer synchronizacji Lokalny plik bazy danych szyfrowany jest algorytmem RC4 Klucz – RSA Plik synchronizacji RC4 Klucz – zaszyfrowany jest algorytmem RSA Serwer odszyfrowuje nagłówek kluczem prywatnym i w ten sposób otrzymuje klucz do odszyfrowania treści przesyłanej wiadomości 10
CENSUS - wnioski Obciążenie: Brak skokowych wahań pamięci przy zwiększaniu obciążenia Poziom obciążenia procesora na stałym poziomie Praca serwerów nieprzerwanie trwa od 1 kwietnia Lessons learned: -Precyzyjne konfigurowanie JBossów, odpowiednie szacowanie spodziewanego ruchu -Skalowalność/szacowanie przyrostu logów -Potencjalne wąskie gardło systemu -Możliwość kontroli przeciążenia 11
Remote Device Management – przykład zastosowania dla technologii mobilnych (RDM) RDM jest systemem pozwalającym na zdalne zarządzanie urządzeniami mobilnymi. Odgrywa kluczową rolę podczas NSP 2011 – pozwala na zdalną konfigurację terminala. Funkcjonalności obsługiwane przez RDM: Reset Termstats Cab install Message Start/Kill proc Send signal Get config Down/up/rem file List Dir Pobieranie lokalizacji urządzenia na podstawie pozycji GPS 12
RDM - Mechanizm synchronizacji danych DB RDM WS komenda 1. WebService dodaje komendę do kolejki (DB) 2. Cykliczne sprawdzanie oczekujących zadań 3. Utworzenie kontekstu wątku dla urządzenia 4. Nawiązania połączenia z urządzeniem 5. Przekazanie komendy do urządzenia 6. Aktualizacja statusu w bazie danych 13
RDM - Proces przepływu komendy 14
RDM - Architektura 15
Jest to system do prowadzenia kursów dla użytkowników urządzeń mobilnych Wspomaga pracę rachmistrzów GUS System posiada rozbudowany moduł WWW do zarządzania kursami Moduł oceniania Moduł raportowania 16 mLearning
mLearning – architektura systemu 17
Zastosowane technologie w projekcie mLearning Serwer aplikacji – JBoss 5.1 JPA/Hibernate EJB3.0 Baza danych – Oracle Moduł raportowania – Jasper Report Server Zaawansowany moduł synchronizacji Aplikacja mobilna zrealizowana na platformie.Net (C#) Obsługa standardu SCORM 18
Brak problemów wydajnościowych (konfiguracyjnych) System działa zgodnie z założeniami mLearning - podsumowanie 19
Proszę o pytania… 20 Dziękuję za uwagę