Gotowe platformy tak, ale Michał Kosiedowski Maciej Bogdański
Plan prezentacji Nasz przykład Za i przeciw Jak to zrobiliśmy? Czy warto było?
NASZ PRZYKŁAD
Onkologiczne Forum Edukacyjne Portal edukacyjny Użytkownicy: lekarze onkolodzy i hematolodzy Redakcja: Health Data Management Sponsor: Amgen Realizacja i utrzymanie: PCSS Czas realizacji: czerwiec 2007 kwiecień 2008
OFE: wymagania Zarządzanie treścią (np. artykuły, wiadomości, podcasty) + niestandardowe aplikacje (eczasopismo, kalkulatory kliniczne, kalendarz zjazdów) Przeniesienie bazy użytkowników i treści z istniejącego serwisu Znacznie poszerzony zestaw informacji o użytkownikach Krótki czas na uruchomienie pierwszej wersji (wrzesień 2007) Niski budżet projektu Możliwość wdrożenia podobnych portali w przyszłości
www.ofe.edu.pl
ZA I PRZECIW
Liferay - za Gotowe, zintegrowane środowisko Zestaw gotowych portletów: zarządzanie treścią zarządzanie użytkownikami administracja portalem Oparty na standardach (JSR 168, JSR 268, JSR 314, JSR 170, WSRP, JBI ) Współpraca z różnorodnymi systemami baz danych i serwerami aplikacyjnymi Integracja z rozwiązaniami SSO (np. CAS) Zmiana wyglądu oparta na motywach
Liferay - za Darmowy i open source Duża społeczność używająca Liferaya Wdrożenia w dużych firmach (np. Lufthansa, Benetton) Dynamiczny rozwój platformy
Liferay - przeciw Ograniczenie możliwościami platformy Więcej danych o użytkowniku = dopisanie własnego kodu Integracja z usługami Liferaya nie zawsze jest łatwa (classloading!) Im więcej zmian w kodzie Liferaya, tym trudniejsza migracja do nowszej wersji Brak polskiej wersji językowej Utrudniona analiza problemów i błędów
WYBRALIBYŚCIE TĘ DROGĘ?
JAK TO ZROBILIŚMY?
Zarządzanie treścią
Zarządzanie treścią
Zarządzanie treścią
OFE: eczasopismo Biblioteka artykułów z możliwością tworzenia kursów Obsługa pełnego cyklu życia artykułu Artykuł posiada: treść autora recenzenta pytania testowe oceny czytelników Rozwiązanie: połączenie własnej aplikacji z funkcjonalnością systemu zarządzania treścią Liferaya mechanizm obsługi ról uczestników cyklu wydawniczego oparty na wewnętrznym mechanizmie Liferaya
OFE: eczasopismo
OFE: kalendarz zjazdów Kalendarz wydarzeń Każdy użytkownik portalu ma możliwość powiązania z wydarzeniami dowolnych materiałów (prezentacje, postery, zdjęcia, ) Rozwiązanie: połączenie własnej aplikacji z funkcjonalnością biblioteki dokumentów Liferaya
OFE: kalendarz zjazdów
OFE:Baza użytkowników Użytkownicy w Liferayu mają predefiniowany zestaw atrybutów Baza użytkowników OFE: użytkownicy są lekarzami o wielu specjalnościach wymagany atrybut: poprawny numer PWZ = identyfikator użytkownika zestaw znaczników zgody Rozwiązanie własny portlet do obsługi rejestracji i zarządzania użytkownikami powiązanie z bazą użytkowników Liferaya
OFE: Rejestracja użytkownika
OFE: Zarządzanie użytkownikami
OFE: przenoszenie bazy użytkowników
Integracja z funkcjonalnością Liferaya Funkcjonalność dostępna w formie usług Usługi Liferaya i nasze aplikacje obsługiwane przez różne classloadery: dostęp tylko do classloadera głównego i własnego wyjątek ClassNotFoundException Rozwiązanie: dodanie listenera zmuszającego dodanie instancji wymaganych klas do współdzielonej puli instancji klas (instance pool)
Polska wersja językowa
Modyfikacje a migracja Punkty integracji: ścisła integracja z usługami Liferaya dodanie listenera dwie modyfikacje kodu Liferaya (walidator identyfikatora użytkownika i mechanizm przekierowywania po zalogowaniu) polska wersja językowa Przy ewentualnej migracji trzeba o nich pamiętać!
Debuggowanie błędów Analiza błędów platformy i wykorzystywanych przez nią narzędzi nie jest w ogólności trywialna Przykład: klient: Mamy problemy z dotarciem do plików -> czytelnia -> standardy polskie. Nie można ściągnąć wszystkich plików oprócz pierwszego. Pojawia się okienko z internal server error. analiza problemu: błąd biblioteki Jackrabbit wykorzystywanej przez Bibliotekę Dokumentów bliżej nieznana przyczyna powstania błędu usunięcie skutków: cały dzień roboczy
CZY WARTO BYŁO?
Czy warto? Warto, ale: godzimy się na koszt ewentualnej migracji wymagania nieznane od początku projektu mogą spowodować problemy większy koszt debuggowania i poprawiania błędów nie dla prostych aplikacji
To wszystko, dziękujemy za uwagę