Опубликован: 10.10.2010 | Уровень: специалист | Доступ: платный
Лекция 10:

Обзор технологии Web-сервисов

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Аннотация: В лекции дается краткий обзор технологии Web-сервисов, приводится пример построения Web-сервиса с использованием пакета The Java Web Services Tutorial

Рабочий каталог расположен в Practice.

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

Введение

Web-сервисы - новое слово в технологии распределенных систем. Спецификация Open Net Environment (ONE) корпорации Sun Microsystems и инициатива . Net корпорации Microsoft обеспечивают инфраструктуры для написания и развертывания Web -сервисов. В настоящий момент имеется несколько определений Web -сервиса. Web -сервисом может быть любое приложение, имеющее доступ к Web, например, Web -страница с динамическим содержимым. В более узком смысле Web -сервис - это приложение, которое предоставляет открытый интерфейс, пригодный для использования другими приложениями в Web. Спецификация ONE Sun требует, чтобы Web -сервисы были доступны через HTTP и другие Web -протоколы, чтобы дать возможность обмениваться информацией посредством XML -сообщений и чтобы их можно было найти через специальные сервисы - сервисы поиска. Для доступа к Web -сервисам разработан специальный протокол - Simple Object Access Protocol (SOAP),который представляет средства взаимодействия на базе XML для многих Web -сервисов. Web -сервисы особенно привлекательны тем, что могут обеспечить высокую степень совместимости между различными системами.

Гипотетический Web -сервис, разработанный в соответствии с архитектурой ONE Sun, может принимать форму, в которой реестр сервисов публикует описание Web -сервиса в виде документа Universal Description, Discovery and Integration (UDDI).

Огромный потенциал Web -сервисов определяется не технологией, примененной для их создания. HTTP, XML и другие протоколы, используемые Web -сервисами, не новы. Функциональная совместимость и масштабируемость Web -сервисов подразумевает, что разработчики могут быстро создавать большие приложения и более крупные Web -сервисы из меньших Web -сервисов. Спецификация Sun Open Net Environment описывает архитектуру для создания интеллектуальных Web-сервисов.Интеллектуальные Web -сервисы задействуют общее операционное окружение. Совместно используя контекст, интеллектуальные Web -сервисы могут выполнять стандартную аутентификацию для финансовых транзакций, предоставлять рекомендации и указания в зависимости от географического местоположения компаний, участвующих в электронном бизнесе.

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

Взаимосвязь этих технологий условно представлена на рис. 10.1.

Взаимосвязь технологий

Рис. 10.1. Взаимосвязь технологий

По сути, Web -сервисы являются одним из вариантов реализации компонентной архитектуры, при которой приложение рассматривается как совокупность компонентов, взаимодействующих друг с другом. Как уже неоднократно говорилось, взаимодействие компонент, выполняющихся на разных платформах, представляет собой достаточно сложную задачу, в частности, требует разработки коммуникационного протокола, учитывающего особенности передачи данных между различными платформами. Одной из основных идей, положенных в основу рассматриваемой технологии Web -сервисов, является отказ от бинарного коммуникационного протокола. Обмен сообщениями между компонентами системы осуществляется посредством передачи XML -сообщений. Поскольку XML -сообщения представляют собой текстовые файлы, транспортный протокол передачи может быть самый различный - XML -сообщения можно передавать по HTTP -, SMTP -, FTP -протоколам, причем использование различных транспортных протоколов прозрачно для приложений. Как уже говорилось, протокол, обеспечивающий возможность взаимодействия Web -сервисов, называется SOAP ( Simple Object Access Protocol ). Он определен на основе XML. SOAP обеспечивает взаимодействие распределенных систем, независимо от объектной модели или используемой платформы. Данные в рамках SOAP передаются в виде XML -документов особого формата. SOAP не навязывает какого-либо определенного транспортного протокола. Однако в реальных приложениях наиболее часто реализуется передача SOAP -сообщений по протоколу HTTP. Также широко распространено использование в качестве транспортного протокола SMTP, FTP и даже "чистого" TCP. Итак, SOAP определяет механизм, с помощью которого Web -сервисы могут вызывать функции друг друга. В каком-то смысле работа этого протокола напоминает вызов удаленной процедуры - вызывающая сторона знает имя Web -сервиса, имя его метода, параметры, которые метод принимает, оформляет вызов этого метода в виде SOAP -сообщения и отсылает его Web -сервису.

Однако описанный подход годится лишь в том случае, если заранее известны "сигнатуры" методов, которые реализует Web -сервис. Но как быть, если это не так? Для решения этой проблемы в модель Web -сервиса введен дополнительный слой - слой описания интерфейсов сервисов. Этот слой представлен в виде описания WSDL.

Согласно определению W3C, " WSDL - формат XML для описания сетевых сервисов как набора конечных операций, работающих при помощи сообщений, содержащих документно-ориентированную или процедурно-ориентированную информацию". Документ WSDL полностью описывает интерфейс Web -сервиса с внешним миром. Он предоставляет информацию об услугах, которые можно получить, воспользовавшись методами сервиса, и способах обращения к этим методам. Таким образом, в случае если сигнатура метода Web -сервиса точно не известна (например, она изменилась со временем), у целевого Web -сервиса может быть запрошено WSDL -описание - файл, в котором эта информация будет содержаться.

Следующим слоем технологии является сервис Universal Description, Discovery and Integration (UDDI).Эта технология предполагает ведение реестра Web -сервисов. Подключившись к этому реестру, потребитель сможет найти Web -сервисы, которые наилучшим образом подходят для решения его задач. Технология UDDI дает возможность поиска и публикации нужного сервиса, причем эти операции могут быть выполнены как человеком, так и другим Web -сервисом или специальной программой-клиентом. UDDI, в свою очередь, также представляет собой Web -сервис.

Таким образом, Web -сервисы являются еще одной реализацией системного программного обеспечения промежуточного слоя. Отличительной чертой этой технологии является ее независимость от используемого программного и аппаратного обеспечения, а также использование широко применяемых открытых стандартов (таких как XML ) и стандартных коммуникационных протоколов.

В настоящее время Web -сервисы являются очень активно продвигаемой технологией и позиционируются как средство решения целого ряда задач.

Следует отметить, что с их применением могут строиться и так называемые "стандартные" приложения, где в качестве Web -сервиса оформляется серверная часть.

Простой протокол доступа к объектам (SOAP)

Базовым протоколом, обеспечивающим взаимодействие в среде Web -сервисов, является протокол SOAP.

Протокол SOAP разработали корпорации IBM, Lotus Development Corporation, Microsoft, Develop-Mentor и Userland Software. Этот протокол основан на HTTP-XML. Он позволяет приложениям взаимодействовать между собой через Internet, используя для этого XML -документы, называемые сообщениями SOAP. Протокол SOAP совместим с любой объектной моделью, поскольку он включает только те функции и методы, которые абсолютно необходимы для формирования коммуникационной инфраструктуры. Таким образом, SOAP является независимым от платформы и конкретных приложений, а для его реализации может применяться любой язык программирования. SOAP поддерживает практически любой транспортный протокол. SOAP также поддерживает любые методы кодирования данных, которые позволяют приложениям, основанным на SOAP, посылать в сообщениях SOAP информацию практически любого типа (например, изображения, объекты, документы и т.д.).

Сообщение SOAP содержит конверт, который описывает содержимое, предполагаемого получателя сообщения и требования к обработке сообщения. Необязательный элемент header (заголовок) сообщения SOAP содержит инструкции по обработке для приложений, которые принимают сообщение. Заголовок также может содержать информацию о маршрутизации. С помощью заголовка header поверх SOAP могут надстраиваться более сложные протоколы. Записи в заголовке могут модульно расширять сообщение для таких задач, как аутентификация, управление транзакциями и проведение платежей. Тело SOAP -сообщения содержит специфичные для приложения данные, предназначенные для предполагаемого получателя сообщения.

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Алмаз Мурзабеков
Алмаз Мурзабеков
Прохожу курс "Построение распределенных систем на Java" в третьей лекции где описывается TCPServer вылетает эта ошибка
"Connection cannot be resolved to a type"


Java version 1.7.0_05
Александр Хвостов
Александр Хвостов
Россия
Максим Лютов
Максим Лютов
Россия, СПб, Политех, 2012