суббота, 28 августа 2010 г.

Часть 1: Система удаленного управления приложениями персонального компьютера с помощью мобильных устройств.

1. Введение. Актуальность проблемы.

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

1.1 Обзор программ для управления компьютером при помощи мобильных устройств

Control Freak – приложение для смартфонов на платформе Symbian Series 60. Первоначально, программа была предназначена для управления известным медиаплеером Winamp с помощью смартфонов Series60, однако разработчики включили в более поздние версии небольшой модуль для отображения экрана компьютера, переросший затем в прекрасное средство управления удалённым рабочим столом. А поскольку программа обладает приятной внешностью и дружелюбным поведением, да и к тому же регулярно обновляется, можно рассчитывать на то, что в следующих версиях возможно будет совершать любые действия на компьютере с помощью телефона.
Возможности:
— Полное управление медиаплеером winamp, включая медиа-библиотеку и редактор списка воспроизведения.
— Управление мышью/курсорными клавишами (доступны левая кнопка мыши, Alt+Tab, Enter, Esc и ввод произвольного текста).
— Управление работой компьютера (Выключение, перезагрузка, режим ожидания, спящий режим).
— При входящем звонке уменьшает громкость/приостанавливает воспроизведение.
Из плюсов помимо интерфейса можно отметить простоту использования, лёгкость настройки и небольшие размеры.
Недостатком является то, что серверная часть приложения реализована в виде расширения Winamp.
Puppet Master – приложения для смартфонов на платформе Symbian и телефонов с поддержкой Bluetooth или GPRS.
Плюсами данной программы является ее переносимость на большое число телефонов, возможность передачи данных через GPRS и расширяемость управления различными приложениями с помощью разработки дополнительных модулей.
Минусом является не выделяющийся красотой интерфейс приложения (из-за поддержки расширяемости).
Возможности:
— Управление Winamp, Windows media player, iTunes, Outlook, PowerPoint с помощью меню.
— Управление мышью (доступны левая и правая кнопки).
— Дополнение сторонними плагинами (Язык Visual Basic).
— Набор действий на события (начало и конец звонка, соединение и разъединение телефона с ПК)
Bluetooth Remote Control – приложение для телефонов, поддерживающих расширение JSR-82 (Bluetooth API).
Возможности:
— Управление WinAMP, PowerPoint , iTunes, Windows Media Player, мышь
— Возможность просмотра рабочего стола на телефоне
— Написание собственных скриптов управления программами (посылка сообщений нажатия клавиш)
Недостатки:
Расширяемости недостаточно, так как множество функций приложения может быть недоступно только по нажатию клавиш (эмуляция).
Zerama Remote Version – приложение для КПК на платформах Pocket PC 2000, 2002, 2003 &2003 SE с поддержкой Bluetooth и Wi-Fi.
Возможности:
— Управление Windows Media Player 9 / 10.
Недостатки:
— Нет расширяемости.
Среди рассмотренных выше приложений можно выделить следующие недостатки:
- Недостаточная расширяемость
- Поддержка только одного типа мобильных устройств (за редким исключением)

1.2 Постановка задачи

В данной работе исследуется возможность написания приложения, лишенного приведенных выше недостатков, расширяемого и поддерживающего работу с клиентскими приложениями, портированными на разные типы мобильных устройств, такие как КПК на платформе WinCE с поддержкой .NET Compact Framework, мобильный телефон с поддержкой JSR-82, смартфон.


2 Архитектура проекта

2.1 Система

clip_image002
Рисунок 1. Общая архитектура системы
На Рисунке № 1 представлена глобальная архитектура системы и то, с помощью каких технологий управляющие устройства соединяются и обмениваются данными с серверным приложением. В качестве управляющего устройства могут выступать: ноутбук или другой компьютер, телефон, КПК, смартфон, - с установленными клиентскими приложениями и доступом к перечисленным выше средам передачи данных. В свою очередь, серверное приложение конвертирует полученные данные некоторого формата во внутренний тип данных и передает расширениям – плагинам, в которых реализована некоторая функциональность, например, работа с проигрывателем мультимедийных файлов или операционной системой.
Основной упор, при построении такой системы, делается на расширяемость, модульность, абстрагирование от среды передачи данных. Эти вопросы будут более подробно освещены в следующих разделах.

2.2 Используемые технологии

2.3 Bluetooth

Bluetooth — радио-технология ближнего действия, призванная заменить провода, соединяющие переносные и стационарные электронные устройства. Bluetooth разработан для работы в зашумлённых (радио-сигналами) средах. Модули Bluetooth работают в диапазоне частот ISM (Industry, Science and Medicine — промышленный, научный и медицинский; 2400—2483.5 MHz), который в большинстве стран является свободным от лицензирования. Исключение составляют Испания, Франция и Япония, где диапазон частот, разрешённых для Bluetooth, гораздо меньше. Поэтому устройства, произведённые для этих стран, не будут работать с другими устройствами. Хотя с этими государствами ведутся переговоры, и, возможно, в ближайшем будущем, все Bluetooth устройства будут совместимы.
Пропускная способность Bluetooth составляет 723.2 кб/с. Также через Bluetooth можно передавать до 3 аудио-каналов. В настоящее время расстояние, на которое Bluetooth способен передавать данные, составляет от 10 (в большинстве случаев) до 100 метров. Передача возможна даже через объекты (стены и др.), если, конечно, они не экранированы. Энергия, потребляемая модулем Bluetooth, не должна превышать 10 мВт.
Соединение может происходить не только по принципу «точка — точка», но и «точка — много точек». В этом случае устройство, к которому подключаются, называется master, а те, которые подключаются — slave. Master-устройство управляет частотной и пакетной синхронизацией подключённых к нему устройств. К одному master может быть подключено до 7 активных (активно обменивающихся данными) slave, а также множество неактивных, ждущих освобождения канала. Такая структура называется pico-net. В одной pico-net может быть только один master, но каждый slave может быть master в других pico-net, образуя таким образом scatter-net. В scatter-net устройство может быть не только одновременно master и slave для разных pico-net, но и slave для разных pico-net. В случае же необходимости slave-устройство может становится master в этой же pico-net (естественно, что при этом старый master становится slave). Разные pico-net одной scatter-net должны работать на различных частотах.
Для избежания помех и защиты от перехвата информации используется псевдослучайный механизм переключения частот (1600 скачков в секунду). По сравнению с другими радио-технологиями, действующими на той же частоте, Bluetooth переключает частоты быстрее и использует более короткие пакеты данных.
Применяется до трех уровней защиты (в зависимости от поставленной задачи: 1) без специальной защиты; 2) доступ только к зарегистрированным устройствам, включая ввод пароля пользователем; 3) защита информации ключом эффективной длины от 8 до 128 бит (что позволяет устанавливать стойкость результирующего шифрования в соответствии с законодательством каждой отдельной страны: в некоторых странах запрещено использование сильной криптографии) при передаче в одну или обе стороны.
Каждое устройство имеет уникальный 48-битный сетевой адрес, совместимый с форматом стандарта локальных сетей IEEE 802.11х. Первые 24 бита определяют компанию-производителя чипа.
Для связи с Bluetooth устройствами сначала происходит их поиск (device discovery). Для этого посылается запрос, и ответ на него зависит не только от наличия в радиусе связи активных Bluetooth устройств, но и от режима в котором находятся эти устройства.
Discoverable Mode. Находящиеся в этом режиме устройства всегда отвечают на все полученные ими запросы.
Limited discoverable mode. В этом режиме находятся устройства которые могут отвечать на запросы только ограниченное время, или должны отвечать только при соблюдении определённых условий.
Non-discoverable mode. Находящиеся в этом режиме устройства, как видно из названия режима, не отвечают на новые запросы.
Но даже если удаётся обнаружить устройство, оно может быть в двух режимах: connectable или non-connectable. В non-connectable режиме устройство не позволяет настроить некоторые важные параметры соединения, и, таким образом, оно хоть и может быть обнаружено, обмениваться данными с ним не удастся. Если устройство находится в connectable режиме, то на этом этапе Bluetooth устройства «договариваются» между собой о физических параметрах соединения.
Одно из преимуществ Bluetooth перед конкурирующими технологиями в том, что эта технология не подлежит платному лицензированию и ее использование не требует выплаты каких-либо лицензионных отчислений (хотя и требует подписания бесплатного соглашения).

2.4 Wi-Fi

Wi-Fi (произносится как [вай-фай]), сокр. от англ. Wireless Fidelity — протокол и стандарт на оборудование для широкополосной радиосвязи, предназначенной для организации локальных беспроводных сетей Wireless LAN. Установка таких сетей рекомендуется там, где развертывание кабельной системы невозможно или экономически нецелесообразно. Благодаря функции роуминга между точками доступа пользователи могут перемещаться по территории покрытия сети Wi-Fi без разрыва соединения.
Обычно схема Wi-Fi сети содержит не менее одной точки доступа (AP, от англ. access point) и не менее одного клиента. Точка доступа передает свой SSID (англ. Service Set IDentifier, Network name — идентификатор сети, сетевое имя) с помощью специальных пакетов, называемых сигнальными пакетами, передающихся каждые 100 мс. Сигнальные пакеты передаются на скорости 1 Mбит/с и обладают малым размером, поэтому они не влияют на характеристики сети. Так как 1 Mбит/с — наименьшая скорость передачи данных для Wi-Fi, то клиент, получающий сигнальные пакеты, может быть уверен, что сможет соединиться на скорости не менее, чем 1 Mбит/с. Зная параметры сети (то есть SSID), клиент может выяснить, возможно ли подключение к данной точке доступа. Программа, встроенная в Wi-Fi карту клиента, также может влиять на подключение. При попадании в зону действия двух точек доступа с идентичными SSID программа может выбрать между ними на основании данных об уровне сигнала. Стандарт Wi-Fi дает клиенту полную свободу при выборе критериев для соединения и роуминга. В этом преимущество Wi-Fi, хотя оно означает, что один из адаптеров может выполнять эти действия гораздо лучше другого. Операционные системы семейства Windows, начиная с Windows XP, содержат функцию, называемую zero configuration, которая показывает пользователю все доступные сети и позволяет переключаться между ними «на лету». Новейшая функция от Microsoft, названная SoftMAC не будет зависеть от встроенного ПО адаптера. Это означает, что роуминг будет полностью контролироваться операционной системой. Wi-Fi передаёт данные по воздуху, поэтому он обладает свойствами, сходными с некоммутируемой ethernet-сетью, и для него могут возникать такие же проблемы, как при работе с некоммутируемыми ethernet сетями.

2.5 Microsoft .NET

.NET (произносится дот-нет) — программная технология, предложенная фирмой Microsoft в качестве платформы для создания как обычных программ, так и веб-приложений. Во многом является развитием идей и принципов, заложенных в технологии Java.
Одной из основных идей .NET является совместимость различных служб, написанных на разных языках. Служба, написанная на C++ для .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследующий от класса, написанного на Visual Basic .NET, а исключение, выброшенное методом, написанным на C#, может быть поймано и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.
.NET — кроссплатформенная технология, однако в настоящее время существует реализация для платформы Microsoft Windows, FreeBSD (от Microsoft) и ограниченный вариант технологии для ОС Linux в рамках свободных проектов Mono, DotGNU.
К сожалению, .NET является патентованной технологией фирмы Microsoft, что является препятствием для её распространения на другие платформы (относительно проекта Mono — Microsoft однозначно высказалась о нелигитимности данного проекта).
Хотелось бы отметить, что защита авторских прав относится к созданию сред исполнения (CLR — Common Language Runtime) для программ .NET. Компиляторы для .NET выпускаются множеством фирм для различных языков свободно. Множество используемых языков является несомненным преимуществом технологии .NET по сравнению с Java.
.NET делится на две основные части — среда выполнения (по сути виртуальная машина) и инструментарий разработки.
Среды разработки .NET-приложений: Visual Studio .NET (C++, C#, J#), SharpDevelop, Eclipse, Borland Developer Studio (Delphi, C#) и т. д. Приложения также можно разрабатывать в текстовом редакторе и использовать консольный компилятор.
Так же как и технология Java, среда разработки .NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language) или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET: сборка), а не на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения (CLR) байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора.
Следует заметить, что в данной работе ядро приложения сервера написано на языке программирования C#, а плагины на managed С++ .

2.6 Архитектура серверного приложения

clip_image004
Рисунок 2. Общая архитектура серверного приложения

Остановимся более подробно на общей архитектуре и принципах работы серверного приложения. Серверное приложение состоит из ядра, то есть, самого исполняемого файла, а функциональность сервера обеспечивается плагинами и сервисами. Так же для корректной работы сервера, плагинов и сервисов необходимо, чтобы в корневой папке программы или в папке %WINDOWS%\system32 находился файл библиотеки "rpcmsdk.dll".
Сервис – модуль, являющийся библиотекой классов, скомпилированной под платформу .NET Framework v 1.1, обеспечивающий доступ к среде передачи данных. Он должен наследовать соответствующий интерфейс, находящийся в библиотеке rpcmsdk.dll, а так же иметь строго заданное именование классов, о чем будет сказано позже.
Плагин – модуль, являющийся библиотекой классов, скомпилированной под платформу .NET Framework v 1.1, обеспечивающий взаимодействие сервера с управляемыми приложениями. Он должен наследовать соответствующий интерфейс, находящийся в библиотеке rpcmsdk.dll, а так же иметь строго заданное именование классов, о чем будет сказано позже.
После запуска, сервер загружает все плагины, находящиеся в папке plugins, и сервисы, находящиеся в папке services, если они корректного формата, они инициализируются и начинают взаимодействие, иначе, ошибка выдается пользователю и сохраняется в файле "errors.log".

Комментариев нет:

Отправить комментарий