Распределение функций приложений и возможность использования данных за пределами предприятия, на котором они хранятся, — следующий шаг в развитии компонентной технологии. Количество служб, которые разработчики могут интегрировать в свои приложения, настолько велико, что не приходится даже мечтать о том, чтобы создать их все самостоятельно. Рассмотренный нами конкретный пример, — система бронирования Acme (Acme Reservation System), — представляет собой простую службу. Бюро путешествий Acme (Acme Travel Agency), в состав которого входит система бронирования билетов на авиарейсы и система бронирования мест в гостинице, предоставляет клиентам более широкий спектр услуг.
Отдельному производителю не по силам создать для технологии распределенной обработки данных соответствующую инфраструктуру. Это означает, что и дальше будут сосуществовать, как минимум, миры Java, .NET, переносных компьютеров (ноутбуков) и традиционных (унаследованных) систем. К счастью, протоколы TCP/IP (Transmission Control Protocol/Internet Protocol — протокол управления передачей/протокол Internet) и HTTP (Hypertext Transfer Protocol — протокол передачи гипертекстовых файлов) приобрели статус сетевых стандартов. Они могут послужить базисом при попытке организовать взаимодействие неоднородных (гетерогенных) систем. Поскольку протокол передачи гипертекстовых файлов HTTP — протокол текстовый, то имеет смысл описывать взаимодействие таких систем на языке XML (extensible Markup Language — расширяемый язык разметки), который имеет статус промышленного стандарта. В Web-службах протоколы, основанные на языке XML и протоколе передачи гипертекстовых файлов HTTP, используются в качестве промышленных стандартов, которые обеспечивают взаимодействие разнообразных систем.
Web-службы — вторая часть истории распределенной обработки данных (распределенных вычислений) на платформе .NET. Если все приложения и службы, которые должны взаимодействовать, используют общеязыковую среду выполнения CLR (Common Language Runtime), то для организации распределенной обработки данных можно воспользоваться средствами дистанционной обработки, предусмотренными в платформе .NET. Преимущество средств дистанционной обработки, предусмотренных в платформе .NET, состоит в том, что с помощью удаленной сериализации (преобразования в последовательную форму) объектов, можно получить доступ практически к любой структуре данных .NET. В то же время среда, которая не поддерживает платформу .NET, не позволяет обрабатывать все типы данных, имеющиеся в .NET. Следовательно, набор структур данных, передаваемых Web-службами, значительно уже, чем тот, который может быть описан с помощью протоколов, основанных на языке XML. Именно поэтому в Web-службах часто используются протоколы, основанные на языке XML. Поэтому также в версии протокола SOAP (Simple Object Access Protocol — простой протокол доступа к объектам), которая используются Web-службами, и в версии, на базе которой организована удаленная обработка данных в .NET, предусмотрены разные модели программирования. Так, протокол SOAP, используемый в .NET, полностью совместим с общеязыковой средой выполнения CLR (Common Language Runtime). На версию протокола SOAP, посредством которого взаимодействуют Web-службы, накладывают некоторые ограничения стандарты, определяющие способность к взаимодействию.
Как уже было сказано, Web-службы позволяют соединить неоднородные (гетерогенные) системы. Кроме этого, Web-службы позволяют деловым партнерам совместно использовать информацию. С помощью Web-служб можно объединить унаследованные (традиционные) системы с используемыми, не разрабатывая для их соединения специализированного промежуточного программного обеспечения. Использование Web-служб может оказаться полезным даже в пределах одного предприятия, поскольку с их помощью можно объединить информацию, полученную от внутренних и внешних источников. Однако для того, чтобы превратить Web-службы в нечто большее, чем средство разработки распределенных приложений, нужно разработать финансовую и правовую инфраструктуру, а также инфраструктуру, обеспечивающую надежность и безопасность передаваемых данных.