О стандарте CE-HTML Автор: Марат Мамяшев
Веб-стандарты Документы
Как-то год назад, разбирая глубоко законспирированное API к одному из не вышедших еще продуктов от одного очень большого и очень известного производителя электронной техники, я столкнулся с таким весьма любопытным явлением как CE-HTML. Не то, чтобы оно меня страшно заинтересовало или поразило, но, занимаясь клиентскими технологии достаточно долго, о существовании такого вполне себе промышленного и вполне себе веб-стандарта я ни разу не слышал.
Предмет
Собственно, приставка CE в названии расшифровывается как Consumer Electronics, а переводится как «электронные товары широкого потребления» («бытовая электроника», согласитесь, звучит коряво в сочетании с веб-технологиями).
Сюда можно отнести все, что опладает экраном и, в некоторых случаях, имеет доступ к сети (вроде современных
телевизоров). Важно отметить, что этот стандарт достаточно жестко ассоциирован с концепцией
Документация
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.





Написать комментарий
Комментарии (3)
01 июня 2010 | NergalОчень интересно, спасибо. Возможно, Вы могли бы подсказать какие-либо браузеры/эмуляторы, которые поддерживали бы этот стандарт, чтобы можно было его "пощупать" лично?
01 июня 2010 | МаратНе встречал в открытом доступе. Вся документация по таким API, включая софт, как правило проходит под грифом «Confidential».
01 июня 2010 | МихаилИспользовал такой стандарт, когда писал интернет-портал для телевизионных HD-декодеров. Так что на них можно опробовать стандарт.