16+
ComputerPrice
НА ГЛАВНУЮ СТАТЬИ НОВОСТИ О НАС




Яндекс цитирования


Версия для печати

Модуль поиска не установлен.

Грандиозный прорыв в Интернет-программировании мобильных телефонов

18.02.2005

Владимир Рафалович

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

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

Openwave Т, ведущая фирма по производству мини-браузеров для компактных устройств и, в первую очередь, для мобильных телефонов, выпустила новое поколение браузеров, которыми уже начали комплектоваться мобильные телефоны последнего поколения. Всего же более 50% всех мобильных телефонов, допускающих выход в Интернет, комплектуются браузерами этой фирмы. Новый браузер основан на новой более совершенной технологии - WAP 2.0. Главное отличие от предыдущего стандарта заключается в поддержке файлов XHTML MP (Exstensible HyperText Mark Up Language Mobile Profile) с расширением html или htm. В двух словах, XHTML MP отличается от HTML лишь некоторой ограниченностью тэгов и использованием некоторых новых, а также незначительными синтаксическими правилами, характерными для технологии xml: все тэги должны иметь закрывающую часть и писаться маленькими буквами. Не то чтобы браузер выдал сообщение об ошибке, если забыть закрыть тэг или написать его большими буквами, просто он может неправильно интерпретировать директивы и передавать содержание веб-страницы в искаженном виде. Главное, забудьте <card>, <deck> и прочие неудобства WML-программирования предыдущих поколений браузеров. Теперь мини-браузеры поддерживают файлы с расширением html, asp, aspx и некоторые другие, в точности как полноценный большой собрат. В частности, мы смогли успешно экспериментировать даже с файлами ColdFusion. Означает ли это, что теперь мобильный телефон в состоянии подключиться к любому стандартному сайту? Ответ лаконичен и прост - в принципе, да! Это огромный прорыв в технологии. Разумеется, надо понимать, что сайт, созданный в html-формате и не расчитанный для просмотра на мини-браузерах, может (и скорее всего, будет) выглядеть неэстетично, в искаженном формате и плохочитабелен. Это обязанность программиста - тестировать сайт для мобильных телефонов, ограничивать размер изображений и прочее. Ниже мы рассмотрим конкретный пример реализации интернет-сайта для мобильного телефона с использованием данных из корпоративной базы данных и применением стандартных средств - ASPX (ASP.NET) в IIS 5.0 (Internet Information Server) сервере. Для тестирования программ компания выпустила симулятор мобильного телефона, который позволяет тестировать результат выполнения приложения прямо на экране компьютера, не используя реальный мобильный телефон. Со следующего сайта можно бесплатно загрузить симулятор после надлежащей регистрации (объем примерно 5 Мb): http://developer.openwave.com/dvl/

На момент писания статьи существовала версия 6.2 для загрузки и версия 7.0 браузера была на стадии разработки.

Cпецифика нового стандарта

Но сначала мы кратко остановимся на отличии специфики XHTML MP от HTML. Разумеется, теперь программировать для мобильных телефонов будет во много раз легче, ибо практически каждый разработчик знаком с HTML (и если нет, то сам по себе удивителен факт, что вы читаете эту статью). А новый браузер способен читать и воспроизводить содержание обычного html-файла, опуская непонимаемые им тэги. Разумеется, это не означает, что следует забыть известные правила программирования для мобильных устройств - минимизировать объем страниц, учитывая малую скорость передачи данных, компоновать страницу, имея в виду величину экрана и малость энергетического потенциала мобильного телефона.

XHTML - это адаптация HTML в XML. В сущности, xhtml означает набор следующих простых правил:

- Все тэги должны писаться прописными буквами

- Все тэги должны иметь открывающую и закрывающую часть. Или, в редких случаях, должны быть самозакрывающимися. Например, </br>.

Другие, менее строгие, но очевидные (для мобильных браузеров) правила, заключаются в ограничении использования frames, таблиц в таблицах.

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

Во-первых, теперь браузер поддерживает таблицы, а во-вторых, CSS (Cascading Style Sheets, каскадные таблицы стилей) файлы. Оба эти новшества применяются для форматирования html-страниц. Для ссылки на css-файлы имеется специальный тэг:

<link rel="stylesheet" href="style.css" type="text/css"/>

Понятно, насколько существенна эта добавка. Поддерживать стандартный вид сайта, состоящего из многих страниц, стало намного легче, не говоря уже об экономии размера файлов.

И тем не менее, как утверждает документация, не все браузеры нового поколения еще хорошо работают с таблицами и каскадными листами. Фактически симулятор не может гарантировать, что на каждом реальном сотовом телефоне веб-страница будет выглядеть в точности, как на экране компьютера в симуляторе. Да и сам симулятор не всегда правильно интерпретирует тэги.

Значительно упростился (по сравнению с wml) процесс программирования accesskey. Эта функция, позволяющая ассоциировать команду в меню с числовой клавишей на телефоне, теперь выглядит так:

<a accesskey="6" href="CityList.html">City List</a>

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

Стандартная страница для wml (xml)-файла начиналась строкой:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> или аналогичной DTD (Document Type Definition) ссылкой. Теперь эту формулировку можно спокойно опустить и начинать файл с хорошо знакомой строки: <html>.

Тем не менее, новый стандарт естественным образом поддерживает старый. Страницы, написанные по правилам WML, будут хорошо читаемы новыми браузерами.

Более глубокие сведения о новом стандарте читатель может узнать на сайте:
http://www1.wapforum.org/tech/documents/WAP-277-XHTMLMP-20011029-a.pdf

Пример приложения

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

Для создания самого приложения, которое будет состоять из html- и aspx-файлов мы будем использовать ASP.NET-технологию. Заметим, что asp.net сама по себе позволяет создавать проекты для мобильных устройств. В таком приложении сервер распознает модель клиентского браузера, и если к серверу обратился браузер карманного компьютера, например, то отправляемая обратно с сервера в браузер html-страница будет учитывать специфику этого браузера. А если речь идет о браузере мобильного телефона, то отправляемая обратно страница будет wml-файлом, содержащим <card>, <deck> и прочие атрибуты старого стиля. Это то, чего мы не хотим. Новые мини-браузеры не нуждаются в такой опеке, и поэтому мы будем создавать файлы, пользуясь стандартным web form asp.net проектом.

Наше приложение будет состоять из исходного index.html-файла-меню, перечисляющего размер квартир (по количеству комнат) для просмотра, wap.css-файла, определяющего стиль сайта, и двух aspx-файлов: list.aspx, перечисляющего имеющиеся в наличии квартиры выбранного размера, и apt.aspx, показывающего информацию о конкретной квартире. Эти два последних файла связаны с базой данных, в качестве которой мы использовали MS Access (в комментариях мы показываем, как использовать SQL Server).

Приводим ниже код index.html:

Строка 4 устанавливает связь с файлом таблицы стилей, а строки 10 - 14 связывают эту страницу с файлом list.aspx и передают ему соответствующий параметр (rm) для показа списка квартир с определенным количеством комнат. Действительно отличным элементом здесь является наличие свойства accesskey, которое позволяет переходить на ссылку простым нажатием соответствующей цифровой клавиши. А наличие таблицы позволяет создавать красивый интерфейс на дисплее телефона.

Файл wap.css в нашем случае имеет простой вид и определяет размер и цвет шрифтов в теле документа и в таблицах:

Общий вид стартовой страницы приложения приведен на рис. 1.

База данных apts.mdb имеет две таблицы: tblAll с полями ID (уникальный идентификатор квартиры), Rooms (указывает количество комнат в квартире) и Metro (указывает ближайшую станцию метро как важную отличительную характеристику квартиры), и tblApartments с полями ID (уникальный идентификатор квартиры, связывающий данные в обоих таблицах), Rooms (указывает количество комнат в квартире, тавтология, конечно), Area (площадь квартиры), Rent (стоимость аренды), Phone, Address.

Файл list.aspx представлен ниже. Мы использовали язык C# для нашего примера.

Cтрока 1 включает пространство имен для работы с базой данных Access. Для работы с SQL Server следовало бы включить System.Data.SqlClient. Строка 2 связывает файл с каскадными таблицами. Фунция Connect(), строки 8-14 устанавливают связь с базой данных. В случае с SQL Server, строка 11 должна иметь вид: string ConnectString = "Data Source=ServerName; Initial Catalog= DatabaseName; UID=login; PWD=password"; Строка 19 присваивает локальной переменной параметр, переданный фалом index.html. Строки 20-23 выбирают из базы данных список квартир, имеющих заданное параметром rm количество комнат. Оставшиеся операторы строят html-файл, содержащий таблицу с данными. Именно таблица позволяет нам чередовать окраску рядов для лучшей читабельности. Контроль за чередованием цветов осуществляется в строках 43-46. Создать подобный интерфес в html-файле без использования таблиц было бы непростой задачей.

В результате получается интерфейс, изображенный на рис. 2.

Строки 34 или 39 в предыдущем листинге устанавливают связь с файлом apt.aspx, который передает информацию о конкретной квартире. Вызов этого файла происходит установкой курсора на желаемую строку (здесь мы не используем accesskey; заметьте также, что вторая и третья строки (рис. 2) соответствуют разным квартирам (разное ID), но находящимся в районе одной и той же станции метро - ничего удивительного!) с интересующей квартирой и нажатием клавиши Call (или Enter). Это приводит к загрузке файла apt.aspx, описывающего конкретно выбранную квартиру с фотографией.

Строки 1-14 в точности повторяют предыдущий файл. Затем, при загрузке страницы, происходит вызов данных из таблиц и построение html-файла финальной страницы. Единственным трюком тут является строка 33, где предположено, что файл с изображением квартиры будет находиться в папке /images и иметь название id.jpg, где id и есть id квартиры. В результате получается изображение, как на рис. 3.

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



статьи
статьи
 / 
новости
новости
 / 
контакты
контакты