WEB-сервис на C# и клиент на Delphi. Вступление.

WEB-сервис на C# и клиент на Delphi. Вступление.

Что такое веб-сервис? Для того, чтобы ответить на этот вопрос, разберем термин на две части. И если с первой частью (веб) все предельно ясно — что то, использующее всемирную паутину, то со второй (сервис) все не так просто.

Обратимся к словарям.

Впервые понятие сервис упоминается в Советском Энциклопедическом Словаре (издательство Советская  энциклопедия, 1981 г.), где дается определение: сервис — обслуживание населения. В те годы это понятие ассоциировалось с ремонто-бытовым сервисом и автосервисом.

Сформулируем более современным языком: сервис — это процедура оказания поставщиком услуги потребителю. Это понятие часто расширяют, именуя сервисом, для удобства, самого поставщика (чего и я буду придерживаться в дальнейшем).

Понятие сервиса неразрывно связано с понятием услуга. Есть немало определений услуги, но для лучшего понимания мы выберем вот такое: услуга — результат, по меньшей мере, одного действия, обязательно осуществленного поставщиком в адрес потребителя.

Приведу примеры. Вы звоните в справочное, и спрашиваете телефон поликлиники. Сотрудник справочного бюро находит нужный телефон и сообщает его вам. В этой ситуации сотрудник бюро оказал вам запрошенную услугу, за счет которой вы получили выгоду, выступив в роли представителя поставщика. Таким образом, само справочное бюро можно считать сервисом. Самое важное в сервисе — потребитель услуги не обязан знать механизм её осуществления поставщиком. Вас же не интересует, где сотрудник бюро взял искомый телефон — в электронной базе, или в бумажной картотеке? Все, что должен знать клиент — это «интерфейс» для взаимодействия с сервисом: как послать запрос (телефон справочного бюро), как описать параметры запрашиваемой услуги (чей именно телефон нужен), и как интерпретировать результат (ответ сотрудника бюро).

На самом деле, сервисы окружают нас в повседневной жизни. Мы совершаем покупки в магазине, пользуемся общественным транспортом, звоним по телефону, пишем запросы в поисковых системах — все это является использованием сервисов.

С этим разобрались. Теперь переходим к главному: что такое веб-сервис и для чего он нужен? Вот что сообщает Википедия:

Веб-службавеб-сервис (англ.web service) — идентифицируемая вебадресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XMLJSON и т. д.). Веб-служба является единицей модульностипри использовании сервис-ориентированной архитектуры приложения.

То есть, веб-сервис является некой программой, работающей на удаленном веб-сервере, и предоставляющая клиентам некоторые услуги.

Как это работает: на веб-сервере запускается приложение, называющее себя веб-сервисом. Для того, чтобы поддерживать свое гордое звание, оно просто обязано рассказывать о своем интерфейсе — чтобы клиенты могли использовать его. Для этого сервис предоставляет WSDL-документ — заданное с помощью XML-based языка описание интерфейса веб-сервиса.

Кроме того, порядочный сервис должен действительно предоставлять этот интерфейс. Если он сообщает в WSDL-описании, что он может предоставить услугу по получению информации о текущем времени в зависимости от часового пояса, то клиент, прочитав описание, должен суметь составить правильный запрос к сервису и получить адекватный ответ от него.

Когда клиент прочитывает информацию о сервисе, он «научается» им пользоваться, и может построить XML-запрос к сервису для получения требуемой услуги, и послать его с помощью протокола SOAP. Сервис, приняв запрос от клиента, выполнит «по меньшей мере, одно» действие, сформулирует результат в формате XML, и отправит с помощью того же SOAP назад, клиенту. Таким образом, запрошенная потребителем у поставщика услуга будет исполнена, и клиенту остается, в соответствии с уже изученным описанием интерфейса сервиса, разобрать ответ и воспользоваться необходимыми данными.

Область применения веб-сервисов просто фантастично огромна, и описывать её нет никакого смысла. Приведу просто еще один пример. Предположим, что есть четыре различных предприятия, и они имеют собственные корпоративные информационные системы, написанные с использованием различных технологий. Одна написана на C# и является веб-приложением, другая создана при помощи Java, третья — старая-добрая 1С-ка, а четвертая — настольное приложение на Delphi.

Эти четыре предприятия создают холдинг, и выделяют штат в управляющую компанию. Управляющая компания принимает решение вести свой курс обмена иностранной валюты, отличный от курса ЦБ РФ. Каким образом можно ежедневно и неоднократно в течении дня изменять курс валют во всех информационных системах каждого предприятия, и не терять времени на бумажную волокиту, звонки, согласования и четырехкратный ввод данных в четыре различных системы? Решение напрашивается само собой: пусть управляющая компания ведет базу данных курсов, и пусть некий веб-сервис предоставляет интерфейс по получению текущего курса валют, а каждая из информационных систем, используя собственные механизмы работы с SOAP, запрашивает у сервиса значение курса и использует его.

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

В работе будут использоваться Visual Studio 2010, SQL Server Express и Embarcadero Delphi XE2.

devSonia

2 комментария

devSonia » Архив сайта » WEB-сервис на C# и клиент на Delphi. Часть 3. Как создать средство администрирования сервиса Опубликовано9:32 пп - Июн 5, 2012

[…] для управления сервисом. Статьи из этой серии: Web-сервис на С# и клиент на Delphi. Вступление. WEB-сервис на C# и клиент на Delphi. Часть 1. Создание […]

леха Опубликовано6:44 пп - Янв 10, 2013

интересно интересно.Статья понравилась!!!