Место web-сервисов среди других технологий удалённого вызова
Существует немало протоколов и технологий удалённого вызова: Microsoft Distributed Component Object Model (DCOM), the Object Management Group's Common Object Request Broker Architecture (CORBA), Sun's Remote Method Invocation (RMI), .NET Remoting, XML Web Services.
Все эти компонентно-ориентированные технологии(DCOM, CORBA и RMI) долгие годы успешно использовались в Intranet-приложениях. Они обеспечивают надёжную, масштабируемую архитектуру. Однако, при использовании этих технологий в Internet возникают две серьёзные проблемы. Во-первых, они плохо взаимодействуют между собой. Все технологии оперируют объектами, но существенно отличаются в деталях: управлении жизненным циклом, поддержкой конструкторов, и степенью поддержки наследования. Второй, более важный аспект, состоит в том, что ориентация на RPC-взаимодействия приводит к построению сильносвязных систем на основе явных вызовов методов объектов.
В отличие от данных технологий, XML Web Services и .NET Remoting в полной мере реализуют объектно-ориентированный подход для web-программирования.
XML Web Service – компонент, предоставляющий Internet-клиентам набор функций API или web-методов. XML входит в название, поскольку web-сервисы и их клиенты используют его для обмена данными. В основе web-сервисов лежат открытые стандарты, такие как HTTP, XML ( Extensible Markup Language ), SOAP( Simple Object Access Protocol – стандарт Intenet, описывающий, как приложения могут взаимодействовать, то есть вызывать методы друг друга, с помощью HTTP и других протоколов ). Основная задача web-сервисов – обеспечение межпрограммного взаимодействия. Многие работают на UNIX-серверах, при этом к ним обращаются windows-клиенты. Данные, передаваемые web-сервисам, сериализуются в XML и передаются в SOAP-пакетах. Метаданные о содержимом таких сообщений хранятся в WSDL-контракте web-сервиса и схемах XSD. Главное преимущество такого подхода – читабельность метаданных. Разработчик может легко просмотреть всё описание web-сервиса и даже создать собственный модуль, разбирающий SOAP-пакеты.
.NET Remoting предоставляет инфраструктуру для распределённых объектов. Она гораздо сложнее простой архитектуры web-сервисов, основанной на передаче сообщений. .NET Remoting включает передачу параметров по ссылке и значению, обратные вызовы, множественную активацию объектов и политики управления жизненным циклом. Чтобы использовать указанные возможности, клиентское приложение должно владеть всеми технологиями. Данные в .NET Remoting передаются в бинарном или SOAP-формате. Однако, в любом случае, метаданные о структуре переданной информации содержатся в общеязыковой исполняющей среде. Без общеязыковой исполняющей среды (CLR) клиентское приложение не сможет разобрать специфичные для .NET Remoting заголовки SOAP. То есть, .NET Remoting предъявляет существенно более высокие требования по сравнению с web-сервисами.
Дата добавления: 2015-08-26; просмотров: 457;