Введение
Семейство спецификаций для веб-сервисов – это семейство спецификаций для веб-сервисов, опубликованных организацией OASIS. Основными участниками разработки являются Globus Alliance и IBM. Веб-сервис по своей сути является безсостоятельным, то есть не сохраняет данные между вызовами. Это ограничивает возможности использования веб-сервисов.
the radio station in Florida
Web Services Resource Framework (WSRF) is a family of OASIS published specifications for web services. Major contributors include the Globus Alliance and IBM. A web service by itself is nominally stateless, i. e., it retains no data between invocations. This limits the things that can be done with web services,
Before WSRF, no standard in the Web Services family of specifications explicitly defined how to deal with stateful interactions with remote resources. This does not mean that web services could not be stateful. Where required a web service could read from a database, or use session state by way of cookies or WS Session. WSRF provides a set of operations that web services can use to implement stateful interaction; web service clients communicate with resource services which allow data to be stored and retrieved. When clients talk to the web service they include the identifier of the specific resource that should be used inside the request, encapsulated within the WS Addressing endpoint reference. This may be a simple URI address, or it may be complex XML content that helps identify or even fully describe the specific resource in question. Alongside the notion of an explicit resource reference comes a standardized set of web service operations to get/set resource properties. These can be used to read and perhaps write resource state, in a manner somewhat similar to having member variables of an object alongside its methods. The primary beneficiary of such a model are management tools, which can enumerate and view resources, even if they have no other knowledge of them. This is the basis for WSDM.
До появления WSRF ни один стандарт в семействе спецификаций веб-сервисов явно не определял, как обрабатывать состоятельные взаимодействия с удалёнными ресурсами. Это не означает, что веб-сервисы не могли быть состоятельными. При необходимости веб-сервис мог читать данные из базы данных или использовать состояние сессии посредством cookie-файлов или WS Session. WSRF предоставляет набор операций, которые веб-сервисы могут использовать для реализации состоятельного взаимодействия: клиенты веб-сервисов взаимодействуют с ресурсными службами, позволяющими хранить и извлекать данные. При обращении к веб-сервису клиенты включают в запрос идентификатор конкретного ресурса, который необходимо использовать, заключённый в ссылку на конечную точку адресации WS. Это может быть простой URI-адрес или сложный XML-контент, помогающий идентифицировать или даже полностью описать конкретный ресурс. Наряду с понятием явной ссылки на ресурс появляется стандартизированный набор операций веб-сервиса для получения и установки свойств ресурса. Их можно использовать для чтения и, возможно, записи состояния ресурса, что в некоторой степени напоминает переменные-члены объекта вместе с его методами. Основными выгодоприобретателями такой модели являются инструменты управления, которые могут перечислять и просматривать ресурсы, даже не имея о них других сведений. Это лежит в основе WSDM.
the radio station in Florida
Web Services Resource Framework (WSRF) is a family of OASIS published specifications for web services. Major contributors include the Globus Alliance and IBM. A web service by itself is nominally stateless, i. e., it retains no data between invocations. This limits the things that can be done with web services,
Before WSRF, no standard in the Web Services family of specifications explicitly defined how to deal with stateful interactions with remote resources. This does not mean that web services could not be stateful. Where required a web service could read from a database, or use session state by way of cookies or WS Session. WSRF provides a set of operations that web services can use to implement stateful interaction; web service clients communicate with resource services which allow data to be stored and retrieved. When clients talk to the web service they include the identifier of the specific resource that should be used inside the request, encapsulated within the WS Addressing endpoint reference. This may be a simple URI address, or it may be complex XML content that helps identify or even fully describe the specific resource in question. Alongside the notion of an explicit resource reference comes a standardized set of web service operations to get/set resource properties. These can be used to read and perhaps write resource state, in a manner somewhat similar to having member variables of an object alongside its methods. The primary beneficiary of such a model are management tools, which can enumerate and view resources, even if they have no other knowledge of them. This is the basis for WSDM.
Вопросы с WSRF
WSRF не лишен противоречий. Наиболее фундаментальный вопрос – архитектурный: являются ли распределенные объекты с состоянием и операциями наилучшим способом представления удаленных ресурсов? Это, по сути, перенос паттерна распределенных объектов в XML, примерами которого служат CORBA и DCOM. Ресурс WSRF может представлять собой объект с состоянием, к которому несколько клиентов имеют ссылки, и сама спецификация WSRF не решает вопросы изоляции и доступности, полагаясь на компонуемость спецификаций веб-сервисов для их решения. Многие реализации WSRF, по-видимому, избегают этих проблем, обеспечивая низкую доступность и устанавливая однозначное соответствие между ссылкой на ресурс WSRF и локальным объектом, который в C++ и Java обычно не является постоянным (за исключением тех, что связаны с базой данных через механизм постоянного хранения). Однако существуют реализации WSRF, поддерживающие постоянство, кластеризацию и высокую доступность ресурсов (например, в WebSphere Application Server). Рассматривая сеть как совокупность распределенных объектов, WSRF вступает в противоречие с REST-моделью, в которой все является ресурсом, а все действия выполняются посредством ограниченного и стандартизированного набора операций. В некотором смысле, эти две модели ближе, чем чистые SOAP и REST, поскольку обе оперируют ресурсами с состоянием на удаленном конце. Однако REST, реализованный на HTTP, предполагает, что URL-адреса достаточно для идентификации ресурса – нет необходимости в сложности параметров адресации WS Addressing. Особенно критикуется идея управления жизненным циклом удаленного контента посредством возобновляемой аренды. Еще одна проблема архитектуры с точки зрения сообщества REST заключается в том, что обратные вызовы и уведомления, описанные в WS Notification, не проходят через брандмауэры. Поэтому в REST-проектах предпочтение отдается опросу, как, например, в стандартных RSS и Atom-лентах. WSRF не сделала SOAP более приемлемым для сообщества REST. Введение WSRF также вызвало разногласия в мире WS*. Он был впервые представлен миру на мероприятии Global Grid Forum в феврале 2004 года как преемник Open Grid Services Infrastructure. Его ограниченная совместимость с основной архитектурой WS I вызвала несогласие со стороны британского сообщества, занимающегося сетями. Global Grid Forum в конечном итоге изолировал свои зависимости от WSRF в профиле WSRF для своей архитектуры Open Grid Services. Протоколы WSRF также использовались WSDM для взаимодействия с управляемыми ресурсами, описанными в WSDM. Однако сообщество WS* не пришло к единому стандарту управления веб-сервисами, Microsoft, Sun и другие предпочли WS Management, который использует WS Transfer для описания управляемых ресурсов.
Спецификации компонентов
WS Resource определяет ресурс WS как комбинацию ресурса и веб-сервиса, посредством которого осуществляется доступ к этому ресурсу. WS ResourceProperties описывает интерфейс для связывания набора типизированных значений с ресурсом WS, которые могут быть прочитаны и изменены стандартным образом. WS ResourceLifetime описывает интерфейс для управления жизненным циклом ресурса WS. WS BaseFaults описывает расширяемый механизм для создания информативных SOAP-ошибок. WS ServiceGroup описывает интерфейс для операций с коллекциями ресурсов WS. Также важен WS Notification, определяющий способ отправки информации другим веб-сервисам о происходящих событиях.
Реализация
Реализация базовой семантики get/set свойств ресурсов WSRF относительно проста. Самая сложная задача, вероятно, заключается в возврате ошибок в виде базовых ошибок WSRF, когда это требуется спецификацией, поскольку сами SOAP-стеки предпочитают генерировать ошибки SOAPFault. Управление жизненным циклом ресурсов сложнее, но это необязательно, как и WS-уведомления, которые труднее всего тестировать. Globus Toolkit версии 4 содержит реализации WSRF на Java и C; многие другие инструменты Globus были переработаны с использованием WSRF. WebSphere Application Server версии 6.1 предоставляет среду WSRF, поддерживающую как простые, так и кластеризованные, высокодоступные конечные точки WSRF. Apache Foundation разрабатывает проект Muse 2.0 – реализацию спецификаций WSRF, WS-Notification и WSDM на основе Java. WSRF::Lite – это реализация на Perl, которая исключительно использует элемент Address ссылки на конечную точку, что позволяет идентифицировать ресурсы WS с помощью URI. Кроме того, WSRF::Lite обеспечивает сопоставление HTTP-методов операциям WSRF, что позволяет использовать ресурсы WS в архитектурном стиле REST. WSRF.NET – это проект на платформе .NET, посвященный спецификациям WSRF, разработанный исследовательской группой Университета Вирджинии. Последняя версия 6.0 UNICORE построена на Java-реализации стандарта WSRF 1.2, включая WS ResourceLifetime и частичную реализацию WS-Notification.