< Maszyna wirtualna CLDC - KVMProfil MIDP 1.0 >

Konfiguracja CDC

Konrad Palczewski

Utworzony: 16-09-2003. Wersja: 1.0

Wprowadzenie do konfiguracji przeznaczonej dla urządzeń o dużo większych niż telefony komórkowe możliwościach. Krótki opis zawartości konfiguracji, profili na niej opartych oraz jej maszyny wirtualnej - CVM.




CDC - widok ogólny

Konfiguracja CDC ma za zadanie stworzyć podstawy dla profili przeznaczonych dla urządzeń pomiędzy słabymi telefonami czy PDA, a zwykłymi PC- tami. Są to więc urządzenia już dużo mocniejsze od tych z klasy urządzeń CLDC. Najczęściej posiadają już 32-bitowy procesor (telefony - 16-bitowy) i dużo bardziej zaawansowane połączenie sieciowe.
Inna jest również architektura profili opartych na konfiguracji CDC. Przedstawia ją poniższy szkic:

Diagram prezentujący zależność konfiguracji CDC i jej profili.
Konfiguracja CDC i jej profile.

Na konfiguracji CDC oparty jest profil Foundation Profile (specyfikacja dostępna na stronie: http://jcp.org/jsr/detail/46.jsp). Rozszerza on omawianą konfigurację o klasy pakietów już zawartych w CDC, jak i poszerza ją o nowe pakiety. Główną funkcjonalnością, którą ten profil się nadal nie zajmuje jest interfejs użytkownika.
Na tym profilu oparte są kolejne:

  • Profile: Personal Basis i Personal. Dodają one interfejs użytkownika do profilu Foundation. Planowane jest zastąpienie nimi używanego obecnie Personal Java. Szczegóły na temat stanu rozwoju tych profili znaleźć można pod adresami:
  • Profil RMI dodaje możliwość zdalnego wywoływania metod (od technologii RMI). Oczywiście zaimplementowano jedynie stronę klienta, jako że urządzenia przenośne pełnią tylko taką rolę.
    Profil RMI rozwijany jest jako JSR o numerze 66.
  • Game Profile jest profilem pomyślanym jako rozszerzenie CDC dla deweloperów gier. Nie jest jeszcze jasne, czy profil ten oparty będzie na profilu Foundation, czy bezpośrednio na konfiguracji CDC.
    Szczegóły pod adresem: http://jcp.org/jsr/detail/134.jsp

Zawartość CDC

Napisałem, że urządzenia, dla których projektowana była konfiguracja CDC są już urządzeniami mocnymi. Ma to oczywiście swoje przełożenie w zawartości w/w konfiguracji.
Oto pakiety, których klasy znalazły się w konfiguracji CDC i różnice pomiędzy nimi a ich odpowiednikami w J2SE:

PakietOpis
java.ioPrawie cały pakiet został dołączony do CDC. Wyjątek stanowią rzadko używane klasy Reader i Writer oraz LineNumberInputStream i StringbufferInputStream. Dwie ostatnie nie zostały dołączone, jako nie zalecane (ang. deprecated) w J2SE.
java.langNie dołączono jedynie klas Compiler i UnknownException
java.lang.refDołączony bez zmian.
java.lang.reflectDołączony bez zmian.
java.mathZ dwóch klas tego pakietu dołączona została BigInteger, nie dołączono BigDecimal
java.netCDC oferuje połączenia oparte na datagramach, ale nie udostępnia soketów i protokołu HTTP. Z tego pakietu nie zostały więc dołączone klasy oferujące te dwa rodzaje połączeń.
java.security
java.security.certZawiera jedynie klasę Certificate i dwa wyjątki związane z nią.
java.textPakiet zawiera klasy dot. wsparcia dla formatowania zależnego od lokalizacji, przetwarzanie dat i liczb oraz formatowanie komunikatów o błędach.
java.utilPrawie cały pakiet został dołączony. Jedyne różnice to klasy dotyczące obsługi zdarzeń (jak Observer czy EventObject) i timer'ów.
java.util.jarPakiet jest pełny, oprócz klasy JarOutputStream. Oznacza to brak możliwości utworzenia pliku JAR. Jest to oczywiście w przypadku CDC niepotrzebne.
java.util.zipPakiet zawiera klasy umożliwiające czytanie z plików ZIP, ale nie udostępnia strumieni umożliwiających aplikacjom zapisywanie czy kompresję i dekompresję plików ZIP.
java.microedition.ioPakiet dodany dla kompatybilności z aplikacjami napisanymi dla CLDC.

W przeciwieństwie do konfiguracji CLDC, jeśli klasa została dołączona do CDC, to nie różni się ona od swojego odpowiednika w J2SE (z wyjątkiem dla metod nie zalecanych).

Maszyna wirtualna konfiguracji CDC

Dzięki odpowiednim zasobom urządzeń, na których uruchamiana jest maszyna wirtualna konfiguracji CDC, może ona być PEŁNĄ maszyną wirtualną, czyli zgodną ze specyfikacją JVM, przystosowaną jednak do ograniczonej ilości pamięci.
Do funkcjonalności KVM dodaje ona więc obsługę następujących cech języka Java dostępnych w JVM:

  • obsługa działań na liczbach zmiennoprzecinkowych,
  • uruchamianie kodu natywnego dzięki JNI,
  • obsługa słabych referencji,
  • Reflection,
  • serializację obiektów,
  • definiowane przez użytkownika class-loader'y,
  • obsługa Java Virtual Machine Debug Interface (JVMDI).

Maszyna wirtualna konfiguracji CDC nazywa się CVM. Początkowo był to skrót od Compact VM. Ale KVM jest również kompaktową, więc CVM jest teraz po prostu maszyną wirtualną konfiguracji CDC, bez rozwinięcia skrótu.

Przykładową implementację maszyny wirtualnej CVM można ściągnąć ze strony Sun'a pod adresem http://java.sun.com/products/cdc

Szczegóły specyfikacji konfiguracji CDC znajdziesz pod adresem: http://jcp.org/jsr/detail/36.jsp.



Copyright (c) 2003 - 2005 Konrad Palczewski - kondziop (at) midlety.net
Wszelkie prawa zastrzeżone.
Designed by KefArts