ПО ДЛЯ КПК
Сегмент мобильных и беспроводных устройств - одно из самых динамично развивающихся направлений современного компьютерного рынка. Именно здесь в силу новизны и значительных перспектив расширения сегодня идет ожесточенная борьба между поставщиками базовых технологий. В целом смирившись с монопольным положением Microsoft в области настольных ПК, разработчики программных платформ намерены не допустить подобной ситуации в сфере мобильных и встроенных систем. В свою очередь, компания Билла Гейтса, несколько опоздав с выходом в этот новый сегмент рынка и вознамерившись наверстать упущенное, резко повысила свою активность в данном направлении.
Типичный вид устройств Pocket PC Phone Edition (слева) и Smartphone
До недавнего времени, когда речь заходила о рынке мобильных вычислительных устройств, имелись в виду прежде всего западные страны. Однако сейчас можно наблюдать быстрый рост продаж карманных персональных компьютеров (КПК) и в России. Так, по данным, опубликованным в печати в начале года, объем продаж КПК в нашей стране может увеличиться с 11 млн. долл. в 2001 г. до 66 млн. долл. в 2005-м, что соответствует 56% годового роста. Конечно, в относительном выражении этот сегмент выглядит очень скромно (0,2-0,5% от общего рынка аппаратных средств), но в то же время является весьма перспективным.
Исследования, проведенные в России весной, свидетельствуют, что реальные темпы увеличения продаж сейчас резко повысились и можно говорить о взрывообразном расширении этого сегмента. По полученным данным, рост составляет 30% ежеквартально и на начало лета был равен примерно 50 тыс. штук в год, из которых 55% приходилось на платформу Palm и 40% - на долю Windows CE. По мнению экспертов, достижение критического объема в 200 тыс. штук в год будет означать переход устройств из категории экзотики в разряд продуктов, реально задействованных в бизнес-процессах.
Хотя термин "мобильные системы" уже давно вошел в наш обиход, хотелось бы, не вдаваясь в детали, сделать некоторые уточнения по этому поводу.
С точки зрения архитектуры и назначения современные вычислительные устройства можно с известной степенью условности разделить на "компьютеры" и "встроенные системы". Компьютеры - это знакомые всем ПК, серверы, мэйнфреймы и т. д. Их отличительная особенность - использование классической архитектуры вычислительных машин (процессор, иерархическая память, внешние устройства), модульная реализация и универсальность (возможность решения широкого круга задач). Важными характеристиками компьютеров являются довольно четкое разделение на аппаратные и программные продуктовые составляющие, а также весьма ограниченное количество применяемых процессорных архитектур. При этом для пользователя здесь самое главное - возможность аппаратно-программной (в основном программной) реконфигурации в соответствии с его потребностями.
Встроенные (embedded) системы изначально ориентированы на узкоспециализированные задачи и к реконфигурированию в ходе эксплуатации приспособлены в меньшей степени. Примерами тут могут служить устройства управления промышленными установками и бытовыми приборами, бортовые компьютеры, игровые приставки, органайзеры, калькуляторы и пр. Они тоже имеют аппаратные и программные компоненты, но, с точки зрения пользователя, это единый продукт. В них, как правило, применяют упрощенные архитектурные решения (скажем, одно- или двухуровневая организация памяти, минимально необходимая расширяемость), а к их габаритам и стоимости предъявляются повышенные требования.
Рассуждения о встроенных системах и компьютерах понадобились нам для того, чтобы подчеркнуть два ключевых момента.
1. Создание программной платформы для встроенных систем в технологическом и маркетинговом плане существенно отличается от ситуации в области традиционных компьютеров. Например, в первом случае имеется множество устройств разного типа, использующих столь же большое количество микропроцессоров различной архитектуры; при этом для конечного пользователя аппаратура и ПО представляют собой единый, практически немодифицируемый продукт, а разработка мобильных приложений ведется в кросс-режиме.
2. Под мобильными системами в настоящей статье мы будем понимать в первую очередь КПК и интеллектуальные беспроводные устройства (то, что можно носить в кармане пиджака или в дамской сумочке), которые в общем-то относятся к категории "встроенных систем" (в отличие от ноутбуков, относящихся к категории "компьютеров"). Впрочем, при этом нужно подчеркнуть относительность любой категоризации: с появлением Tablet PC (мы их также не будем рассматривать в данном обзоре) в значительной степени стирается грань между описанными выше классами вычислительных устройств.
Платформы Microsoft
Специфика рынка мобильных устройств определяет иные (по сравнению с традиционными ПК) модели разработки и продвижения ПО, что мы и можем наблюдать на примере Microsoft. В то же время вполне естественно, что эта корпорация стремится максимально использовать свои прочные позиции (как технологические, так и маркетинговые) в области настольных систем.
Microsoft вышла на рынок встроенных устройств в 1996 г., представив первую версию Windows CE, а также комплект ПО для появившихся тогда КПК Handheld PC 1.0. С тех пор компания продолжает выступать на этом рынке в качестве поставщика двух типов платформ - технологической и пользовательской.
Технологические платформы: Windows CE и .NET Compact Framework
Windows CE - это не операционная система в привычном для пользователя настольного ПК понимании. Она являет собой ядро ОС, в частности, предоставляющее разработчику программный интерфейс API, обеспечивающий ему независимость от конкретной конфигурации аппаратуры, например архитектуры микропроцессов. Разработчики устройств на ее основе создают законченные решения, причем эта ОС используется не только для КПК, но и в другой аппаратуре, например для управления станками, светофорами и пр. Существуют различные схемы распространения Windows CE, в том числе в исходных кодах с возможностью внесения изменений и адаптации под конкретное устройство.
Схема разработки приложения для мобильных систем с помощью Visual Studio .NET
В конце прошлого года Microsoft выпустила Windows CE 4.0. В тот момент ей было дано название Windows CE .NET, но это лишь несколько запутало ситуацию, так как данный продукт, вообще говоря, к архитектуре .NET не имел отношения. Корректируя свою маркетинговую политику продвижения .NET (см. PC Week, N 5/2003, с. 23), с начала 2003 г. компания для обозначения этой версии ОС использует индекс 4.x. В настоящее время последним ее вариантом является Windows CE 4.2.
Кроме того, на рынке до сих пор активно используются Windows CE 3.0 и даже 2.0, и Microsoft продолжает не только поддержку, но и поставку данных продуктов. Это в значительной степени объясняется привязкой конкретной ОС к определенным наборам типов процессоров: в новых системах Microsoft довольно решительно отказывается от поддержки унаследованных архитектур.
Набор .NET Compact Framework представляет собой вариант операционной среды .NET Framework, адаптированный для мобильных устройств и включающий подмножество библиотек классов Visual Studio .NET и среду исполнения CLR. В его состав входит также набор мобильных элементов управления ASP.NET Mobile Controls, с помощью которых любое приложение можно легко адаптировать к работе с различными браузерами, учитывающими специфику того или иного мобильного устройства.
.NET Compact Framework поддерживает Windows CE 3.x и 4.х, т. е. приложения, написанные для этой среды, могут функционировать в той и другой ОС. Но самое главное, разработка мобильных приложений для него ведется с помощью Visual Studio .NET, а значит, различия в процессах создания для мобильных и настольных систем сведены к минимуму.
Windows Mobile - платформы для конечных пользователей
Windows Mobile (ранее называвшиеся Windows Powered) - это программные системы для конечного пользователя, предназначенные для работы на соответствующих устройствах. В целом они по назначению аналогичны привычным настольным Windows, но поставляются только в составе устройств и содержат полный набор прикладного софта (офисные приложения и пр.). Поэтому нужно понимать условность применения к ним термина "операционная система"*.
В настоящее время Microsoft выпускает платформы для двух типов мобильных устройств - Pocket PC и Smartphone, которые отражают основные направления развития беспроводных вычислительных систем. Первый тип - это карманные компьютеры с дополнительными возможностями сотовой связи в ценовом диапазоне 400-700 долл. (тут есть еще одна градация - просто Pocket PC и Pocket PC Phone Edition); второй - это сотовый телефон с расширенными вычислительными функциями стоимостью 150-200 долл. (см. табл. 1).
До недавнего времени на рынке были представлены системы Pocket PC 2002 и Smartphone 2002, реализованные на базе Windows CE 3.0. По вполне понятным причинам функциональность и возможности Pocket PC 2002 выше, чем у Smartphone 2002. В частности, первый может использовать в качестве дополнительной опции Compact Framework, а второй - нет. Устройства класса Pocket PC в настоящее время выпускаются всеми ведущими производителями мобильных компьютеров.
В конце июня появилась система Pocket PC 2003 (одной из разновидностей которой было специальное издание Phone Edition). Ее первоначальное кодовое название Ozone в соответствии с унифицированной тогда же системой торговых марок Microsoft было официально заменено на Windows Mobile 2003 for Pocket PC. В недалеком будущем на рынке должна появиться новая ОС и для Smartphone (см. табл. 2).
Главной особенностью Windows Mobile 2003 является использование в качестве ядра Window CE 4.2 и .NET Compact Framework 1.0 (последняя не просто включена в комплект, но и широко применяется для выполнения функций ОС, в частности для поддержки пользовательского интерфейса). Среди других усовершенствований можно выделить упрощенное подключение к беспроводным сетям различных типов (в том числе Wi-Fi), интеграцию с только что вышедшим Microsoft Exchange Server 2003, поддержку звуковых и видеотехнологий Windows Media 9, обеспечение доступа к более широкому спектру высококачественного цифрового содержимого через Wi-Fi на скорости до 300 кбит/с, применение технологии Plus! Sync & Go для синхронизации содержимого карманного компьютера и ПК или веб-узла.
Стратегия продвижения и разработки ПО
В области мобильных систем можно наблюдать отчетливую тенденцию повышения функциональности устройств и расширения предоставляемых пользователям услуг. Это объясняется также и тем, что на Западе возможности экстенсивного расширения клиентской базы и зон покрытия просто исчерпаны. В России рынок мобильной связи еще очень далек от насыщения, но и тут провайдеры заинтересованы в повышении объема услуг, так как острая конкуренция привела прибыльность самой сотовой связи к минимальным показателям.
В своей стратегии в этой сфере Microsoft делает главную ставку на многофункциональные устройства более высокого ценового уровня (в первую очередь Pocket PC, а уже потом - Smartphone). И успех тут во многом определяется широтой спектра доступных приложений; отсюда вытекает повышенное внимание корпорации к сотрудничеству с независимыми разработчиками ПО, что было, в частности, видно на прошедшей в Париже апрельской конференции Microsoft Mobility Developer Conference 2003.
Как уже отмечалось, в России рынок мобильных вычислительных устройств пока находится в зачаточном состоянии, однако и здесь Microsoft уже начала подготовку к будущим "светлым" временам. В отличие от Запада в нашей стране внимание концентрируется на корпоративных клиентах как наиболее платежеспособных (впрочем, легко заметить, что корпоративный сегмент всегда был приоритетным для Microsoft в России). Однако тут есть интересное отличие от ситуации в области настольных систем: для мобильных приборов требуется создание как делового, так и развлекательного софта, поскольку вполне естественно, что эти устройства будут использоваться не только на работе, но и дома и на отдыхе.
В сотрудничестве с разработчиками Microsoft хочет перенести опыт, накопленный в создании настольных приложений, на сферу мобильных решений. С выпуском Visual Studio .NET и .NET Framework удалось в целом решить задачу унификации процессов разработки для настольных и мобильных систем. Вместе с тем специфика разработки мобильных приложений конечно же сохраняется. Помимо чисто технологических особенностей это выражается в повышенных требованиях к эффективности кода, а значит, и к квалификации программистов.
Средства разработки
Поскольку на рынке используется несколько версий операционных систем Microsoft, компания предлагает три основных инструмента разработки (см. табл. 3): eMbedded Visual Tools 3.0 для Windows CE 2.х и 3.x, включающий две автономные среды - eMbedded Visual C++ 3.0 и eMbedded Visual Basic 3.0; eMbedded Visual С++ 4.0 для Windows CE 4.х; Visual Studio .NET 2003 (VS.NET) на языках C# и VB.NET.
Все эти инструменты функционируют на обычных ПК, разработка ведется в кросс-режиме с использованием программных эмуляторов аппаратуры. Первые два доступны в виде бесплатных наборов Software Development Kit; VS.NET является коммерческим продуктом.
Чтобы лучше понять специфику использования различных инструментов, следует помнить о возможностях машинного, интерпретируемого и управляемого кода.
Машинный код создается на eMbedded Visual C++ 3.0 и 4.0 и предназначается для случаев, где необходимо обеспечить высокое быстродействие, использовать прямой доступ к аппаратному обеспечению либо свести к минимуму размер программы. Среди усовершенствований версии 4.0 можно отметить механизмы отладки в процессе исполнения Just-In-Time debugging и структурной обработки исключительных ситуаций языка C++.
Интерпретируемый код пишется на eMbedded Visual Basic 3.0, преобразование в машинный код выполняется в ходе выполнения приложения. Он работает медленнее, но непосредственно под управлением Windows CE, хотя и не поддерживает некоторые функции. Большинство мобильных устройств класса Windows Mobile оснащается встроенными средствами исполнения приложений, сгенерированных с использованием VB, однако некоторые специализированные встраиваемые аппаратные платформы на основе Windows CE могут быть лишены их. Кроме того, eMbedded Visual Basic базируется на языке описания сценариев Vbscript, поэтому он не поддерживает многих возможностей среды разработки Visual Basic 6.0 для настольных машин. Он непригоден и для разработки приложений, предназначенных для исполнения на платформе Windows Powered Smartphone 2002. Дальнейшее развитие технологии eMbedded Visual Basic прекращено, и вместо нее предлагается более мощный и удобный язык Visual Basic .NET. Для создания всех новых приложений Microsoft рекомендует VB.NET, а для сопровождения уже существующих - eMbedded Visual Basic.
Управляемый код создается в Visual Studio .NET 2003 и работает только в среде .NET Compact Framework. Его применение оптимально в тех случаях, когда необходимо сократить сроки разработки приложений или требуется исполнение на различных процессорах и ОС.
VS.NET обеспечивает разработку широкого круга приложений на языках VB.NET и C#. При этом используется та же самая среда, что и для создания настольных и серверных приложений, но только с дополнительными наборами Smart Device Programmability и ASP.NET Mobile Controls. С помощью VS.NET разрабатываются приложения двух видов - клиентские и мобильные (рис. 2).
Клиентские приложения для устройств, использующих библиотеки и среду исполнения .NET Compact Framework, создаются с помощью набора Smart Device Programmability, ранее известного под названием Smart Device Extensions. Серверные Web-приложения разрабатываются с помощью набора ASP.NET Mobile Controls - он имел ранее название Microsoft Mobile Internet Toolkit. Для работы с этим набором на клиентское устройство не нужно устанавливать никаких дополнительных компонентов. Вместо них применяется серверная логика, адаптирующая способ отображения страниц к особенностям обозревателя на каждом конкретном устройстве.
Для управления данными в мобильных приложениях предлагается пакет SQL Server 2000 Window CE 2.0 (SQL Server CE 2.0), реализующий все наиболее важные функции реляционной СУБД, включая оптимизирующий механизм обработки запросов, поддержку транзакций и различных типов данных. При этом он требует очень небольшого объема оперативной памяти и весьма экономно расходует системные ресурсы. Такую СУБД можно использовать для обеспечения доступа к функциям управления информацией корпоративного класса с устройств Pocket PC, для разработки приложений, предусматривающих хранение значительных объемов данных на мобильных устройствах и манипулирование ими, а также для организации надежного тиражирования данных в средах с мобильными устройствами, периодически подключаемыми к сети. SQL Server CE 2.0 рассчитан на интеграцию с .NET Compact Framework с применением средств Visual Studio .NET. 4*В классическом понимании ОС - это лишь среда исполнения приложений, обеспечивающая максимальную их независимость от аппаратуры, выполняющая распределение ресурсов вычислительной системы и т. д.