J2ME. Использование мобильной
связи в распределенных АСУТП 
raxp@mail.zp.ua
Использовать мобильные системы для удаленного управления не ново. В основном
дело ограничивается отсылкой-приемом sms с кодом доступа - паролем и минимумом
данных с минимумом информации. Чаще всего пользуются подобным приемом – производители
“систем умных домов”, где сама система информирует хозяина о проишествии, аварии,
формирует отчет тревог... и он сам может “интерактивно” воздействовать на систему,
где бы географически он ни находился.
Краткий экскурс...
С ростом уровня мобильных аппаратов дешевели и услуги доступа через интернет
(GPRS/EDGE). И для интенсивного обмена данными уже недостаточно просто sms.
Примером тому:
- мобильная аська http://jimm.org
- IRC
- чат...
J2ME – основан на урезанном JAVA для разработки мидлетов, стройств
с ограниченными ресурсами, в частности мобильных телефонов. Мидлет – код выполняемый
на мобильном устройстве. Любой мидлет может находиться в состояниях - рабочем
(метод startApp()), пауза (pauseApp()) и уничтоженном (destroyApp()):
- функция startApp() вызывается когда мидлет впервые запущен и когда возвращается
из паузы;
- функция pauseApp(), включается самим телефоном, например, при входящем sms,
звонке;
- функция destroyApp(), будет выполнена непосредственно перед выключением приложения.
Разработка мидлета
Для работы нам понадобится JDK и j2me_wireless_toolkit от Sun (компилятор)
[см. ссылки].

Рис.1 – Среда компиляции KToolbar Wireless Toolkit
|
...особенностью
данной среды является хорошая документированность и наличие примеров
+ эмуляторов (рис.4), что позволяет с легкостью доступной малознакомому
с java разрабатывать собственные приложения под любые мобильные устройства.
Специфические классы siemens, motorola...,
предоставляющих доступ к API конктретного телефона, рекомендую по возможности
не использовать.
В результате компиляции и упаковки проекта (файлов
классов и ресурсов) создается сжатый jar и jad (необязательный) - файлы.
Основное значение имеет универсальность данного приложения
запускаемого с любого телефона (Siemens
/ Nokia / ...) с поддержкой JAVA MIDP
2.0 и поддержкой библиотек CLDC 1.0. |
Основные требования к мобильному клиенту распределенной
АСУТП:
- Поддержка нескольких типов соединения для резервирования
и повышения надежности
- sms
- tcp/ip
- Возможность обратной связи для передачи команд
(реакций) воздействия на систему
- Собственный протокол обмена пакетами данных
- Ограничение доступа по паролю
- Опции настройки протокола и типа соединения
- Индикация выбранных каналов в графической или
текстовой формах
- Возможность архивирования принятых данных (не
критично при использовании карт RS MMC)
- Минимизация использования специфичных API в
мидлете

Рис.2 – Симулятор – шлюз SOCKET |
...для наглядности
передачи данных можно использовать симулятор (рис.2), который является
параллельно шлюзом SOCKET к которому может коннектиться клиент - мидлет.
Скорость обмена, а значит и траффик, как следствие расходы на его оплату
– определяются сервером.
Единственное условие работоспособности подобной
схемы соединения является:
- наличие выделенного IP сервера
- открытый соответствующий порт
...либо же предлагается реализовать протокол
обмена поверх существующих моделей связи, не привязываясь к IP. Очень
заманчивым в этом плане является аська или IRC, которые уже имеют выделенный
сервер с базой пользователей. Что позволяет – добавив в шлюз системы клиента
ICQ, передавать значения определенному клиенту ICQ или по запросу.
Достаточно лишь добавить экран мнемосхемы (на основе Canvas класса) в
мобильный клиент, к примеру jimm.
При использовании IRC в
качестве сервера может быть выбран: irc.delfi.lv по порту 6667, достаточно
изначально передать в SOCKET - ник: "NICK "+nick и имя: "USER "+host+"
\"...\" \"...\" "+name. |
Тестовый клиент <net.jar> осуществляет
связь в сети Ethernet или по каналу GPRS TCP/IP и отображает данные каналов
на подложке мнемосхемы, фоном которой служит соответствующая схема технологического
процесса. В качестве сервера используется канал OPCSocketDATA сервера MLink.OPC
[см. ссылки]. Данный канал является шлюзом OPC-Socket и предназначен для обмена
данными с проектом TraceMODE по протоколу MLink.
...в окне эмулятора выбираем пункт “Мнемосхема ТП / Настройки” (рис.3)

Рис.3 – Выбор и настройки
|
соединяемся с сервером и наблюдаем работу
мнемосхемы (рис.4).
Сам пакет и выделенные значения каналов отображаются на 1-м экране.

Рис.4 – Окно эмулятора мидлета.
Экран мнемосхемы АСУТП
|
Полные исходные тексты проекта доступны по согласованию
с автором.
Ссылки:
Контактная информация:
raxp@mail.zp.ua
06.06.2006
[Переход к списку статей]
|