© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © 2008 by Jacek Pospychala; made available under the EPL v1.0 Nowe horyzonty: Web/Server-Side/Mobile
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Plan prezentacji Co nam dało RCP? Eclipse w przeglądarce – RAP Eclipse w komórce – eRCP Na serwery! – Equinox
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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)
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Co nam dało RCP? Zarządzanie wtyczkami, punkty rozszerzeń, usługi
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Co nam dało RCP? Biblioteka kontrolek graficznych
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Co nam dało RCP? Framework tworzenia aplikacji
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Co nam dało RCP? Aplikacje użytkownika
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Jak działa RAP? (c.d.) Większość przetwarzania po stronie serwera Po stronie klienta tylko renderowanie strony Efekty: Koszty wydajnościowe Prostota implementacji
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Wygląd aplikacji RAP Duże możliwości definicji wyglądu Własne kontrolki Natywny dostęp do JavaScript (JSNI)
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Wygląd aplikacji RAP (c.d.)
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 DEMO Aplikacja do zarządzania wydatkami Eclipse Business Expanses Reporting Tool Moduły aplikacji: Core – logika aplikacji, niezależna UI – interfejs użytkownika, zależny od RCP API Application – specyficzny dla platformy
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 DEMO
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Obsługiwane platformy MS Windows Windows Mobile 2003 / 2005 / 2006 WinCE 5.0 Nokia S60 Nokia Series 80 Rozważane inne (GTK, Qte,...)
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 DEMO Platforma win32 Nokia E90
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Na serwery! Wspólny mianownik dla platform RCP, RAP, eRCP Eclipse Equinox runtime Zalety OSGi Mechanizmy Equinox/Eclipse
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Mechanizmy Equinox/Eclipse Punkty rozszerzeń (plugin.xml) Deklaratywne powiązania między modułami Lazy-loading Provisioning Security Zadania (Jobs) Adaptery...wiele innych
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Zastosowania US Army: Cyrano Elastyczność Zdalne zarządzanie Rekonfiguracja bez restartowania SkiData Obsługa kolejek górskich Zautomatyzowane parkingi NASA Przetwarzanie obrazów
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 DEMO Equinox z serverem HTTP Dynamiczne wiązanie usług
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 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!
Eclipse: Desktop/Web/Server-Side/Mobile © 2008 by Jacek Pospychala; made available under the EPL v1.0 Więcej informacji RAP eRCP Server-Side Przykładowa aplikacja Expense-Tracking: Kontakt: