« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
    Популярное
Глава 8. PHP: Авторизация доступа

Функция AccessResource

Функция PtInRect

Делаем плагины на Python

Не самые известные сведения о внешних ключах

Компиляция

Многоязычные приложения в PHP

Функции баз данных

Создание простого HTTP-клиента

Проектирование web сервисов




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 152
Пользователей: 0

Статьи:: Интернет технологии :: Java2ME :: Использование J2ME. Часть 1



отправить ссылку другу версия для печати  Обсудить на форуме

Использование J2ME. Часть 1



Мобильный телефон как средство доступа в Internet

Обзор

В этой статье будет дана попытка дать небольшой обзор новой редакции Java – Java 2 Micro Edition (J2ME в дальнейшем). Основное внимание будет уделено профилю J2ME MIDP. Также будет приведен развернутый пример создания мобильного приложения для профиля MIDP. Несмотря на то, что в данное время существует множество различных реализаций конфигураций и профилей J2ME, в данной статье будут рассматриваться только решения Sun.

J2ME

Несмотря на название схожее с J2EE или J2SE вряд ли Вы где-нибудь найдете JDK для J2ME [1] или что-либо подобное. Дело в том, что J2ME объединяет под своим названием множество технологий, каждая из которых решает свою конкретную задачу. А именно, спецификация J2ME определяет так называемые конфигурации (configuration). Каждая конфигурация описывает среду выполнения J2ME приложения (JVM, набор доступных классов, некоторые правила функционирования приложений). Для конфигурации в свою очередь может быть определено несколько профилей (profile), каждый из которых ‘уточняет’ среду выполнения, добавляя или запрещая использование каких-либо классов, определяя новые правила функционирования приложения. Очень точно эту концепцию отражает рис. 1.


 

Эволюция  Java
Рисунок 1. Эволюция Java.

В данной далее статье речь пойдет о конфигурации CLDC [2] (Connected, Limited Device Configuration) и одном из ее профилей - MIDP [3] (Mobile Information Device Profile).

CLDC

Полное подробное описание данной конфигурации можно найти в [2]. Я же здесь хочу отметить только некоторые основные моменты, которые отличают среду выполнения CLDC J2ME от, например, среды выполнения J2SE:

  • Для CLDC была разработана своя JVM, в реализации Sun она называется KVM (Kilo VM). Она не имеет операций с плавающей точкой, не допускает финализаторов у классов, не реализует JNI, не допускает использования пользовательских загрузчиков классов, имеет очень слабые Security механизмы, не имеет механизма Reflection и еще много чего. Но зато она имеет очень малый размер – несколько сотен килобайт, что позволяет уместить такую виртуальную машину, например, в мобильный телефон с очень небольшим количеством памяти;
  • Библиотеки классов доступные в CLDC можно разделить на две группы – первая является подмножеством библиотек J2SE, вторая является специфичной для CLDC. В первую группу входят классы из таких пакетов J2SE, как java.lang.*, java.util.*, and java.io.*. Все классы принадлежащие этой группе совместимы с соответствующими классами из J2SE снизу вверх. Во вторую группу входят классы из пакета javax.microedition. Собственно сама CLDC из этой группы реализует только Generic Connection Framework, речь о которой пойдет позже.
  • Входной точкой приложения, написанного для CLDC, является как и в J2SE метод public static void main(String[] args).

Нужно сказать, что спецификация CLDC сама по себе не определяет законченную среду выполнения, поэтому в реализацию CLDC от Sun был включен дополнительный пакет com.sun.kjava, классы которого реализуют тестовый пользовательский интерфейс и некоторые протоколы для Generic Connection Framework.

MIDP

Данный профиль построен на базе конфигурации CLDC и полностью определяет среду выполнения (но не всю инфраструктуру) приложения. Данный профиль нацелен на создание приложений для таких мобильных устройств как сотовые телефоны, пейджеры, PDAs, Smart Phones. Место, которое занимает профиль MIDP в технологии J2ME показывает рис. 2.

Стек MIDP приложения
Рисунок 2. Стек MIDP приложения.

Не мудрствуя лукаво, приведем цитату из спецификации [3]: “MIDP определяет модель приложения, которая позволяет разделять нескольким приложениям ограниченные ресурсы мобильного устройства, эта модель называется MIDlet. Она определяет, что такое MIDlet приложение, как оно должно быть упаковано, какая среда выполнения доступна для MIDlet’a и как должно себя вести приложение, чтобы мобильное устройство могло им управлять…”. Чтобы не приводить больше теоретических сведений о MIDP профиле перейдем к практическому написанию приложения для него.

Подготовка к разработке

Для начала разработки MIDP приложений или MIDlet’ов, Вам понадобиться установить некоторое программное обеспечение. Несколько вариантов возможных конфигураций приведено ниже:

  1. Среда выполнения: Mobile Information Device Profile (MIDP) Reference Implementation (RI) от Sun [3], редактор: любой;
  2. Среда выполнения: Java 2 Platform Micro Edition, Wireless Toolkit [4], редактор: любой;
  3. Интегрированная среда выполнения: Forte for Java [5], поверх ставим Wireless Toolkit и указываем при установке, что нужно интегрироваться с Forte for Java;
  4. Интегрированная среда выполнения: Inprise JBuilder 4/5, поверх ставим Nokia Developer's Suite [6];

Существует еще огромное количество вариантов (см. [7]), но мы в данной статье будем ориентироваться на 3-ий, как самый честный в смысле соответствия спецификации.

Mobile Messenger

Для того, чтобы как можно более широко охватить круг возможностей, которые предоставляет MIDP для создания приложений, автор решил разработать систему мгновенного обмена сообщениями (жалкий аналог ICQ:) между клиентами, использующими мобильные устройства. Примерная блок-схема будущей системы представлена на рис. 3.

 

Блок-схема приложения
Рисунок 3. Блок-схема приложения.

Предполагается следующий механизм взаимодействия: все сообщения передаваемые клиентом сначала попадают на сервер, который либо пересылает сообщения адресату (другому мобильному клиенту), либо выполняет какие-либо другие действия (например отвечает клиенту, что адресат недоступен). Самый главный вопрос, который встает при проектировании данной системы – как MIDP приложениям общаться с сервером? Вот тут мы и вспоминаем о ранее упомянутой Generic Connection Framework. Основная идея Generic Connection Framework – определить единый высокоуровневый интерфейс к протоколам передачи данных любого вида. Причем CLDC определяя Generic Connection Framework, не реализует ни одного протокола, полагаясь на их реализацию в каждом конкретном профиле (точнее программист полагается на реализацию протоколов в профиле :). Спецификация MIDP в свою очередь требует обязательной реализации только протокола HTTP. Да, казалось бы без серверных сокетов замахиваться на реализацию ICQ было бы просто глупо, но как оказалось все, опробованные мной реализации MIDP (Sun, Nokia, Motorola) включают реализацию протокола серверных сокетов (Sun, Motorola - datagram, Nokia – socket), что позволяет надеется на поддержку аналогичных протоколов в реальных мобильных устройствах. Решено, для обмена сообщениями между клиентом и сервером будем использовать протокол datagram (UDP).

И так, в нашей системе явно вырисовываются три основные части:

  • Клиент;
  • Сервер;
  • Коммуникационная часть;

Раз уж разговор зашел о Generic Connection Framework, то именно с коммуникационной части и начнем проектирование системы.

Ресурсы

  1. Java 2 Micro Edition (http://www.javasoft.com/j2me/)
  2. Connected, Limited Device Configuration. Specification Version 1.0. (http://www.sun.com/software/communitysource/j2me/cldc/)
  3. Mobile Information Device Profile (JSR-37). JCP Specification Version 1.0a. (http://www.sun.com/software/communitysource/midp/)
  4. Java 2 Platform Micro Edition, Wireless Toolkit (http://www.javasoft.com/products/j2mewtoolkit/)
  5. Forte for Java (http://www.sun.com/forte/ffj)
  6. Nokia Developer's Suite Beta 0.1 for the Java (TM) 2 Platform, Micro Edition (http://forum.nokia.com/javaforum/main/1,6668,1_0_30,00.html)
  7. Bill Day J2ME Archive (http://www.billday.com/j2me/)

Замечание для российских граждан
Большинство ресурсов, относящихся к J2ME реализациям от Sun, распространяются через Sun Community Source Licensing. Данное соглашение разрешает экспорт программных продуктов только в ограниченное число стран (Error! Bookmark not defined.), поэтому для удачного скачивания при регистрации укажите одну из этих стран.




Рубрика: Java2ME




Вышел MySQL 5.1.30, первый стабильный рели....

MySQL

После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

Тестирование параллельных программ.

Тестирование

Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.


Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

Архитектура AMD64 (EM64T).

Архитектура AMD

Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

Остальные статьи:

Платформа 2009. Определяя будущее
Windows Vista Bridge Sample Library - упра...
Оптимизация 64-битных программ
Подгрузка через AJAX HTML-кода, содержащег...
Обзор нового релиза самой мощной Ajax библ...
Firebug 1.3 и 1.4 alpha — что нового и инт...
Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия