Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Журнал ВРМ World

Международный консорциум W3C отмечает десятилетний юбилей и выпускает новые спецификации

Осенью этого года международному консорциуму W3C (World Wide Web Consortium) исполнилось десять лет. Событие на наш взгляд, знаменательное. Мы присоединяемся к поздравлениям и предлагаем читателям вспомнить "откуда есть и пошел консорциум всемирной сети"…

В марте 1989г., тогдашний сотрудник Европейской организации по ядерным исследованиям (CERN), Тим Бернерс-Ли (Tim Berners-Lee), написал техническое предложение, которое в последствие стало основой "всемирной сети". Получив одобрение своего руководителя, покойного Майка Сендалла (Mike Sendall), и заручившись поддержкой коллег, будущему Сэру Бернерсу-Ли удалось осуществить свой замысел: стартовав с одного институтского сервера в 1990г., "его паутина" сегодня оплетает миллионы серверов.

Даже в те "далекие" дни Тим Бернерс-Ли видел перспективы будущего мощного роста своего детища и залог его успеха и развития: открытость технологий и согласованность стандартов и протоколов. И хотя руководство CERN согласилось сделать коды Бернерс-Ли открытыми для всех желающих, т.е. выполнило первое условие, кто мог поручиться, что при разработке и использовании будущих стандартов и протоколов сохранится единый для всех Web, а не его разрозненные сегменты?

В октябре 1994 с помощью заведующего Лаборатории вычислительной техники Массачусетского технологического института (Massachusetts Institute of Technology), покойного Майкла Дертузоса (Michael Dertouzos), Тим Бернерс-Ли основал международный консорциум W3C. Самая первая декларация целей этой организации звучала следующим образом: "Полностью раскрыть потенциал всемирной сети" ("Lead the Web to Its Full Potential"). Совершенно очевидно, что консорциуму удалось реализовать поставленную задачу. Во-первых, W3C разработал технические рекомендации, которые воспринимаются как стандарты всемирной сети - HTML (Hypertext Markup Language - язык гипертекстовой разметки), CSS (Cascading Style Sheets - каскадные стилевые таблицы) и, разумеется, XML (Extensible Markup Language - расширяемый язык разметки). Последние две спецификации вызвали появление новых графических и мультимедийных форматов SVG (Scalable Vector Graphics - масштабируемая векторная графика) и SMIL (Synchronized Multimedia Integration Language - язык синхронизованной интеграции мультимедиа), а также приложений для мобильных устройств, как, например, VoiceXML 2 (Voice Extensible Markup Language - голосовой расширяемый язык разметки) и XHTML Basic (HyperText Markup Language - базовый расширяемый язык разметки гипертекста). Помимо создания этих стандартов форматирования, W3C является центром разработки Semantic Web (семантическая сеть). Во-вторых, консорциум влияет на развитие сети, создавая политики и методики, которые способствуют распространению и развитию Web-технологий по всему миру, включая Web Accessibility Initiative (программа по обеспечению доступности сети), Internationalization Activity (программа интернационализации) и Patent Policy (патентная политика).

Подарок от рабочей группы XML Core - рекомендация XInclude

Накануне десятилетнего юбилея консорциума члены рабочей группы XML Core подготовили спецификацию (в статусе предложенной рекомендации) "XML Inclusions (XInclude) Version 1.0" ("Включения XML (XInclude), версия 1.0"). Спустя немногим менее двух месяцев - 20 декабря 2004г. - данный документ был опубликован в качестве рекомендации консорциума W3C.

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

Появление XML-схем сняло необходимость поддержка DTD (Document Type Definition - описание типа документа) при использовании XInclude 1.0. Действительно, в отличие от механизма, используемого в шаблонах DTD, т.е. XML external entities (внешние сущности XML), XInclude предоставляет авторам документов механизм нейтрализации неисправности (fallback) в случаях, когда внешний документ по какой бы то ни было причине не может быть извлечен. XInclude позволяет приложению воспользоваться синтаксисом существующих XML-конструкций: элементов, атрибутов и URI-ссылок. XInclude разрешает выбирать, как включать другой XML-документ в новый составной контент - в виде разметки или текста. Помимо этого, XInclude не требует объявления сущностей XML, которые ранее были необходимы при использовании шаблонов DTD.

Спецификация "XML Inclusions (XInclude) Version 1.0" опирается на рекомендацию "XML Information Set (Infoset)" (Информационный набор XML), второе издание которой было опубликовано в феврале 2004г. Поскольку XInclude объединяет информационные наборы XML, данный подход может применяться с любой версией XML, а также другими существующими XML-спецификациями: XML Schema и XSLT - и приложениями: спецификациями Scalable Vector Graphics (SVG) и VoiceXML 2.0. XInclude 1.0 также позволяет воспользоваться оболочкой XPointer и может быть использоватн для включения таких вложенных ресурсов, как фрагменты XML-документов, которые идентифицируются с помощью специального атрибута xpointer.

Необходимо подчеркнуть, что XInclude отличается от функций задания связей, описанных в спецификации "XML Linking Language (XLink)" (Расширяемый язык задания ссылок XLink 1.0), которая специально ссылается на атрибут show со значением 'embed'. Такие ссылки обеспечивают независимый от медиа синтаксис, позволяющий указывать, что ресурс должен графически располагаться внутри отображаемого документа. Спецификация XLink не задает специальной модели обработки, однако упрощает обнаружение ссылок и распознание ассоциированных метаданных с помощью приложения более высокого уровня. XInclude, с другой стороны, указывает трансформацию (XML-в-XML), определяемую типом медиа, и определяет конкретную модель обработки для объединения информационных наборов. Обработка XInclude происходит на низком уровне, часто с помощью общего процессора XInclude, который обеспечивает доступность результирующего информационного набора для приложений более высокого уровня.

Новые спецификации для адресации Web-сервисов

В начале декабря этого года рабочая группа Web Services Addressing (Адресация Web-сервисов) обнародовала первые итоги своей деятельности - три рабочие версии спецификации Web Services Addressing.

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

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

Конечная точка Web-сервиса - это (указываемая) сущность, процессор или ресурс, к которому можно направить Web-сервис. Указания на конечные точки передают информацию, необходимую для идентификации/указания конечной точки Web-сервиса и могут быть использованы следующим образом:

  • для передачи информации, которая требуется для доступа к конечной точке Web-сервиса;
  • для указания адресов для отдельных сообщений, передаваемых в Web-сервис и из него.

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

Обе рассматриваемые конструкции спроектированы таким образом, что допускают расширение и многократное использование, благодаря чему другие спецификации могут опираться и использовать указания на конечные точки и информационные заголовки сообщений.

Рабочая группа Web Services Addressing была создана в октябре этого года с целью рассмотрения членской подачи (Member Submission) - одноименной спецификации, подготовленной компаниями BEA, IBM, Microsoft, SAP AG и Sun Microsystems.

В соответствии с своим уставом рабочая группа разделила этот документ на три отдельные спецификации: Web Services Addressing - Core (Адресация Web-сервисов - Основные положения), Web Services Addressing - WSDL Binding (Адресация Web-сервисов - Связывание WSDL) и Web Services Addressing - SOAP Binding (Адресация Web-сервисов - Связывание SOAP).

В первом документе определяется набор абстрактных свойств и преставление XML Infoset, предназначенные для задания конечных точек Web-сервисов и обеспечения безопасной идентификации этих точек в сообщениях. В данной редакции отсутствует зависимость от спецификации WS-Policy, а также указания на спецификации WS-Trust и WS-SecurityPolicy. Во втором документе объясняется, как эти абстрактные свойства описываются с помощью языка WSDL. Третья часть спецификации Web Services Addressing посвящена определению связывания абстрактных свойств с сообщениями SOAP. Остановимся на этом документе подробнее. При адресации сообщения в конечную точку, информация, содержащаяся в указании на эту точку, преобразуется в этом сообщении в соответствии с трансформацией, определяемой представлением данных и протоколом, используемыми для отправки этого сообщения. Задаваемые протоколом преобразование (или связывания) должны определить, как информация в указаниях на конечные точки, копируется в поля сообщение и протокол. Как следует из названия этой спецификации (Адресация Web-сервисов - Связывание SOAP), в ней определяется связывание SOAP для указаний на конечные точки. Хотя это преобразование может быть явно заменено другими связываниями (определенными как связывания WSDL или как политики), в случае отсутствия соответствующей политики, устанавливающей, что должно использоваться иное преобразование, связывание SOAP, описанное в данном документе, является предпочтительным. Кроме того, для обеспечения совместимости с широким рядом устройств, все соответствующие реализации должны поддерживать связывание SOAP.

Стоит отметить, что поскольку члены рабочей группы для описания конструкций, определенных в Web Services Addressing, намерены, где это представляется возможным, использовать XML-схему, использование этой спецификации ограничивается языком XML версии 1.0.