Также: Технологии | Персоны: Максим Борисов

статья РазWAPлощение

Максим Борисов, 17.09.2002

В этом выпуске мы заканчиваем тему WAP. Про WAP-терминалы можно прочитать в первом выпуске, во втором речь шла о сервисах, доступных через WAP.

Глас WAPиющего в Unicode

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

Составляющими технологии WAP являются сервер в Сети, где размещается содержимое сайта, написанного на языке WML, WAP-гейт (WAP Gateway) - сервер-шлюз, устанавливаемый оператором сотовой связи для предоставления своим клиентам доступа к WAP-ресурсам, и наконец, WAP-терминал - клиентское приложение собственно в телефоне. Стало быть, выложив где-нибудь в Интернете на своем сервере правильно оформленный документ, мы можем надеяться на то, что сможем прочитать его с помощью своего мобильника.

Сервер, на котором выкладываются документы, должен быть правильно настроен, то есть уметь отдавать документы соответствующего MIME-типа (подробнее см. http://www.citforum.ru/internet/articles/wmldoc.shtml). В идеале он еще должен отдавать какую-нибудь страницу WML в директории по умолчанию, например, index.wml, но не обязательно. Просто без этой настройки пользователям на неудобной клавиатуре придется набирать путь к документу полностью, со всеми именами и расширениями, рискуя что-нибудь напутать (по крайней мере делайте тогда имена файлов короче - не index.wml, а, например, i.wml). Если выбирать для своего сайта какое-нибудь красивое название, то есть резон начать его с сочетания wap... Например, wap.rbcmail.ru/i.wml. Wap в начале адреса (в данном случае домен второго уровня) обычно и указывает на тип ресурса, хотя это вовсе не обязательно с технической точки зрения.

Понятно, что нет никакой уверенности, что WAP-гейт и WAP-терминал, которыми воспользуются, чтобы просмотреть вашу страничку, будут настроены правильно. Более того, список несовместимостей выпущенного различными фирмами оборудования поражает воображение. Реализация "стандарта" языка WML столь здорово варьирует от фирмы к фирме и от железки к железке, что оставляет далеко позади даже изруганный дизайнерами DHTML, искореженный великой битвой между Microsoft и Netscape. Представьте на минуту не двух гигантов, а десяток, реализующих не только разные браузеры, но и десятки разных операционных систем и компьютеров, да еще и существенно различающиеся размеры и типы экранчиков, прибавьте к этому необходимость встраивать по пути к пользователю дополнительное оборудование в виде WAP-гейта, транслирующее текстовый формат страничек в бинарный код, посылаемый на мобильник, и переводящее запросы с мобильника на сервер, - и вы поймете, что за судьба ждала все эти стандарты в телефонном вавилонском столпотворении. А теперь мы еще вспомним, что живем в стране кириллицы, до которой традиционно нет практически никакого дела создателям всех этих чудес.

Тем не менее попытка не пытка. В качестве сервера для размещения WML-страниц можно избрать, например:
1) сервер своего провайдера или другое уже облюбованное вами место для размещения WWW (вплоть до своего собственного компьютера, если он постоянно в Cети и на нем установлен web-сервер);
2) какой-либо бесплатный веб-хостинг (только непременно без автоматического подверстывания дополнительных баннеров, которым ныне грешит эта "халява", - в этом смысле популярные boom.ru и narod.ru категорически не подходят: с эмулятора вы в таком случае что-нибудь, может, и увидите, но не с телефона. А вряд ли стоит заводить такую страничку только для того, чтобы любоваться на нее через эмулятор);
3) специализированный хостинг для WAP-страниц; или, наконец,
4) обратиться к профессионалам, и за деньги вам настроят все как надо.

Самое простое, с чего можно начать: воспользоваться одним из бесплатных WAP-серверов, где заведомо уже нет проблем с настройками и именами файлов. К сожалению, российских ресурсов такого рода пока не наблюдается, есть западные. Но при этом возникают проблемы не только с чтением англоязычных инструкций (если в школе училка позволяла считать ворон), но и с кодировками.

Например, можно попробовать tagtag.com. После весьма необременительной регистрации вы получите возможность создать несколько адресов вида tagtag.com/name (имя - не меньше трех букв), редактировать свои WAP-сайты онлайн с помощью вижу-виг апплета на яве, вставлять картинки, ссылки, да еще вдобавок к тому проверять свою собственную почту со своих адресов с помощью WAP-интерфейса в мобильнике и отправлять послания от своего имени. Придется только рискнуть и прописать свои Pop3-сервер и логин-пароль.

Но не имея полного контроля над кодом, вы не сможете встраивать в свои странички скрипты и вообще будете здорово ограничены в средствах. К тому же интерфейс не позволяет нормально работать с кириллицей - вставить русский текст удается с помощью операции Copy-Paste, но отображаться правильно он будет потом только с компьютера, но не с вашего мобильника.

Так что если вид своих страничек на "руглише" или английском не травмирует и изучать специальные языки кодирования не тянет, то этот вариант - для вас. К тому же сервис избавляет от забот с картинками - он принимает и GIF, автоматически переконвертируя его в нужный формат.

Еще один сервис подобного рода - http://www.mobilehomepage.com/. Регистрация немногим более обременительная, тоже позволяет создавать несколько адресов, но адрес выглядит более громоздко, например, http://info.wapjag.com/maxim. Сервис немецкий, интерфейс гораздо менее поворотливый, зато без явы (не все браузеры ее поддерживают), только javascript. И вставляет свою рекламу после вашего текста. Русский язык никак не поддерживается, зато куча других европейских языков.

mbasics.com - а вот с этим сервисом вы мало того, что имя сайта будете иметь покороче (хоть и не очень-то крутое) - http://mway.to/name, так еще сможете выбирать интерфейс для работы с сайтом (Java или HTML-формы) и (внимание!) в режиме Novice Editor корректно потом отображается введенная кириллица! Правда, очевидным и удобным этот способ правки не назовешь, но все проще, чем непосредственное кодирование. При загрузке изображений помимо готовых (WBMP) можно конвертировать в этот формат из GIF, JPEG и BMP. Есть статистика, Backup сайта с возможностью последующего восстановления, но FTP-доступа тоже нет.

А вот wappy.to помимо собственно сайтостроительства позволяет устанавливать редирект на какой-либо ваш собственный сайт с неудобочитаемым (читай: неудобонабираемым) адресом, то есть предоставляет еще один вид сервиса, широко распространенного в мире HTML.

Еще подобные сайты, предоставляющие бесплатный хостинг и редакторы, можно попробовать поискать здесь: http://imocos.com/index.php3?catid=06011101&startrecord=0&search=&langid=1&searchin=0

Алиса, это WML

Если вы решите кодировать и размещать свои WAP-станицы самостоятельно, вам придется познакомиться с WML. Код можно писать вручную, в чем-нибудь типа Блокнота - точно так же, как и обычный HTML. Можно воспользоваться одной из специализированных программ-редакторов (например, Nokia WAP Toolkit включает в себя интерфейс с подсветкой тегов, эмулятор WAP-шлюза и эмулятор WAP-телефонов. Но комплект работает на Java, следовательно, притормаживает, к тому же придется пользоваться транслитом) или каким-нибудь плагином к привычному своему редактору HTML (Поддержку WML, кстати, обещают в следующем DreamWeaver'е...). Ссылки на программы можно найти, например, здесь http://www.wapgate.ru/soft/?s=3 и здесь http://imocos.com/index.php3?catid=06011101&startrecord=0&search=&langid=1&searchin=0. Можно попытаться и просто конвертировать свой уже существующий HTML-сайт в новый формат (но нужно учесть, что подходы к расположению материалов, навигации и дизайну столь различны, что в результате такой операции скорее всего появится сущий уродец). Есть такие онлайновые сервисы.

WML - язык разметки, основанный на XML (eXtensible Markup Language). А XML в свою очередь - подмножество SGML (Standardised Generalised Markup Language). Для идентификации формата нужно начать документ WML строками:

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

Само тело документа заключается в тэги <wml> .... </wml> и имеет дополнительное внутреннее деление, непривычное для HTML-документа, - так называемые "карты" (cards) и "колоды" (decks), позволяющее выводить страничку на экран мобильника нужными порциями.

Тэги <p>...</p>, <b>...</b>, <a>...</a>, <img> имеют примерно тот же смысл, что и в HTML, только лишены большинства дополнительных параметров, <br/> - это <br>...

Ну и в общем для самой простенькой статичной страницы этого уже вполне хватит. Выглядеть готовая страничка будет примерно так:

<wml>
<card id="links" title="WAP.GSMSMS.NET">
<p align="center">
<b>WAP Links</b>
</p>
<a href="http://www.phone.com/">PHONE.COM</a><br/>
<a href="http://www.photonhost.com/">PHOTONHOST.COM</a><br/>
<a href="http://wap.arexus.net/">AREXUS.NET</a><br/>
<a href="http://wap.sirma.bg/">SIRMA.BG</a><br/>
<p align="center">
<a href="index.php">back</a>
</p>
</card>
</wml>

Главное - аккуратность. В отличие от HTML пропуск даже одного тэга </p> может привести к тому, что не будет отображаться вся страница целиком.

И есть нюансы. Во-первых, придется задуматься о величине получившейся страницы. Дело в том, что некоторые WAP-гейты могут иметь ограничения на объем передаваемой браузеру информации. Точно оценить, какой объем будет занимать страница при переводе в бинарный код, сложно, но помнить об этом нужно: если страница нормально показывается через эмулятор или через какой-то WAP-гейт определенного оператора, это вовсе не означат, что через другого оператора тоже будет все нормально (у БиЛайна при WAP через GPRS серьезных ограничений на размер скачиваемых страниц не обнаруживается, даже не очень разумного размера тексты скачиваются без проблем (3 тыс. символов), а на wap-гейте NW GSM, как утверждают, максимальный размер скомпилированного кода - около 760 байт (приблизительно 240 символов). По идее размер одной "колоды" не должен превышать 1400-1500 байт.

Во-вторых, с кириллицей все гораздо хуже, чем в HTML, даром что стандарт "свежий" и призванный исправить многие несуразности WWW. В принципе вы можете поместить на страницу текст, допустим, в кодировке windows-1251 и попробовать прописать в заголовке <?xml version="1.0" encoding="windows-1251"?>. Но это сработает разве что на эмуляторе и через гейт МТС. Через БиЛайн это точно не работает. Выкладывать кириллицу в виде картинок, конечно, смешно, разве только какие-то заголовки. Остается единственный путь - кодировать каждую букву как определенный символ. Например, в кодировке Unicode слова "Русская версия" должны быть написаны следующим образом:

&#x0420;&#x0443;&#x0441;&#x0441;&#x043A;&#x0430;&#x044F; &#x0432;&#x0435;&#x0440;&#x0441;&#x0438;&#x044F;

Наберите эти таинственные руны в текстовом редакторе, переправьте расширение файла на html, откройте в браузере - и вам откроется тайна...

Разумеется, помимо очевидной эзотеричности и хлопотности подобного метода, он резко увеличивает вес страницы, для которой вес - фактор критичный. Сразу и непонятно, как такой перевод осуществить без дополнительных средств. Я, например, в самом начале просто помещал нужный текст в сеть в обычном HTML, потом считывал его эмулятором через сервис МТС "HTML-фильтр", который корректно перерабатывает кириллицу в такую хрень, и вырезал соответствующее место в source. Но можно и воспользоваться соответствующими функциями HTML-редакторов (в DreamWeaver'е есть, в HomeSite, если не ошибаюсь). К тому же есть еще одно важное замечание: этот метод препятствует простому использованию текстовых фрагментов из готовой HTML-версии (не получится, например, запросто автоматом экспортировать готовые HTML-новости, придется сперва написать скрипт-перекодировщик и встроить его в процесс).

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

Ангел WAPлоти

Если к материалам, выложенным на WAP-сайте, захочется подвязать картинку, то придется узнать, что такое файлы с расширением .wbmp. Это формат изображений, используемых в WAP. Никаких gif или jpg мобильники отображать не будут. Далеко не всякая программа на "взрослом" компьютере знает о существовании подобного формата. Не сможете вы изготовить такое изображение и в Фотошопе, если только не воспользуетесь специальным плагином. Кроме плагинов, можно отыскать простые конверторы, переводящие в .wbmp изображения более распространенных форматов - BMP, GIF, JPEG и специализированные редакторы, поддерживающие этот формат.

Конвертор ALL2WBMP (Shareware, программа способна преобразовать в WBMP изображения множества форматов: TIFF, JPEG, EPS, PCX, GIF, EMF, WMF, PSD, PNG, ICO и т.д.) скачать можно здесь http://tucows.enta.net/files6/all2wbmp.zip.

Впрочем, гораздо удобнее WBMP File Generator (Freeware, http://amazingvb.latinaddress.com/wbmp), хоть и скромнее по набору поддерживаемых форматов, к тому же он позволяет просматривать получившиеся изображения и даже редактировать их.

Еще программы такого рода здесь: http://www.wapgate.ru/soft/?s=4

Если ничего специально устанавливать нет желания, можно воспользоваться онлайн-конверторами. Лучше всего заранее обработать изображение в знакомом графическом редакторе, привести его к нужному размеру (предпочтительно шириной 96 пикселов) и превратить в двухцветное. Иначе конвертор может выдать весьма непредсказуемый результат.

Кроме текста и графики, можно еще встраивать в свои странички формы и использовать примитивный скриптовый язык (WMLScript) - что-то вроде здорово урезанного JavaScript. Более полно о таких возможностях можно узнать, например, тут: http://www.citforum.ru/internet/articles/wmldoc.shtml.

WAPросы остаются

WAPще-то, конечно, WAP в том виде, в каком он существует, никак нельзя назвать совершенством.

Существуют ли какие-либо альтернативы этой технологии? Разумеется. И пользующиеся гораздо большим спросом там, где они применяются - например, японский оператор NTT DoCoMo с 1999 года запустил услугу i-mode (подробнее по-русски здесь: http://www.3gnews.ru/articles/wapvsimode.html). Заходит речь о внедрении этого сервиса по всей Азии и в Европе. Впрочем, достоинство технологии не в более удачной технической реализации, а в иной организации доступа к сайтам с мобильника. Смысл в том, что пользователь платит не за время работы с сервисом, а за конкретные оказанные услуги - информационные, проведение платежей и т.п. К тому же по надежности эта система дает сто очков вперед нашему WAPу. Владельцу телефона с кнопкой i-mode в Японии не просто доступны любые банковские операции, бронирование билетов на концерт любимой группы, свежие новости со всего мира, совершение покупок и т.д. - все эти услуги действительно реально востребованы.

А в России, возможно, ситуация изменится с повсеместным запуском GPRS, появлением других "правил игры" и новых полезных сервисов. Или придется дожидаться сетей нового поколения 3G, новых форматов (внедрения WAP 2.0, который, кстати говоря, разрабатывался уже с оглядкой на i-mode, к тому же обеспечивает совместимость с большим числом стандартов Internet, в том числе с cHTML, SSL и даже с TCP/IP протоколом (который i-mode все же не поддерживает)), качественно других скоростей доступа, при которых, впрочем, скорее всего не будет никакого отдельного сегмента WAP-Интернета, а с любого мобильного аппарата можно будет получить доступ к документу любого типа, не только специально подготовленному для мобильника.

Впрочем, уже сейчас в некоторые модели телефонов встраивают браузеры, понимающие нормальный HTML. По-моему, это весьма разумно.

Максим Борисов, 17.09.2002