Ресурс для веб-разработчиков и CSS-галерея

CSS, веб-стандарты, javascript

CSS, веб-стандарты, javascript

О стандарте CE-HTML Автор: Марат Мамяшев

тэги Веб-стандарты Документы
Промышленный формат веб-технологий для электронных товаров широкого потребления.

Как-то год назад, разбирая глубоко законспирированное API к одному из не вышедших еще продуктов от одного очень большого и очень известного производителя электронной техники, я столкнулся с таким весьма любопытным явлением как CE-HTML. Не то, чтобы оно меня страшно заинтересовало или поразило, но, занимаясь клиентскими технологии достаточно долго, о существовании такого вполне себе промышленного и вполне себе веб-стандарта я ни разу не слышал.

Предмет

Собственно, приставка CE в названии расшифровывается как Consumer Electronics, а переводится как «электронные товары широкого потребления» («бытовая электроника», согласитесь, звучит коряво в сочетании с веб-технологиями).

Сюда можно отнести все, что опладает экраном и, в некоторых случаях, имеет доступ к сети (вроде современных телевизоров). Важно отметить, что этот стандарт достаточно жестко ассоциирован с концепцией 10-foot user interface, имеющей мало пересечений с клиентскими веб-технологиями. Т.е. в основной массе конечные реализации этого стандарта предполагают дистанционное пультовое управление.

Документация

CE-HTML является частью стандарта CEA-2014 (чаще упоминается как Web4CE), разрабатываемого Consumer Electronics Association (рабочая группа R7WG9), в которую входит более 2200 организаций по всему миру.

Состав

Сам по себе CE-HTML, является своего рода контейнером привычных (и не очень) веб-стандартов и технологий. Стандарт включает в себя:

  • Ecmascript 262, 3 издание
  • XHTML 1.0 transitional/strict
  • CSS TV Profile 1.0
  • XMLHttpRequest object
  • DOM level 2.0 (Core, Style, Events, HTML)
  • и ряд специфических расширений для CE-устройств

Вышеупомянутые специфические расширения

  • Multi-tap или любой другой специфический формат реализующий CSS3 input-format.
  • Аудио/видео кодеки. Тут полный кайф и h.264 (иногда MS-форматы)
  • JS-хуки и интерфейсы для «общения» с ПДУ.
  • Вспомогательные данные в user-agent. Cервер, при получениии их может переходить в режим «XML UI Listing», чтобы клиент мог использовать необходимый CE-HTML интерфейс из числа предложенных.
  • Специфические интерфейсы для конкретного устройства (поддержка шрифтов, размеры и др.) на основе того самого 10-foot user interface.

Употребление

Как правило, в качестве интерпретатора используется законспирированный проприетарный браузерный движок, который реализует «прозрачную» среду для интерпретации веб-приложений поверх картинки тв. Есть и открытые браузеры для поставщиков CE, вроде Oregan и почившего(?) Wedison project, на основе Webkit.

Навскидку google дает несколько производителей, использующих такую технологию в телевизорах: Philips (Net TV), LG (tv widget), Samsung (internet@tv), SONY (bravia internet) и др.

Приложения, обычно представляют собой обычные JavaScript-виджеты, заключенные в некоторые условно изолированные от основной среды интерпретации блоки, поддерживающие взаимодействие с основными интерфейсами самого устройства (вроде работы со звуком из линейных входов и т.п.).

Зачем

Причины появления этого стандарта все те же, что и в веб — масса разношерстных стандартов и технологий. Проблема в том, что доступ к сети и специфика CE накладывают свой отпечаток на работу с сетевыми поставщиками контента. Здесь и серьезные ограничения в ресурсах, форматах и спецфический пользовательский опыт, и немного иной подход к информационной архитектуре и интерфейсам. Потому, как правило, все что можно максимально определено и описано на уровне объемистых гайдлайнов по интерфейсам. В этом разработка под CE очень похожа на разработку под iPhone.

Нюансы

Конечно же, свои тонкости есть. Как правило, основной проблемой является то, что при разработке приложения вам стоит постоянно, как в старые добрые времена, львиную долю работы посвящать оптимизации и исправлению настоящих/потенциальных утечек памяти в почти недокументированной среде интерпретации (счастье, если известен браузер, или удастся отловить user-agent). Дело в том, что то, что у вас работает в потенциальном эмуляторе, честно ограничивающем системные ресурсы и мощности, совершенно не обязательно сможет запуститься в настоящей рабочей среде. Для OpenLayers, к примеру, мне в итоге пришлось написать свой собственный garbage collector и зашить его на уровне ядра этой библиотеки. Да и не сказать, чтобы опробованные мною эмуляторы отличались большим удобством для разработки (все они были Windows-only). Как правило, это достаточно мазохистское удовольствие. Потому, проще сразу досконально изучить «инкубатор» такого рода API, и вести работу и отладку в своей любимой среде, последовательно портируя его в нужный формат в соответствии с документацией производителя.

CE-устройств, поддерживающих Flash, я пока не встречал. Как правило, в качестве аргумента против выдвигается проприетарность и закрытость формата.

UPD последние модели телевизоров с системами веб-виджетов поддерживают специфическую версию Flash для CE. Вплоть до поддержки медиа-стриминга через RTMP(e,s) в зависимости от вендора API.

Написать комментарий




Ввод HTML запрещен!!Введите текст с изображения:* проверка на работа
* — поля обязательные к заполнению!

Комментарии (3)

01 июня 2010 | Nergal

Очень интересно, спасибо. Возможно, Вы могли бы подсказать какие-либо браузеры/эмуляторы, которые поддерживали бы этот стандарт, чтобы можно было его "пощупать" лично?

01 июня 2010 | Марат

Не встречал в открытом доступе. Вся документация по таким API, включая софт, как правило проходит под грифом «Confidential».

01 июня 2010 | Михаил

Использовал такой стандарт, когда писал интернет-портал для телевизионных HD-декодеров. Так что на них можно опробовать стандарт.



Сделано в 127.ru