WAP и ASP - Часть I Версия для печати
 

Потенциал WAP

По эргономике мобильный телефон едва ли может конкурировать с PC. Экран мобильника может показывать только несколько символов, его пропускная полоса чрезвычайно ограничена, а ввод текста - довольно неуклюжее занятие. Так зачем беспокоиться? Однако имеются два первичных фактора, которые ,как я думаю ,фактически гарантируют успех WAP:

· Вездесущность: Вы можете обращаться к WAP приложению везде, где Вы можете использовать Ваш мобильный. 
· Встроенный механизм оплаты: телефонный счет будет включать расходы обслуживания WAP. 

Способность производить оплату без необходимости использования кредитной карточки должна породить бум новых WAP-услуг.

WAP (Wireless Application Protocol) v1.1 - открытая спецификация, которая намеревается стандартизировать путь, с помощью которого мобильные телефоны обращаются к информации и услугам Internet. Спецификация в настоящее время развивается WAP-Форумом, консорциумом, который поддерживает, согласно их статистическим вычислениям, до 80 % мобильной телефонной промышленности. Версия 1.2 ожидается к концу ноября.

Фундаментальная концепция, стоящая за WAP, - использование концепций и протоколов Internet , что должно существенно упростить развитие службы WAP.

WAP протокол использует многоуровневую архитектуру, подобную используемому компьютерными сетями, высший уровень протокола - "старый друг " HTTP. Другими словами, если Вы знаете ASP, Вам не надо далеко идти, прежде чем Вы сделаете Ваш первый WAP сервер.
Конечно, мобильные телефоны предъявляют более строгие требования касательно ширины полосы и возможностей клиента, и HTML не мог остаться на WAP в его существующей форме.

Решение WAP Форума - WML (Wireless Mark-up Language), основанный на XML язык форматирования текста, который позволяет переходить между различными WML документами, а также между частями одного документа. WML своего рода отполировал и упростил HTML.

WAP Форум также определил WMLSCRIPT, который является аналогом JavaScript для телефонов WAP. Подобно созданию сценария клиента сети, WMLScript позволит разработчику поддерживать некоторую логику на мобильном телефоне и обращаться к мобильным функциональным возможностям, которые задаются с помощью сценариев.

WML

Хотя я говорил о связи с сервером сети в терминах мобильных телефонов, сам клиент - не мобильный телефон. Программный компонент, ' WAP шлюз ', фактически переводит мобильные телефонные запросы (WAP- запросы) в HTTP запросы и переназначает ответы сервера HTTP на мобильный (снова через WAP). WML файлы преобразуются в двоичный формат WAP шлюзом. Хотя некоторые WAP шлюзы могут переводить HTML в WML, не ожидайте, что произвольный HTML отобразится в WML с разумным содержанием на мобильном.
Конечно, эмулятор не нуждается в WAP шлюзе, чтобы работать. Он загружает WML файл непосредственно от сервера сети (или открывает сам из локальной файловой системы) и выполняет его в телефонном окне


WAP шлюз обычно принадлежит сети мобильного оператора, но возможно установить частный шлюз так, чтобы мобильный пользователь мог обращаться к Intranet. Это означает, что шлюз может обращаться к информации от звонящего телефона, которому не доступен сервер сети.

WAP Эмуляторы

Чтобы обращаться к WAP- службе, Вы нуждаетесь в WAP-эмуляторе. Примеры были мной проверены главным образом с Nokia Toolkit . Вы можете свободно загружать его от Nokia website. Вы будете также должны установить Java Virtual Machine 1.2.2 (свободно доступна от Sun). Nokia Toolkit - также среда разработки. Давайте посмотрим на мобильный интерфейс, отображенный эмулятором


Мобильный дисплей - ваша программа просмотра. Программируемые клавиши используются, чтобы выбрать из меню возможные функции. Нажимая на программирующую клавишу, Вы инициируете функцию, описанную на соответствующей нижней части дисплея, в нашем случае Select и OK. Левая программирующая клавиша обычно служит для выбора параметров.

Стрелки используются, чтобы прокрутить экран вверх и вниз всякий раз, когда отображенное содержание не вписывается в дисплей (фактически, довольно часто). Они также используются, чтобы выбрать значения для различных WML элементов ввода пользователя.
Кнопка Select используется, чтобы переходить по ссылкам и выбирать параметры. Хотя это полезно, это также с технической точки зрения избыточно, поскольку опция выбора всегда доступна из меню, инициированного левой программирующей клавишей. Знайте, что различные мобильные устройства могут иметь различные интерфейсы и комбинации WML элементов. Это означает, что различные производители могут поддерживать универсальные функциональные возможности WML различными способами.

WML архитектура

WML документ составлен из деки, а дека содержит множественные платы (card). Практически, Вы можете думать о деке как о HTML документе, включающем много индивидуально адресованных частей. Синтаксис #label используется, чтобы обратиться к плате в деке. 
Мобильный телефон загружает законченную деку, но показывает только одну плату одновременно. Вы передвигаетесь через связи внутри документа задачами, связанными с программирующими клавишами.

Рассмотрим простой WML документ. Я предполагаю,что читатель обладает элементарными знаниями XML.

<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

Дека должна быть допустимым XML документом, и это подразумевает, что WML документ должен запустить со стандарта XML заголовок и справочники к DTD.

<wml> <!—корневой элемент -->

<card id="card1" title="Example 1">
<p> <!—плата может содержать только P или DO блоки --> 
<do type="accept" label="go to card 2">
<go href="#card2"/>
</do>
This is the first card.
</p>
</card>

<card id="card2" title="Example 1">
<p>
This is the second card.
</p>
</card>
</wml>

Когда ваш мобильный получает деку, он покажет текст первой платы. Если Вы нажмете левую программирующую клавишу, Вы сможете перейти к следующей плате.

Первая карта
Параметры
Вторая карта


Основные WML элементы и разметка: 

"p" Элемент
Отметка <p> разграничивает параграф. Он используется, чтобы перенести по словам любой текст, который Вы желаете показать.

"do" элемент
Каждое WAP-приложение должно поддерживать средства навигации и ввода, сопоставляя кнопку программируемой клавиши с "задачей": <do> < .., некоторая задача ... > <do>. Наиболее используемое значение для атрибута type является accept,при этом к списку параметров, инициированных программируемой клавишей, будет добавлена новая опция. Атрибут метки позволяет Вам определять текст, с которым опция будет представлена. Вы можете определить:

· go - переход к другой плате или деке. Он требует атрибута href, который не нуждается в подробном объяснения. Элемент go может использоваться HTML- тэг <A> или как <FORM>, в зависимости от контекста. 
· Prev - переход к предыдущей плате 
· refresh - обновит дисплей 
· noop - не делает ничего 

Различные значения возможны для атрибута "type ", элемент, но все они моделируют различное использование меток и переходов.

Anchor
Anchor - WML-аналог меток <A> в HTML. Якорь может содержать задачу подобно элементу "do". Единственная разница - якоря не появляются как опция в меню программируемой клавиши, но представлены как связи в потоке WML, в основном как знакомые ссылки HTML:

<anchor>
Go to card 2
<go href="#card2"/>
</anchor>

Переменные

WML определяет концепцию переменных несколько иным способом, чем HTML и JavaScript. Кроме того, что WML переменные могут использоваться WMLSCRIPT, они могут также использоваться непосредственно в WML-документе для ссылок между платами. Другими словами, Вы можете привести состояние платы к значению соответствующей переменной. Переменная может быть установлена или путем ввода пользователя или через элемент setvar. Конечно, переменные могут определяться и путем создания сценария, но не обязательно. Например, Вы могли бы иметь плату, которая требует ввода имени пользователя и затем отобразить плату ' Привет, Luca’ при интерпретации WML код а" Привет, $ (firstname) ". Это невозможно в традиционном HTML.Так как значения переменных сохраняются для всех плат, они часто используются, чтобы поддержать информацию о состоянии и поддерживать комплексное взаимодействие со службой WAP. Проблема в таком подходе - синхронизации передвижения пользователя по деке с ожидаемым состоянием. Для решения этой проблемы разработчикам надо обрабатывать события, когда пользователь достигает платы (onenterforward и onenterbackward) и когда контекст деки должен быть сброшен (newcontext = "true"). Регенерация используется, чтобы обновить внешний вид платы, содержание которой зависит от переменной.

Ввод Пользователя

Конечно, чтобы стать действительно мощный инструментом, переменные должны быть способными хранить сгенерированные пользователем входные значения. Это достигнуто через набор входных элементов, который подобны элементам формы HTML:
· input - подобен HTML. Пользователь может испытать ввод через мобильную клавиатуру. Как Вы можете понять, это не столь практично, как использование клавиатуры PC, и Вы должны попытаться ограничить использование этого элемента и пользоваться элементами выбора всякий раз, когда это возможно. Атрибут name - имя переменной, которая будет установлена, default и size -очевидные атрибуты. Format определяет маску ввода для поля. Возможные маски ввода и другие атрибуты описаны в справочниках, которые идут с инсталляцией Nokia Toolkit. 
· select/option - список вариантов, из которых может выбирать пользователь. Аналогично HTML: 

<select name='movie'> 
<option value='1'>Eyes Wide Shut</option>
<option value='2'>Notting Hill</option> :
<option value='13'>Buena Vista Social Club</option>
</select>

· Атрибут multiple=true сообщает устройству пользователя, что множественный выбор возможен. Событие onpick вызывает, когда выбор сделан/отменен. 
· Postfield - подобно скрытым полям в формах HTML. Оно не будет отображено на экране. и может использоваться, чтобы отправить пары названия / значения на сервер. Фактически это намного удобнее скрытых полей: используя переменные с такими же именами, Вы можете собирать контекстную информацию в Postfield и передавать ее пакетом на сервер. 

Другие элементы

Элемент Img поддерживается, но Вы перевести ваши изображения в специальный растровый формат WBMP. WAP телефоны ограничены объемом ОЗУ и ПЗУ. Новый формат позволяет WAP устройствам быстро отображать изображения. Перевести изображения в формат WBMP можно с помощью plug-in для Adobe PhotoShop и Paint Shop Pro (см. ссылку в конце статьи).
Про (чтобы проверить связь(звено) в конце статьи(изделия)). Не забудьте установить правильные типы MIME на вашем сервере (и для изображений и форматов WAP). Вот их список:

wml text/vnd.wap.wml
wmlc application/vnd.wap.wmlc
wmlsc application/vnd.wap.wmlscriptc
wmlscript text/vnd.wap.wmlscript
ws text/vnd.wap.wmlscript
wsc application/vnd.wap.wmlscriptc
wmls text/vnd.wap.wmlscript
wbmp image/vnd.wap.wbmp

И, в заключение, поддериваются некоторые традиционные элементы (em, i, b, small, и т.д.) также как итаблицы со знакомым HTML синтаксисом.Перевод строки выглядит как < br / >, потому что это XML.
Объект timer начиеает отсчет времени с загрузки платы и вызывает событие ontimer , когда выдержка по времени закончена. Это событие может использоваться, чтобы вызвать любую программу. 

WAP : Проблемы Развития

К сожалению, вещи не столь просты, как они, возможно, кажутся. Вы должны знать, что различные телефоны WAP имеют незначительные различия в их исполнении, которые делают функционирование WAP узла совершенно непригодным на некоторых мобильниках. Nokia 7710, например, не поддерживает метод post правильно при посылке данных на сервер, несмотря на тот факт, что он является частью спецификации. В результате, Вы будете должны использовать метод get.
Одно ограничение, которое надо знать – это максимальный размер деки. Некоторые телефоны (вышеупомянутый 7710) не будут принимать WML деку размером больше 1.4 kb. WAP шлюз сожмет ваш WML в меньший двоичный формат, но не надо ждать чуда. Не один Nokia 7110 не отображает ни таблиц, ни многих других тэгов, используемых для разметки. Кроме того, элемент fieldset игнорируется. Это действует раздражающе, особенно если Вы потратили дни, удовлетворенно глядя на изображение на эмуляторе.
Хотя эмулятор в Nokia Инструментарие 1.2 cookies поддержек, первое 
Я использовал Nokia Toolkit 1.2, но можно выбрать и другие, хотя я рекомендую Вам использовали именно его. В нем есть примеры и несколько справочников, которые дадут вам возможность начать работать.

Позиция Microsoft

Имеется пара интересных фактов относительно позиции Microsoft в отношении WAP. Начальный сторонник WAP (Microsoft - член WAP-Форума), Microsoft теперь выдвигает свое собственное предложение. Оно основано на том, что ширина полосы, батарея и возможности мультимедиа у карманных устройств радикально улучшатся за следующие несколько лет и это сделает Windows CE жизнеспособной OS для беспроводных приложений, а беспроводное содержание будет представлено в HTML. В такой перспективе WAP напоминает временную технологию. Однако, согласно многим источникам, это - очень длинный путь, особенно из-за проблемы батареи, а тем временем WAP будет иметь достаточно времени, чтобы развиться.

Заключение

WAP - новая технология с перспективным будущим. Хотя реальные приложения возможно создавать уже сегодня, разработчики все еще чувствуют эффект трудностей первоначального использования WAP. Даже при том, что возможности мультимедиа в Internet далеки от действительности на переносных устройствах, одним большим преимуществом WAP будет встроенный опознавательный механизм мобильных телефонов. Представьте - заказать билет, автоматически оплачиваемый через ваш телефонный счет: новый горизонт для E-торговли!

WAP и ASP - Часть I
WAP и ASP - Часть II
WAP и ASP - Часть III

 
Автор: Luca Passani
 
Оригинал статьи: http://www.woweb.ru/publ/60-1-0-208
 
Рейтинг@Mail.ru
© Студия WEB-дизайна PM-Studio, 2005. Все права защищены.