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

Клиент-серверные технологии появились на свет в начале 80-х. В одной молодой компании, специализирующейся в области релятивистских СУБД, решили отделить базы данных от приложений, которые их используют. Это была компания Britton-Lee, которую основали Боб Эпштейн, Паула Хауторн и Майк Убелл.

Их целью было создание автономного аппаратно-программного сервера баз данных, получившего название Intelligent Database Machine (IDM). Идея состояла в том, что, имея некий большой компьютер, координирующий запросы к IDM, можно обеспечить более высокую производительность, более надежную защиту данных и сделать работу с системой проще.

Закрытая аппаратная архитектура IDM оказалась, увы, не в состоянии поспевать за быстрым ростом производительности Unix-серверов. Но идею не забыли. В скором времени тот же Эпштейн уже значился в числе основателей другой компании, разрабатывающей программные продукты. Их основу, по сути, составляла та же самая идея, но за одним исключением — для ее реализации не требовалось специализированного оборудования. Это была уже компания Sybase, сделавшая клиент-серверные технологии более практичными и популярными.

Через SGML к WDSL

Клиент-серверные архитектуры использовали не только для доступа к базам данных. В 1983 году двое ученых из исследовательского центра Xerox в Пало-Альто (PARC), Эндрю Биррелл и Брюс Джей Нельсон, придумали удаленный вызов процедур (Remote Procedure Call, RPC), т. е. механизм, используя который, один компьютер в сети может «попросить» другой компьютер выполнить часть его вычислительной работы. А в 1984 году Билл Джой из компании Sun Microsystems возглавил разработку сетевой файловой системы NFS (Network File System), использующей RPC для того, чтобы дать возможность компьютерам обращаться к файлам, размещенным на других компьютерах в той же сети.

Однако организовать совместное использование данных, файлов и даже вычислительных процессов в сети одной компании было намного проще, чем реализовать совместное пользование бизнес-данных различными компаниями. Впрочем, пусть и с оговорками, но эта идея начала воплощаться в жизнь еще в 1975 году (почти три десятилетия назад!), когда группой фирм, занятых в области перевозки грузов, был создан координационный комитет по транспортировке данных — для разработки стандартных электронных версий деклараций об отгружаемых товарах и других документов.

К началу 80-х годов стандарт электронного обмена данными EDI (Electronic Data Interchange) уже использовался в автомобилестроительной отрасли, в розничной торговле и на транспорте. Но системы EDI были слишком сложны. В стандартный EDI-документ можно поместить намного больше информации, чем требуется большинству компаний.

Поэтому на практике часто использовались упрощенные (тем или иным способом) версии, и было очень непросто отследить, с какими подмножествами EDI работают поставщики и пользователи. Не будем забывать и о том, что EDI-сообщения обычно пересылались по очень дорогим частным сетям.

Требовалось упростить EDI, и решение было найдено. Еще в 1969 году три разработчика из корпорации IBM, создававшие компьютерную систему для адвокатских фирм, предложили использовать теги для идентификации информационного наполнения в документах. Чарлз Голдфарб, Эдвард Мошер и Рэймонд Лори назвали свою систему Generalized Markup Language, или GML. По удивительному совпадению эта аббревиатура оказалась составлена первых букв фамилий ее авторов.

В 1980 году IBM уже успешно использовала GML в своих продуктах, а соответствующие организации начали готовить стандартизованную версию. В 1986 году SGML (Standard Generalized Markup Language) стал официальным международным стандартом.

Как и стандарты EDI, SGML был объемным и сложным. Однако он включал в себя систему, с помощью которой можно было создавать подмножества, включающие полные наборы информационных тегов.

Одно из таких подмножеств появилось в 1991 году, когда Тим Бернерс-Ли из швейцарской лаборатории CERN предложил HTML (Hypertext Markup Language) для самого первого Web-браузера. Чтобы посылать и получать Web-страницы Бернерс-Ли также придумал упрощенную версию стандартного протокола Internet File Transfer Protocol, который он назвал Hypertext Transfer Protocol, или HTTP.

В 1996 году рабочая группа консорциума W3C (World Wide Web Consortium) разработала первую предварительную версию того, что называют «упрощенным SGML».

Двумя годами позже расширяемый язык разметки XML (Extensible Markup Language) превратился в стандарт, который некоторые ИТ-компании стали использовать в электронной коммерции.

В 1998 году специалисты из Microsoft объединили все вместе: удаленные вызовы процедур передаются через Internet посредством протокола HTTP в виде XML-документов, выполняя те же функции, что и EDI, и даже больше. Разработчики назвали свою систему Simple Object Access Protocol, или SOAP.

IBM присоединилась к Microsoft в этой работе в 2000 году. Вдвоем компании создали язык WSDL (Web Services Description Language), определив те возможности, которые смогут предлагать клиентам поставщики Web-служб. Они же вместе с компанией Ariba стояли у истоков UDDI (Universal Description, Discovery and Integration) — спецификации, заложившей основу единого каталога коммерческих Web-служб.

Прошло еще два года, и в 2002 году Web Services Interoperability Organization вместе с десятком производителей и компаний-пользователей пообещала, что Web-службы упростят и электронную коммерцию, и службы ИТ.


1969
IBM разрабатывает GML для разметки информационного наполнения документов для адвокатских контор

1975
В транспортной отрасли разрабатывается система электронных транспортных деклараций, названная системой электронного обмена данными

1981
Боб Эпштейн (на фото), Паула Хоторн и Майк Убелл выделяют приложения и базы данных в своей Intelligent Database Machine

1983
Исследователи Эндрю Биррел и Брюс Джей Нельсон из Xerox PARK внедряют первую действующую RPC

1984
Sun использует RPC в сетевой файловой системе Network File System

1986
SGML становится официальным международным стандартом

1991
Тим Бернерс-Ли создает первый Web-браузер и предлагает HTTP

1996
Консорциум W3C начинает разрабатывать «упрощенный SGML», который получает известность как XML

1998
Microsoft объединяет XML и HTTP в SOAP

2000
Microsoft и IBM анонсируют WSDL и каталог UDDI для Web-служб

2002
IBM, Microsoft и другие производители учреждают Web Services Interoperability Organization