Web-сервисы Java. Машнин Т. С.
- Автор: ArtAgeLess
Технология Web-сервисов - это технология создания распределенных систем, составленных из взаимодействующих между собой программных продуктов, созданных и работающих на основе различных платформ.
Web-сервисы призваны согласовывать работу больших, состоящих из множества частей приложений, предоставляя для приложений бизнес-функции обмена данными.
Помимо функции обмена данными между различными приложениями и платформами, Web-сервисы могут выступать как повторно-используемые компоненты приложения, предоставляющие разнообразные сервисы - от прогноза погоды до перевода с одного языка на другой.
Web-сервисы представляют собой программные компоненты, имеющие идентификатор URI, и взаимодействие с которыми осуществляется по Интернету с помощью открытых протоколов.
Коммуникация с Web-сервисами может выполняться с помощью различных транспортных протоколов, таких как HTTP, HTTPS, FTP, SMTP, BEEP, при этом Web-сервисы можно подразделить на три вида: SOAP Web-сервисы, ориентированные на модель RPC - вызов удаленных процедур, XML Web-сервисы, ориентированные на сообщения, и RESTful Web-сервисы.
Первая группа Web-сервисов - это Web-сервисы, взаимодействие с которыми производится с использованием XML-сообщений по SOAP-протоколу (Simple Object Access Protocol), и имеющие интерфейсы, описанные в формате WSDL (Web Services Description Language). Такое описание интерфейса сервиса обеспечивает автоматическую генерацию кода на клиентской стороне, необходимого для связи с сервисом. Описание WSDL Web-сервиса может быть доступно клиенту с помощью реестра UDDI (Universal Description, Discovery, and Integration), в котором Web-сервис предварительно зарегистрирован. SOAP-протокол может использовать различные транспортные протоколы - HTTP, FTP SMTP и др., однако чаще всего SOAP используется поверх HTTP. SOAP-сообщения, участвующие в обмене между клиентом и SOAP RPC Web-сервисом, имеют строго определенную структуру для передачи имени вызываемой удаленной процедуры и ее параметров, а также результата ее вызова.
Вторая группа Web-сервисов - это XML Web-сервисы, ориентированные на сообщения. Эти XML Web-сервисы обеспечивают низкоуровневую обработку XML-сообщений, при этом Web-сервис обрабатывает полученные XML-данные целиком, как они есть, и полностью формирует ответное XML-сообщение. XML Web-сервисы могут передавать и получать сообщения как в формате SOAP, так и в чистом XML-формате.
Третья группа Web-сервисов - это RESTful Web-сервисы, представляющие удаленные ресурсы, доступные с помощью HTTP-запросов. RESTful Web-сервисы обеспечивают взаимодействие с удаленными ресурсами, передавая клиенту их представление. RESTful Web-сервисы идентифицируются URL-адресом и обрабатывают HTTP-методы GET, PUT, POST и DELETE в ответ на запрос клиента. Технология REST Web-сервисов также может использовать WSDL-описание и SOAP-протокол для передачи сообщений, но может обходиться и без них.
Альтернативой использования технологии Web-сервисов для создания распределенных систем является применение технологий CORBA (Common Object Request Broker Architecture), Java RMI (Remote Method Implementation) и DCOM (Distributed Component Object Model).
Технология Web-сервисов развивается под эгидой организации W3C.
В данной книге предлагаются к рассмотрению основы самой технологии Web-сервисов, реализации технологии Web-сервисов в виде стандартов платформы Java и в таких распространенных Java-стеках Web-сервисов, как Metro, Apache CXF и Axis2.
Стек Metro представляет стек Web-сервисов, состоящий из реализаций технологий JAX-WS, JAXB и WSIT. Технология Metro является частью платформы Java EE и интегрирована с сервером GlassFish, позволяя создавать и развертывать безопасные и надежные Web-сервисы с поддержкой транзакций. При этом технология Metro гарантирует совместимость между Web-сервисами платформ Java EE и Microsoft .NET в приложениях, основанных на архитектуре Service Oriented Architecture (SOA).
Стеки Apache CXF и Axis2 представляют собой открытые платформы со средой выполнения для разработки и развертывания Web-сервисов, обеспечивающие поддержку спецификаций как самой технологии Web-сервисов, так и стандартов ее реализации платформой Java.
Рассмотрены основы технологии Web-сервисов в спецификациях первого и второго уровня, реализация технологии Web-сервисов в виде стандартов платформы Java и в таких распространенных Java-стеках Web-сервисов, как Metro, СXF и Axis2. Материал книги сопровождается более 70 примерами с подробным анализом исходных кодов. На сайте издательства находятся примеры проектов из книги, а также дополнительные материалы.