Очередная версия языка разметки HTML, включающая около 30 новых функций, получила индекс 5, но в дальнейшем консорциум World Wide Web Consotrtium намеревается отказаться от нумерации релизов. По данным W3C, окончательная редакция HTML5 должна появиться лишь к 2020 году, что может показаться странным, но для людей, участвующих в работе над стандартами, важнее процесс, чем результат. В данном случае интерес бизнеса к HTML5 может оказаться настолько значительным, что практическое распространение технологий, основанных на HTML5, начнется уже в ближайшее время, не дожидаясь формального выхода окончательной редакции стандарта. Как следствие, есть вероятность того, что W3C ускорит процесс принятия, иногда называется более близкая дата — 2014 год.
Нельзя не заметить схожести происходящего сейчас вокруг HTML5 с тем, что было в первые годы существования Java, в первой половине 90-х. Поначалу авторы языка не могли в полной мере оценить его значение и предположить масштабы того пространства, которое займет их детище. Хорошо известно, что Джеймс Гослинг и его коллеги хотели всего-то упростить пользование домашними устройствами — как ни странно, но именно это им в конечном счете и не удалось. Точно так же и с HTML5, одним из стимулов к созданию которого было простое и естественное желание избавиться от необходимости в использовании плагинов в браузере, необходимых для поддержки анимации, мультимедиа и масштабирования графики. Пока в этом качестве используются продукты Flash (Adobe), Silverlight (Microsoft) и QuickTime (Applle). Все переменилось в 2011 году, когда появились многочисленные высказывания в форме статей и блогерских записей, предсказывающие грядущие глобальные революционные изменения в мобильных системах, вызванные HTML5, — возникло даже соответствующее выражение HTML5 Mobile Computing Revolution. В итоге даже такие не технологические новостные агентства, как Reuters, стали уделять внимание HTML5, указывая на увеличение к 2016 году числа браузеров с его поддержкой с нынешних 109 млн до 2,1 млрд.
Джеймс Гослинг, влюбленный отец
Как любой нормальный родитель, автор языка программирования Java влюблен в свое создание и считает, что мир был бы совершеннее, будь он построен на принципах Pure Java. Леонид Черняк |
Возмутителем спокойствия оказался Стив Джобс, который в известной статье «Мысли о Flash» (Thoughts on Flash), опубликованной в апреле 2010 года, написал: «Технология Flash была создана в эпоху ПК и для ПК, снабженного мышкой. Flash был и остается успешным бизнесом для Adobe, мы отлично понимаем, что из этого следует желание распространить эту технологию за пределы ПК в мобильное пространство. Но Flash устарел, он не для эры мобильных устройств, сенсорных интерфейсов и открытых стандартов. Доказательством служит факт существования 250 тыс. приложений в App Store, который свидетельствует, что без Flash вполне можно обойтись. Напротив, новые открытые стандарты, например HTML5, победят на поле мобильных устройств и ПК тоже».
Открытость стандарта HTML5 вызывает в памяти еще одну аналогию, связанную с собственно ПК. В России история ПК, по существу, началась в 90-х с массового завоза разного рода клонов IBM PC, а вот в США самой массовой моделью был Commodore 64 — с 1982-го по 1994 год было продано более 17 млн единиц одной модели, хотя были еще Apple II и другие, но победили те, кто сделал ставку на MS-DOS, а позже на Windows. Секрет прост: IBM открыла спецификацию на ПК и создала таким образом рынок, на который вышли Compaq и Dell, а затем бесчисленные производители всех масштабов. Нынешняя ситуация отличается разномастностью мобильных устройств, и снова нужен открытый стандарт, но на этот раз не формирующий сложившейся рынок, а адаптированный к нему. Стандарт, который в равной степени подошел бы любому или почти любому смартфону, планшетнику и т. д. Оказалось, что на эту роль подходит HTML5, который позволяет не просто устранить зависимость от производителей плагинов, но сможет уравнять устройства с точки зрения приложений, загружаемых из облака, обеспечить доступ к облачным приложениям и доставку контента на мобильное устройство.
Те, кто говорит о революционности собственно HTML5, на самом деле плохо понимают природу нынешней революции, даже если это уважаемые авторы отчета «Как новые стандарты Интернета произведут мобильную революцию», опубликованного минувшим летом аналитическим агентством McKinsey. Данный стандарт, в отличие от IBM PC, не делает революцию — мобильная революция уже произошла, а служит всего-навсего одним из средств для наведения порядка в послереволюционной среде, возможно ее важнейшим оружием. Сравним начало и конец первого десятилетия XXI века. Десять лет назад пользовательская сетевая среда состояла из стандартного десктопа, операционной системы Windows и ограниченного набора браузеров. Сейчас — разнообразие устройств, пять-шесть операционных систем и примерно столько же популярных браузеров. Тогда в центре внимания была функциональность, и пользовательский опыт был единообразным, а сейчас пользовательский опыт весьма разнообразен и находится в фокусе внимания. Самое главное, что из этого следует, — в новые условия невозможно перенести старые приложения.
Клиенты для облачных вычислений
Многолетний спор между сторонниками толстых и тонких клиентов завершился компромиссом — нужны и те и другие, но в новом качестве. На облаках каждому из них нашлась своя ниша. Леонид Черняк |
Приложения для мобильных устройств можно разделить на два класса по форме исполнения: на «собственные» (Native Applications) и на веб-приложения (Mobile Web Applications). Пока по традиции распространены Native Applications — исполняемые файлы загружаются в устройство, где они хранятся и запускаются. Инсталляция приложений может выполняться самим пользователем или подразделением ИТ его компании. Самые популярные источники приложений — Apple App Store, Android Marketplace и BlackBerry App World. Приложение взаимодействует непосредственно с ОС, ему доступны прикладные программные интерфейсы, которые ОС предоставляет разработчику. Для создания таких приложений используется стандартная схема: пишется исходный код, он дополняется ресурсами (рисунками, аудиосегментами) и компилируется в исполняемый код. Каждая из мобильных ОС имеет свой инструментальный набор, специфичный для определенной аппаратной платформы. Хотя разработка приложений для каждой платформы требует значительных трудозатрат, применение API системы позволяет с наибольшей эффективностью использовать ресурсы конкретного мобильного устройства. Интерфейсы нижнего уровня позволяют напрямую взаимодействовать с клавиатурой, сенсорным экраном, работать со всеми медийными устройствами, получать доступ к сетям, к GPS, получать информацию о местоположении, а также гарантирует доступ к устройствам, которые могут появиться в будущем. Интерфейсы верхнего уровня позволяют выполнять ряд процессов, поддерживаемых ОС, в том числе просматривать WWW, управлять контактами и календарем, звонить по телефону, читать и посылать SMS; кроме того, они обеспечивают доступ к сетевым сервисам, предоставляемым производителем ОС. Другой API операционной системы, графический инструментальный набор, служит в основном для программирования окон и всего, что с ними связано.
Mobile Web Applications — это частный случай веб-приложений, так называют приложения клиент-сервер, где в роли клиента выступает браузер, а в роли сервера веб-сервер. Тело такого приложения может быть тем или иным способом распределено между клиентом и сервером – частично или полностью оно может выполняться на клиенте, но чаще передается серверу. Для мобильных приложений критически важно то, что использование браузера в роли посредника или промежуточного слоя устраняет зависимость от конкретной операционной системы пользователя. Такой подход обладает всеми преимуществами тонкого клиента. Сходство с тонким клиентом в том, что веб-приложения используют документы, написанные с помощью стандартных средств, таких как HTML или JavaScript, поддерживаемых разными браузерами. Создание таких приложений стало возможно после того, как в 1995 году компания Netscape предложила работающий на клиентской стороне язык JavaScript, затем пошли годы развития и, наконец, в 2011 году был создан HTML5, достоинство которого состоит в том, что интерфейсы API и объектная модель документа Document Object Model стали частью его спецификации.
Веб-приложение может быть множеством способов разделено на уровни, часть из которых размещается в клиенте, а оставшиеся — в сервере. Возможна схема с тупым (dumb) клиентом, тогда первый уровень — презентационный, он всегда в браузере, передает запросы в сервер. Но можно загрузить в клиент два нижних уровня, и тогда он станет умным (smart), а часть логики будет выполняться на устройстве, без обращения к серверу. Предполагается, что HTML5 окажется наиболее удобным из известных на сегодняшний день средств для создания веб-приложений, а его востребованность связана с распространением облаков с их готовностью предоставлять мобильные приложения. Возможности приложений (автономная работа, локальное хранение данных) находятся в зависимости от конкретной реализации, такой как разделение по уровням, или используемого движка для вывода страниц (WebKit, Gecko, Presto, Trident и др).
В состав HTML5 входят:
- язык гипертекстовой разметки HTML (Hypertext Markup Language), служащий для описания иерархического дерева таких элементов пользовательского интерфейса, как прямоугольники и текстовые блоки;
- каскадные таблицы стилей CSS (Cascading Style Sheets), предназначенные для представления графических элементов HTML, в том числе размеров, позиций, границ, размеров текстов, шрифтов, прозрачности и др.;
- язык JavaScript, обеспечивающий динамическое изменение элементов HTML, их стилей, а также взаимодействие с мышкой, клавиатурой, экраном.
Данные средства HTML5 позволяют создавать мобильные веб-приложения, которые со стороны пользователя неотличимы от его собственных приложений, но при этом нет необходимости в процедурах инсталляции, есть возможность автоматического обновления, а главное, обеспечивается платформная независимость — они могут с равным успехом работать в iPhone, телефонах Android, BlackBerry, Symbian и Windows Mobile.