Веб-служба
Веб-служба, веб-сервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.
Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб-почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от места доступа в Интернет, компьютера или браузера[1][2].
Содержание |
Архитектура [править]
Как показано на рисунке, можно выделить три инстанции, взаимодействующие в рамках веб-службы. Переведем их названия как заказчик, исполнитель и каталог (Service Requestor, Service Provider и Service Broker). Когда служба разработана, исполнитель регистрирует ее в каталоге, где ее могут найти потенциальные заказчики. Заказчик, найдя в каталоге подходящую службу, импортирует оттуда ее WSDL-спецификацию и разрабатывает в соответствии с ней свое программное обеспечение. WSDL описывает формат запросов и ответов, которыми обмениваются заказчик и исполнитель в процессе работы. Для обеспечения взаимодействия используются следующие стандарты:
- XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных;
- SOAP: Протокол обмена сообщениями на базе XML;
- WSDL: Язык описания внешних интерфейсов веб-службы на базе XML;
- UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям. Пока UDDI существуют, однако, только в небольших фирменных сетях и еще не нашли широкого распространения в открытом интернете.
Методы разработки [править]
Существуют средства автоматизации разработки веб-служб, разделяющиеся на две основных группы. При разработке снизу-вверх сначала пишутся имплементирующие классы, а из их исходного текста генерируются WSDL-файлы, документирующие службу. Недостатком этого метода является подверженность Java-классов частым изменениям. При подходе сверху-вниз сначала подготавливается WSDL, а из него генерируется скелет Java-класса, имплементирующего службу. Этот путь считается более трудным, зато приводит к более чистым и лучше защищенным от изменений решениям. Пока формат сообщений, которыми обмениваются заказчик и исполнитель, не меняется, изменения в каждом из них не нарушают взаимодействия. Эта техника называется иногда "contract first", так как исходной точкой является WSDL ("договор" между заказчиком и исполнителем).
Достоинства [править]
- Веб-службы обеспечивают взаимодействие программных систем независимо от платформы. Например, Windows-C#-клиент может коммуницировать с Java-сервером, работающим под Linux.
- Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб.
- Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран. Это значительное преимущество, по сравнению с такими технологиями, как CORBA, DCOM или Java RMI. С другой стороны, веб-службы не привязаны намертво к HTTP - могут использоваться и другие протоколы.
Недостатки [править]
- Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений. Однако на некоторых веб-серверах возможна настройка сжатия сетевого трафика.
- Аспекты безопасности. Ответственные веб-службы должны использовать кодирование, возможно - требовать аутентификации пользователя. Достаточно ли здесь применения HTTPS, или предпочтительны такие решения, как XML Signature, XML Encryption или SAML - должно быть решено разработчиком.
Примеры [править]
Взамодействие между авиакомпаниями и бюро путешествий. Первые предоставляют через веб-службы полезную информацию, которую вторые используют при поиске оптимальных предложений своим клиентам.
Google с 2002 до 2009 года предоставлял веб-службу, которая позволяла заказчикам искать необходимые информации в интернете так же, как это делают обычные пользователи. По удобству это несравнимо, например, с автоматическим разбором HTML-текста Google-вских страниц.
Amazon.com имеет веб-службу, предоставляющую различные веб-базированные услуги.
Платформы [править]
Веб-службы развёртываются на серверах приложений. Некоторые сервера приложений:
- Axis (проект Apache)
- ColdFusion от Adobe
- Cordys WS-AppServer
- DotGNU от GNU Project
- GlassFish — от компании Oracle
- Google App Engine — платформа для масштабируемых приложений, использующих инфраструктуру компании Google
- IBM Lotus Notes линейка ПО для организации совместной работы от IBM
- infoRouter Document Management software Web Services API
- Java Web Services Development Pack (JWSDP) от Sun Microsystems (основан на Tomcat)
- JBoss — компании Red Hat
- JOnAS (является частью ObjectWeb Open Source initiative)
- Mono — платформа разработки от Xamarin (ранее Novell)
- .NET Framework серверы от Microsoft
- OpenEdge Platform от Progress Software
- Oracle Application Server от Oracle
- Pramati Application Server от Pramati Technologies
- Pythomnic — платформа для написания распределенных сетевых сервисов.
- Web Application Server от SAP (является ключевой частью стека SAP NetWeaver)
- WebLogic от BEA Systems
- webMethods Integration Platform от Software AG
- WebSphere Application Server от IBM (основан на Apache и платформе J2EE)
- Zend Framework — от Zend Technologies
- Zope является объектно-ориентированным сервером приложений написанным на Python
Примечания [править]
- ↑ Веб-сервис в словаре компьютерных терминов
- ↑ Web services (англ.) в TheFreeDictionary
Ссылки [править]
| В этой статье не хватает ссылок на источники информации.
Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 1 октября 2012. |
| Веб и веб-сайты | |
|---|---|
| Глобально | |
| Локально | |
| Виды сайтов и сервисов |
Виртуальный атлас • Баннерная сеть • Блог (платформа) • Видеохостинг • Вики (список движков • список сайтов) • Сайт-визитка • Вопрос-ответ • Закладки • Службы знакомств • Каталог ресурсов • Интернет-магазин • Микроблог • Тамблелог • Новостной сайт • Поисковая система (список) • Порносайт • Социальная сеть • BitTorrent-трекер • Файлообменник • Форум (Сервис • Имиджборд) • Фотохостинг • Чат |
| Создание и обслуживание |
|
| Типы макетов, страниц, сайтов |
|
| Техническое |
Веб-сервер (сравнение) • Браузер (список • сравнение) • CMF (список (англ.)) • CMS (список (англ.)) • HTTP (ответы • заголовки) • SPDY • CGI • HTML • XHTML • CSS • JavaScript • DHTML • DOM • XML • AJAX • JSON • Flash • RSS • Atom • Микроформат • favicon.ico • robots.txt • Sitemaps • Карта сайта • .htaccess |
| Маркетинг | |
| Социум и культура | |
| Интернет | |
|---|---|
| Вещание | |
| Общение | |
| Информация | |
| Бизнес | |
| Культура | |
| Прочее |
Доступ • Протоколы • Глобальная сеть • Точка обмена трафиком • Интернет2 • Доменное имя • Онлайн • Сетевой нейтралитет • Цензура • Хостинг • Портал • Всемирная паутина (Браузер • Вики-проекты • Семантическая паутина • Веб-служба • Веб 2.0) • Рунет • Интернет-время • Ботнет • Дотком |


