Aplikacje mobilne w zastosowaniach medycznych Projekt inżynierski Aplikacje mobilne w zastosowaniach medycznych Promotor: Dr inż. Roman Pindur Wykonawcy: Grzegorz Huber, Bartosz Jaworski, Rafał Stański, Mateusz Zająkała
Co się za tym kryje? System wspomagania decyzji Urządzenia mobilne (palmtopy, komórki) Dostęp online Zarządzanie bazą wiedzy
Zastosowania? Medycyna - wspomaganie diagnozy pacjenta - klasyfikacja dolegliwości - dobór środków farmaceutycznych … ale też inne dziedziny w wiedzy, w których decyzje można uzależnić od zbioru zdefiniowanych parametrów wejściowych i zbioru reguł - zastosowania przemysłowe - zastosowania techniczne System ma być łatwy w dostosowaniu do potrzeb użytkowników
Technologie J2EE (Enterprise) J2ME (urządzenia mobilne) JBoss (serwer aplikacji) Hibernate (utrwalanie) WebServices (komunikacja) XUL (GUI oparte na XMLu)
Dlaczego właśnie te? J2EE to standard enterprise Technologie open source (darmowe!) JAVA gwarantuje przenośność i wieloplatformowość WebServices – niezależność modułów, dobrze zdefiniowany interfejs, otwartość Dostępność narzędzi i pomocniczych bibliotek, frameworków
Architektura systemu
Moduły Serwer aplikacji - „centrum dowodzenia”, moduł centralny - do niego kierowane zapytania - zarządzanie bazą wiedzy - udostępnia interfejsy poprzez WS - musi być odpowiednio zabezpieczony Panel administracyjny - dodawanie, modyfikowanie i usuwanie danych - zarządzanie użytkownikami - przeznaczony dla administratora systemu
Moduły (2) Klient mobilny - GUI - przeglądanie dostępnych „problemów” w bazie wiedzy - wprowadzanie zapytań i prezentacja dezycji - „kastomizowalny” interfejs Superkomputer, klaster - tu przebiegają obliczenia - oddzielenie obliczeń od reszty systemu - zapytania asynchroniczne - rozproszenie obliczeń = przyspieszenie ?
Bezpieczeństwo Dane poufne (medyczne) Logowanie, dostęp do zasobów Zrzucamy ciężar na J2EE ;) JAAS (Java Authentication and Authorization Service)
Implementacja
Implementacja modułów Serwer aplikacji – JBoss - EJB (2.1? 3.0?) – SessionBeans - WebServices (Axis 1.2, JBossWS, Attachments) - Hibernate 3.0 – utrwalanie (O/R mapping) - Baza danych: FireBird (dialekt podobny do Oracle) Panel administracyjny – Servlet - Tomcat 5.5 (JBossAS) - FreeMarker
Implementacja modułów (2) Klient mobilny - XUL – Thinlet - WS-I BP (standard WS) - WebSphere Micro Edition JVM (pod PalmOS) Klaster obliczeniowy - MessageDrivenBeans - JMS (Java Message Service) - Clustering, load-balancing
Jak nam idzie? Idzie nam dobrze ;) Zakończone prace nad modułami (EJB2.1) Działające WebService’y Funkcjonalny klient mobilny tak samo panel administracyjny
Co jeszcze musimy zrobic? Rozbudować panel administracyjny Dopracowac XUL („kastomizowalność”) Postawić klaster (algorytmy!) Zadbać o bezpieczeństwo systemu Przejść na EJB 3.0 (?)
Z czym są trudności? ;( Open source - brak dokumentacji! - częste zmiany wersji Technologie WS - załączniki a JBoss - „XML Hell” - brak „interoperability” Reprezentacja danych - odziedziczony po starszych kolegach system Problemy pozatechnologiczne - jak by się tu zabrać do pracy?
Z czego korzystamy? Eclipse 3.1 JBoss IDE JWSDP (Java WebServices Developer’s Pack) GoalProject (dane ISF) Omondo (UML)
Co dalej? W tym semestrze system zostanie poszerzony jEngine – silnik integracji aplikacji – HL7 SVG – Scalable Vector Graphics
Pytania? Więcej szczegółów w następnej prezentacji…