`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

WAP 2.0 — фундамент для "умного" телефона

0 
 

Все вокруг говорят о GPRS. Взаимоотношения GPRS с WAP сложные. По логике GPRS будет не столько стимулом для развития WAP, сколько могильщиком стандарта. Ведь терминалы становятся все мощнее (Pocket PC, Palm), и быстрый канал коммуникаций только ускорит уход этой технологии со сцены. Но, поскольку близкого пришествия GPRS пока не предвидится, давайте оценим потенциал WAP.
Если принять во внимание реальную скорость передачи данных в сетях GSM (~9 Kbps), то ни одна другая технология сегодня не в состоянии адекватно ее использовать. Благодаря компактным байткодовым форматам и невзыскательному интерфейсу WAP -- единственный разумный выбор в нынешней ситуации. Кроме того, массовость мобильных коммуникаций с ограниченными возможностями среднего сотового терминала и дороговизной PDA-подобных устройств приводят к отсутствию альтернативы WAP. А действительно удобные мощные терминалы появятся еще не скоро, основное препятствие их широкому внедрению -- низкая емкость аккумуляторных батарей. Как правило, эти новомодные устройства с цветными экранами едва ли "выживают" даже сутки на автономном питании. И главное, не следует ставить знак тождества между WAP и WML, ведь WAP -- это еще и телефонные сервисы, push-технологии, сообщения MMS (Multimedia Messaging Service) и многое, многое другое.


Инициализация

WAP 2.0 — фундамент для "умного" телефона
Рис. 1
Процесс инициализации идеологи стандарта обозначают термином "provisioning". Перевести это слово в данном контексте довольно сложно. Наиболее близкий "русскоязычный" аналог -- конфигурирование. У WAP-совместимых устройств конфигурирование включает в себя два этапа (рис.1): на первом (bootstrap) определяется базовая информация (адреса прокси-серверов, технология коммуникации, система безопасности и прочие основополагающие свойства сети провайдера), а на втором -- происходит непрерывное обновление параметров в зависимости от изменений ситуации (Generic Provisioning).

На случай намеренного искажения установок аппарата создатели WAP 2.0 предусмотрели наличие базовой конфигурации, данные которой не могут быть изменены ни TPS (Trusted Provisioning Server) провайдера, ни пользователем. Единственная операция, доступная владельцу аппарата, -- пополнение привилегированного набора установок персонализированной информацией, как-то вход в систему, пароли, сертификаты подлинности, ключи шифрования и т. д. Конечно, в определенный момент аппарат будет руководствоваться текущими установками, однако всегда сохраняется возможность вернуться к базовой конфигурации.


Profiler

Если выше мы говорили о сетевых установках, то здесь рассмотрим конфигурацию устройства. UAProf (User Agent Profile) -- так сокращенно называется структура данных, описывающая возможности конкретного терминала. В документации к первой версии WAP акцент был сделан на размещении профилей устройств в Internet, непосредственно на сайтах производителей. Во второй версии стандарта предпочтение отдается локальному хранению этой информации. В качестве формы записи выбран продвигаемый сейчас консорциумом W3C формат Composite Capabilities/Preferences Profile (CC/PP), а в качестве "языка" -- Resource Description Framework (RDF). Указанные стандарты не останутся привилегией мобильных телефонов, поскольку главной областью их применения должны стать Web-терминалы.

В своем естественном виде RDF обладает частичной совместимостью с XML, однако в тексте спецификаций подчеркивается его неполнота. Профиль разбит на блоки, или компоненты, охватывающие все основные аспекты работы терминала: HardwarePlatform, SoftwarePlatform, BrowserUA, NetworkCharacteristics, WapCharacteristics, PushCharacteristics. Ничто не мешает добавлять новые блоки по желанию производителя. Чтобы было понятно, о чем идет речь, ниже приведены наиболее характерные элементы из довольно объемистого документа "Пример RDF-профиля":

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:prf="http://www.wapforum.org/profiles/UAPROF/ccppschema-20010430#">
<prf:component>
<rdf:Description ID="HardwarePlatform">
<rdf:type resource="http://www.wapforum.org/profiles/UAPROF/ccppschema-20010430# HardwarePlatform"/>
<prf:ScreenSize>
121x87
</prf:ScreenSize>
<prf:Model>R999</prf:Model>
<prf:ColorCapable>
No</prf:ColorCapable>
<prf:ImageCapable>
Yes
</prf:ImageCapable>

Концепция UAProf в первую очередь интересна продуманной схемой взаимодействия с серверами -- поставщиками контента. При подключении к сети терминал может передать свой профиль WAP- и push-шлюзам провайдера, которые будут хранить его не только в течение текущей сессии, но и приберегут в случае ее приостановки. Выигрыш заключается в том, что такая схема избавляет мобильный терминал от необходимости при каждом запросе заново проталкивать сквозь тощий радиоканал свой профиль. Кроме того, шлюзы автоматически будут пытаться преобразовать поступающую информацию в нужный формат (Profile Matching). Предусмотрен чрезвычайно полезный механизм дополнения профиля различными правилами-ограничениями, обусловленными особенностями сети провайдера. Таким образом, прокси-серверы получают право вписывать новые разделы в передаваемые и кэшируемые профили. Так что в том, что вы не в состоянии иногда получить затребованную рассылку, может быть виноват не ваш аппарат, а ваш оператор.


Программные интерфейсы: EFI...

WAP 2.0 — фундамент для "умного" телефона
Рис. 2
WAP 2.0 — фундамент для "умного" телефона
Рис. 3
В мобильном терминале WAP "власть" над аппаратными средствами поделена между тремя основными компонентами: WAE, WTA и EFI (рис. 2). Первая аббревиатура обозначает WAP Application Environment, что дословно переводится как среда исполнения приложений WAP (т. е. броузера, почтового клиента и тому подобного ПО). WTA расшифровывается как WAP Telephony Applications -- компонент, обеспечивающий пополнение арсенала средств управления телефонной связью, мечта, которая так и не стала пока реальностью. И наконец, EFI -- External Functionality Interface, с наиболее загадочной сущностью. С этого компонента мы и начнем знакомство с программными интерфейсами.

Структура EFI выглядит сложно (рис. 3), хотя как в целом, так и покомпонентно ее назначение достаточно очевидно. В основу положены EF Entity, которые являются физическими или, если сказать точнее, программными реализациями конкретных функций EFI. К числу таких функций относится, например, обслуживание различных дополнительных устройств (фотокамер, блоков памяти, Bluetooth-чипов).

Своеобразным высокоуровневым интерфейсом к EF Entity является EF Unit. Unit'ам позволено комбинировать возможности сразу нескольких EF Entity для предоставления каких-либо специфических сервисов. Промежуточная прослойка между EFI и WAE, занимающаяся сбором, хранением и предоставлением информации обо всех модулях и классах EFI, называется EF Broker.


...WTA и WAE

WTA-сервис состоит из двух компонентов: WTA User-agent и WTAI (Wireless Telephony Applications Interface). Если WTA User-agent способен самостоятельно обрабатывать возникающие события, то WTAI -- не что иное, как библиотека функций. Сервисом WTAI пользуются и WTA User-agent, и WAE User-agent. Смысл такого разделения заключается в разграничении полномочий агента WTA и компонентов среды WAE: первый не должен обрабатывать запросы, адресованные последним. В итоге исключается лишнее промежуточное звено при операциях вроде "click-to-phone", когда прямо на карте WML располагается ссылка на телефонный номер. В качестве примеров применения функций WTA приведем наиболее актуальные: выбор звонка из нескольких поступивших, выбор реакции на каждый из звонков (перенаправление автоответчику или другому абоненту, отсылка специального сообщения вызывающему), оперирование голосовой почтой (автоответчиком), ведение журнала вызовов с возможностью перезвонить абоненту одним нажатием клавиши.

Поскольку агент WTA независим, то и полномочия его широки: обработка некоторых телефонных событий иногда требует дополнительных данных, поэтому WTA User-agent имеет доступ к пользовательскому интерфейсу, подсистеме хранения информации и встроенным функциям терминала (например, телефонной книге). Память терминала используется для предварительного кэширования данных, необходимых для работы того или иного сетевого WTA-сервиса. Так, производитель может заранее записать в SIM-карту или ППЗУ телефона контент, востребованный какими-либо общеупотребительными функциями, что значительно ускорит их инициализацию. Вообще говоря, события WTA обычно ассоциируются (bind) с так называемыми каналами (channels), которые, в свою очередь, определяют URL искомого контента. Каналы доступны через пользовательский интерфейс терминала.

Партнером терминального стека WTA со стороны сети провайдера является WTA Server, определяющий набор сервисов (голосовая почта, автоответчик и т. д.) и сопутствующего контента. Соединение с телефонным сервером обычно осуществляется посредством универсального WAP-шлюза.

Особое внимание в WAP 2.0 уделено безопасности. Подлинными признаются только те серверы WTA, которые работают через локальный Trusted WAP Gateway провайдера. На каждую операцию, связанную с генерацией телефонного вызова, у пользователя должно быть испрошено разрешение. Существуют разрешения трех типов: blanket permission -- дается исполняемой задаче на многократное использование определенного набора функций WTA; context permission -- аналогично предыдущему разрешению, но действует только в рамках заданного контекста; single action permission -- дается на однократный вызов функции.

Контент, связанный с обслуживанием телефонных приложений, хранится в формате WTA-WML -- подмножестве языка WML 1.0. Отдельные документы (карты WTA-WML, объекты WMLScript, любые файлы, совместимые со спецификациями WML), здесь называются ресурсами, а пакеты ссылок на них -- каналами. Каналы -- это конгломераты карт и колод, принадлежащих одному сервису, иногда они могут разделять между собой общие файлы ресурсов.

WAP 2.0 — фундамент для "умного" телефона
Рис. 4
На рис. 4 отображена структура WAP Application Framework. Как видите, WAE, по праву центрального элемента программной архитектуры мобильного терминала, включает в себя массу компонентов. Описание некоторых из них содержится в последующих параграфах.


WML и WMLScript

Создавая вторую версию языка WML, участники форума WAP положили в его основу XHTML, который, по сути, является HTML 4, переопределенным с помощью XML. WML оформлен в виде расширений базового диалекта XHTML-Basic, как это и было предусмотрено стандартом. Столь резкая смена базиса вызвала появление эффекта под названием "острая синтаксическая несовместимость" с WML1. Вследствие этого возникла необходимость в "мультисистемных" броузерах, поддерживающих обе версии языка, в специальных транслирующих модулях для WAP Gateway, а также в подготовке альтернативных вариантов контента.

К положительным сторонам революционных изменений можно отнести автоматическую совместимость WML2 броузера с документами XHTML-Basic. Несомненным плюсом стало введение таблиц стилей -- аналога CSS. В качестве эталона был избран формат CSS Mobile Profile, подготовленный комитетом W3C для портативных терминалов. Впрочем, как и во всех предыдущих случаях, WAP Forum не смог или не захотел довести начатое до логического конца: WAP CSS лишь отчасти совместим с указанным форматом, и полный переход ожидается только в отдаленной перспективе. Половинчатость решений объясняется тем, что WML1 выполнял такие функции и содержал такие элементы, которые нельзя пока выразить с помощью XHTML-Basic или CSS Mobile Profile. Там, где замена была возможной, она была сделана, а где нет -- с помощью специального ключевого слова "wml:" введены элементы предыдущей версии.

Подсистема сценариев WMLScript, как и прежде, взращена на жирной почве ECMA-262 (European Computer Manufacturer Association) Standard "ECMAScript Language Specification" и стремится к экстатическому слиянию с JavaScript™. В подражание WML язык WMLScript тоже транслируется в байткодовую форму для экономии пропускной способности канала связи, в чем и заключается одно из наиболее заметных отличий от ECMAScript.


Толкай!

Push-сервис, давным-давно преданный забвению на рынке ПК, обрел новое значение для мобильных коммуникаций. Взаимодействие с инициатором доставки контента происходит обычно через WAP Push Gateway. Иногда его посредничество становится жизненно необходимым, например, когда терминал и поставщик информации не могут найти "общий" протокол. Преобразование форматов, а также предоставление инициатору передачи сведений о возможностях терминала являются основными функциями сервера. Диалог между сторонами--участницами процесса осуществляется с помощью двух протоколов: между терминалом и шлюзом -- это Push OTA (Over-The-Air), словарь которого составляют XML-сообщения, и между сервером--инициатором доставки и шлюзом -- PAP (Push Access Protocol). В зависимости от протокола нижнего уровня к названию OTA добавляют различные "суффиксы": OTA-WSP, OTA-HTTP. Собственно субъект push-доставки упаковывается в MIME-сообщение с заголовками, представляющими собой экстравагантную смесь из некоторых стандартных HTTP headers и дополнительных WAP headers. В заголовках располагаются сведения о приложении-получателе (поскольку один порт может разделяться между несколькими), адрес инициатора доставки, тип контента, конечный срок употребления и т.д. Доставка осуществляется с установлением соединения и без оного. Последний вариант реализуется исключительно посредством протокола WSP.


WSP

Аббревиатура WSP расшифровывается как Wireless Session Protocol, и применяется этот сетевой уровень для управления передачей данных. Протокол поддерживает асинхронные запросы, которые экономят время при использовании ненадежного и медленного канала связи. Под асинхронностью здесь подразумевается последовательная выдача пакета запросов без ожидания ответов на каждый из них.

Чтобы было легче понять роль и назначение WSP, перечислим основные типы запросов: Connect, Suspend, Resume, MethodInvoke и Push. Каждый запрос имеет набор обязательных и необязательных параметров. Например, для примитива Connect это будут Address (комбинация из Client Address и Server Address), Body, Headers (совместимы с HTTP), Capabilities (произвольный набор параметров, описывающих возможности терминала или сервиса, как-то наибольший размер сообщения, кодировка заголовков и т. д.), Status и Request URI. В числе параметров следует указать и Transaction Identifier -- индекс, позволяющий различать сообщения, сгенерированные в ответ на пакет запросов в асинхронном режиме.

Что касается WTP (Wireless Transaction Protocol), то для определения его места в иерархии WAP достаточно сказать, что WTP занимается практической реализацией системы односторонних, двусторонних, надежных и ненадежных запросов, которыми пользуется WSP для организации сессий с установлением соединения.


Форматы данных...

WAP 2.0 — фундамент для "умного" телефона
Рис. 5
Смайлики уже устарели, на пороге -- новая эпоха "наскальной живописи" в Internet (рис. 5). Как говорится в описании стандарта, есть два пути отображения значков-пиктограмм: стандартный набор символов Unicode и графические изображения. Несмотря на очевидное превосходство компактных UTF-символов (максимум 4 байта) над ресурсоемкой графикой, для реализации таких возможностей, как анимация, пришлось пойти на компромисс. Уже подготовлена обширная библиотека--словарик изображений.

В целом раздел, декларирующий стандартные типы данных для WAP-устройств, беден. В настоящий момент унифицированы только форматы записи международных и междугородных кодов, символьные последовательности набора, элементы адресной книги и DTMF-последовательности (Dual Tone Multi-Frequency). По-прежнему из набора форматов обмена контактной информацией наличествуют vCard и vCalendar.

Из форматов файлов особой чести удостоился только WBMP (Wireless BMP), который перекочевал из предыдущей версии WAP, на первый взгляд, без изменений. WBMP поддерживает исключительно черно-белые изображения (без градаций яркости), что снимает потребность в таблице цветов. Несмотря на упрощения, возможна запись анимации на 15 кадров. Все прочие типы файлов оставлены на усмотрение спецификаций MIME, что, конечно, не будет недостатком, так как это улучшает совместимость с общепризнанными и устоявшимися стандартами.

WAP 2.0 — фундамент для "умного" телефона
Рис. 6
Особняком стоит сервис MMS, предназначенный в первую очередь на передачу мультимедийных сообщений (изображений, видео, аудио). Но не только их. Архитектура сервиса (рис. 6) не ориентирована на режим реального времени, а сообщения отправляются посредством серверов MMS Proxy-Relay и временно (до установления связи с реципиентом) могут сохраняться на серверах MMS. Предусмотрен обмен сообщениями с почтовой системой Internet. На MMS Proxy-Relay возложена задача преобразования MMS в MIME с соответствующей заменой заголовочной информации. Заголовки, не имеющие аналогов в формате MIME, кодируются с помощью префиксов X-Mms, которые будут просто проигнорированы клиентом, не совместимым с MMS. Однако наличие подобных "рудиментов" позволит затем восстановить исходный вид сообщения для дальнейшей пересылки на другой мобильный терминал.

Так как вопрос преобразования снят, то становится возможной и загрузка MIME-сообщений с удаленных почтовых серверов POP3 или IMAP. Со стороны терминала организацией процесса создания и пересылки MMS занимается MMS User-agent. Для экономии пропускной способности содержимое и заголовки MMS-сообщения преобразуются в байткодовую форму.

Очень необычно выглядит декларация такой экзотики, как MMS-презентации. Теперь в сообщение наряду с мультимедийным контентом может быть внедрен сценарий, определяющий последовательность показа. В качестве языка предлагается использовать WML или SMIL (динамическое расширение XML). Сейчас выражение "презентация на базе мобильного телефона" звучит несколько необычно, но завтра, как уверяют разработчики спецификаций и подсказывает здравый смысл, -- чем WAP не шутит.


...где они хранятся

Проектируя подсистему хранения данных, члены WAP-альянса старались добиться максимального сходства с наиболее распространенной структурой: файл -- каталог -- носитель. Чтобы построить иерархию, которая легла в основу WAP Persistent Storage Interface, необходимо заменить слово "файл" на "Storage objects", носитель -- на "Storage medium", а слово "каталог" оставить в покое. Смысл выражения "Storage medium" становится ясен сразу по прочтении списка возможных значений этого параметра: EEPROM, FLASH, SIM, SmartCard и т. д.

WAP 2.0 — фундамент для "умного" телефона
Рис. 7
Иерархия структурных элементов подсистемы хранения вместе со всеми атрибутами показана на рис.7. Вырисовывающаяся картина мало отличается от стандартной файловой архитектуры ПК. Приложения WAE распознают ресурсы WAP Persistent Storage Interface путем обращения к перечисляющим (enumeration) функциям, которые возвращают информацию о типе и возможностях "Storage medium" в целом, а также о существующей системе каталогов.


...и как передаются

На транспортном уровне WAP 2 уживаются два протокола передачи данных: WDP (Wireless Datagram Protocol) и WTP (Wireless Transaction Protocol), причем один паразитирует на другом. Последний был кратко охарактеризован выше.

Общее управление стеком WDP осуществляет WDP Management Entity, в задачи которой входит отслеживание внешних по отношению к протоколу изменений. Например, этот компонент должен среагировать на сообщения о недоступности беспроводной сети, истощение заряда батарей или нежелании пользователя поддерживать соединение. Ошибки, возникающие непосредственно в процессе обмена дейтаграммами, отслеживаются и корректируются с помощью вспомогательного управляющего протокола WCMP (Wireless Control Message Protocol).

Что касается физического уровня, то WDP работает поверх всех основных физических протоколов передачи символьных данных: SMS, USSD, GSM Circuit-Switched Data, GPRS, Cell Broadcast, ANSI-136, CDPD, CDMA, PDC, iDEN, FLEX и ReFLEX, PHS, DataTAC, TETRA и Mobitex. Поскольку не всегда избранная система обеспечивает требуемую длину пакета, то особое значение приобретает факт наличия или отсутствия в стеке специализированной реализации функции сегментации и сборки -- SAR (Segmentation & Re-Assembly). Для распределения поступающих пакетов между несколькими приложениями используется традиционный механизм назначения портов.

Вот так выглядят сегодня основные компоненты WAP.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT