Java для мобильных устройств. Java для мобильных устройств Кое-что о софте

Нет никакого смысла рассказывать, на сколько увеличился за последние годы бизнес, связанный с сотовыми телефонами. Технический прогресс в области ПК или другой аппаратуры, разумеется, охватывает все, что так или иначе связано с электроникой. Так, например, не обошел стороной уже, всемирно известный и современный программный язык JAVA, выше упомянутые мобильные телефоны. На сегодняшний день в мире ежедневно продаются десятки тысяч сотовых телефонов с поддержкой JAVA. То есть, не далек тот час, когда в вашем кармане будет лежать аппарат, обеспечивающий не только прекрасную связь, но и являющийся маленьким, скажем, персональным компьютером, не уступающий уже имеющимся на рынке карманным компьютерам. И, поскольку. это ждет нас впереди, то вернемся в сегодняшний день и поговорим о тех моделях (с поддержкой JAVA), которые можно купить прямо сейчас.

Что же такое JAVA? Как уже отмечалось - это язык, который обеспечивает независимость ПО от аппаратной и операционной платформ. JAVA был создан в лабораториях компании Sun Microsystems Джеймсом Гослингом. С помощью платформы J2ME (Java 2 Micro Edition), включающей средства разработки программ на языке JAVA и "JAVA-машину" (операционная система), в которой, посредством микропроцессора встроенного в сотовый телефон. они будут выполняться. Программы называются "мидлетами" (midlets, MID - от Mobile Information Device Application), которые могут быть инсталлированы в мобильный телефон через data-кабель c ПК, инфракрасный порт или Bluetooth-соединение или установлены с web-серверов посредством WAP. Количество приложений для телефонов, в связи с тем, что программистов, владеющих JAVA достаточно много, постоянно увеличиваются. В сети существует множество сайтов содержащих подобные микропрограммы, к примеру, можно назвать сайт Javamobiles.com на котором имеются бесплатные мидлеты, среди которых: games , network utilities , applications , graphics tools , demos и другие занимательные скрипты. Также появляется большое количество служб, использующих возможности JAVA, предоставляющие на бесплатных или коммерческих условиях такие приложения, как чаты, программы для получения и просмотра биржевой информации и бизнес-приложений, связанные, например, с котировками акций, а также ПО для работы и обмена информацией. Стало быть, при наличии сотового телефона, с поддержкой J2ME, вы можете пополнить его самыми разнообразными утилитами. Но, перейдем непосредственно к аппаратам. которые дают пользователю эту, согласитесь, достаточно приятную возможность. J2ME уже широко используется в мобильных телефонах производства Motorola, NOKIA, Siemens, NEC и многих других фирм, кроме того, более прогрессивная разработка - Mobile Information Device Profile (MIDP), уже сегодня находит широкое применение в карманных ПК и смарт-фонах.

Уж сегодня реально доступно множество моделей мобильных телефонов с поддержкой Java 2 Micro Edition. Ниже вы имеете возможность познакомиться с данными продуктами поближе.

Siemens SL45i

В июне 2001г. В Сингапуре на выставке CommunicAsia 2001 фирма Siemens представила, практически аналогичную более старшей модели SL45, свое новое детище SL45i. Необходимо отметить, что эти телефоны ничем не отличаются, за исключением наличия в последнем поддержки Java-приложений, которые могут исполняться на данном аппарате.

Первое, что бросается в глаза, рассматривая телефон - это семистрочный цифровой дисплей, который совершенно четко обеспечивает анимационные изображения всех игр, предусмотренных в этой модели, их красочность и вдобавок такие функций как виброзвонок и игры, которые по средствам поддержки Java-приложений могут быть легко заменены на новые. Но это только первое впечатление.

Также, в этом телефоне предусмотрена выборочная инициализация загрузки приложений посредством SMS функции. Свобода выбора действий тоже приятно радует, к примеру, сначала можно программу просмотреть, направить другу и после этого, по желанию пользователя, занести ее в список других программ вашего аппарата.

Эксплуатируя SL45i, сразу чувствуешь быстроту и эффективность срабатывания функций при работе с приложениями, например, их замена, запись, воспроизводство, вследствие того, что объем памяти в данной модели значительно увеличен из-за наличия карты MultiMediaCard (MMC). Наличие MP3-плейера позволяет отвлечься пользователю от суеты мира сего и послушать любимую музыку, хотя надо отметить, что он требует большую часть ресурса 32-Мб MMC. Уже писалось о скорости данной модели, которая влечет за собой экономию времени и, соответственно, денег при использовании функции J2ME при считывании или ответе на сообщение. Еще до подсоединения к сети через WAP 1.1 для отправки сообщения, вы сначала составляете его в автономном режиме, что, разумеется. значительно снижает затраты при работе с SL45i. Примерно до 5 часов пользователь может использовать такую функцию как запись речевых сообщений и синхронизацию с ПК, благо память этого телефона позволяет на сменной карте MultiMediaCard (MMC) на 32 Мб записывать достаточно большое количество файлов.

Также данный аппарат позволяет устанавливать, посредством подключения к Интернету или ПК различного рода заставки на радуемый своими габаритами экран аппарата, самые разнообразные мелодии звонка и графических объектов. Все это, разумеется, подчеркивает не только индивидуальность пользователя, но и дает реальную возможность проявить свою фантазию с целью приятной и полезной работы с Siemens SL45i.

18.05.2011

В этой статье мы представим 14 интересных программ, которые можно использовать на абсолютном большинстве мобильных телефонов начального уровня.

Несмотря на то что в последние годы большую популярность приобрели смартфоны и другие портативные устройства, работающие на платформах Android, iOS, Windows Mobile, Samsung bada, Symbian, все же до сих пор продается и используется множество мобильных телефонов начального уровня. Такие аппараты имеют ограниченные ресурсы (небольшой размер дисплея, малый объем памяти и пр.), однако неплохо справляются со своими основными функциями. Отрадно, что разработчики приложений не забывают о владельцах подобных телефонов и приложения, созданные для платформы Java ME, все еще продолжают выходить.

Opera Mini 6
Язык интерфейса
: русский
Цена : бесплатно
Разработчик : Opera Software
Сайт : m.opera.com

Bolt 2.5
Самым популярным мобильным браузером в мире считается Opera Mini, однако за последние два года и мобильному обозревателю Bolt удалось привлечь на свою сторону немало пользователей. Представленный в начале 2009 г., он работает на всех устройствах, поддерживающих Java ME. Владельцам совсем старых телефонов разработчики также предлагают облегченную Lite-версию браузера, в которой отсутствуют некоторые функции.
Bolt поддерживает работу с вкладками, благодаря чему можно одновременно загружать несколько сайтов и переключаться при их просмотре. Страницы, занесенные в "Избранное", выводятся на стартовой странице браузера, поэтому запускать их можно максимально быстро. Bolt позволяет создавать резервную копию закладок в облаке и импортировать их в любой момент. Это удобно тем, кто использует этот продукт на нескольких устройствах.
Со стартовой страницы Bolt легко перейти к списку посещенных сайтов. Еще одна интересная функция браузера -- работа с виджетами, мини-приложениями, которые можно устанавливать вручную, что расширяет возможности программы. С помощью виджетов можно, например, узнавать информацию о погоде, работать со своим аккаунтом в Twitter, общаться с друзьями на Facebook, выполнять поиск в Wikipedia и т.д.

Bolt
Язык интерфейса : английский
Цена : бесплатно
Разработчик : Bitstream
Сайт : boltbrowser.com/home.html

"Яндекс.Метро" 2.04
Метро -- это один из самых удобных видов транспорта, но, спустившись под землю, легко перепутать переход или платформу и поехать в другую сторону. Особенно это актуально для тех, кто пользуется метро не в родном городе. Программа " Мобильное Яндекс.Метро" помогает планировать поездки на метро в Москве, С.-Петербурге, Екатеринбурге, Киеве, Харькове и Минске. Программа не просто показывает схему линий метрополитена, но и дает возможность рассчитать время поездки с учетом пересадок, а также выбрать оптимальный маршрут из нескольких предложенных. "Мобильное Яндекс.Метро" также содержит карты метрополитена Казани, Нижнего Новгорода, Новосибирска, Самары и Днепропетровска, однако для этих городов функция планирования поездок пока недоступна.

"Яндекс.Метро"
Язык интерфейса : русский
Цена : бесплатно
Разработчик : «Яндекс»
Сайт : mobile.yandex.ru/metro

Qip Mobile 1.2
Пользователи одного из самых популярных в России IM-мессенджеров -- Qip могут попробовать программу и на своем мобильном телефоне. Qip Mobile разрабатывается для разных платформ, в том числе и для Java. Его создатели предлагают отдельные Java-версии для телефонов Nokia, Samsung, Motorola, Siemens, а также для устройств, оснащенных сенсорными экранами. Программа работает с различными протоколами, включая ICQ, ВКонтакте, Jabber, Yandex Online, Google Talk, LiveJournal и Mail.Ru Agent. В Qip Mobile есть все основные функции, свойственные подобным продуктам. О поступлении новых сообщений программа способна уведомлять вибровызовом или звуковым сигналом. Для защиты от нежелательных сообщений в ней предусмотрен антиспам. В его настройках можно задать блокирование сообщений, содержащих определенные слова. А чтобы пользователь контролировал свои расходы на Интернет, в Qip Mobile встроен модуль для автоматического подсчета затраченных средств.

Qip Mobile
Язык интерфейса
: русский
Цена : бесплатно
Разработчик : QIP.ru
Сайт : qip.ru/mobile#java

"НАВИТЕЛ.КАРТЫ" (Java)
Навигационные программы и автомобильные навигационные карты, выпускаемые под маркой НАВИТЕЛ, хорошо известны отечественным автолюбителям. С недавнего времени такие сервисы для навигации стали доступны всем владельцам мобильных телефонов, поддерживающих Java. Приложение "НАВИТЕЛ.КАРТЫ" (Java) отличается тем, что не хранит карты в памяти телефона, а по мере необходимости подгружает их из Интернета. Благодаря этому оно достаточно быстро работает даже на стареньких мобильных телефонах с малым объемом памяти. "НАВИТЕЛ.КАРТЫ" помогает не только проложить маршрут между двумя заданными точками на территории России, но и оценить загруженность дорог. Программа скачивает актуальную информацию о состоянии дорог с сервиса "Навител.Пробки" и использует ее при построении маршрута.

"НАВИТЕЛ.КАРТЫ" (Java)
Язык интерфейса
: русский
Цена : бесплатно
Разработчик : «Центр Навигационных Технологий»
Сайт : navitel.su/navigation/java/

Snaptu Facebook
Израильская компания Snaptu в течение ряда последних лет занималась разработкой приложений, упрощающих доступ к различным социальным сервисам. Главная особенность всех программ компании -- их ориентированность на использование в телефонах начального уровня. В начале марта интернет-гигант Facebook приобрел Snaptu, а разработанный компанией клиент для работы с популярнейшей социальной сетью стал официальным мобильным Java-клиентом Facebook. Snaptu Facebook, имеющая интерфейс в стиле iPhone, предоставляет удобный доступ ко всем основным функциям Facebook. Так, с помощью клиента можно изменять статус, работать с личными сообщениями, читать уведомления и запросы, управлять запланированными событиями и приближающимися днями рождения, просматривать свой профиль и профили друзей, изменять картинку в профиле. Кроме того, конечно же, можно искать новых друзей в социальной сети.

Snaptu Facebook
Язык интерфейса
: английский
Цена : бесплатно
Разработчик : Snaptu
Сайт : snaptu.com

KD Player 0.9.6
Многие мобильные телефоны способны воспроизводить музыку, однако нередко встроенный плеер оставляет желать лучшего. Альтернативный проигрыватель KD Player может стать неплохой заменой стандартному приложению. Он воспроизводит файлы всех музыкальных форматов, поддерживаемых телефоном. Продукт умеет подбирать и редактировать списки воспроизведения в формате M3U, а также автоматически создавать плейлисты из имеющихся в музыкальной библиотеке композиций. Причем их поиск может выполняться в указанных пользователем папках. В процессе воспроизведения плеер выводит информацию о битрейте и частоте дискретизации, а также все доступные данные о композиции. Для получения сведений о названии песни, альбома и имени исполнителя используется информация из ID3-тегов, причем поддерживаются и русские названия. Помимо того, KD Player подхватывает и показывает обложки альбомов, сохраненные в ID3v2-тегах либо в папке под названием Cover.jpg или Folder.jpg. К дополнительным возможностям KD Player относятся наличие эквалайзера, смена интерфейса при помощи скинов, работа в фоновом режиме (только для телефонов Sony Ericsson, Nokia S60, UIQ3).

KD Player
Язык интерфейса : русский
Цена : бесплатно
Разработчик : Сергей Борисов
Сайт :www.easter-eggs.net.ru/KDPlayer/index.php

HideME 1.0
В телефоне могут храниться различные фотографии и файлы, предназначаемые исключительно для личного пользования. А поможет закрыть к ним доступ простенькая программа HideME. Разработанная для телефонов Sony Ericsson, она тем не менее отлично работает и с моделями других производителей.
Принцип ее работы максимально прост: если указать файлы и папки (вложенные директории также поддерживаются), которые необходимо скрыть, то они исчезнут из виду. После этого доступ к ним возможен только при помощи программы из раздела Hidden Files (Скрытые файлы). Кстати, можно заблокировать использование программы паролем.
Стоит, однако, учесть, что файлы и папки, которые программа закрывает, не шифруются. Поэтому для обеспечения конфиденциальности паролей, данных кредитных карт и прочей важной информации, стоит применять другие средства, обеспечивающие более надежную защиту, например Cryptex.

HideME 1.0
Язык интерфейса
: английский
Цена : бесплатно
Разработчик: неизвестен
Сайт : code.google.com/p/hideme

Cryptex
Тем, кто хранит в памяти телефона банковские данные и прочие ценные для себя сведения, которые не должны попасть в чужие руки, имеет смысл заранее позаботиться об их безопасности. Программа Cryptex подходит для этого как нельзя лучше. До того как начать работать с ней, необходимо придумать секретный вопрос и ответ на него, который и будет паролем. Его следует вводить всякий раз при запуске программы.
После успешного ввода пароля можно добавлять записи. Каждая из них содержит ключ и значение. Ключ -- это название записи, например "пин", а значение -- секретная информация, например "1234". Интересно, что если пароль вводится неправильно, программа не подает вида, а просто показывает содержимое в виде набора случайных символов. Для шифрования данных используется алгоритм RC4.

SafeBox Private SMS 3.12
Конфиденциальные данные -- это не обязательно пароли или ПИН-коды. Иногда даже такие привычные вещи, как текстовые сообщения, могут носить личный характер. О том, что проблема сохранения приватности актуальна для многих, свидетельствует хотя бы то, что всего лишь за восемь месяцев своего существования программа SafeBox Private SMS привлекла более полумиллиона пользователей.
Принцип ее работы очень прост: она создает зашифрованное хранилище, доступ к которому защищается паролем. Все текстовые сообщения, отправляемые определенным людям, попадают в это хранилище, и их не видно в стандартной папке посылаемых SMS в телефоне. То же самое касается и принятых сообщений от определенных контактов. Таким образом можно скрыть личную переписку от посторонних глаз.

SafeBox Private SMS
Язык интерфейса : русский
Цена : бесплатно
Разработчик : SafeBox Ltd
Сайт : safebox.mobi

MobilGet 2.5
К сожалению, при выходе в Интернет с мобильного устройства нередко можно столкнуться с проблемами нестабильной связи. При просмотре страниц с этим еще можно смириться, однако если вы задались целью скачать файл, постоянные обрывы связи раздражают. Кроме того, поскольку файл несколько раз начинает загружаться заново, деньги расходуются впустую (в том случае, если сотовому оператору идет плата за каждый скачанный мегабайт).
Всем, кто часто скачивает из Интернета файлы, будь то мелодии или красивые картинки, удобно пользоваться менеджером загрузки. Программа MobilGet отличается поддержкой докачки, а также возможностью загрузки нескольких файлов сразу (максимальное число одновременно скачиваемых файлов выбирается в настройках). Кроме того, у MobilGet есть и другие преимущества. Так, можно установить время начала и окончания загрузки. В случае если ночью трафик дешевле, чем днем, имеет смысл задавать временной диапазон. Наряду с загрузкой по расписанию возможны ручной и автоматический запуски. Если сервер, с которого планируется скачивать файл, требует авторизации, в настройках программы стоит указать логин и пароль. Общий размер загружаемых файлов ограничен лишь свободным местом, доступным в телефоне.

MobilGet
Язык интерфейса : русский
Цена : бесплатно
Разработчик : О.В. Медведев
Сайт :grafmoto.narod.ru/mobilget.htm

MailMan 2.04
Даже самый простой мобильный телефон, способный выходить в Интернет, годится для работы с электронной почтой. Это бывает очень удобно тогда, когда нужно отправить важное сообщение или узнать, не пришел ли ответ на письмо, а под рукой нет ни ноутбука, ни настольного компьютера.
Почтовый клиент MailMan хорош тем, что поддерживает самые популярные протоколы, предназначенные для получения и отправки почтовой корреспонденции, -- POP3 и SMTP. Подключение к почтовым серверам выполняется напрямую, минуя шлюзы. Программа обеспечивает отправку сообщений на русском языке (используется кодировка koi8-r), а также писем, содержащих вложения. Для экономии трафика при получении писем MailMan может загружать только заголовки или же первые строки письма. При необходимости можно затем загрузить письмо целиком (включая вложения) или же удалить его на сервере.

MailMan
Язык интерфейса : русский
Цена : бесплатно
Разработчик : SVasiliy
Сайт : mmj2.pp.ru/java/index.shtml

JabpLite 1.72
Кроме всего прочего, мобильный телефон подходит и для учета личных финансов. В этом поможет программа JabpLite, имеющая все основные функции, типичные для приложений такого рода. Она позволяет вести учет доходов и расходов. Причем поддерживаются несколько счетов, с которых могут тратиться деньги, в том числе и в разных валютах. Программа автоматически обновляет курсы валют и учитывает их при обмене.
Расходы можно группировать по категориям, а затем определять, на что расходуется больше всего денег (JabpLite наглядно демонстрирует Top-10 категорий расходов). Если регулярно производятся определенные платежи, то программа способна автоматически проводить такие транзакции. А еще JabpLite сумеет вычислить, хватит ли денег до следующей зарплаты, а также спланировать предстоящие расходы. Все данные, которые заносятся JabpLite, могут синхронизироваться с программами для ведения домашней бухгалтерии на компьютере. Утилита поддерживает импорт и экспорт файлов QIF, которые понимает большинство настольных программ для учета финансов. Данные сохраняются на карту памяти, и потому их легко перенести на компьютер или другой телефон.

JabpLite
Язык интерфейса : английский
Цена : бесплатно
Разработчик : Malcolm Bryant
Сайт : www.freepoc.org/viewapp.php?id=58

SmartCam 1.2
Сейчас наличие камеры уже давно не является признаком того, что телефон дорогой. Камерафоны стали привычным делом, а некоторые из подобных устройств вполне можно отнести к телефонам начального уровня. Программа SmartCam предоставит возможность встроенной в телефон камере исполнить роль веб-камеры для компьютера. Правда, для этого требуется, чтобы телефон поддерживал соединение посредством Bluetooth или Wi-Fi, поскольку именно так данные будут передаваться на компьютер. Чтобы SmartCam функционировала, нужно установить ее, во-первых, на телефон, во-вторых, на компьютер. Затем в настройках программы на телефоне выбирается тип соединения, и через пару секунд в окне SmartCam на компьютере появляется изображение с камеры. После этого телефон можно использовать как веб-камеру в любых приложениях (Skype и т.д.), выбрав SmartCam в списке подключенных устройств.

SmartCam
Язык интерфейса : английский
Цена : бесплатно
Разработчик : Geeknet
Сайт : smartcam.sourceforge.net

Java ME и ее возможности
Когда говорят о Java-приложениях для мобильных телефонов, обычно имеют в виду программы, разработанные для платформы Java ME (J2ME). Это специальная версия Java, созданная для устройств с ограниченными вычислительными мощностями. Платформа Java ME, используемая в мобильных телефонах, состоит из нескольких компонентов. Первый -- это виртуальная машина. Если речь идет об аппаратах начального уровня, в них используется конфигурация CDLC 1.0 (Connected Limited Device Configuration -- конфигурация устройства с ограниченными ресурсами и коммуникационными возможностями). Второй обязательный компонент Java ME -- профиль мобильных устройств с информационными функциями MIDP (Mobile Information Device Profile). Отсюда и получили свое название приложения, написанные для этого профиля, -- мидлеты. Функции Java, предназначенные для мобильных телефонов, устанавливаются в этих устройствах их производителями.
В настоящее время в мире насчитывается около 3 млрд. телефонов, способных работать с Java-приложениями. И это не только старые аппараты, которые можно купить лишь с рук. По количеству реализуемых устройств Java-телефоны значительно опережают смартфоны: их продается примерно в 30 раз больше, чем устройств на базе iOS и Android вместе взятых.
Несмотря на это, платформа Java ME потихоньку уходит в прошлое. Еще в 2007 г. ее разработчики сделали заявление о том, что начинают поэтапное сворачивание мобильной платформы и переход к ее стандартной версии -- Java Standard Edition. Однако, по их предположениям, телефоны, использующие Java ME, исчезнут с рынка только к 2018 г.
Java-приложения можно запускать не только на обычных телефонах, но и на смартфонах. Но поскольку для таких устройств существует достаточно много программного обеспечения, созданного специально для современных мобильных платформ, обычные мидлеты в большинстве случаев не актуальны. Впрочем, многие приложения для Android написаны именно на Java (а не на Java ME).

В смарт-телефонах технологии Java либо играют роль посредника между операционной системой и аппаратным обеспечением, либо работают параллельно с операционной системой на отдельной микросхеме.

Эксперты предполагают, что в ближайшие годы язык Java, который уже поддерживается многими производителями, будет все шире использоваться в мобильных устройствах. Ник Джонс, ведущий аналитик компании Gartner, уверен, что Java станет фактическим стандартом на сотовые телефоны среднего и старшего класса. Согласно его прогнозам, к 2006 году, по крайней мере, 80% мобильных телефонов будут поддерживать Java, хотя в некоторых из них могут использоваться и другие технологии, в частности, ОС Pocket PC.

По словам Джонса, производителей мобильных устройств Java интересует в первую очередь как механизм, позволяющий легко добавлять к таким системам программное обеспечение. Кроме того, Java позволяет приложениям работать на различных платформах. Однако недостаточно высокая производительность Java-программ и недостаточный выбор написанных на нем приложений для сотовых телефонов остаются основными препятствиями на пути широкого применения данной технологии.

Java внедряется в карманные устройства

Работа над карманными устройствами, рассчитанными на использование Java, началась несколько лет назад, но окончательное формирование платформы Java 2 Platform Mobile Edition (J2ME) и поддержка со стороны производителей устройств и провайдеров услуг сотовой связи, как считает Эрик Чу, менеджер группы продуктов для отраслевого маркетинга корпорации Sun Microsystems, стала главной причиной значительного роста интереса, проявляемого к этой технологии.

Степень распространенности

Корейская компания LG Telecom первой стала использовать телефоны с поддержкой Java в сентябре 2000 года. С того момента, по словам представителя Sun Мари Доминго, пользователи получили 18-20 млн. сотовых телефонов, поддерживающих Java.

В настоящее время телефоны с Java предлагают такие операторы, как Nextel в США, NTT DoCoMo в Японии и British Telecom в Англии. Бен Ванг, менеджер по развитию систем компании Sprint, уверен, что в ближайшее время 80% новых телефонов, которые продает компания, будут поддерживать Java. Одна только Nokia планирует в 2003 году выпустить 100 млн. телефонов с Java. Полтора десятка производителей сотовых телефонов либо уже продают, либо планируют выпустить на рынок модели телефонных аппаратов, ориентированных на работу с Java; всего таких моделей предложено более 50.

Сильные стороны Java-телефонов

По словам Чу, одним из основных преимуществ, которые Java сулит сотовым телефонам, является поддержка сетей коммутации пакетов, построенных на основе TCP/IP. С помощью TCP/IP проще создавать приложения, которые напрямую взаимодействуют с телефоном, а не применяют для этого промежуточную технологию - такую, например, как WAP (wireless application protocol). Кроме того, как подчеркнул Чу, Java, в отличие от WAP, поддерживает изображения и цвет, а, кроме того, среда Java обеспечивает надежную защиту, поскольку включает в себя известный механизм «песочницы», ограничивающей доступ загружаемого кода к остальной части системы.

Более того, способность Java работать с самыми разными платформами крайне важна для рынка сотовых телефонов, для которого характерна исключительная фрагментированность. Эта особенность позволяет на телефонах с Java запускать приложения и службы, написанные для других мобильных платформ, и дает производителям программного обеспечения возможность экономить время и деньги, создавая единую Java-версию приложения для работы на разных платформах. Телефоны и серверы, рассчитанные на использование Java, могут напрямую взаимодействовать друг с другом.

Пользователи могут значительно проще реализовывать новые возможности. Раньше им приходилось покупать новые телефоны, запускать новые приложения удаленным образом с помощью WAP или загружать программы, предварительно поместив их на ПК. В то же время, сейчас очень многие пишут на Java, благодаря чему производителям мобильных устройств, поддерживающих Java, намного проще найти специалистов для создания своего программного обеспечения.

Реализация Java в карманных устройствах

Sun Microsystems

Sun вместе с группой своих партнеров разработала платформу J2ME для того, чтобы Java можно было использовать на небольших устройствах. J2ME включает в себя некоторые базовые команды Java и API, но работает на небольших устройствах, поскольку требует меньше ресурсов, чем Java 2 Platform Standard Edition (J2SE) или Enterprise Edition (J2EE), (рис. 1), и имеет только те функции, которые необходимы устройствам, где устанавливается J2ME. Например, графика и функции доступа к базе данных в J2ME более ограничены, чем в J2SE и J2EE.

J2ME, как правило, включает в себя подсоединенную ограниченную конфигурацию устройств, которая реализуется на операционных системах и служит в качестве интерфейса между ОС и Java-приложениями. CLDC обычно использует виртуальную K-машину (KVM), упрощенную, менее функциональную версию виртуальной машины Java (JVM) для небольших устройств. Так называемый профайл мобильных информационных устройств (MIDP) размещается на CLDC и предоставляет набор API, который определяет, как мобильные телефоны будут взаимодействовать с приложениями.

Другие производители

Помимо Sun решения на базе Java для карманных устройств создают и другие производители. Hewlett-Packard выпускает MicroChaiVM, версию JVM, которая, в отличие от использования решения от Sun, не требует лицензионных выплат и не предусматривает ограничения в применении. Ряд производителей, в том числе Sony Ericsson, планируют выпускать телефоны на базе MicroChaiVM.

Компания SavaJe разработала операционную систему SavaJe OS, которая поддерживает приложения Java в мобильной среде за счет оптимизации библиотек J2SE для массовых моделей процессоров мобильных устройств. Меттью Катино, один из основателей SavaJe и вице-президент по маркетингу, отметил, что приложения Java, как правило, тратят 80-90% своего времени на работу библиотек. Таким образом, как объяснил Катино, оптимизация библиотек позволит приложениям работать в 10-20 раз быстрее.

Компания Zeosoft разработала ZeoSphere Developer, который позволяет создавать мобильные приложения, поддерживающие Enterprise Java Beans - созданную корпорацией Sun архитектуру программных компонентов на базе Java. Это может упростить разработку сложных корпоративных приложений, которые взаимодействуют друг с другом и работают на серверах (с помощью J2EE), ПК (с помощью J2SE) и мобильных устройствах (с помощью J2ME).

Инструментальные средства разработки программ

Разработчики приложений могут применять уже существующие инструментальные средства для создания программ на Java для карманных устройств за счет ограничения кода своих библиотек и API, поддерживаемых J2ME. Однако, как отметил Джекоб Кристфорт, директор по технологии подразделения Oracle Mobile Division, J2ME включает в себя только ограниченное число библиотек разработки.

По словам Джонса, предприятия могут отказаться от J2ME из-за чересчур скудного пользовательского интерфейса, ориентированного на экраны небольших устройств, примитивной многопоточной модели и минимальных встроенных функций обработки данных. По существу, как объяснил Джонс, подход к проектированию, который позволяет J2ME работать на небольших устройствах, иногда неприемлем для крупномасштабных корпоративных проектов.

Стремясь решить эти проблемы, некоторые производители выпустили или планируют выпустить пакеты инструментальных средств или дополнения к таким пакетам, чтобы разработчикам было проще удовлетворять требования корпоративных приложений. К такого рода средствам относятся Sun Forte for Java Programming Tools, инструментальный пакет Oracle 9i Application Server Wireless и Sprint PCS Wireless Toolkit.

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

Джон Монтгомери, менеджер по продуктам группы Microsoft .Net Development Group, считает, что инструментальные средства Java слишком примитивны и сложны для большинства разработчиков.

«Карманный» Java для серверов

Еще один подход, ориентированный на Java, позволяет связать карманные устройства с Java-приложениями и службами на серверах. AT&T Wireless, BEA Systems, IBM, Nokia, NTT DoCoMo, Sun и ряд других компаний создали Open Mobile Architecture на базе Java для связи сотовых телефонов и серверов. Этот проект расширяет среду J2EE, предназначенную, главным образом, для серверов, таким образом, что она поддерживает стандарты, которые мобильные устройства могут использовать для информации из Internet. К этим стандартам относятся XHTML (отображение Web-страниц на мобильных устройствах), SyncML (синхронизация данных между мобильными устройствами и другими машинами), WAP 2.0 (доступ к информационному наполнению и службам Internet) и служба мультимедийных сообщений (передача сообщений на карманные устройства).

Аппаратные и программные реализации

Технология Java может быть реализована на программном или на аппаратном уровне на любой специализированной плате-ускорителе Java или в ядре центрального процессора.

Программные реализации, как правило, менее эффективны, поскольку системы должны преобразовывать каждую команду Java во внутренние команды, которые способен выполнять центральный процессор. Автономные аппаратные микросхемы более производительны, но требуют установки дополнительных компонентов в устройство и увеличивают затраты. Ядро Java объединяет отдельные элементы обоих подходов.

Программный подход

При программном подходе центральный процессор устройства выполняет код Java. Дэвид Роджерс, менеджер по маркетингу группы Intel PCA Components Group, сообщил, что его компания разрабатывает методы ускорения программного процесса, приостанавливающегося, когда центральный процессор переключается с команды, которую он может ускорить, на команды, для которых этого сделать нельзя.

Аналитик Маркус Леви из компании Micro-Design Resources, занимающейся исследованиями отрасли полупроводниковых устройств, не согласен с этой точкой зрения. «Люди тратят много сил на совершенствование программных решений. Для кого-то такой вариант подходит, но если вы действительно хотите получить наиболее эффективную реализацию, вам нужен аппаратный подход», - считает он.

Аппаратная реализация Java

Такие компании, как ARC Cores, ARM, Aurora VLSI, Digital Communications Technologies, inSilicon и Zucotto Wireless создают аппаратное обеспечение для работы Java либо в виде сопроцессорных ядер Java для интеграции в центральный процессор, либо в виде автономных микросхем Java.

И тот, и другой аппаратные подходы обещают увеличить производительность Java-приложений и, за счет более эффективной их работы, уменьшить требования к энергоемкости для сотовых телефонов, работающих от батарей.

Микросхемы разных компаний выполняют различные подмножества команд Java. Например, процессор Jazelle компании ARM, показанный на рис. 2, выполняет около 68,2% всех возможных команд Java, а процессор DeCaf компании Aurora - 95% всех команд. Поддержка более широкого диапазона команд Java обеспечивает большую функциональность, но делает процессор дороже и предполагает более высокий уровень потребления энергии.

Джоан Пендлетон, одна из основателей и главный архитектор компании Aurora, заметила, что существует два класса ускорений. Первый, которому следует большинство, преобразует байт-код Java в команды процессора. Второй - напрямую выполняет байт-код Java, что гарантирует более высокую производительность, но требует больше места, поскольку в этом случае необходима дополнительная микросхема для работы программного обеспечения на этом оборудовании.

Согласно прогнозам Леви, ядра Java станут более популярны, чем автономные процессоры Java. Главное ограничение такого подхода заключается в том, что разработчики должны для создания своих продуктов использовать элементную базу, называемую «системами на плате» (system-on-chip, SoC). Размещение множества функций на микросхеме дороже обходится при разработке, но избавление от дополнительных микросхем снижает стоимость готового устройства. Автономные микросхемы Java менее дорогие в проектировании, но увеличивают стоимость устройства.

Трудности и проблемы

Мобильный вариант Java по-прежнему остается относительно новой технологией. Многие аналитики отрасли считают, что эта технология ставит целый ряд вопросов, пока остающимися открытыми.

Например, Джонс высказал опасение в связи с тем, что производители создают существенно отличающиеся друг от друга реализации Java. По его словам, разработчикам не нравится то, что им приходится вручную оптимизировать свои Java-решения для различных сотовых телефонов.

И, хотя сейчас разработкой Java занимаются очень многие, мало кому приходилось работать с J2ME и писать код для небольших, ограниченных по своим ресурсам устройств.

Монтгомери более категоричен: «Среда J2ME - это интересный набор инженерных компромиссов, но я бы сказал, ошибочных компромиссов. Она слишком велика для самых маленьких устройств, но слишком мала, чтобы предложить функции, необходимые для самых интеллектуальных устройств».

Производительность

Джонс считает, что мобильный вариант Java может, в некоторых случаях, работать довольно медленно, поскольку KVM не отличается особой скоростью. Однако, по его словам, в будущем KVM должна стать быстрее, в частности по мере того, как телефоны с памятью большей емкости смогут использовать JIT-компиляторы, которые увеличивают производительность (Just-in-Time - «точно вовремя»).

«Буквально через пять лет, - уверен он, - производительность перестанет быть проблемой».

Еще одна трудность, по словам Леви, заключается в отсутствии стандартов для объективного измерения производительности на разных платформах. В связи с этим Леви организовал группу по Java-процессорам в консорциуме Embedded Microprocessor Benchmark Consortium. Эта группа, как предполагается, в ближайшее время выпустит свой первый тест производительности.

Нехватка приложений

Сейчас существует несколько мобильных Java-приложений, в том числе игры, а также карты погоды и транспортного трафика. Однако, по словам Джонса, пока не хватает самых необходимых приложений. Причина, по его словам, не в самой технологии, а в отсутствии эффективной бизнес-модели и коммерческой инфраструктуры, которая позволила бы разработчикам получать прибыль от своей деятельности.

Увеличение числа посредников, которые могли бы сертифицировать и продавать программное обеспечение Java, предназначенное для мобильных устройств, могло бы решить эту проблему.

Карманные устройства и будущее Java

Джонс считает, что технологии Java нашли широкое применение на серверных платформах, поскольку Java-приложения можно легко переустановить в том случае, если организация приобрела новые серверы. Однако, как он отметил, на клиентах Java применяется значительно реже, поскольку многие создатели корпоративных приложений используют Visual Basic для работы в корпоративной среде, поскольку она, как правило, базируется на решениях Microsoft. Таким образом, борьба на рынке мобильных платформ имеет для Sun приоритетное значение.

Однако реализация Java-инициатив, предпринятых Sun в отношении мобильных телефонов, проходит в условиях серьезной конкуренции. С ее продуктами, в частности, соперничают разработки для беспроводных технологий корпорации Microsoft, операционная система Symbian, Linux и двоичная среда времени исполнения для беспроводных устройств (binary real-time environment for wireless - BREW), создаваемая компанией Qualcomm.

«Сейчас на этом рынке время анархии, и он пока абсолютно не консолидирован», - объяснил Джонс.

По его словам, J2ME будет привлекать внимание все большего числа разработчиков приложений по мере того, как будет расти ее функциональность и сниматься ограничения. Опрос, проведенный исследовательской компанией Evans Data, показал, что разработчики беспроводных систем, которые используют Java, планируют в 2003 году применять эту технологию более активно, чем в прошлом.

Кроме того, язык Java станет более приемлемым для смарт-телефонов по мере увеличения ресурсов этих устройств и при условии, что производители будут создавать более качественные API для цветных экранов, более высокого качества звука, надежной защиты интеллектуальной собственности и функций обнаружения местонахождения владельца. Однако, по его словам, эти дополнительные функции позволят производителям предлагать свои собственные реализации Java, что может способствовать фрагментации среды разработки приложений.

Ванг также отметил, что первоначально Java для мобильных систем будет ориентирована на игры, мультимедиа и воспроизведение различных мелодий звонков. Со временем, по его словам, Java станет фактическим стандартом для смарт-телефонов.

Согласно прогнозам Катино, Microsoft и технологии на базе Java, скорее всего, в ближайшие годы будут сосуществовать в мобильных телефонах. Независимые производители могут помочь этому, разрабатывая методы интеграции программного обеспечения, позволяющие объединять в устройствах две этих среды.

Джордж Лоутон ([email protected]) - независимый журналист, специализирующийся на проблематике информационных технологий.

George Lawton, Moving Java to Mobile Phones. IEEE Computer, June 2002. IEEE Computer Society, 2002. All rights reserved. Reprinted with permission.

Платформа Java 2 Micro Edition (J2ME) была разработана для потребительского рынка устройств с ограниченными ресурсами памяти и процессора таких как: сотовые телефоны, пейджеры, смарт карты, органайзеры и миникомпьютеры. J2ME позволяет запускать Java на ресурсо-ограниченных вычислительных устройствах. Для данных целей J2ME адаптирует существующую Java технологию. Расмотрим два ключевых момента J2ME: конфигурацию и профайлы.

Конфигурация.

Конфигурация определяет среду выполнения J2ME. Она включает в себя виртуальную машину ограниченную по сравнению с стандартной VM и набор основных классов, в основном заимствованных из J2SE. В настоящий момент определены 2 конфигурации: Конфигурации коммуникационных устройств с ограниченными ресурсами (Connected Limited Device Configuration, CLDC) и Конфигурация коммуникационных устройств (Connected Device Configuration, CDC). Первая конфигурация ориентированна на микро устройства, оснащеные 16- или 32-битными процессорами с минимальным объемом памяти около 128 Кб. Сердцем J2ME CLDC является виртуальная машина K Virtual Machine (KVM), специально разработанная для сетевых устройств с небольшим объемом памяти и ограниченными ресурсами. Вторая конфигурация J2ME, CDC, ориентирована на более сложные электронные и встроенные устройства, такие как смарт коммуникаторы, сложные "интеллектуальные" пейджеры, персональные цифровые помощники (PDA) и интерактивные цифровые телевизионные приставки. Как правило, такие устройства комплектуются 32-битным микропроцессором/контроллером и оснащены более 2 Мб памяти, используемой для хранения виртуальной машины и библиотек. CDC работает с виртуальной машиной C Virtual Machine (CVM). CDC включает в себя все классы из CLDC и еще больше классов из J2SE. Главное отличие между CDC и CLDC являеться то что CDC VM поддерживает все возможности J2SE VM включая native programming interfaces

Профайл.

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

Foundation Profile - добавляет набор классов из J2SE к CDC но не вводит пользовательского интерфейса. Данный профайл используеться для построения на нем других профайлов.jsr-46

Personal Basic Profile - обеспечивает Java API для устройств требующих сетевой доступ и графическую презентацию. Данный профайл является подходящим для интерактивного телевидения и содержит API для поддержки Multimedia Home Platform. (JSR129)

Personal Profile - обеспечивает Java API для устройств требующих надежный сетевой доступ построен на Personal Basic Profile и Foundation Profile (JSR62)

Рисунок 1. Архитектура J2ME.

CLDC (Конфигурации коммуникационных устройств с ограниченными ресурсами)

CLDC являеться результатом работы Java Community Process (JSP) экспертной группы JSR-30 в которую составили следующие компании:

  • America Online
  • Ericsson
  • Fujitsu
  • Matsushita
  • Mitsubishi
  • Motorola
  • Nokia
  • NTT DoCoMo
  • Oracle
  • Palm Computing
  • Samsung
  • Sharp
  • Siemens
  • Sun Microsystems
  • Symbian
  • CLDC технология используеться для постоения на ней различных профайлов. Цель данной технологии определить стандарт использования Java на устройствах с ограниченными ресурсами.

  • 160-500 kb памяти доступной для Java платформы
  • 16-32 битный процессор
  • низкое потребление энергии
  • сетевое соединение 9600 bps или меньше.
  • Ниже представлены аспекты, которые попадают под "юрисдикцию" CLDC:

    Нижеследующие вещи не входят в область рассмотрения CLDC: (Как правило, они определяются профайлами.)

  • Пользовательский интерфейс
  • Обработка событий
  • Жизненный цикл приложений
  • Взаимодействие пользователя и приложения
  • Java язык и виртуальyная машина KVM

    Основная цель для JVM поддерживающей CLDC быть совместимой с Java Language Specification насколько это возможно. За исключением различий приведенных ниже, JVM которая поддерживает CLDC, совместима с Java Language Specification.

    • Нет поддержки floating point . Это связано с тем, что в устройствах с ограниченными ресурсами отсутствует поддержка floating point. Поддержка же на программном уровне была бы слишком дорогим удовольствием.
    • CLDC поддерживает exception механизм , однако, его арсенал является ограниченным. Это связано с двумя причинами:
      • Восстановление после ошибок достаточно специфично для каждого устройства. К тому же многие устройства просто перезагружаются после некоторых своих ошибок. Приложение не может заботиться о таких ошибках.
      • Полная реализация механизма является слишком дорогим удовольствием для микро устройств.

    KVM

    • Нет поддержки floating point . Это связано с тем, что в устройствах с ограниченными ресурсами отсутствует поддержка floating point. Поддержка же на программном уровне была бы слишком дорогим удовольствием. В JVM которая поддерживает CLDC отсутствуют байткоды связанный с типами float и double.
    • KVM не реализует Java Native Interface (JNI). Поддержка JNI была отклонена по двум причинам.
      • Ограничения, накладываемые security моделью CLDC. (Данная модель запрещает использовать native вызовы.)
      • Полная реализация JNI была признана слишком дорогой для устройств с ограниченными ресурсами.
    • KVM не позволяет создавать свой class loader. Это ограничения накладываемое security моделью.
    • KVM не поддерживает Reflection механизм. Java приложения не могут инспектировать классы, объекты, методы, поля, нитки, выполняемые стэки в виртуальной машине. Как следствие сериализация, JVMDI (Debugging Interface), JVMPI (Profiler Interface) и другие технологии J2SE основанные на Reflection механизме отсутствуют в CLDC.
    • KVM реализует многопоточность, но не поддерживает Thread group и daemon thread. Операции, такие как запуск и остановка могут быть применены только над отдельной ниткой.
    • Отсутствует метод finalize() и нет weak references. Это требование связано с необходимостью упрощения механизма сборки мусора.
    • Ограниченный еrror handling механизм по сравнению с J2SE.
    • Преверификация.

    CLDC библиотеки.

    CLDC библиотеки можно разделить на две категории:

    1. В первую категорию входят классы, наследованные из J2SE.
    2. Во вторую классы которые вводит CLDC.

    Классы, принадлежащие к первой категории находятся, в пакетах java.lang.*, java.util.*, и java.io.*. Эти классы производные из Java 2 Standard Edition версии 1.3. Данные классы являются идентичными соответствующим классам J2SE. Семантика классов и их методов не будет изменяться. К классам не будут добавляться любые public или protected методы, которые не являются доступными в J2SE.

    Системные классы.

    Данные классы внутренне связаны с виртуальной машиной. Некоторые Java приложения требуют наличия данных классов. Например, J2SE Java compiler (javac) генерируя код, требует наличия определенных функций String и StringBuffer классов. java.lang.Object
    java.lang.Class
    java.lang.Runtime
    java.lang.System
    java.lang.Thread
    java.lang.Runnable (interface)
    java.lang.String
    java.lang.StringBuffer
    java.lang.Throwable

    Классы представлющие типы.

    Каждый из этих классов представляют собой подмножество соответствующих классов из J2SE.

    java.lang.Boolean
    java.lang.Byte
    java.lang.Short
    java.lang.Integer
    java.lang.Long
    java.lang.Character

    Collection классы.

    java.util.Vector
    java.util.Stack
    java.util.Hashtable
    java.util.Enumeration (interface)

    Классы ввода вывода.

    java.io.InputStream
    java.io.OutputStream
    java.io.ByteArrayInputStream
    java.io.ByteArrayOutputStream
    java.io.DataInput (interface)
    java.io.DataOutput (interface)
    java.io.DataInputStream
    java.io.DataOutputStream
    java.io.Reader
    java.io.Writer
    java.io.InputStreamReader
    java.io.OutputStreamWriter
    java.io.PrintStream

    Классы Reader, Writer, InputStreamReader и InputStreamWriter обеспечивают поддержку интернализации.

    Механизм их работы такой же, как и в J2SE. Последние два класса имеют точно такие же конструкторы, как и в J2SE.

    new InputStreamReader (InputStream is); new InputStreamReader (InputStream is, String name); new OutputStreamWriter (OutputStream os); new OutputStreamWriter (OutputStream os, String name);

    В случаях, где присутствует String параметр, используется заданный character encoding, иначе используется character encoding, имя которого содержится в переменной microedition.encoding. Если конвертер не доступен, выкидывается UnsupportedEncodingException.

    Следует заметить, что CLDC не поддерживает локализацию. Это говорит о том, что все решения связанные с форматирование даты времени и т.д. находяться вне рамок расмотрения CLDC.

    Календарь и время.
    CLDC, включает небольшое подмножество стандартных J2SE классов: java.util.Calendar, java.util.Date, and java.util.TimeZone. По умолчанию одна временная зона поддерживается.

    java.util.Calendar
    java.util.Date
    java.util.TimeZone

    "Вспомогательные" классы.
    java.util.Random класс содержит простой генератор случайных чисел.
    java.lang.Math имеет в своем наборе методы abs, max и min для int и long типов.

    Exception & Error.
    java.lang.Exception
    java.lang.ClassNotFoundException
    java.lang.IllegalAccessException
    java.lang.InstantiationException
    java.lang.InterruptedException
    java.lang.RuntimeException
    java.lang.ArithmeticException
    java.lang.ArrayStoreException
    java.lang.ClassCastException
    java.lang.IllegalArgumentException
    java.lang.IllegalThreadStateException
    java.lang.NumberFormatException
    java.lang.IllegalMonitorStateException
    java.lang.IndexOutOfBoundsException
    java.lang.ArrayIndexOutOfBoundsException
    java.lang.StringIndexOutOfBoundsException
    java.lang.NegativeArraySizeException
    java.lang.NullPointerException
    java.lang.SecurityException
    java.util.EmptyStackException
    java.util.NoSuchElementException
    java.io.EOFException
    java.io.IOException
    java.io.InterruptedIOException
    java.io.UnsupportedEncodingException
    java.io.UTFDataFormatException

    java.lang.Error
    java.lang.VirtualMachineError
    java.lang.OutOfMemoryError

    Propety.
    В CLDC отсутствует класс java.util.Properties. Однако, property могут быть доступны при помощи статического метода System.getProperty (String key). Минимальный набор properties предоставляемый CLDC следующий.

    microedition.encoding
    microedition.platform
    microedition.configuration
    microedition.profiles

    Классы, принадлежащие ко второй категории находятся в пакетах javax.microedition.*. Пакет javax.microedition.io вводит новый механизм сетевой поддержки.

    CLDC Connection Framework

    java.io.* и java.net.* пакеты J2SE не подходят для микро устройств с их ограниченными ресурсами. Поэтому был разработан новый пакет javax.microedition.io.

    Данный пакет имеет только один класс: Connector, 8 интерфейсов и ConnectionNotFoundException.

    Класс Connector - это сердце Connection Framework, он имеет ряд статических методов для получения Connection объекта. Если операция происходит успешно метод возвращает объект реализующий Сonnection интерфейс иначе выкидывается IOException. На рисунке 2 представлена иерархия интерфейсов.


    Рисунок 2. Иерархия интерфейсов

    Объект, реализующий Connection интерфейс, может быть получен при помощи класса Connector, как уже было сказано выше. Интерфейс Connection имеет единственный метод close . Данный метод закрывает сетевое соединение.

    • InputConnection интерфейс "представляет устройство", из которого можно прочитать данные. Методы openInputStream и openDataInputStream возвращает поток для чтения.
    • OutputConnection интерфейс "представляет устройство", в которое можно записать данные. Методы openOutputStream и openDataOutputStream возвращают поток для записи.
    • StreamConnection интерфейс сочетает в себе IntputConnection и OutputConnection .
    • ContentConnection подинтерфейс StreamConnection .
    • StreamConnectionNotified ждет, пока соединение будет установлено. Метод acceptAndOpen() возвращает StreamConnection объект.
    • DatagramConnection интерфейс определяет дейтаграммное соединение.
    • ConnectionNotFoundException выкидывается, когда соединение не может быть утсановлено.

    Connector.

    Параметр String метода open класса Connector имеет следующий формат. "protocol:address;parameters".

    Вот несколько примеров:

    HTTP Connection Connector.open("http://java.sun.com/developer"); Socket Sockets: Connector.open("socket://129.144.111.222:9000"); Datagram Connection Connector.open("datagram://address:port#"); Communicate with a Port Connector.open("comm:0;baudrate=9600"); Open Files
    Connector.open("file:/myFile.txt"); Network file systems: Connector.open("nfs:/foo.com/foo.dat");

    Security.

    Одно из огромных преимуществ Java динамическая загрузка приложений через сеть, к клиенту используя надежный security механизм. Реализация данного механизма в J2SE превышает возможности доступного бюджета памяти для JVM поддерживающей CLDC. Для CLDC был разработан иной механизм, который можно разбить на два уровня: Уровень виртуальной машины и уровень приложения.

    Уровень виртуальной машины - подразумевает, что запускаемое приложение в VM не должно иметь способность каким-либо образом повредить устройство. Данное требование должно обеспечиваться Java classfile verifier, который должен гарантировать, что загружаемый байткод не содержит ссылок к недействительным областям памяти или памяти находящейся вне Java Heap. Verifier должен отклонить загрузку таких классов.

    Уровень приложения. Verifier не есть спасение от всех бед, он только проверяет байткод на "вшивость" но он не может гарантировать, что загруженное приложение не нанесет вред устройству. В J2SE SecurityManager обеспечивает контроль над тем, чтобы приложение не смогло, не санкционировано обратиться к файловой системе, установить соединение и т.д.. Но реализация такого контроля невозможно для мини устройств с их ограничениями.

    В JVM поддерживающая CLDC реализована sandbox security модель. В данной модели предполагается, что приложение должно выполняться в ограниченном окружении, в котором приложение может иметь доступ только к тем, API которые определены в конфигурации, профайлах и линензированных классах.

    Более точно sandbox модель означает:

    • Загружаемые Java класс файлы должны пройти верификацию
    • Приложение может иметь доступ только к тем, API которые определены в конфигурации, профайлах и линензированных классов.
    • Загрузка приложений может выполняться только native кодом виртуальной машины и не может осуществляться class loader определенным пользователем. Поэтому в CLDC нельзя создать свой class loader.
    • Приложение не может загрузить native библиотеку, приложение не может иметь доступ к native функциям, которые доступны виртуальной машине, и иметь доступ к native библиотекам, которые не являются Java библиотеками обеспечиваемые CLDC, профайлами или линензированными классами.
    • CLDC реализация должна обеспечивать невозможность перезагрузки системных пакетов java.*, javax.microedition.*

    Помимо этого профайлы могут добавлять свои ограничения к вышесказанным.

    MIDP

    Mobile Information Device Profile расширяет CLDC добавляя три новых пакета: Выдвигает требования к инсталляции мидлетов, которые должны содержаться в MIDlet Suites Добавляет несколько классов в уже имеющиеся пакеты, определенные в CLDC :
    • javax.microedition.io к java.io пакету добавляет HttpConnection интерфейс.
    • java.lang К java.lang пакету добавляет IllegalStateException (java.lang.IllegalStateException).
    • java.util Добавляет функциональность, которая позволяет приложениям создавать таймеры. Для этих целей были добавлены классы java.util.Timer и java.util.TimerTask из J2SE.
    Что такое Java?

    Для начала давайте разберемся, что же предлагают производители под торговой маркой Java.

    Итак, Java - это объектный язык программирования, пришедший на смену Ada. Создан он был в начале 90 - х в Пентагоне для нужд военной промышленности. Программа, написанная на Java, компилируется в специальный байт - код, который выполняется на виртуальной Java - машине. На самом же деле, Java - машина - это вовсе не машина, а программа, имеющая множество реализаций (компьютеры различных архитектур, работающие под управлением всевозможных операционных систем). Один раз написанная и преобразованная в байт - код программа может успешно выполняться на любой Java - машине.

    Никто не мог предположить, что за какие - то 2 - 3 года Java получит столь широкое применение: от создания "умных" Web - страничек (технология applet) до разработки гигантских банковских систем. Отдельно выделяется направление так называемых встроенных систем и систем реального времени: под управлением Java вот уже несколько лет работают стиральные машины, холодильники, телевизоры, телефоны и даже наручные часы.

    В начале прошлого года появилась вторая версия Java, так называемая Java 2, которую можно рассматривать как полноценную платформу, то есть совокупность машины и операционной системы. Сегодня существует три реализации платформы Java 2: Standard Edition (для обычных приложений и систем), Enterprise Edition (для приложений масштаба предприятия и больших клиент - серверных систем) и Micro Edition (для маленьких устройств, таких, как сотовые телефоны, PDA, органайзеры и смарт - карты с интеллектуальным чипом). Мы под словом "Java" будем подразумевать платформу и технологию Java 2 Micro Edition, сокращенно J2ME.

    Итак, если телефон поддерживает Java, это значит, что он может исполнять программы, написанные на языке Java, созданные для платформы J2ME. Каким образом попадают программы на телефон? Все Java - телефоны снабжены интерфейсами для подключения к персональному компьютеру. С точки зрения компьютера, файловая система телефона выглядит как простая папка, куда можно скопировать программу для дальнейшего исполнения.

    С точки зрения телефона, скопированная программа превращается в пункт меню.

    Программы можно скачивать и устанавливать прямо с мобильника, через WAP, а для смартфонов и коммуникаторов - через WWW.

    Java - телефоны

    16 мая 2002 года в Лондоне состоялась совместная пресс - конференция лидеров европейского рынка Java - телефонов Siemens AG и Nokia Corp, которые заявили, что аудитория пользователей Java - телефонов стандарта GSM составляет более 1 миллиона человек. Я намеренно использовал словосочетание "Java - телефон", так как все новые модели телефонов и смартфонов (как Nokia, так и Siemens) поддерживают Java или Symbian OS, операционную систему семейства Linux со встроенной поддержкой Java.

    Несколько месяцев назад в мире существовало около 2 - х десятков таких телефонов, в основном в Японии и США, стандарты iDEN и CDMA. И лишь 3 модели - для GSM: Siemens SL45i (достаточно хороший, но дорогой из - за встроенного MP3 - плейера) и две "Нокии", а именно 3410 и Communicator 9210. Сейчас Java поддерживают более 100 телефонов, из которых около трети - устройства стандарта GSM. Некоторые из них уже появились в свободной продаже, остальные пока только анонсированы.

    Рассмотрим подробнее рынок Java - телефонов, доступных сегодня российским пользователям. (Все приведенные ниже заключения опираются на личный опыт автора статьи, который вот уже год руководит командой разработчиков программного обеспечения для Java - телефонов в ЗАО "Ланит - Терком", Санкт - Петербург.)

    Siemens SL45i и Nokia 3410

    Siemens SL45i - первый сотовый Java - телефон стандарта GSM. И достаточно дорогой - из - за встроенного MP3 - плейера. 32 Мб хранилище данных можно расширить до 64 Мб. Объем памяти (размер кучи) - около 130 кб. Благодаря большому объему памяти и широкому экрану (101x80) до последнего момента являлся идеальной платформой как для серьезных бизнес - приложений, так и для игр, несмотря на черно - белую графику. Сегодня устаревает и вытесняется более новыми и дешевыми аппаратами, так как не поддерживает GPRS.

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

    Siemens M50 и Nokia 6310i

    В отличие от предыдущей модели, Siemens M50 поддерживает GPRS. Объем хранилища данных составляет 200 кб. Этого достаточно для установки примерно 6 - ти игр или 2 - х серьезных бизнес - приложений. М50 существенно дешевле предшественника: его цена составляет всего $160 - 180. Разработчики полагают, что телефон приобретет широкую популярность среди населения. На наш взгляд, это хорошая игровая платформа, подходящая также для небольших бизнес - приложений. Примечательно, что Siemens M50 имеет встроенный ICQ - клиент.

    Nokia 6310i также поддерживает GPRS. Это более дорогая модель, способная функционировать без подзарядки до 17 (!) суток. С точки зрения реализации Java - приложений, аппарат приближается к Siemens M50, однако телефоны не совместимы, что осложняет разработку эффективных программ для обеих платформ.

    Большую часть программ, предлагаемых сегодня производителями для этих телефонов, составляют игры. Хотя существуют и персональные бизнес - приложения, такие, как клиенты E - mail и календари с расширенными возможностями.

    Семейство Nokia 9200

    В России более всего известен Communicator 9210, чуть менее - его модификация 9210i. Последняя модель - 9290. Все они, по сути, являются карманными компьютерами с нормальной клавиатурой, дисплеем, Linux - подобной операционной системой Symbian 4.0. Аппараты очень дорогие, большие и тяжелые для использования в качестве простого телефона или платформы для игр. Для них разработано большое количество как Java - приложений, так и специализированных программ для OS Symbian. В основном это системы управления Web - узлами, складами, магазинами. Подобные системы применяются и в России.

    Что же касается игр, то на коммуникатор может быть установлена любая игра для J2ME или Java - игра, использующая расширения Nokia. Отдельно хочется выделить игру Snowboarding, разработанную Nokia Corp.

    Siemens SX45 и Nokia 7650

    По сути, это полноценные компьютеры, оснащенные цветными экранами и работающие под управлением операционной системой Symbian 6.0. Характерная особенность этих аппаратов - упрощенный интерфейс ввода: в отличие от коммуникаторов, они обладают обыкновенной телефонной клавиатурой, расширенной дополнительными средствами навигации.

    Пока что смартфоны достаточно дороги (например, Nokia 7650 стоит около $600), однако это наиболее перспективное направление в мобильной индустрии. На смартфонах можно реализовывать сложные клиенты для сложных бизнес - систем вплоть до систем управления предприятием. И они реально востребованы уже сейчас.

    Java для пользователя

    Существенную часть приложений, загружаемых на Java - телефоны во всем мире, составляют игры. В чем секрет такой популярности? Дело в том, что при помощи WAP или WWW пользователь может выбрать игру по вкусу и установить ее на свой телефон, практически не меняя своего местоположения. Особой популярностью пользуются сетевые игры, позволяющие развлечься в виртуальном мире (шахматы, футбол, карточные игры, существует даже мобильный Dоом).

    Производство мобильных игр пока не получило широкого размаха. С одной стороны, это объясняется отсутствием большого количества дешевых мобильных устройств с поддержкой Java, с другой стороны, разработка и адаптация мобильных игр не имеет аналогов в других областях игровой индустрии. Тем не менее, по мнению специалистов Nokia и Sun Microsystems, производство и электронная торговля Java-играми для телефонов (так называемыми MIDlet"ами) скоро приобретет мировой масштаб. Уже сейчас в Европе существуют компании, бизнес которых основан на торговле MIDlet"ами. Примером тому может служить финская компания Mr.Goodliving (www.mrgoodliving.com).

    Кроме того, в интернете можно найти массу свободно распространяемых Java - игр (например, на www.microjava.com).

    К сожалению, Россия пока отстает от Европы и Америки, но ситуация скоро изменится. Представители крупнейшего российского провайдера сотовой связи сообщили нам в частной беседе, что если 2002 - й стал годом SMS - развлечений, то следующий станет годом мобильных игр.

    Java для бизнеса

    Создание бизнес - приложений для Java-телефонов считается очень перспективным направлением в индустрии программного обеспечения.

    Классическая бизнес - система состоит из Web - сервера, сервера приложений, на котором работает слой бизнес - логики, взаимодействующий с СУБД. Web - сервер обеспечивает работу WWW - интерфейса, а также организует связь с клиентскими приложениями. Клиентское приложение может быть установлено на компьютере в офисе или на сотовый телефон и представлять собой MIDlet. Как уже было сказано, подобные приложения уже получили распространение в России.

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

    Итак, предположим, что у компании PizzaFast есть система управления заказами, основанная на WWW. Доступ к системе происходит через Web - сайт компании, на котором пользователь может зарегистрироваться и заказать пиццу с заданными параметрами с доставкой по указанному адресу. Кроме того, в систему можно попасть и через WAP (собственно, WAP - страницы расположены на том же Web - сервере). Кроме того, с сайта можно скачать специальную программу для сотового телефона, поддерживающего Java, которая позволяет сделать заказ из любой точки, где есть сотовая связь, причем гораздо дешевле и удобнее, чем через WAP. При особом желании пользователь сможет скачать программу и через WAP, потратив на это всего пару минут, чтобы потом не переплачивать.

    Программа позволяет получить меню, выбрать заказ, оплатить заказ по кредитной карте или выбрать режим оплаты в момент доставки, а также указать время и адрес, по которому должна быть доставлена пицца. Часто используемые заказы можно сохранить в телефоне, чтобы повторять их без повторного ввода. Постоянные клиенты, зарегистрированные в системе, получают скидки и, по желанию, еженедельные рассылки "Все про пиццу" и "Новости PizzaFast" в формате SMS.

    Каждый курьер имеет сотовый телефон, на который установлена система управления заказами. Он получает с сервера список заказов, относящихся к его району. Получив пиццу в ближайшем филиале PizzaFast, курьер помечает заказ как активный, чтобы скоординировать свои действия с курьерами одного с ним района. Доставив заказ, он отмечает его как исполненный. Если в каком - то районе курьеры не справляются, диспетчер в главном офисе может передать часть заказов курьерам из соседнего района.

    Менеджеры в любую минуту могут получить статистику со своих телефонов, на которые установлена система мониторинга, также оформленная как MIDlet.

    Генеральный директор раз в день получает SMS"ку, в которой указана сумма дневной прибыли. При желании он может получить данные о спросе на ту или иную пиццу в заданный промежуток времени. Для этой цели на его телефон установлен "директорский" MIDlet.

    Все это выглядит довольно забавно. Но если продавцу пиццы это кажется сказкой, то менеджеру и разработчику программного обеспечения понятно, что за этим стоит будущее. Каким будет это будущее, решать нужно уже сегодня, чтобы не отстать от более прозорливых конкурентов.

    Статьи по теме