Конфигурация Connected Device Configuration (CDC)
Конфигурация Connected Device Configuration (CDC) предназначена лишь для фиксирования основных возможностей каждого вида устройств в категории устройств, для которой она предназначена, а именно, устройств с 2МБ или более полной памяти, включая как RAM, так и ROM.
Как вы видели на рисунке 1.1, конфигурация задает как набор поддерживаемых свойств виртуальной машины Java, так и набор библиотек классов. В CDC определено использование виртуальной машины полной платформы Java 2, которая, в этом контексте, называется компактной виртуальной машиной (Compact Virtual Machine (CVM)).
CVM. Хотя CVM поддерживает те же свойства, что и J2SE VM, она создана для потребительских и встраиваемых устройств. Это означает, что стандарт VM J2SE был модернизирован, чтобы соответствовать ограничениям устройств с ограниченными ресурсами. Сюда включены следующие свойства получившегося в результате продукта CVM:
В частности, CVM была спроектирована с учетом предоставления следующих свойств:
Библиотеки классов в CDC. CDC устанавливает минимальный набор библиотек классов и API. Она поддерживает следующие стандартные пакеты Java:
Как вы можете видеть, эти API не включают полный набор пакетов набора инструментальных средств разработки программного обеспечения (software development kit (SDK)) Java 2. В некоторых случаях эти пакеты и классы являются подгруппами пакетов и классов Java 2 SDK. Также убраны все устаревшие API J2SE. В таблице 1.1 перечислен полный набор пакетов, поддерживаемых CDC.
Таблица 1.1. Пакеты CDC
Название пакета CDC | Описание |
java.io | Стандартные классы и интерфейсы ввода/вывода |
java.lang | Классы виртуальной машины |
java.lang.ref | Классы для работы с ссыпками на объекты |
Java . lang. reflect | Классы и интерфейсы, поддерживающие отражение (динамическую информацию о классах) |
Java .math | Математический пакет |
Java .net | Сетевые классы и интерфейсы |
Java. security | Классы и интерфейсы безопасности |
Java . security .cert | Классы сертификации безопасности |
Java . text | Текстовой пакет |
Java . util | Классы стандартных утилит |
Java .util . jar | Классы утилиты архиватора Java (JAR) |
Java .util . zip | Классы утилиты ZIP |
javax.microedition.io | Классы и интерфейсы структуры общих соединений CDC |
С точки зрения программиста профиль необходим для «полезной» работы. Профиль определяет уровень, который содержит АРГи, с которыми программист обычно имеет дело. Создатели J2ME в начале задали один профиль CDC, профиль Foundation, который основан на выпуске J2SE версии 1.3. Он был разработан стандартным комитетом Java Community Process, экспертной группой компаний, работающих в сфере потребительских электронных товаров. Профиль Foundation содержит в себе пакеты J2SE, перечисленные в таблице 1.2.
Таблица 1.2. Пакеты профиля Foundation
Название пакета профиля Foundation | Описание |
java.lang | Дополняет поддержку языка Java пакета java.lang.* J2SE (Compiler, UnknownError) |
java.util | Добавляет полную поддержку zip и другие утилиты J2SE (java.util. Timer) |
Java .net | Добавляет TCP/IP Socket и соединения HTTP |
java.io | Дополняет поддержку ввода/вывода языка Java пакета Java , io . * J2SE (классы Reader и Writer) |
Java .text | Дополняет поддержку интернационализации пакета Java. text.* J2SE (I18N): Annotation, Collator, Iterator |
Java. security | Добавляет подпись и сертификацию кодов |
Отметьте, что вся иерархия java.awt Abstract Window Toolkit (AWT, абстрактного оконного инструментария) и Java.swing пакета Swing, которая определяет API графического пользовательского интерфейса (GUI), отсутствует в поддерживаемых пакетах. Если приложению необходим GUI, потребуется дополнительный профиль. Профили могут быть внедрены поверх друг друга. Продукт платформы J2ME, однако, может содержать только одну конфигурацию.
Отсутствие поддержки GUI в профиле Foundation имеет меньшее воздействие на семейство постоянно подключенных сетевых устройств с общим доступом, таких, как компьютерные приставки к телевизору, чем оно влияет на персональные мобильные устройства, с которыми работают при помощи второй конфигурации J2ME, CLDC.
В общем, решение включать или не включать свойства и библиотеки в конфигурацию или профиль основано на их зонах обслуживания, требованиях к статическим и динамическим ресурсам и к безопасности.
Профиль Personal Profile. Спецификация профиля Personal была разработана в Java Community, конечным результатом которой стал JSR-62. Профиль Personal обеспечивает среду с полной поддержкой AWT. Замысел его создателей заключался в том, чтобы обеспечить платформу, подходящую для Web-апплетов. Он также предоставляет способ перемещения J2ME для приложений Personal Java.
Профиль Personal версии 1. 0 требует внедрения профиля Foundation версии 1.0. Это расширенный набор профиля Personal Basis Profile версии 1.0. Однако профиль Personal является подгруппой платформы J2SE версии 1.3.1, которая дает приложениям, созданным в профиле Personal, большую совместимость снизу вверх с J2SE версии 1.3.1.
В таблице 1.3 перечислены пакеты, которые включены в профиль Personal версии 1.0.
Таблица 1.3. Пакеты профиля Personal
Название пакета профиля Personal | Описание |
Java. applet | Классы, необходимые для создания апплетов, и используемые апплетами |
Java .awt | Классы AWT для создания пользовательского интерфейса программ |
Java . awt . data transfer | Классы и интерфейсы для пересылки данных внутри и между приложениями |
]ava .awt .event | Классы и интерфейсы для обработки событий AWT |
Java. awt . font | Классы и интерфейсы для работы со шрифтами |
Java. awt . im | Классы и интерфейсы для описания редакторов методов ввода |
Java .awt. im. spi | Интерфейсы, которые помогают в разработке редакторов методов ввода для любой среды исполнения Java |
Java .awt . image | Классы для создания и изменения изображений |
Java. beans | Классы, которые поддерживают разработку компонентов JavaBean |
javax.microedition.xlet | Интерфейсы, используемые приложениями и диспетчерами приложений профиля J2ME Personal для коммуникации |
Профиль RMI требует внедрения профиля Foundation и внедряется поверх него. Продукты профиля RMI должны поддерживать следующие свойства:
Профиль RMI поддерживает подгруппу RMI API J2SE в. 1.3. Следующие интерфейсы и свойства являются частью спецификации RMI J2SE в. 1.3 и публичных API, но поддержка этих интерфейсов и функциональных возможностей исключена из технических требований профиля RMI из-за ограниченности вычислительных мощностей устройств, сетевой производительности и пропускной способности:
Поддержка следующих свойств J2SE RMI в. 1.3 не включена: