280 likes | 414 Views
Jacek.Pospychala@cs.put.poznan.pl. Nowe horyzonty: Web/Server-Side/Mobile. O autorze. Student inżynierii oprogramowania na Politechnice Poznańskiej Pracownik IBM Eclipse Competence Center Zaangażowany w rozwój projektu Eclipse Plug-in Development Environment (PDE)
E N D
Jacek.Pospychala@cs.put.poznan.pl Nowe horyzonty:Web/Server-Side/Mobile
O autorze Student inżynierii oprogramowania na Politechnice Poznańskiej Pracownik IBM Eclipse Competence Center Zaangażowany w rozwój projektu Eclipse Plug-in Development Environment (PDE) Uważny obserwator wielu innych projektów Eclipse, szczególnie JDT, EMF i Equinox Współautor http://eclipser-blog.blogspot.com
Plan prezentacji Co nam dało RCP? Eclipse w przeglądarce – RAP Eclipse w komórce – eRCP Na serwery! – Equinox
Co nam dało RCP? Doświadczenia z IDE i RCP Długa droga do RCP Ewolucja podstawowych koncepcji IDE Rewolucje Wymagania integratorów Stabilna platforma Kompatybilność wsteczna API API Doświadczenia na polu zarządzania API API Tools (Eclipse 3.4)
Co nam dało RCP? • Zarządzanie wtyczkami, punkty rozszerzeń, usługi
Co nam dało RCP? • Biblioteka kontrolek graficznych
Co nam dało RCP? • Framework tworzenia aplikacji
Co nam dało RCP? • Aplikacje użytkownika
Eclipse w przeglądarce: RAP RAP – Rich Ajax Platform RWT – RAP Widget Toolkit Aplikacje internetowe w modelu komponentowym Oparcie na znanym API SWT i RCP Wyświetlanie dzięki JavaScript Cały kod aplikacji w Javie Koncepcyjne podobieństwa do GWT
Jak działa RAP? Renderowanie po stronie przeglądarki Biblioteka qooxdoo API SWT zaimplementowane od podstaw API RCP w dużym stopniu nie zmienione Serwer w modelu OSGi Zarządzanie modułami Punkty rozszerzeń Cykl życia komponentów Różnice RCP a RAP Wielu użytkowników Braki w API (kilka kontrolek, część RCP) Dodatkowe funkcje architektury client-server
Jak działa RAP? (c.d.) Większość przetwarzania po stronie serwera Po stronie klienta tylko renderowanie strony Efekty: Koszty wydajnościowe Prostota implementacji
Wygląd aplikacji RAP Duże możliwości definicji wyglądu Własne kontrolki Natywny dostęp do JavaScript (JSNI)
DEMO Aplikacja do zarządzania wydatkami Eclipse Business Expanses Reporting Tool http://www.eclipse.org/examples/expanses Moduły aplikacji: Core – logika aplikacji, niezależna UI – interfejs użytkownika, zależny od RCP API Application – specyficzny dla platformy
Eclipse w komórce eRCP = embedded RCP Inicjatorzy: IBM, Motorola, Nokia Środowisko RCP zminimalizowane do możliwości małych urządzeń Model komponentowy OSGi Natywne GUI Wiele aplikacji w jednej VM Oszczędność zasobów Współdzielenie usług Obsługiwane urządzenia: Telefony komórkowe Smart-phone PDA
Obsługiwane platformy MS Windows Windows Mobile 2003 / 2005 / 2006 WinCE 5.0 Nokia S60 Nokia Series 80 Rozważane inne (GTK, Qte, ...)
Przykłady zastosowań Anywhere Technologies: Projekt Medany Zbieranie danych medycznych Synchronizacja z aplikacją RCP IBM Lotus Expeditor Nokia: telefony Nokia E90s Sprint:eRCP częścią platformy Sprint - PDA
DEMO Platforma win32 Nokia E90
Na serwery! Wspólny mianownik dla platform RCP, RAP, eRCP Eclipse Equinox runtime Zalety OSGi Mechanizmy Equinox/Eclipse
Zalety OSGi Dynamiczne moduły (wtyczki?) Instalacja i usuwanie modułów Deklaratywne określanie zależności między modułami Wersjonowanie modułów i pakietów Usługi Luźne powiązania Wachlarz standardowych usług Log, HTTP, Preferences, UserAdmin, Position, UPNP... Prostota java -jar org.eclipse.osgi.jar -console
Mechanizmy Equinox/Eclipse Punkty rozszerzeń (plugin.xml) Deklaratywne powiązania między modułami Lazy-loading Provisioning Security Zadania (Jobs) Adaptery ...wiele innych
Wybrane możliwości konfiguracji Equinox w kontenerze serwletów org.eclipse.equinox.servletbridge org.eclipse.equinox.servletbridge.http org.eclipse.equinox.http.servlet [org.eclipse.equinox.http.registry] Equinox z własnym serwerem HTTP org.eclipse.equinox.http.jetty org.eclipse.equinox.http.servlet org.mortbay.jetty org.apache.commons.logging SpringSource Application Platform
SpringSource Application Platform Serwer komponentowy OSGi „out of the box” Integracja z Tomcat Rozszerzenia do specyfikacji OSGi Import-Bundle Import-Library Repozytorium popularnych modułów
Zastosowania US Army: Cyrano Elastyczność Zdalne zarządzanie Rekonfiguracja bez restartowania SkiData Obsługa kolejek górskich Zautomatyzowane parkingi NASA Przetwarzanie obrazów
DEMO Equinox z serverem HTTP Dynamiczne wiązanie usług
Dlaczego się przejmować? Jednakowe API na wszystkich platformach = mniej nauki = mniejsze koszty utrzymania GUI tworzone na różne platformy przy pomocy tych samych narzędzi Modułowa budowa aplikacji – łatwe i spójne zarządzanie Duże re-użycie kodu W przykładowej aplikacji – 90% kodu!
Więcej informacji RAP http://www.eclipse.org/rap/ http://www.eclipse.org/rap/demos eRCP http://www.eclipse.org/ercp Server-Side http://www.eclipse.org/equinox-portal/ Przykładowa aplikacja Expense-Tracking: http://www.eclipse.org/examples/ http://www.eclipse.org/examples/expenses Kontakt: jacek.pospychala@cs.put.poznan.pl