xmlhack.ru logo
>> статьи на xmlhack.ru

Новый Веб?

Автор: Симон Сен-Лорен
Перевод: А.Скробов
Опубликовано на XML.com (15.03.2006, англ.): http://www.xml.com/pub/a/2006/03/15/next-web-xhtml2-ajax.html
Опубликовано на xmlhack.ru (24.03.2006, рус.): http://xmlhack.ru/texts/06/the-next-web/the-next-web.html
В закладки:   Del.icio.us   reddit

Единственное, что раздражает меня ещё сильнее, чем существующие сегодня кривые инструменты, — это те инструменты, что придут им на замену завтра. Обычно технологи быстро сменяют восхищение новой игрушкой разочарованием от её ограничений, и затем переходят к очередной новинке, как только считают, что со старой они разобрались.

Всё время, сколько существует Веб, разработчики обсуждали его недостатки. (Мне и самому HTML казался ничтожно слабым по сравнению с гипертекстовыми возможностями HyperCard.) Критики изучали основы HTML-структуры, семантику веб-документов, и сам протокол HTTP, по которому работает Веб. Результатом замечаний этих критиков стала масса новшеств в сфере веб-технологий — хотя даже и эти новшества появляются всё реже с тех пор, как Netscape покинул рынок браузеров, а Microsoft приостановила работу над Internet Explorer.

Порой кажется, что примерно с 2000 г. вдруг прекратились нововведения в области веб-стандартов, бывшие до тех пор широко популярными, и начался период крайне медленной утряски существующих технологий. За это время появлялось и исчезало множество разных проектов нового, ещё лучшего Веба; иногда отдельные полезные элементы этих проектов приживались, но всё же сам Веб не менялся. Может быть, новый Веб уже на подходе? За последнее время пропагандисты от нескольких крупных технологий делали по поводу будущего Веба самые различные предсказания; давайте посмотрим, что из предсказанного ими мы реально имеем сегодня.

XML-Веб

Тем, в какую невообразимую мешанину превратился HTML (и затем JavaScript), были весьма озабочены в лагере сторонников SGML, от которого HTML позаимствовал разметку угловыми скобками. Но именно дурные привычки, которыми страдал сам HTML и которые он прививал остальным, привели его к тому сногсшибательному успеху, которого он достиг. Несмотря на всё это, некоторые видели за SGML будущее. Так, в результате усилий Юрия Рубински по сведению воедино Веба и идей сторонников SGML родился XML, который сначала даже называли «SGML для Веба».

В конце концов, XML занял свою нишу в Вебе, но сейчас сложно даже представить себе, что по изначальной задумке Веб должен был состоять непосредственно из XML-документов; предполагалось, что люди будут работать в Вебе с XML-документами напрямую. В выпуске Scientific American за май 1999 г. Джон Босак и Тим Брей писали о преимуществах перехода от HTML-Веба к XML-Вебу:

Как однажды заметил Брайан Керниган — живая легенда в мире программистов, проблема с принципом «что видишь, то и получаешь» (WYSIWYG) состоит в том, что вы получаете только то, что вы видите…

Теоретически, есть очень простое решение: размечайте тегами смысл документа, а не его внешний вид…

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

Дальше Босак и Брей рассказывают о трёх основных столпах в семействе XML-стандартов, которые должны всё это поддерживать, — это структура (XML), стили (XSL) и ссылки (XLink). В частности, XLink должен был обеспечить огромные преимущества по сравнению с относительно скудными гипертекстовыми возможностями HTML, и он должен был предоставлять как авторам, так и читателям гораздо более богатые возможности.

Всё это здорово, подумал я, и мне казалось, что переход к XML-Вебу не за горами. Когда я писал первое издание XML-букваря, я считал, что мои читатели — это веб-разработчики, готовые приступить к замене существующего HTML-Веба новым XML-Вебом. Во втором издании, когда я стал развивать эти идеи, читатели встретили меня волной недовольства. Оказалось, что покупателям книг про XML не нужен новый Веб. Это были обычные программисты, которым просто хотелось доставить данные из точки A в точку B с наименьшими сложностями.

Тот XML-Веб, о котором писали Босак и Брей, так и не появился. (Хотя мог бы, и до сих пор может.) Разработчики браузеров, даже когда они добавляли поддержку XML, всегда ограничивались при этом поддержкой лишь крошечной части всех возможностей XLink; поддержка XSLT появлялась так же медленно. Веб-разработчики были сбиты с толку возведением структуры во главу угла, крайне скудной поддержкой XLink и необычным подходом к использованию стилей в XSLT. В результате даже те элементы XML-Веба, которые поддерживались браузерами, так никогда и не получили широкого применения.

Лично я надеялся, что появится XML+CSS+XLink-Веб — без XSLT, столь чуждого веб-дизайнерам, — но даже и в этом направлении не было существенного продвижения, несмотря на многообещающие возможности CSS2. Производители браузеров не считали, что этот новый Веб кому-то, кроме меня, нужен; поддержка XLink так и не вышла за рамки той крошечной части его возможностей — такие вещи, как show="embed" для изображений, так никогда и не были реализованы.

XML-Веб так и не появился. Может, он ещё появится, хотя без поддержки XLink непонятно, в чём он будет существенно превосходить обычный HTML-Веб.

Семантический Веб

Продолжая нашу беседу, отметим, что XML сам по себе никогда не обещал чудесного упрощения поиска — и в этом нет ничего страшного, ведь именно это, в числе прочего, обещает Семантический Веб. Зачем полагаться на имена тегов, если можно организовать целую инфраструктуру формального представления знаний (RDF и OWL), которая бы могла указать вам, где именно найти нужную информацию? Это сосредоточило бы прямо на кончиках ваших пальцев громадные массивы метаданных, готовые к нарезке ломтиками, кубиками, и к другим видам анализа.

Тим Бернерс-Ли, создатель существующего Веба и главный покровитель Семантического Веба, так описывал свой проект:

Хотя веб-страницы обычно пишутся не для машинного анализа, они содержат громадные объёмы данных с чётко определённой семантикой — таких данных, как биржевые котировки и многие части онлайн-каталогов. Свидетельством крайней необходимости Семантического Веба являются многие появившиеся сейчас программы для «отскабливания данных с экрана» — например те, которыми пользуются брокеры для извлечения данных из обычных веб-страниц. Это жуткое расточительство: безусловно, нужны способы для непосредственной публикации и считывания таких данных.

Большинство из тех баз данных, которыми сейчас пользуются, — это реляционные базы данных, состоящие из столбцов и строк, где все столбцы одной строки описывают один объект. Например, в базе данных о погоде могут быть столбцы с температурой, атмосферным давлением, и местоположением точки замера. Отношения, связывающие столбцы, — это семантика, т.е. смысл хранимых данных. Такие данные уже готовы для публикации в виде семантической веб-страницы. Чтобы такая публикация была возможна, требуется общий язык, который бы позволил компьютерам хранить и обмениваться данными так же, как HTML позволяет компьютерам хранить и обмениваться гипертекстом. Сейчас Консорциум разрабатывает такой язык — Систему Описания Ресурсов (RDF); он, что неудивительно, основан на XML. На самом деле, это простой XML с некоторыми примечаниями о том, где расположены данные, и как узнать их смысл. RDF можно использовать в Вебе или вне его; его можно внедрять в обычные HTML-страницы. Спецификация RDF относительно проста, и уже имеет статус Рекомендации W3C. То, что нам теперь нужно — план её внедрения на практике. ( Написать Веб, 1999 г., стр. 181)

Хотя продолжается разработка RDF, OWL и других стандартов на эту тему, а также разработка программ, поддерживающих эти стандарты, никто так и не изобрёл «плана их внедрения на практике» в том широком смысле, который имел в виду Бернерс-Ли. Смешение XML с HTML — гораздо менее сложная задача, но даже она не так уж приглянулась веб-разработчикам. Проекты и технологии Семантического Веба — такие как RSS 1.0, FOAF и DOAP — безусловно, созданы для решения реальных проблем, но они всё ещё крайне далеки и друг от друга, и от единого замысла Семантического Веба.

Веб Сервисов

Пока суд да дело c Семантическим Вебом, другая группа разработчиков (также под эгидой W3C) увидела другую группу способов доставить те биржевые котировки тем голодным брокерам. Их проект, как и предыдущие, состоял в объединении XML с Вебом, но теперь он вычленил понятие Веба из понятия веб-браузера. Поначалу веб-сервисы просто сочетали протокол Веба — HTTP — с XML. Тройка из SOAP, WSDL и UDDI должна была позволить разработчикам создавать, объявлять и сочетать механизмы для обмена данными между компьютерами.

Оказалось, что хотя веб-сервисы и доказали свою применимость в широком круге бизнес-проектов — Информация Приложений Предприятия (EAI), Сервис-Ориентированная Архитектура (SOA) и др., — но всё же они имели крайне малое влияние на обычный Веб. Некоторые веб-компании сейчас делают свои данные доступными извне при помощи SOAP API, но идея о том, что образуется крупный рынок открытых веб-сервисов, доступных всем, кому нужны данные или их обработка, — эта идея провалилась. Вместо этого веб-сервисы превратились в замену CORBA и подобных ей архитектур.

Веб-сервисы не исчезли; хотя, к сожалению, это название сейчас закрепилось за SOAP-сервисами — только потому, что они употребляют (а по мнению некоторых, злоупотребляют) HTTP в качестве транспортного протокола. Другая архитектура веб-сервисов — REST — намеренно построена на традиционной модели веб-браузер—веб-сервер, что позволяет гораздо проще приспосабливать её к таким сценариям использования, как обзор людьми при помощи веб-браузера. Но, несмотря на свою совместимость с традиционными моделями Веба, REST также не нашла большого коммерческого применения.

Новый XHTML

Пока грандиозные проекты Веба, обогащённого XML- и RDF-метаданными, соревновались за место под солнцем с веб-сервисами на основе SOAP, сторонники обычного HTML, как в W3C, так и на стороне, вынашивали собственные идеи.

Первым их шажком был XHTML 1.0, превративший HTML в XML-язык. Подавляющее большинство веб-разработчиков вовсе не заметили XHTML, хотя эта аббревиатура становится сейчас всё более популярной, и новые издания книг про HTML выходят из печати с приставленной к названию буковкой «X». XHTML облегчает жизнь тем, кто «отскабливает данные с экрана», — тем, на кого раньше жаловался Бернерс-Ли. Ещё он предоставляет более опытным разработчикам, использующим CSS и DHTML, ценный фундамент — чётко определённую структуру, в рамках которой они могут строить свои документы.

XHTML 1.1 был попыткой разбить HTML на маленькие блоки, пригодные к повторному использованию. Для многих XML-разработчиков XHTML 1.1 был прежде всего иллюстрацией того, что ни в DTD, ни в XML Schema от W3C не оказалось ясных механизмов модуляризации; но всё же XHTML 1.1 надо отдать должное: он позволил создать такие уменьшенные версии XHTML, как XHTML Basic, предназначенный для мобильных устройств с ограниченными вычислительными мощностями и пропускной способностью канала. (Хотя на самом деле, вычислительные мощности и пропускные способности сегодняшних телефонов больше, чем у того компьютера с модемом, с которого я начинал своё знакомство с Вебом.)

Всё то, чем был XHTML до этого момента — это лишь перетряска уже существовавших в HTML возможностей; но появилось и несколько новинок, которые обещают эти возможности расширить. Так, Масштабируемая Векторная Графика (SVG) предлагает в дополнение к существующим сейчас инертным изображениям пользоваться программируемой графикой; XForms лежит в основе нового поколения веб-форм, гораздо более гибких, чем обычные.

Теперь же XHTML 2.0 обещает перетрясти XHTML, удаляя наконец те элементы, которые на протяжении нескольких лет были помечены как устаревшие, и предлагая производителям браузеров и веб-разработчикам новый путь вперёд. Но, к несчастью, не всё так просто. Несколько лет назад XHTML 2.0 столкнулся с разбившимися мечтами об XLink, и теперь он имеет дело с бунтом среди производителей браузеров, которые не готовы к таким масштабным изменениям и хотели бы двигаться вперёд маленькими шажками под руководством WHATWG, чьи решения принимаются приглашёнными экспертами.

Так же сильно, как мне хочется перехода к XHTML в том или ином виде, — так же сильно нам нужен «план его внедрения на практике». Кто согласится на него перейти? Как можно ввести этот переход в основной поток веб-разработки?

AJAX и Веб 2.0

Когда я писал свои первые тексты, производители браузеров вели ожесточённые войны. Как только в одном браузере появлялась новая модная фишка, остальные сразу же бросались её копировать. В последние же годы всё было совсем по-другому: Internet Explorer прозябал в забвении, в то время, как Firefox, Opera и ещё парочка новых браузеров сосредоточились на новых модных фишках, не имеющих непосредственного отношения к самому HTML. Функциональность этих браузеров оставалась старой; но за последний год наконец-то разработчикам удалось сделать огромный прорыв, во многом благодаря кончине Netscape 4.0, — причём инструменты, которыми они пользовались, были созданы в конце 1990-х.

Там, где все остальные проекты Нового Веба требуют создания значительной новой инфраструктуры, AJAX чудесным образом применяет ту технологию, которую в начале жизни XML так осмеивали, — Динамический HTML (DHTML), сочетающий JavaScript и HTML. AJAX добавляет в это сочетание XML для передачи данных; для передачи гипертекста, как обычно, используется самый основной из веб-протоколов — HTTP. Даже в строгих рамках JavaScript-песочницы, где веб-браузер позволяет программам обращаться только к тому серверу, с которого они загружены, — оказалось, что разработчикам удаётся сделать невообразимо много. AJAX разрывает ограничения старой модели, в которой веб-страницы просто путешествуют от клиента к серверу и обратно.

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

Тот успех, которого достиг сам AJAX и созданные на его основе бизнес-модели, породил разговоры о «Вебе 2.0». В это название разными людьми вкладывается разный смысл, и некоторые даже проявляют недовольство прямыми попытками дать определение Веба 2.0. Я предложил такое определение: Веб 2.0 — это то, что получается, когда вы чётко разделяете логику веб-клиента и логику веб-сервера; но пожалуй, это определение слишком общее, чтобы быть полезным.

Какой бы ни был номер версии у сегодняшнего Веба, возрождение AJAX должно послужить всем уроком. Похоже, разработчики устали ждать давно обещанные новые инструменты, и собрали нечто новое из тех деталей, которые у них уже были в распоряжении и которые они могли применить уже сегодня. Это чертовски тяжёлая работа, но зато результаты впечатляют.



XML.com Copyright © 1998-2007 O'Reilly Media, Inc.
Перевод: xmlhack.ru Copyright © 2000-2007 xmlhack.ru