Systemy Wbudowane Dr inż. Platforma Java dla systemów wbudowanych maf 1
Platforma Java 2 dla SW Java VM J2SE Java 2 Standard Edition Podstawowe środowisko rozwojowe i uruchomieniowe aplikacji i apletów dla urządzeń typu PC Linux, Macintosh, Solaris, Windows i inne oraz SW Sparc, IA32, AMD64/EM64T (Solaris, Linux, Windows) Power PC (Linux, XP-embedded) ARM, MIPS (Linux, Windows CE) J2ME Java 2 Micro Edition Środowisko dla aplikacji dla systemów wbudowanych (przemysłowych i powszechnego użytku) Ograniczone zasoby Zmniejszona funkcjonalność Niezawodność oprogramowania Przeznaczenie: urządzenia informacyjne z funkcjami komunikacji Appl. VM API Mobilne urządzenia informacyjne (telefonia mobilna, PDA,...) Stacjonarne urządzenia informacyjne (set-top-boxy, terminale w handlu detalicznym, systemy telematyki pojazdowej,...) VM OS Hardware maf 2
Platforma Java 2 dla SW Platformy Java 2 Architektura Model działania aplikacji Komponenty platformy: konfiguracje, profile i pakiety opcjonalne VM + biblioteki klas API Optymalizacja dla klas i kategorii urządzeń m.in. ze względu na: pamięć moc obliczeniowa podzespoły we/wy Java 2 Enterprise Edition Java 2 Standard Edition CDC CLDC Java 2 Micro Editiom Java Card HotSpot JVM KVM Card VM maf 3
Platforma Java 2 dla SW Konfiguracja (ang. Configuration) Element platformy Javy dla klasy urządzeń o podobnych zasobach sprzętowych Definiuje język programowania Javy, wymagane własności maszyny wirtualnej i minimalny zbiór bibliotek Javy dla konkretnej klasy urządzeń Określa składowe: Maszyna wirtualna Rdzeniowe biblioteki klas Obecnie 2 konfiguracje standardowe J2ME CDC (Connected Device Configuration) Klasa urządzeń o większych zasobach CLDC (Connected Limited Device Configuration) Klasa urządzeń o mniejszych zasobach bazowe API Optional packages Profile(s) Configuration Libs VM Host Operating System maf 4
Profil (ang. Profile) Platforma Java 2 dla SW Element platforma Javy definiujący kompletne środowisko programowe dla urządzeń danej kategorii Uwzględnia specyficzne własności urządzeń np. możliwości interfejsu, specyficzne funkcje (np. sieciowe), itp. Określa model aplikacji cykl życia Definiuje specyfikację API (bibliotekę klas) Tworzony na bazie konkretnej konfiguracji Zawężenie specyfikacji konfiguracji Rozszerzenie funkcjonalności o biblioteki specyficzne dla danej kategorii urządzeń Profile standardowe CDC Foundation Profile Personal Basis Profile Personal Profile Inny przykład: profile MHP Optional packages Profile(s) Configuration Libs VM Host Operating System maf 5
Platforma Java 2 dla SW Pakiety opcjonalne Te elementy Java, które mogą, ale nie muszą być dostępne w danym urządzeniu Definiują dodatkowe API specyficzne dla danej technologii Usługi multimedialne, bezprzewodowe, dostępu do danych, webowe, itp. Np.: JDBC (Java Database Connectivity) Opt. Pack. Location API for Java ME Alternatywne GUI - - HAVi (Home A-V Interoperability) - - AGUI (Advanced GUI) Optional packages Profile(s) Configuration Libs VM Host Operating System maf 6
Platforma Java 2 dla SW Komponenty platformy Java 2 Przykład środowiska wykonawczego Javy dla SW konfiguracja + profile + pakiety opcjonalne = JRE CDC CLDC Foundation Profile Personal Basis Profile Personal Profile inne profile... Relacja CDC, CLDC J2SE Klasy spoza J2SE Przestrzeń nazw spoza java.* J2SE RMI Opt. Pack. JDBC Opt. Pack. inne pakiety... CDC CLDC JRE poza java.* maf 7
Platforma Java 2 dla SW Implementacja Java VM w systemach wbudowanych Warstwa aplikacyjna Oprogramowanie systemowe Sprzętowo Natywne wykonywanie Java bytecode ajile Systems aj-100, aj-200 J2ME/CLDC, J2ME/CDC Foundation Profile Application Layer Java VMMariusz Software Layer Hardware Layer Application Layer Java VM Software Layer Hardware Layer Application Layer Software Layer Fraś Java Dev. Drivers Java Processor Hardware Layer maf 8
Konfiguracje J2ME Konfiguracja CLDC Sprzęt (CLDC 1.0) (JSR30) 16/32 bitowe Min. 160 kb RAM 128kB pam. nieulotnej + 32kB pamięci ulotnej Niezbyt wydajny procesor (16MHz/50MHz) CLDC 1.1 (JSR139) Min. 192KB RAM: 160kB pam. nieulotnej + 32kB pamięci ulotnej API Część klas (nie całość): java.lang.*, java.util.*, java.io.* javax.microedition.io Funkcje sieciowe (networking) interfejsy, bez impl. protokołów Lokalizacja Mechanizmy zabezpieczeń (security) Nie ma: Obsługi interfejsu Mechanizmy instalacji i zarządzania cyklem aplikacji Obsługi zdarzeń maf 9
Konfiguracje J2ME Konfiguracja CLDC KVM (Kilobyte VM) Usunięte mechanizmy zasobożerne Brak: Loaderów klas definiowanych przez użytkownika Grup wątków i wątków demonów Finalizacji instancji klas Wyjątków asynchronicznych Mniejszy zbiór Error Classes CLDC 1.1 dodano m.in.: Wsparcie dla operacje zmiennoprzecinkowych Rozszerzenia dla klas wątków Część klas zaktualizowano dla większej kompatybilności z J2SE 40 80 KB CLDC HotSpot Implementation Podstawowe profile MIDP (Mobile Information Device Profile) 1.0, 2.0, 2.1, 3.0 IMP (Information Module Profile) Optional Packages MIDP/IMP CLDC KVM maf 10
Konfiguracja CLDC Konfiguracje J2ME CLDC HotSpot Implementation Implementacja 1.1.2 Polepszona wydajność Ahead-of-time (AOT) In-place execution (obrazy wykonywalne aplikacji) Redukcja pauz (poprawa kompilacji i garbage collection) Wielozadaniowość Integracja z Java hardware acceleration na procesory ARM (Jazelle) Podstawowe profile MIDP (Mobile Information Device Profile) 1.0, 2.0, 2.1, 3.0 IMP (Information Module Profile) IMP-NG (IMP Next Generation) maf 11
Środowisko Technologie Java ME Java Card JTWI (Java Technology for the Wireless Industry)... Java for Mobile Devices MSA (Mobile Service Architecture) Na bazie CLDC Connected Limited Device Configuration) MIDP (Mobile Information Device Profile) WMA (Wireless Messaging API), MMA (Mobile Media API), Wymagania Wyświetlacz: 128x128x16bit Stos dostępny dla aplikacji min. 1MB (powinno 2MB) Funkcje sieciowe (określone przez biblioteki) maf 12
Java for Mobile Devices MSA Mobile Service Architecture Moduły Obowiązkowe Warunkowe Podzbiór MSA 8 modułów Stos MSA 8 modułów podzbioru MSA + pozostałe maf 13
Java for Mobile Devices MSA moduły podstawowe Specyfikacja JSR 139 Connected Limited Device Configuration JSR 118 Mobile Information Device Profile (MIDP) Konfiguracja architektury Podstawowe API aplikacji Opis JSR 135 Mobile Media API (MMAPI) Obsługa mediów (audio, wideo) JSR 184 Mobile 3D Graphics API for J2ME JSR 226 Scalable 2D Vector Graphics API for J2ME Grafika 3D Grafika wektorowa 2D JSR 205 Wireless Messaging API 2.0 Obsługa SMS i MMS JSR 82 Java APIs for Bluetooth JSR 75 PDA Optional Packages for the J2ME Platform Bluetooth API OBEX API - wymiana różnych obiektów (obrazy, pliki, ) Dostęp do systemu plików Dostęp do Personal Information Management maf 14
MSA moduły pozostałe Specyfikacja JSR 238 Mobile Internationalization API JSR 172 J2ME Web Services Specification JSR 177 Security and Trust Services API for J2ME JSR 179 Location API for J2ME JSR 180 SIP API for J2ME JSR 211 Content Handler API JSR 234 Advanced Multimedia Supplements Java for Mobile Devices Lokalizacja aplikacji Opis Parsowanie XML i dostęp do podst. usług Webowych (Web Services JAX RPC) Usługi kryptograficzne, PKI, obsługa Smart Cards Technologia dostępu do informacji o lokalizacji Protokół nawiązywania połączeń multimedialnych opartych o IP JSR 229 Payment API Uruchamianie aplikacji na podstawie typu kontentu Zaawansowana obsługa multimediów Mechanizmy obsługi płatności maf 15
Java for Mobile Devices Przykłady urządzeń wspierających MSA Nokia 5310 XpressMusic MSA subset device + JSR172 (WS) + JSR211 CH Nokia 6301 MSA subset device + kilka JSR Sony Ericsson K850 Pełne MSA + kilka JSR (np. JSR256 Mobile Sensor API) maf 16
Java Embedded 2 środowiska na bazie CDC (J2 SE Emb.) oraz CLDC (J2 ME Emb.) Dla systemów zamkniętych Specjalizowane JVM Oprogramowanie w pamięci Flash (nie można zmieniać aplikacji) Kod zawiera tylko to co niezbędne maf 17
Konfiguracja CDC Urządzenia Konfiguracje J2ME 32 bitowe procesory większej mocy 2-16MB RAM 2,5MB ROM Zastosowania: fixed purpouse Industrial automation Field service automation Office equipment mobile stationary Telematics VoIP Personal mobile devices Set-Top- Boxes general purpouse maf 18
Konfiguracje J2ME Konfiguracja CDC API java.lang bez Compiler i UknownException java.util prawie cały java.net UDP (bez socketów i HTTP) java.io prawie cały java.text częściowo java.security częściowo java.microedition.io Nie ma obsługi interfejsu (!) CVM standardowa JVM Przystosowana do mniejszych zasobów urządzeń CDC HotSpot CDC nie implementuje pełnej funkcjonalności J2SE resztę funkcjonalności zapewniają: Foundation Profile Personal Basis Profile Personal Profile Optional Packages Personal Basis Profile Foundation Profile CDC CVM Personal FraśProfile Mariusz maf 19
Profile CDC Profile standardowe Foundation Profile - dla aplikacji wymagających pełnej implementacji wirtualnej maszyny (w tym J2SE API) Rdzeniowa biblioteka Javy: java.lang - pełne java.lang.* z J2SE java.util - pełne wsparcie dla reszty narzędzi J2SE (np. zip, timer) java.net - gniazda TCP/IP oraz protokół HTTP java.io - pełne java.io.* z J2SE java.security.text - pełne java.text.* z J2SE java.security - dodaje podpisywanie kodu oraz certyfikaty Nie ma obsługi interfejsu Biblioteka CLDC 1.1 Personal Basis Profile Foundation Profile Wsparcie dla Xlet ów (java.microedition.xlet) Lekkie komponenty GUI maf 20
Profile CDC Profile standardowe (c.d.) Personal Profile Foundation Profile Wsparcie dla Applet ów i Xlet ów Prawie pełne wsparcie AWT Pakiety opcjonalne dla profili CDC RMI (Remote Method Invocation) Opt. Pack. JDBC (Java Database Connectivity) Opt. Pack. Security Opt. Pack. JCE (Java Cryptography Extention) JSSE (Java Secure Socket Extention) JAAS (Java Authentication & Authorization Service) AGUI (Advanced GUI) Opt. Pack. Zmodyfikowana implementacja Swing Technologia Java 2D WS (Web Services) Opt. Pack. maf 21
DTV (Digital TV) Poprawa jakości emisji Telewizja cyfrowa Zwiększona niezawodność oraz odporność na zakłócenia Lepsze wykorzystanie pasma przesyłowego w danym kanale większa liczba programów Skupienie usług w multipakiety w jednym medium rozsiewczym telewizja cyfrowa, radio, Internet Dodatkowe usługi (w tym z usługi interaktywne), takie jak: automatyczne wyszukiwanie programów; EPG czyli Elektroniczny Przewodnik po Programach dający możliwość sprawdzenia kolejnych pozycji programowych z uwzględnieniem jej stanu zaawansowania; wiele kanałów dźwiękowych z różnymi wersjami językowymi i możliwością wyboru wersji językowej oglądanego programu; kodowanie kanałów w celu ograniczenia kręgu odbiorców (telewizja płatna) programy i usługi interaktywne; kontrola rodzicielska, maf 22
Telewizja cyfrowa DVB (Digital Video Broadcasting) DVB-T (ang. Terrestrial) naziemna telewizja cyfrowa DVB-S (ang. Satellite) satelitarna telewizja cyfrowa DVB-C (ang. Cable) kablowa telewizja cyfrowa DVB-H (ang. Handheld) komórkowa telewizja cyfrowa maf 23
Akceptacja standardu DVB maf 24
Model usług Architektura DVB DTV Interaktywność lokalna bez kanału zwrotnego Interaktywność jednokierunkowa odbiór informacji od użytkownika Interaktywność dwukierunkowa dwukierunkowa komunikacja maf 25
Set-Top-Box (STB) Wymagania sprzętowe Urządzenia dla TV cyfrowej Procesor [MHz] RAM [MB] ROM [MB] Podstawowy STB 30 1-2 1-2 Typowy odb. firmowy (OpenTV) 50 4-8 4 EB Profile 80-130 8-16 4 IB Profile 80-130 8-16 8 IA Profile 150-200 16-32 16 maf 26
Oprogramowanie dla urządzeń TV cyfrowej Oprogramowanie pośredniczące (ang. Middleware) Warstwa pomiędzy oprogramowaniem systemowym (RTOS) a warstwą aplikacji Dostarcza API Platformy systemowe Firmowe: OpenTV Core (OpenTV) MediaHighway (Canal+) Microsoft TV (Microsoft) PowerTV NDS Core (NDS) Otwarte MHP (Multimedia Home Platform) OCAP (Open Cable Application Platform) MHEG (Multimedia and Hypermedia Experts Group) Java TV maf 27
Standard MHP Akceptacja standardu Europa: naziemna DTV - EU, satelitarna i kablowa - różnie Świat, 2005 rok maf 28
Standard MHP MHP Multimedia Home Platform Otwarta platforma wykonawcza dla cyfrowej i interaktywnej TV Standard oprogramowania w telewizji cyfrowej Oparta na Java VM API dla Javy (DVB-J) i HTML (DVB-HTML) Zestaw testów kompatybilności Standardy MHP 1.0.x (1.0.3) pierwotny MHP 1.1.x (1.1.3) rozszerzenia 1.0.x: DVB-HTML, klienckie usługi Internetowe (profil Internetowy, HD Video,... ) MHP 1.2.x (1.2.2) dalsze rozszerzenia: profil IPTV, aplikacje niezwiązane, adaptery funkcji spoza middleware GEM (Globaly Extended MHP) Podzbiór MHP Baza dla standardów platform DTV (np. OCAP, ACAP) PVR for MHP dodaje funkcjonalność PVR dla platformy MHP maf 29
Enhanced Broadcast Profile Podstawowy profil MHP Systemy rozsiewcze bez kanału zwrotnego Apl. interaktywne lokalnie Interactive Broadcast Profile Nadzbiór EBP Dwukierunkowy kanał zwrotny do nadawcy Internet Access Profile Nadzbiór IBP Aplikacje rezydentne z funkcjami dostępu do usług Internetowych Profile MHP IAP IBP EBP + Java API i protokoły dla kanału zwrotnego (HTTP 1.0, DNS, HTTPS) opcja: HTTP 1.1, DSMCC-UU DVB Java APIs Podstawowe media: (MPEG, GIF, JPEG, PNG, etc.) Broadcast transport protocols MHP 1.0.x + Java Internet client APIs + Web browser & email client + DVB-HTML (opcja) + DVB-HTML (opcja) + pobieranie aplikacji przez HTTP + inne + Trwałe składowanie aplikacji + Smart card APIs MHP 1.1.x maf 30
Aplikacje platformy MHP Specyfika środowiska wykonawczego Niezawodność i odporność aplikacji Ograniczone zasoby środowiska pamięć, CPU brak myszki, klawiatury ogranicz. liczba klawiszy funkcyjnych ograniczone pasmo transportowe dla aplikacji (256 Kb/s) Możliwość utraty zasobów Możliwość niezależnego wstrzymania aplikacji Specyficzny interfejs wyjściowy wsp. kształtu pikseli 1:1 różny wsp. kształtu wyświetlacza (4:3, 16:9, 14:9) overscan (5%) przeplot warstwy wyświetlanych elementów zestrajanie ognisko dla jednego komponentu graficznego w danej chwili Wspomaganie dla aplikacji przechowywanych lokalnie oraz ściąganych z kanału transportowego maf 31
Typy aplikacji MHP Aplikacje platformy MHP Aplikacje powiązane z serwisem (service-bound app.) Związane z serwisem (kanałem TV), grupą serwisów lub tzw. zdarzeniem serwisu (emitowanym programem) Aplikacje niepowiązane (unbound app.) Usługi ponadserwisowe (np. aplikacje typu EPG) Nie w starym MHP tam: sygnalizowanie aplikacji każdemu serwisowi w sieci Aplikacje osadzane (stored app.) Lokalnie składowane Szybciej uruchamiane Aplikacje wbudowane (built-in app.) Składowane lokalnie w procesie produkcji Można wybrać do uruchomienia Aplikacje systemowe (system app.) Niewidoczne dla użytkownika nie można wybrać do uruchomienia Aplikacje natywne (native app.) maf 32
Aplikacje platformy MHP Parametry uruchomieniowe aplikacji MHP Niezbędne informacja dla STB aby uruchomić aplikację Nazwa i identyfikator aplikacji Wersja aplikacji Status aplikacji (sposób startu) Priorytet aplikacji Nazwa klasy głównej aplikacji Lokalizacja plików aplikacji Lokalizacja pewnych zasobów dla aplikacji ID aplikacji = ID organizacji + ID wewnętrzny aplikacji Status aplikacji Status Kod Znaczenie AUTOSTART PRESENT DESTROY KILL PREFETCH REMOTE 0x01 0x02 0x03 0x04 0x05 0x06 Start automatyczny. Po usunięciu można uruchomić ręcznie. Start manualny. Po zamianie z AUTOSTART lub PRESENT warunkowe zakończenie aplikacji. Bezwarunkowe zakończenie aplikacji. DVB-HTML przygotowanie aplikacji do stanu Active Aplikacja niedostępna w danym serwisie. Będzie dostępna po wybraniu odpowiedniego serwisu maf 33
Aplikacje platformy MHP DVB-J API Core Java restrykcje i pominięcia podzbiór DVB: JDK 1.1.8, elementy 1.2, elementy pjava 1.2 HAVi Level 2 GUI interfejs graficzny JMF 1.0 API obsługa strumieni medialnych (audio, video,...) Java TV 1.0 API podzbiór DVB pakiety adresujące różne elementy itv (obsł. serwisów, lokalizacja) podstawowy interfejs aplikacji - Xlet JSSE (Java Security Socket Extention) API Rozszerzenia DVB i DAVIC obsługa zdarzeń, system plików, rozszerzenia JMF, obsługa MPEG, informacje serwisowe, dostęp warunkowy,... Specyfikacja ETSI TS 101 812 V1.3.1: Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.0.3 ETSI TS 102 812 V1.3.1: Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.1.3 ETSI TS 102 727 V1.1.1: Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.2.2 maf 34
Aplikacje platformy MHP Przykłady Przewodnik programowy Interaktywna gra. ARD, Niemcy. maf 35
Przykłady Aplikacje platformy MHP Interaktywna gra karciana. ORF, Austria. Apl. FIFA 2006 World Cup. RAI UNO, Italia. maf 36