Текст книги "Платформа J2Me"
Автор книги: Автор Неизвестен
Жанр:
Программирование
сообщить о нарушении
Текущая страница: 1 (всего у книги 21 страниц)
«ПЛАТФОРМА J2ME»
Введение
Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство. Цель – дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.
В соответствии с этим подходом в этой книге не предоставлены бесчисленные страницы документации API, я оставляю эту задачу на Web-сайт Sun Microsystems Java Software, который содержит самую последнюю и самую правильную API-документацию. Поэтому читатель может найти полезным получить доступ к служебной API-документации Java Software J2ME при чтении этой книги, которую можно найти по адресу http://java.sun.com/j2me/docs. Вы можете как загрузить всю API-документацию, так и читать ее в онлайновом режиме.
В структуре данной книги отсутствуют специфические подробности по инструментальным средствам разработки на J2ME, предлагаемым другими производителями. В соответствии с подходом данной книги как учебного пособия, я всего лишь знакомлю вас с инструментарием компании «Sun Microsystems» для беспроводной работы J2ME Wireless Toolkit, который является образцовым инструментарием разработки на J2ME. Он предоставляется бесплатно компанией «Sun Microsystems» и доступен на Web-сайте Java Developer Connection, доступ к которому вы должны получить, зарегистрировавшись. Следуйте по ссылке для разработчиков с http://java.sun.com/. Таким образом, вы можете познакомиться со средой разработки на J2ME и эмулятором и создавать и тестировать практически применимые приложения.
Производители оборудования часто предоставляют свои собственные инструменты разработки, которые сходны с инструментарием J2ME Wireless Toolkit компании «Sun». Кроме того, другие компании-производители программного обеспечения предлагают инструменты разработки на J2ME. В этой книге не описываются эти инструменты, поскольку они не добавляют ничего нового к теории и практике того, как проектировать и разрабатывать приложения на J2ME.
Эта книга также дает определение и описывает беспроводные приложения, подготавливающие к работе системы, и включает описание раскрытия и подготовки к работе приложений в схематичном ракурсе, без того, чтобы приходилось вникать в детали предложений различных производителей инициализирующего серверного программного обеспечения. Идея развертывания приложения более наглядна – и более важна – в J2ME, чем в других платформах, таких, как J2SE. В действительности понимание вопросов развертывания является ключевым элементом в процессе раскрытия приложений J2ME.
Наконец, я раскрываю перед читателем идеи, связанные с архитектурой приложений. Так как мы полагаемся в большей степени на компьютерное оборудование, которое непрерывно становится все более распространенным, становится все в большей степени важным для разработчиков думать о надежности, производительности, расширяемости, безопасности, управляемости и так далее. Эта книга дает вам представление об этих понятиях, а также понимание того, что разработчики должны думать об этих характеристиках с самого начала.
Хотя эта книга знакомит с элементами, включающими в себя всю платформу J2ME, она сконцентрирована на конфигурации CLDC и профиле MIDP, которые поддерживают персональные, мобильные и независимые устройства – те, что имеют нестационарную сетевую связь, такие, как мобильные телефоны. Примеры программирования и исследования API относятся к этому подразделу платформы J2ME. Причина этого выбора заключается в том, что как разработчик J2ME вы, наиболее вероятно, будете приглашены к разработке приложений для этого класса устройств.
Содержание и cmpyктypa книги
Структура книги следующая:
Глава 1: Знакомство с платформой Java 2 Micro Edition (J2ME)
Глава 2: Процесс разработки приложений MIDP
Глава 3: Программная структура приложений MIDP
Глава 4: Высокоуровневый программный интерфейс приложения (API) MIDP
Глава 5: Компоненты пользовательского интерфейса (UI) MIDP
Глава 6: Низкоуровневый программный интерфейс приложения (API) MIDP
Глава 7: Поддержка постоянного хранения в MIDP
Глава 8: Организация сетей и коммуникаций в MIDP
Глава 9: Интернационализация
Глава 10: Инициализация приложений
Глава 11: Среда беспроводного Интернета
Глава 1 познакомит вас с компьютерной платформой J2ME. В ней приводится большинство терминов, связанных с J2ME, и дается общая ориентация в понятиях, которые связаны с устройством и организацией платформы J2ME.
В главе 2 описывается процесс разработки приложений на J2ME. Вы узнаете, как создавать, компилировать, подготавливать, выполнять и отлаживать приложения на J2ME. В этой главе не описывается инструментарий или API. Описание этих элементов начинается в главе 3.
В главе 3 описывается платформа J2ME MIDP с точки зрения разработчика программного обеспечения. Здесь вы познакомитесь с организацией API, базовыми обобщенными понятиями программирования и моделями, характеризующими платформу MIDP.
Глава 4 продолжает тему главы 3. В ней затронут высокоуровневый программный интерфейс приложения (API) в MIDP, который заключает в себе набор компонентов UI, определяемых MIDP. Вы узнаете, как манипулировать различными компонентами UI, а также как выполнять обработку событий, называемую command processing в терминологии MIDP.
В главе 5 описа'ны компоненты пользовательского интерфейса (UI) MIDP. После изучения базовых обобщенных понятий, определяемых MIDP и описанных в главе 4, вы готовы к изучению того, как использовать компоненты, которые строятся на основе этих обобщений.
В главе 6 описывается низкоуровневый программный интерфейс приложения (API) в MIDP, который реализуется остальными компонентами UI MIDP, не описанными в главе 5.
В главе 7 описываются механизмы постоянного хранения, доступные вам благодаря MIDP.
Глава 8 посвящена организации сетей и коммуникаций. Здесь вы узнаете, как использовать службы организации сети и распределенной обработки данных и функциональные возможности, определяемые CLDC и MIDP. Вы также получите некоторое понятие о решениях создания и поддержки служб связи в J2ME.
Глава 9 знакомит вас с интернационализацией. Это вопрос значительной ширины и глубины, который требует даже более, чем отдельной посвященной ему книги. Здесь вы узнаете о некоторых проблемах, с которыми вы столкнетесь при создании практически применимых приложений MIDP. В этой главе описывается степень поддержки интернационализации в CLDC и MIDP и показано несколько примеров того, как использовать эти свойства. Вы также узнаете, как сконфигурировать ваше устройство для поддержки интернационализации и локализации.
В главе 10 описываются управление приложениями и системы инициализации. Теоретическое знакомство с этими системами важно для разработчика приложений на J2ME, особенно MIDP-разработчиков, поскольку эти системы влияют на ваше взаимодействие с поставщиками приложений и оперативной информации, поставщиками беспроводных сетей и даже с конечными пользователями.
В главе 11 описывается среда беспроводного Интернета. В ней описывается интеграция между беспроводными и стационарными сетями, беспроводной Интернет с точки зрения разработчика приложений, и среда, в которой выполняется приложение. Вы получите представление о беспроводных шлюзах Интернета, интерфейсах интернет-порталов, а также интерфейсах и службах беспроводных приложений – все, с чем вы, вероятно, столкнетесь как разработчик беспроводных приложений. Эта глава также знакомит разработчика приложений J2ME с базовыми понятиями об архитектуре и тем, как они действуют.
Аудитория
Эта книга предназначена для разработчиков на Java. Она подходит для профессиональных разработчиков программного обеспечения, а также для продвинутых студентов, аспирантов. Если быть более точным, создатели этой книга ожидают, что читатель хорошо знает язык программирования Java, но не приобрел опыта в программировании с отдельными API сверх основных API Java. Несмотря на возможное отсутствие опыта в какой-либо отдельной области программирования на Java, кроме хорошего знания языка, будет полезно, если читатели имеют, по крайней мере, представление о понятиях и профессиональных выражениях, которые окружают различные технологии Java, как, например, термины, которые связаны с виртуальными машинами, сборкой мусора, загрузкой классов, верификацией классов, интерфейсами родного кода, синхронной компиляцией, AWT, RMI, JDK, JRE и так далее.
Я также предполагаю, однако, что читатель имеет порядочный опыт в объектно-ориентированном программировании. По этой причине я не объясняю объектно-ориентированных понятий, когда они появляются в процессе описания J2ME API, классов, идиом программирования и тому подобного.
Конечно, чем больше у читателя опыта, тем лучше. Во всей книге появляются различные ссылки на AWT и Swing. Значительная часть MIDP-программирования включает манипулирование компонентами интерфейса пользователя. Читатель, знакомый с понятиями инструментария AWT или Swing, может быстро понять сущность организации и понятий модели программирования UI в MIDP. Несмотря на преимущества знания AWT и Swing, вам не нужно иметь опыта в разработке UI Java.
Соглашения, используемые в этой книге
В таблице 1.1 показаны соглашения об обозначениях, используемые в этой книге. В таблице 1.2 перечислены соглашения, используемые для всех исходных кодов, включенных в данную книгу.
Таблица 1.1.Соглашения об обозначениях
Описание данных Используемое обозначение
Исходные коды Java, машинно-генерируемый текст – Шрифт Courier
Первое использование нового термина – Курсив
Обычный текст – Шрифт Times New Roman
Таблица 1.2.Соглашения исходных кодов, используемые в этой книге
Тип данных – Пример
Имена методов Java, имена переменных: Первое слово с маленькой буквы, последующие слова с большой – Protected int variableName Public void lookAtThisMethodName ()
Имена классов Java: первая буква заглавная для всех слов – Public class AllWordsFirstCapital
Где скачать J2ME
Вы можете скачать J2ME Wireless Toolkit и полную API-документацию, следуя ссылкам на Java Developer Connection с адреса http://java.sun.com/. Там вы найдете полную API-документацию для CDC, профиля Foundation Profile и CLDC/MIDP, а также инструментарий для всех платформ, таких, «Платформа программирования J2ME для портативных устройств» как Solaris, Linux, Windows NT и Windows 2000.
Где найти примеры кoдoв из этой книги
Все примеры кодов, с которыми вы столкнетесь в этой книге, могут быть найдены на Web-сайте издательства «Prentice Hall» по адресу http://www.phptr.com/piroumian.
Глава 1. Знакомство с платформой Java 2 Micro Edition (J2ME)
Компания «Sun Microsystems» определяет три платформы Java, каждая из которых отвечает нуждам различных компьютерных сред:
– Java 2 Standard Edition (J2SE);
– Java 2 Enterprise Edition (J2EE);
– Java 2 Micro Edition (J2ME).
Исходной точкой разработки платформы J2ME послужила необходимость определения компьютерной платформы, которая бы могла послужить основой для электронных и встраиваемых устройств массового потребления. Эти устройства иногда называются портативными устройствами.
Создатели платформы J2ME разделяют портативные устройства на две отдельные категории:
– Персональные мобильные информационные устройства, которые способны к нестационарным сетевым коммуникациям – мобильные телефоны, двусторонние пейджеры, персональные информационные устройства («карманные компьютеры») и органайзеры.
– Информационные устройства с общим соединением, подсоединенные к фиксированному беспрерывному сетевому соединению – компьютерные приставки к телевизору, телевизоры с выходом в Интернет, телефоны с дисплеем и возможностью выхода в Интернет, коммуникаторы высокого класса, развлекательные и навигационные автомобильные системы.
Первая категория описывает устройства, которые имеют специальное назначение илг ограничены в функциях, они не являются универсальными вычислительными машин ми. Вторая категория описывает устройства, которые обычно имеют большие возможности для средств пользовательского интерфейса (UI). Конечно, устройства с более совершенными средствами пользовательского интерфейса обычно имеют большую пьютерную мощность. На практике компьютерная мощность является первостепенным атрибутом, отличающим эти две категории устройств. Тем не менее, это разграничение является немного неясным, поскольку технология дает возможность все большие и большие мощности размещать во все более и более мелких устройствах.
Как и компьютерная мощность, связь – наличие таких средств, как беспроводные сети, – также влияет на виды функциональных возможностей и служб, которые могут поддерживать портативные устройства. Задача – и первостепенная цель – для J2ME заключается в установлении платформы, которая может поддерживать разумный набор служб для широкого спектра устройств, имеющих широкий диапазон различных возможностей.
Создатели J2ME определяют в качестве ключевого механизма модульное построение, которое дает возможность поддерживать множество типов устройств. Разработчики J2ME используют для создания 12МЕ-модуля конфигурации и профили.
Определение платформы Java для портативных устройств
Конфигурации и профили являются основными элементами, которые составляют модульную схему J2ME. Эти два элемента дают возможность поддержки огромного количества устройств, которые поддерживают J2ME.
Конфигурация J2ME определяет минимальную Java-платформу для семейства устройств. Все члены данного семейства имеют сходные требования к памяти и производительности. Конфигурация является на самом деле спецификацией, которая определяет доступные ресурсы системного уровня, такие, как набор свойств языка Java, характеристики и свойства имеющейся виртуальной машины и минимальные библиотеки Java, которые поддерживаются. Разработчики программного обеспечения могут рассчитывать, что определенный уровень системной поддержки будет доступен для семейства устройств, которое использует определенную конфигурацию.
Конфигурация также определяет минимальный набор свойств для категории устройств. Производители устройств внедряют профили для обеспечения реальной платформы для семейства устройств, которая имеет возможности, определяемые данной конфигурацией.
Другой строительный блок J2ME, профиль, определяет программный интерфейс для определенного класса устройств. Реализация профиля состоит из набора библиотек классов Java, которые обеспечивают интерфейс программного уровня. Таким образом, профиль теоретически должен определять все виды функциональных возможностей и служб.
Однако это не является намерением создателей. Создатели J2ME планируют, что профиль будет предназначаться для нужд определенной категории устройств или вертикального рынка, относящегося к этой категории устройств. Мысль заключается не в том, чтобы помещать огромное количество несвязанных свойств программного уровня в профиль. Скорее основная цель заключается в том, чтобы гарантировать возможность взаимодействия – которая необязательно предполагает совместимость конечных продуктов различных производителей – между всеми устройствами одной категории или семействами вертикального рынка для определения стандартной платформы разработки приложений на Java.
Например, профиль может поддерживать возможность сетевой коммуникации для популярного стандарта Short Message Service (SMS), широко используемого в мобильных телефонах. Поскольку стандарт SMS является повсеместно распространенным свойством в сотовой телефонии, имеет смысл задать эту службу в профиле, который предназначен для мобильных телефонов, вместо того чтобы встраивать ее в конфигурацию.
Профиль внедряется поверх конфигурации, на одну ступень ближе к выполнению практических приложений. Обычно профиль включает библиотеки, которые соответствуют более специфичным характеристикам категории устройств, которую они представляют, чем библиотеки, которые содержат конфигурации. Приложения затем встраиваются поверх конфигурации и профиля, они могут использовать только библиотеки классов, предоставляемые этими двумя низкоуровневыми спецификациями. Профили могут быть встроены поверх друг друга. Конечный продукт платформы J2ME, однако, может содержать только одну конфигурацию. На рисунке 1.1 показаны схематичные уровни, из которых состоит платформа J2ME
Java-приложение
Профиль
Конфигурация: Библиотеки
Виртуальная Машина Java [JVM]
Операционная система компьютера
Аппаратное обеспечение устройства
Рисунок 1.1.Платформа J2ME состоит из ряда уровней, которые поддерживают базовую среду исполнения с корневыми библиотеками Java и Виртуальной машиной (VM), набора программных интерфейсов приложения системного уровня (API) в конфигурации и набора API программного уровня в профиле
Конфигурации и профили
Конфигурация включает три базовых элемента:
– набор свойств языка программирования Java;
– набор свойств виртуальной машины Java;
– набор поддерживаемых библиотек Java и программных интерфейсов приложения (API).
Создатели J2ME определили только две конфигурации для избежания фрагментированного представления несовместимых платформ. Две конфигурации, которые существуют в настоящее время, представляют две категории портативных устройств, описанных ранее в этой главе, а именно:
– личные, не стационарно подключаемые мобильные устройства – поддерживаемые конфигурацией Connected, Limited Device Configuration (CLDC, конфигурация для подключенных ограниченных устройств);
– постоянно соединенные сетевые устройства – поддерживаемые конфигурацией Connected Device Configuration (CDC, конфигурация для подключенных устройств).
Теоретически конфигурация может устанавливать такую же поддержку, как и библиотеки платформы J2SE. Но на самом деле это маловероятно, потому что, как вы знаете, J2ME предназначена для устройств, которые намного менее мощны, чем настольные компьютеры.
Технические спецификации конфигурации требуют, чтобы все классы Java, адаптированные с J2SE, были идентичны или соответствующей подгруппой оригинального класса J2SE. То есть класс не может добавлять методы, которых нет в версии J2SE. Однако конфигурации могут включать дополнительные классы в свои спецификации, конфигурации сами по себе необязательно являются соответствующими подгруппами J2SE. Обе конфигурации, которые были определены под классы добавления данных, не представлены в J2SE для того, чтобы обращаться к атрибутам и ограничениям устройств.
Конфигурация 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 была спроектирована с учетом предоставления следующих свойств:
– портативность;
– быстрая синхронизация;
– выполнение классов Java отдельно от постоянной памяти (ROM);
– поддержка естественных потоков
– зоны обслуживания малых классов;
– предоставление интерфейсов и поддержка служб операционной системы реального времени (RTOS);
– преобразование потоков Java непосредственно в естественные потоки;
– поддержка всех свойств и библиотек виртуальной машины версии 1.3, Java 2: безопасность, слабые ссылки, Java Native Interface (JNI, собственный интерфейс Java), Remote Method Invocation (RMI, интерфейс вызова удаленных методов), Java Virtual Machine Debugging Interface (JVMDI, интерфейс отладки виртуальной машины Java).
Библиотеки классов в CDC. CDC устанавливает минимальный набор библиотек классов и API. Она поддерживает следующие стандартные пакеты Java:
– java.lang – системные классы виртуальной машины Java; java.util – базовые утилиты Java;
– java.net – дейтаграмма Universal Datagram Protocol (UDP) и ввод/вывод (I/O);
– java.io – файловый ввод/вывод Java;
– Java.text – самая минимальная поддержка интернационализации (I18N – смотри главу 9);
– Java.security – минимальная защита на мелком уровне и шифрование сериализации объекта.
Как вы можете видеть, эти 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
Профиль Foundation Profile. Конфигурация вместе с профилем формирует исполняемую среду J2ME. Свойства и службы системного уровня, поддерживаемые конфигурацией, более или менее спрятаны от разработчика приложений. В действительности разработчику приложения запрещен прямой доступ к ним. Если это не было соблюдено, приложение не будет считаться соответствующим требованиям J2ME.
С точки зрения программиста профиль необходим для «полезной» работы. Профиль определяет уровень, который содержит АРГи, с которыми программист обычно имеет дело. Создатели 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 – Добавляет подпись и сертификацию кодов
Вышеуказанный список пакетов выглядит точно так, как список, который включает в себя CDC. В действительности они одинаковы. Говоря, что профиль Foundation заключает в себе эти пакеты, мы на самом деле имеем в виду, что они доступны профилю Foundation. Замысел заключается в том, что профиль Foundation используется с CDC. Различие между профилем и конфигурацией заключается в понятиях, но не в физическом отношении.
Отметьте, что вся иерархия 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Классы и интерфейсы для пересылки данных внутри и между приложениями
Java.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. Профиль RMI является профилем, созданным для платформ, которые поддерживают конфигурацию CDC. Он был задан JSR-66 и определен различными компаниями, принимавшими участие в Java Community Process.
Профиль RMI требует внедрения профиля Foundation и внедряется поверх него. Продукты профиля RMI должны поддерживать следующие свойства:
– полную семантику RMI вызовов;
– поддержку объектов маршалинга;
– RMI проводного протокола;
– экспорт удаленных объектов через API UnicastRemoteObject;
– распределенную сборку мусора и интерфейсы еборщика мусора как для клиента, так и для сервера;
– интерфейс активатора и протокол активации для клиента;
– интерфейсы реестра RMI и экспорт реестра удаленных объектов.
Профиль RMI поддерживает подгруппу RMI API J2SE в. 1.3. Следующие интерфейсы и свойства являются частью спецификации RMI J2SE в. 1.3 и публичных API, но поддержка этих интерфейсов и функциональных возможностей исключена из технических требований профиля RMI из-за ограниченности вычислительных мощностей устройств, сетевой производительности и пропускной способности:
– RMI через брандмауэры и прокси;
– RMI мультиплексный протокол;
– модель реализации «активизируемого» («activatable») удаленного объекта;
– нерекомендуемые методы, классы и интерфейсы;
– поддержка протокола скелетона/заглушки для RMI в. 1.1;
– компилятор скелетона и заглушки.
Поддержка следующих свойств J2SE RMI в. 1.3 не включена:
– Java. rmi. server. disableHttp;
– Java.rmi.activation.port;
– Java.rmi.loader.packagePrefix;
– Java.rmi.registry.packagePrefix;
– java.rmi.server.packagePrefix.
Конфигурация Connected, Limited Device Configuration (CLDC)
Вторая из двух конфигураций J2ME, Connected, Limited Device Configuration (CLDC), поддерживает персональные мобильные устройства, которые составляют значительно менее мощный класс устройств, чем тот, который поддерживает CDC. Спецификация CLDC распознает устройства этой категории по следующим характеристикам:
– от 160 до 512 KB полной памяти, доступной для платформы Java;
– 16-битный или 32-битный процессор;
– низкое потребление электроэнергии, часто питание от батарей;
– нестационарная сетевая связь (часто беспроводная) с потенциально ограниченной пропускной способностью.
Цель CLDC заключается в том, чтобы установить стандартную платформу Java для этих устройств. Из-за широкого выбора системного программного обеспечения на различных персональных устройствах CLDC исходит из минимальных предположений о среде, в которой она существует. Например, одна ОС может поддерживать множественные параллельные процессы, другая может или не может поддерживать файловую систему и тому подобное.
CLDC отличается от CDC и представляет из себя ее подгруппу. Однако эти конфигурации независимы друг от друга, так что они не должны использоваться вместе при описании платформы. На рисунке 1.2 показана связь между двумя конфигурациями и платформой J2SE.
Рисунок 1.2.CLDC является подгруппой CDC. Ни CLDC, ни CDC, однако, не являются полностью подгруппами платформы J2SE, поскольку обе эти конфигурации добавляют новые классы, необходимые для создания служб в соответствующих семействах устройств
Как и CDC, CLDC определяет требуемый уровень поддержки языка программирования Java, требуемую функциональную поддержку соответствующей требованиям виртуальной машины Java и требуемый набор библиотек классов.
Поддержка языка Java. Спецификация CLDC не включает поддержку следующих свойств языка Java:
– вычисления с плавающей точкой;
– финализация объекта;
– иерархия класса Java.lang.Error во всей его полноте.
Конечно, эти свойства включают также VM и описаны в главе 5 о спецификации CLDC («Adherence to Java Virtual Machine Specification» – «Соблюдение спецификации виртуальной машины Java»). Я, однако, ссылаюсь на них здесь, поскольку они проявляются на уровне языка, что затрагивает программистов.