Астраханцев Филипп Петрович
РАЗРАБОТКА ПРИЛОЖЕНИИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ НА ОСНОВЕ ТЕХНОЛОГИЙ MICROSOFT
Компания Microsoft, известная прежде всего своими операционными системами и офисными программами для настольных компьютеров и серверов, также разрабатывает программное обеспечение (семейство Windows Embedded) для большого класса встроенных систем.
УСТРОЙСТВА,
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ПЛАТФОРМЫ
Устройства
Семейство Windows Embedded предоставляет платформы для самых разнообразных устройств (см [1]):
- бытовая электроника;
- шлюзы и маршрутизаторы;
- телефонные будки, торговые автоматы;
- мобильные и портативные устройства;
- портативные мультимедийные проигрыватели;
- кассовые автоматы;
- телевизионные интернет-приставки.
- «тонкие» клиенты;
- Интернет-телефония (VoIP).
Операционные системы и платформы
Рассмотрим понятия «операционная система» и «платформа», так как они важны для разработки мобильных приложений.
Операционная система - это главная управляющая программа вычислительного устройства, которая обеспечивает доступ к аппаратной части с помощью драйверов, предоставляя пользователю и программам виртуальную среду работы. Примерами операционных систем являются Microsoft Windows CE, Windows XP, Windows XP Embedded, Windows NT и Windows 98. Конечно, существуют операционные системы и от других производителей, например MacOS, Linux и OS/2.
Для встроенных и мобильных устройств Microsoft поставляет две операционные системы:
Windows CE .NET
Являясь потомком Windows CE 3.0, Windows CE .NET объединяет в себе современную встроенную операционную систему реального времени с мощными инструментами для быстрого создания интеллектуальных сетевых малогабаритных устройств.
,, .ofaefuftfretü £ себе мё^емеККул OitefcœquafrMpa /модему реал-ъЛага ё^емеЯи,,,
Windows XP Embedded
Операционная система Windows XP Embedded делает возможной быструю разработку надежных и функционально богатых устройств. Она основывается на том же ядре, что и ОС Windows XP Professional. Однако ее компонентная архитектура помогает создавать узкоспециализированные устройства, выбирая только те возможности и компоненты, которые необходимы.
Как правило, для создания приложений одной только операционной системы недостаточно, нужна еще аппаратная часть.
рабо&м.
Разработчики всегда ориентируются на конкретную платформу.
Платформа (будем называть ее аппаратной платформой) - это совокупность аппаратной части вычислительного устройства, операционной системы, работающей на этом устройстве, и набора программ и компонентов, минимально необходимых для работы пользовательских приложений. Понятие аппаратной платформы имеет большое значение. Та же операционная система, но в редакции для другого процессора, будет уже входить в состав иной аппаратной платформы со своими особенностями и приложениями. Примерами аппаратных платформ являются: Pocket PC 2002 и 2003, Handheld PC, Palm-size PC, Smartphone 2002 и 2003, Tablet PC. Настольные ПК (WIntel PC, PC на базе Linux), PC ноутбуки и сервера также являются аппаратными платформами.
для каждого из которых существует своя система и особенности разработки. Однако все они достаточно близки, поскольку операционной системой (по стандартам 2003 года) в них является Windows CE .NET 4.2. Рассмотрим их подробнее.
Pocket PC
На сегодняшний день рынок КПК (карманных персональных компьютеров) состоит из двух основных аппаратных платформ -Palm и Pocket PC. Функционально они очень близки, но считается, что платформа Pocket PC обладает более богатыми мультимедийными возможностями и, конечно же, привычным интерфейсом операционной системы от Microsoft.
Pocket PC Phone Edition
Данный универсальный класс устройств сочетает в себе возможности Pocket PC с функциями телефона, что позволяет иметь доступ к информации и общаться с людьми. И все с помощью одного устройства.
WINDOWS MOBILE
Используя Windows Mobile - мощную и гибкую среду для мобильных устройств, разработчики могут создавать современные мобильные приложения с богатыми возможностями. Windows Mobile - это класс аппаратных платформ для нескольких типов устройств,
мужику,
Smartphone
В последнее время стали появляться интеллектуальные модели мобильных телефонов - смартфоны. Практически все они работают на платформе Symbian и поддерживают J2ME. Однако компания Microsoft не собирается оставаться в стороне. Начало положила концепция Microsoft Smartphone 2002. Обладая продуманной архитектурой и дизайном устройств, она предоставляла пользователям знакомую Windows-среду, которая позволяла отправлять и принимать электронную почту, обмениваться интернет-сообщениями, выходить в интернет через полноценный браузер Internet Explorer, слушать музыку, играть в игры и многое другое. На сегодняшней день после-
дним является стандарт Smartphone 2003 SE (Second Edition), который включает в себя все новейшие возможности, в том числе поддержку технологии .NET.
На рынке пока присутствует не очень большое количество устройств, базирующиеся на Microsoft Smartphone, но их число постоянно растет (см. [2], [3] и [4]).
СРЕДСТВА РАЗРАБОТКИ
МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
(раздел базируется на информации из [5])
Компания Microsoft предлагает пакеты инструментов для разработки под аппаратные платформы Pocket PC и Smartphone. Мы рассмотим цели их применения и случаи использования.
В первую очередь, следует выделить три принципиальных подхода к созданию приложений:
- аппаратно-зависимый (native) код стоит использовать для достижения высокой производительности, если необходим прямой доступ к «железу» или если требуется уменьшить размер приложения.
- управляемый (managed) код удобно применять для создания приложений, в которых основную роль играет пользовательский интерфейс и которые требуют сжатых сроков разработки и распространения. Также управляемый код очень удобен для простого доступа к веб-сервисам.
- серверным (server-side) код применяется для охвата максимального количества устройств, на которых будет работать приложение, при условии, что существует надежный канал связи с устройствами.
Перейдем к непосредственному рассмотрению средств разработки.
eMbedded Visual Tools 3.0
Инструменты Microsoft eMbedded Visual Tools 3.0 предоставляют среду разработки для создания мобильных приложений и содержат необходимые компиляторы, средства отладки и документацию. eMbedded Visual Tools 3.0 содержат Microsoft eMbedded Visual C++ 3.0 (eVC 3.0) и eMbedded Visual Basic 3.0 (eVB 3.0). Оба
инструмента являются независимыми средами разработки и не требуют для работы иных сред, например Microsoft Visual Studio или Visual Studio .NET.
Чтобы разрабатывать приложения для Windows Mobile устройств, требуется установить пакет разработчика (Software Development Kit, SDK) той аппаратной платформы, для которой планируется разработка. Издание eMbedded Visual Tools 3.0 2002-го года включает все SDK для устройств семейства Windows Mobile вплоть до версий 2002.
eMbedded Visual C++ 3.0
Система разработки Microsoft eMbedded Visual C++ 3.0 предоставляет C++ компилятор в native-код для создания Windows Mobile приложений. Она позволяет создавать приложения для устройств, работающих под управлением операционных систем Windows CE 2.11 и 3.0 при условии, что установлен соответствующий SDK. Отладчик среды eMbedded Visual C++ способен работать через проводное, беспроводное или cradle соединение с помощью программы Microsoft ActiveSync.
eMbedded Visual C++ рекомендуется использовать для создания:
- драйверов для аппаратной платформы Pocket PC или любых других Windows Mobile устройств;
- приложений, которые используют особенности конкретного устройства;
- игр с высокоскоростной графикой, работающих через библиотеку Game API (GAPI);
- приложений с большим количеством трудоемких вычислений;
ах&ж&а млксимальКого колигес^&я, cfcfüpaücfü&, Ki tco&ofeux п^илофеКие...
- COM серверов или элементов управления ActiveX.
eMbedded Visual Basic 3.0
Система разработки eMbedded Visual Basic 3.0 позволяет создавать приложения на языке Visual Basic. Они компилируются в P-код (P-code), который интерпретируется во время выполнения. При проектировании Windows Mobile 2003 для Pocket PC было решено отказаться от включения среды выполнения Visual Basic приложений. Однако она доступна для загрузки с сайта Microsoft.
eMbedded Visual Basic намного ближе к скриптовому языку, чем к полноценному Visual Basic. Поэтому многие возможности, доступные в Visual Basic 6.0 для настольных компьютеров, не поддерживаются в eMbedded Visual Basic 3.0.
eMbedded Visual Basic нельзя использовать для создания Smartphone-приложе-ний. По этой и многим другим причинам, включая быстро растущий интерес разработчиков к Visual Basic .NET, технология eMbedded Visual Basic вытесняется более мощным и современным языком Visual Basic .NET. Microsoft рекомендует использовать именно его для создания новых приложений для аппаратной платформы Pocket PC, а eMbedded Visual Basic лишь для поддержки старых.
eMbedded Visual C++ 4.0
Используя среду Microsoft eMbedded Visual C++ 4.0, можно разрабатывать при-
...улугеееЛЛое
С fai&UM ЗМЦлЯ&ОрАМ,
ложения для новых устройств, базирующихся на операционной системе Windows CE .NET 4.2, а после установки дополнительного пакета исправлений (service pack) и для аппаратных платформ Windows Mobile 2003. Новая версия была сильно дополнена и переработана по сравнению с 3.0, в частности были добавлены:
- отладка во время исполнения (JustIn-Time debugging) для обнаружения необрабатываемых исключений;
- структурированная обработка исключений C++;
- улучшенная отладка процессов;
- улучшенное взаимодействие с новым эмулятором.
Smart Device Programmability и Visual Studio .NET 2003
Smart Device Programmability (SDP) features (возможности программирования интеллектуальных устройств) пакета Visual Studio .NET, ранее известные как Smart Device Extensions (SDE), позволяют разработчикам создавать приложения с использованием среды Microsoft .NET Compact Framework как для соединенных (connected) устройств, так и для отдельных. Широкие возможности библиотеки классов среды .NET Compact Framework позволяют писать приложения намного быстрее, чем с помощью обычных инструментов, а управляемый код делает разработку удобной и понятной.
Среда разработки Visual Studio .NET 2003 позволяет создавать Pocket PC 2002 приложения (а после установки соответствующих SDK - Pocket PC 2003/2003 SE и Smartphone 2003/2003 SE приложения), используя те же инструменты и техники, что и при разработке для настольных систем. Разработчики могут использовать язык C# или Visual Basic .NET для разработки мобильных приложений, XML веб-сервисов или использования технологии ADO.NET.
Разработка с помощью Visual Studio .NET 2003 рекомендуется для:
- приложений, использующих преимущества веб-сервисов;
- приложений, которые должны надежно работать как в соединенной (connected), так и в изолированной среде;
- создания приложений с использованием Visual Basic .NET или C#;
- использования одних и тех же инструментов для настольного, серверного и мобильного программирования;
- быстрой разработки приложений;
- разработки безопасного и надежного программного обеспечения;
- приложений, которые могут работать на разных устройствах с разными процессорами и различными версиями Windows.
Мобильны1е элементыь управления ASP.NET (ASP.NET Mobile Controls)
Элементы управления ASP.NET Mobile Controls, ранее известные как Microsoft Mobile Internet Toolkit (MMIT), дополняют Smart Device Programmability и среду .NET Compact Framework, расширяя возможности последней и пакета Visual Studio .NET. Они позволяют строить мобильные веб-приложения, которые с помощью технологии ASP.NET можно выполнять на широком круге мобильных устройств. Технология ASP.NET не устанавливает какие-либо компоненты на клиентском устройстве. Вместо этого используется серверная логика (server-side logic) приложения для работы из веб-браузера каждого конкретного устройства.
Помимо создания адаптирующихся под устройство веб-страниц технология ASP.NET обладает расширяемой и настраиваемой средой, которая может добавлять функциональность элементов управления при появлении на рынке новых устройств.
ASP.NET Mobile Controls рекомендуется использовать для:
- поддержки широкого круга устройств, имеющих доступ в интернет;
- поддержки различных языков разметки (WML, cHTML, HTML).
РЕЗУЛЬТАТЫ ОБЗОРА СРЕДСТВ РАЗРАБОТКИ
Подводя итоги, рассмотрим таблицу 1, показывающую возможности инструментов.
MICROSOFT .NET COMPACT FRAMEWORK
(раздел создан на основе [6])
Рассмотрим подробнее среду управляемого кода для мобильных устройств .NET Compact Framework.
Управляемыш код и повышение эффективности
Использование одной и той же программной модели для широкого круга устройств упрощает процесс разработки приложений, работающих на разных аппаратных платформах. Большая часть базового кода приложения, например бизнес-логика, доступ к данным, XML веб-сервисы, может использоваться как на мобильных, так и на настольных системах. Это заметно повышает эффективность разработки.
Большие специализированные возможности каждого устройства
Очень важно отметить, что среда .NET Compact Framework не работает по принципу наибольшего общего знаменателя, как делают некоторые другие платформы. Разработчики могут пользоваться широкой переносимостью и повторным использованием кода, применяя базовую программную модель. Но помимо этого .NET Compact Framework можно расширить библиотеками классов, которые позволяют использовать уникальные возможности некоторого семейства устройств или одного конкретного устройства.
Таблица 1.
eMbedded Visual Tools 3.0 - 2002 edition eMbedded Visual C++ 4.0 Visual Studio .NET 2003
eMbedded Visual C++ 3.0 eMbedded Visual Basic 3.0 eMbedded Visual C++ 4.0 (SP2) Smart Device Programmability (.NET Compact Framework) ASP.NET (as part of VS.NET)
Code type Native Code x x
Interpreted Code x
Managed Code x
Server-side code x
Device SDKs Pocket PC or Pocket PC 2002 x x x x
Smartphone 2002 x x
Pocket PC 2003 x x x
Smartphone 2003 x x x
Key: x Supported
Надежный код, безопасное выполнение
Среда .NET Compact Framework предоставляет надежное и безопасное окружение для запуска клиентских приложений. Модель управляемого кода значительно повышает надежность, снижая количество дефектов ПО. Механизмы выполнения управляемого кода гарантируют, что сбойное поведение приложения не «подвесит» устройство. А модель безопасности, встроенная в .NET Compact Framework, не позволяет вредоносному коду получить доступ к системным ресурсам. Модель безопасности также позволяет получать обновления ПО через беспроводные сети надежным способом, уменьшая вероятность дорогостоящего обращения в сервис-центры.
Поддержка локальных (offline) приложений
Безопасная модель выполнения среды .NET Compact
большие бормофЛосепи 6 любое
мес&е..
Framework позволяет разрабатывать локальные приложения, обеспечивающие (в отличие от соединенных приложений) стабильную непрерывную работу пользователя, несмотря на периодические проблемы в работе сети. Разработчик может подобрать оптимальное сочетание клиентского и серверного программирования для создания удобного и интерактивного пользовательского интерфейса.
Итоги
Среда .NET Compact Framework является одним из ключевых моментов в достижении цели Microsoft - предоставить пользователям большие возможности в любое время, в любом месте и на любом устройстве. Важно то, что .NET Compact Framework ощутимо снизит стоимость и повысит эффективность разработки для интеллектуальных устройств.
ЗАКЛЮЧЕНИЕ
Компания Microsoft нацелена на долгосрочный успех на рынке мобильных устройств и на помощь разработчикам в создании функционально-богатых мобильных приложений для корпоративного и массо-
вого применения. Имеются современные гибкие языки и системы разработки Windows Mobile приложений. Доступность этих инструментов позволит сообществу разработчиков мобильных приложений удовлетворять быстро растущие запросы рынка.
Литература
1. http://www.microsoft.com/windows/embedded/devices/
2. http://www.microsoft.com/windowsmobile/devices/smartphone/americas.mspx
3. http://www.microsoft.com/windowsmobile/devices/smartphone/emea.mspx
4. http://www.microsoft.com/windowsmobile/devices/smartphone/apac.mspx
5. MSDN Library, Mobile and Embedded Development -> Windows Mobile http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/overview/default.aspx
Астраханцев Филипп Петрович, студент 5 курса математико-механического факультета СПбГУ.
© Наши авторы, 2005. Our authors, 2005.