Еще одной особенностью охранной системы бизнес-центра является следствие из того же факта, что пользователи (арендаторы) и владелец здания - разные организации. Владелец заинтересован в экономии средств на жизнеобеспечение (освещение, кондиционирование, отопление, вентиляция, водоснабжение), в то время как арендаторам, как правило, до этого нет дела.
Потому управляющая компания бизнес-центра, как правило, по косвенным признакам управляет, например, отоплением. Одним из самых надежных источников данных является именно охранная система. Если все помещения одного крыла здания сданы под охрану, в них можно отключить вентиляцию и, соответственно, снизить расход энергии на отопление. Честно говоря, в большинстве случаев это делается вручную. Чаще всего - совсем по-простецки: в 19-00 вентиляция отключается, в 9-00 включается. Иногда (в более престижных зданиях) алгоритм сложнее.
Таким образом, даже если собственно автоматическая интеграция (типа «умный дом») и не реализуется, все равно данные от охранной системы (или СКУД) исключительно важны для тех, кто желает сэкономить, но не обидеть арендаторов.
Помимо экономии, автоматическое управление освещением просто производит благоприятное впечатление. Наконец, автоматическая интеграция охранных систем с системами жизнеобеспечения позволяет повысить техническую (технологическую) безопасность здания. Снижение давления в водопроводе в нерабочие часы, контроль расхода энергии в отсутствие людей - позволяют предотвратить нежелательные последствия от плохо закрытого крана или забытого включенного чайника. Несущественные мелочи пока вокруг много людей, могут стать источником больших неприятностей, если их никто не видит.
2. Обзор технологии J2ME
Java - это полноценный язык программирования, который был создан в 1995 году. Компания Sun, разработавшая его, создавала язык под влиянием С++. Это было сделано специально, С++ изначально структурирован и разработан программистами, кроме того разработчики могут легко переключиться с этого языка на яву. Основным отличиями явы являются мобильность программного кода и защита от вредоносных программ. В то время как программа, написанная на С++, в конечном счете компилируется в машинный код и исполняется только на той операционной системе, под которую была скомпилирована, программа на яве представляет собой байт-код, который можно выполнить под любой системой, если на ней есть виртуальная ява-машина. Исполнение программы ява-машиной также гарантирует предотвращение вредоносных действий. Кроме того, сам язык построен так, что программист не может сам управлять памятью. Сейчас существует три платформы явы:
Java 2 Standart Edition (J2SE), предназначенная для обычных PC
Java 2 Enterprise Edition, разработанная для серверов
Java 2 Micro Edition, используемая на мобильных устройствах
Java Virtual Machine (Виртуальная ява-машина). Это программа, которая пишется под каждую конкретную операционную систему. Ее цель - исполнение байт-кода ява. Таким образом, если на ОС стоит ява-машина, на ней можно запускать программы на яве, причем выполняться они будут совершенно одинаково на любой машине. Это называется кроссплатформенность. Не нужно писать и адаптировать код программы под различные ОС, программа создается один раз - это одно из важных преимуществ ява.
Мидлет - это разновидность программы на яве, которая предназначена для мобильных устройств. Отличие такой программы состоит в том, что в ней нет определенной точки входа (стартовой точки), а есть несколько методов, которые вызываются AMS (Application Management Software - системой управления программами телефона). Другими разновидностями обычной программы являются апплет (для веб-страниц) и сервлет (предназначен для серверов).
Java 2 Micro Edition - подмножество технологий фирмы Sun Microsystems, основанное на концепции Java-платформы и предназначенное для выполнения приложений, написанных на языке Java, на устройствах бытовой электроники, например мобильных телефонах, пейджерах, смарт-картах, органайзерах, миникомпьютерах. Отличительной особенностью этих устройств является ограниченная вычислительная мощность, небольшой объем памяти, малый размер дисплея, питание от портативной батареи, а также низкоскоростные и недостаточно надежные коммуникационные возможности. Типичный современный мобильный телефон содержит внутри 32-разрядный RISC-процессор с тактовой частотой 50 МГц, имеет объем оперативной памяти около 4 Мбайт, цветной дисплей размером 4 дюйма и оснащен возможностью GPRS-соединения с интернетом со скоростью максимум 172 кбит/с (которое при этом фундаментально ненадежно, скорость передачи данных может неожиданно упасть или соединение может быть вообще полностью потеряно). Основой J2ME является виртуальная машина, способная исполнять байт-код языка Java.
J2ME специфицирует две базовые конфигурации, которые определяют требования к виртуальной машине (иначе говоря, определяют подмножество стандартного языка Java, которое виртуальная машина способна выполнять), а также минимальный набор базовых классов. В настоящее время в J2ME имеется две конфигурации: CLDC (Connected Limited Device Configuration - конфигурация устройства с ограниченными коммуникационными возможностями) и CDC (Connected Device Configuration - конфигурация устройства с нормальными коммуникационными возможностями).
J2ME также определяет несколько так называемых профилей (profiles), которые дополняют и расширяют упомянутые выше конфигурации, в частности определяют модель приложения (программы на языке Java, совместимой с конкретным профилем), возможности графического интерфейса (то есть отображения информации на дисплее устройства и способы получения команд от пользователя), включая коммуникационные функции (например, доступ к интернету) и пр.
В настоящее время самой распространенной конфигурацией является CLDC, для которой разработан профиль MIDP (Mobile Information Device Profile - профиль для мобильного устройства с информационными функциями). MIDP определяет понятие мидлета (MIDlet) - компактного приложения на языке Java, имеющего небольшой размер, что делает его пригодным для передачи по сети и установке на мобильном устройстве. Другим популярным профилем для J2ME/CLDC является DoJa, разработанный фирмой NTT DoCoMo для ее собственного сервиса iMode. iMode весьма распространен в Японии и в меньшей степени в Европе и на Дальнем Востоке.
Конфигурация CLDC успешно используется в большинстве современных мобильных телефонов и портативных органайзеров. По данным компании Sun Microsystems к концу 2004 года в мире было выпущено более 570 миллионов мобильных устройств с поддержкой этой конфигурации Java. Это делает J2ME доминирующей технологией Java в мире. Объемы производства мобильных телефонов значительно превышают количество других компьютерных устройств, способных исполнять приложения на Java (например, персональных компьютеров).
2.1 Java API for Bluetooth
Системные требования
Все низкоуровневые реализации Blutooth должны удовлетворять набору требований, который сводится к поддержке ряда стандартных профилей и протоколов.
Таблица 3.1
Уровни Bluetooth version 1.1 | Профили |
RFCOMM Service Discovery Protocol L2CAP | Generic Access Profile Service Discovery Application Profile Serial Port Profile |
Кроме того, Bluetooth устройства должны поддерживать так называемый Bluetooth Control Center (BCC), который позволяет проводить настройку локальных параметров Bluetooth устройства. BCC не является частью Bluetooth Java API, но Bluetooth Java API использует его для установки рабочего уровня и настройки параметров безопасности.
Организация и пакеты
Java API for Bluetooth представляет собой дополнительный пакет для Java Community Process (JSR-82). Этот дополнительный пакет предоставляет разработчику общий API для работы с Bluetooth. На следующем рисунке показано отношение между Java API for Bluetooth и платформой J2ME, использующей Mobile Information Device Profile (MIDP) и Connected Limited Device Configuration (CLDC).
Рисунок 3.1 Отношение между Java API for Bluetooth и платформой J2ME
Как видите, внизу у нас расположились hardware, operating system и Bluetooth stack; выше находятся конфигурация (в нашем случае это CLDC) и профиль (MIDP), а также дополнительные пакеты. В самом верху располагается собственно MIDP приложение (MIDlet).
Таблица 3.2
Пакет | Описание |
javax.microedition.io | Ядро CLDC Generic Connection Framework. |
javax.bluetooth | Ядро Bluetooth API, включающее в себя Discovery, L2CAP, а также интерфейсы и классы устройства и данных. |
javax.obex | Ядро Object Exchange (OBEX) API. Этот пакет является дополнительным и поддерживается не всеми устройствами. |
В рамках JavaAPIsforBluetooth определяется новый протокол соединения для GCF и ObjectExchange (OBEX) API на основе спецификации IrDADataAssociation.
Анатомия MIDlet-ов, использующих JSR 82
На следующем рисунке показаны все интерфейсы и классы, которые можно использовать в JSR-82 мидлете.
Рисунок 3.2 Классы и интерфейсы JSR 82
2.2 Использование JavaAPIsforBluetooth
Использование Java APIs for Bluetooth состоит из нескольких отдельных этапов:
- Инициализация Bluetooth стека.
- Поиск устройств.
- Поиск сервисов.
- Открытие соединения.
- Закрытие соединения.
- Ожидание соединения.
- Инициализация соединения.