Главная страница Visual 2000 · Общий список статей
Публикации в журнале BYTE/Россия · Публикации на тему MS .NET

Web-сервисы спасут компьютерный мир?

Андрей Колесов

© Андрей Колесов, 2001
Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале BYTE/Россия N 9/2001.


В этом номере "Байта" мы открывает тему "Web Services"...

В этом номере "Байта" мы открывает тему "Web Services". "Открываем" — потому, что, судя по всему, простым изложением базовых основ тут не обойдешься, вопрос относится к категории "стратегических". И мы бы очень хотели, чтобы в обсуждении приняли бы самое деятельное участие те, кому предназначена новая технология, т.е. читатели нашего журнала.

Мы публикуем две статьи, в которых рассмотрены основные элементы Web Services и возможности их применения на конкретных примерах. (См. статьи "Новый "универсальный клей" — Web Services" и "Организация работы Web-сервисов" в журнале журнале BYTE/Россия N 9/2001.) Хотя они в чем-то схожи, но все-таки детализируют разные аспекты технологии, образ которой от этого выглядит рельефнее. Однако сначала следует сказать несколько вводных слов и сделать ряд общих замечаний, которые, как мне кажется, было бы полезно иметь в виду в дальнейших обсуждениях.

В начало статьи

"... и в воздух чепчики бросали"

Лично я первый раз услышал сам термин "Web Services" около года назад, при объявлении первой информации о будущих Microsoft .NET, Framework.NET и Visual Studio.NET. Однако довольно быстро стало понятно, что речь идет не о некотором корпоративном решении, а о технологии, за которой стоят киты- конкуренты ИТ-индустии, в формальном образе W3C — всемирного Web- консорциума. А ключевыми разработчиками стандартов (которые утверждает W3C) являются давнишние друзья-соперники IBM и Microsoft.

С начала нынешнего года слова Web Services все чаще начали встречаться в компьютерных СМИ (в российских с обычным запозданием) и к лету стали уже чем-то обычным. При этом доминировали превосходные оценки от будущего положительного эффекта применения этой технологии. Тема все чаще стала рассматриваться на различных компьютерных форумах, а летом была в центре внимания двух крупнейших мировых конференций для разработчиков — Microsoft TechEd'2001 (Атланта и Барселона) и Lotus DevCon'2001 (Лас-Вегас).

На открытии последней президент Lotus Эл Золлар озаглавил свое выступление "Стандарты сделают вас свободными", определив тем самым главную направленность форума, где был анонсирован целый ряд инструментов разработки приложений на базе Web Services и продуктов с поддержкой данной технологии. Одна из ключевых идей его речи — новые стандарты обеспечат независимость заказчиков и разработчиков "от прихотей тех или иных ИТ-поставщиков, в том числе тех, кто обитает в Редмонде".

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

Как уже было сказано, Web Services базируется на применении открытых, утверждаемых консорциумом ИТ-сообщества стандартах и протоколах, ключевыми из которых являются следующие:

Конечно, идея применения открытых универсальных стандартов выглядит очень заманчиво, но при этом (учитывая, что ажиотаж вокруг темы растет со скоростью степного пожара) возникает несколько настораживающих вопросов, актуальность которых возрастает (как это ни странно) именно по мере роста объема публикаций по тематике Web Services. Попробую сформулировать их.

В начало статьи

Как отделить реальные потребности ИТ-пользователей от маркетинга ИТ-поставщиков?

Вопрос 1: что принципиально новое дает потребителю эта технология? Об этом меня спросил довольно сильный русский программист, работающий с США. "Я внимательно прочитал уже несколько статей по этой теме, — пояснил он, — но так и не понял, что я могу с их помощью сделать такого, чего не мог сделать раньше с помощью той же CORBA?" Обменявшись с ним мнениями, мы пришли к выводу, что желание заставить клиентов провести обновление своего ПО — совсем не последний стимул в маркетинговой активности ИТ- поставщиков.

Вопрос своего знакомого я передал в Москве нескольким специалистам из компаний, которые занимаются "продвижением" технологии Web Services, но пока получил довольно расплывчатые ответы, типа "Интернет — это так классно!".

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

Вопрос 2: насколько действительно сегодня действительно актуальна модель распределенных Web-приложений в разнородной вычислительной среде? Хотелось бы пояснить — никто не сомневается, что такие системы нужны и, скорее всего, их число будет расти. Но столь же понятно, что еще очень долго основная доля ИТ-систем будет работать (и разрабатываться) на базе "традиционных", локальных систем. Хотя бы потому, что потребителям нужно получить убедительные ответ на вопрос об обеспечении нужного уровня надежности работы подобных распределенный Web-приложений.

По крайней мере, очевидно, что Web Services, по крайней мере, в ближайшем будущем, не отменят и не заменят другие модели создания повторно используемых программных компонентов (те же DLL, Activex DLL и пр.), в частности, для локальных компьютеров.

Вопрос 3: что же мешало ИТ-поставщикм создать такой "простой протокол" раньше? Вопрос этот задается не из чистого любопытства, а из-за желания понять, насколько серьезно можно воспринимать заявления ведущих поставщиков ПО о намерении "жить дружно".

Разумеется, во многом такое развитие технологий определяется глобализацией информационно-вычислительного пространства и требованием обеспечения межплатформенного взаимодействия со стороны потребителей. Однако стоит отметить и еще один момент — хорошим стимулом для внутриотраслевого сотрудничества является переживаемый кризис ИТ- индустрии, который способствует консолидации конкурентов для решения общих задач. Одна из них — создание стимулов для увеличения рабочих мест в отрасли информационных технологий.

Вопрос 4: будет ли реально обеспечена обещанная "платформенная независимость"? Поясню: объявив сегодня поборниками идей открытых стандартов, не станут ли некоторые ИТ-поставщики (конечно же, из соображений наилучшего обеспечения требований потребителей) делать свои собственные, модернизированные варианты стандартов, оптимизированные под конкретную платформу?

Тут я хотел бы обратить внимание, что в обеих последующих статьях рассматриваются Web Services на базе средств и платформ Microsoft (но с применением разных версии и разные языков!). Это не является каким-то ущемлением других ИТ-поставщиков — просто именно эти авторы проявили активность и интерес к теме (совпадение фамилий некоторых авторов — чистейшее совпадение). Мы будем рады, если сможем рассказать и о других инструментах. Но материал о платформенной независимости будет гораздо убедительнее, если там будут, например, для клиента использоваться "Borland- Linux", а сервера — "Lotus-IBM AS/400".

В начало статьи

Web Services — это так легко. Только поменяй компьютер

Надо признать, что эти две стати реально показывают простоту реализации двух вариантов приложений типа Web Services. С помощью механизмов WebClass и DHTML в том же VB 6.0 подобные задачи решались дольше и сложнее. Но нужно подчеркнуть, что не связано с применением новых протоколов — просто новые версии мастеров и конструкторов VS.NET лучше и качественнее автоматизируют работы программиста.

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

В среде Visual Studio.NET выберите вариант создания нового приложения типа Web Services с именем RateService. В автоматически созданном классе Service1 введите код функции, приведенной на рис. 1. Создайте приложение с помощью команды Build. Все! Теперь можно обращаться к созданной нами функции из обычного браузера, передавая разные исходные данные (в данном случае ticker — команду о необходимости покупки или продажи акций) и получая соответствующий ответ (рис. 2).

Рис. 1. Код функции, используемой при создании Web Services.

Рис. 2. Так выглядит в браузере ответ созданной нами функции.

Все, вроде бы, просто и быстро. Но для использования новых технологий средств VS.NET при решении подобной тривиально задачи мне пришлось обновить системный блок, установив в нем Pentium 800EB/133 и RAM 256 Мб.

В начало статьи