Что такое «веб-сервис» на простом английском языке?

186

Я читал об «веб-сервисах» здесь, в SO, в Википедии, Google и т. Д., И я не совсем понимаю, что это такое. Какое простое английское определение / описание?

Если я создаю простой сайт, использующий PHP, который просто, скажем, печатает случайное целое число на странице ... это «веб-сервис»? Если нет, то почему нет?

MrDatabase
источник

Ответы:

286

Простое определение: веб-сервис - это функция, к которой другие программы могут обращаться через Интернет (HTTP).

Например, когда вы создаете сайт на PHP, который выводит HTML, его целью является браузер и, соответственно, человек, читающий страницу в браузере. Веб-сервис ориентирован не на людей, а на другие программы.

Таким образом, ваш сайт PHP, который генерирует случайное целое число, может быть веб-службой, если он выводит целое число в формате, который может использоваться другой программой. Это может быть в формате XML или другом формате, если другие программы могут понимать вывод.

Полное определение, очевидно, более сложное, но вы попросили простой английский.

Винсент Рамдхани
источник
2
Это объяснение хорошо, но что нарушает способность потреблять случайное целое число другой программой из HTML? Существует множество библиотек для чтения HTML, и это то же самое, что и чтение XML для меня, и почти то же самое, что и чтение JSON. Я знаю этот пост очень старый, хотя, пожалуйста, прокомментируйте, если это возможно.
Павло
7
Это вопрос намерения, а не способности. Целью веб-службы является использование другими приложениями. Цель html заключается в том, чтобы отображать для пользователя браузер.
Винсент Рамдхани
для всех, кто чувствует, что это звучит очень похоже на API - см. эту замечательную статью о различиях между веб-сервисом и API
Сами Бирнбаум
60

Упрощенное нетехническое объяснение: веб-сервис позволяет ПРОГРАММЕ общаться с веб-страницей, а не с помощью браузера открывать веб-страницу.

Пример: я могу зайти на maps.google.com, ввести свой домашний адрес и посмотреть карту своего проживания в своем браузере.

Но что, если вы писали компьютерную программу, в которой вы хотели взять адрес и показать красивую карту, как карты Google?

Ну, вы могли бы написать совершенно новую картографическую программу с нуля, ИЛИ вы могли бы вызвать веб-сервис, который предоставляет Google maps, отправить ему адрес, и он вернет графическую карту местоположения, которую вы можете отобразить в вашей программе.

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

  1. Вы можете использовать веб-сервис для получения информации о книгах на Amazon.com.
  2. Вы можете использовать аналогичный веб-сервис для отправки заказа на Amazon.com.
  3. Вы можете СОЗДАТЬ веб-сервис, который позволит сторонним приложениям узнавать об информации о продукте в вашей компании.
  4. Вы можете создать веб-сервис, который позволит внешним приложениям отправлять заказы вашей компании.
BradC
источник
34

Да, это простой веб-сервис.

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

Основным недостатком печати на странице является то, что ваш сервис будет возвращать HTML. Предпочтительными форматами данных являются JSON и XML, потому что большинство клиентских сред (и серверных сред) разрабатываются с использованием JSON и XML.

Так что если вы изменили свой сервис, чтобы вернуться:

<RANDOM>some random number</RANDOM>

скорее, чем:

<HEAD>...</HEAD>  
<BODY>some random number</BODY>

тогда это было бы более полезно для большинства клиентов

Дэвид Арно
источник
Обновили мой ответ, чтобы отразить это. Были проблемы с SO, не отображающим вкладки XML / HTML :)
David Arno
Спасибо. Именно то, что я думаю об этом. XML очень похож на HTML, поэтому HTML-страница, о которой мы говорим, предоставляется веб-сервисом.
Павло
21

В более упрощенном виде веб-сервис - это то, что предоставляет данные в виде сервиса по протоколу http. Конечно, это не всегда так ... но это близко.

Стандартные веб-сервисы используют протокол SOAP, который определяет связь и структуру сообщений, а XML является форматом данных.

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

Примерами веб-сервисов являются такие вещи, как Weather.com, предоставляющая информацию о погоде, которую вы можете использовать на своем сайте, или UPS, предоставляющий метод запроса котировок доставки или отслеживания посылок.

редактировать

Изменена формулировка со ссылкой на SOAP, так как это не всегда SOAP, как я уже упоминал, но хотелось сделать его более понятным. Ключ предоставляет данные как услугу, а не элемент пользовательского интерфейса.

Митчел Селлерс
источник
1
Это не обязательно SOAP - если вы говорите о веб-сервисах (в нижнем регистре), то REST становится все более распространенным.
Джон Топли
17

Веб-сервис отличается от веб-сайта тем, что веб-сервис предоставляет информацию, потребляемую программным обеспечением, а не людьми. В результате мы обычно говорим об открытых JSON службах , XML или SOAP.

Веб-сервисы являются ключевым компонентом "гибридных приложений". Mashups - это когда информация со многих веб-сайтов автоматически объединяется в новый и полезный сервис. Например, есть сайты, которые объединяют Карты Google с информацией о полицейских отчетах, чтобы предоставить вам графическое представление преступлений в вашем регионе. Другим типом гибридного приложения будет получение реальных биржевых данных, предоставленных другим сайтом, и объединение их с фальшивым торговым приложением для создания «игры» на фондовом рынке.

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

Надеюсь это поможет!

64BitBob
источник
15

Лучшее простое английское объяснение исходит из использования аналогии:

  • Веб-страницы позволяют людям общаться и сотрудничать друг с другом.
  • Веб-сервисы позволяют программам общаться и сотрудничать друг с другом.

Ваш пример PHP является веб-службой по этому определению, потому что выходные данные могут быть использованы другой программой. Но на самом деле HTML-скрейпинг не является надежным или поддерживаемым способом создания веб-сервисов.

HTTP 410
источник
13

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

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

Введите веб-сервисы.

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

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

Кристиан П.
источник
12

Веб-сервис - это набор открытых протоколов и стандартов, используемых для обмена данными между приложениями или системами. Программные приложения, написанные на разных языках программирования и работающие на разных платформах, могут использовать веб-сервисы для обмена данными по компьютерным сетям, таким как Интернет, аналогично межпроцессному взаимодействию на одном компьютере. Эта совместимость (например, между приложениями Java и Python или Windows и Linux) обусловлена ​​использованием открытых стандартов (XML, SOAP, HTTP).

Все стандартные веб-службы работают с использованием следующих компонентов:

  • SOAP (простой протокол доступа к объектам)
  • UDDI (универсальное описание, обнаружение и интеграция)
  • WSDL (язык описания веб-сервисов)

Это работает примерно так:

  • Клиентская программа связывает информацию о регистрации учетной записи в сообщение SOAP.
  • Это SOAP-сообщение отправляется веб-службе как тело HTTP-запроса POST.
  • Веб-служба распаковывает запрос SOAP и преобразует его в команду, понятную приложению.
  • Приложение обрабатывает информацию по мере необходимости и отвечает новым уникальным номером учетной записи для этого клиента.
  • Затем веб-служба упаковывает ответ в другое сообщение SOAP, которое отправляет обратно клиентской программе в ответ на свой HTTP-запрос.
  • Клиентская программа распаковывает сообщение SOAP, чтобы получить результаты процесса регистрации учетной записи.
vanguard69
источник
1
« Все стандартные веб-службы работают с использованием следующих компонентов: « ... проблема с этим ответом заключается в том, что он предполагает, что веб-службы работают или должны работать в рамках механизма SOAP / WSDL. Это неточно. Передача представительского состояния (REST) ​​- еще одна очень популярная парадигма для реализации веб-сервисов. Некоторые крупные сайты отказались от своих SOAP-сервисов в пользу REST-веб-сервисов.
Скотт
@ Scottb Я полностью согласен. Спасибо за обновление. Кроме того, в мою защиту мои знания о веб-сервисах были очень ограничены тогда!
Авангард69
7

Simple way to explain web service is ::

  • Веб-сервис - это метод связи между двумя электронными устройствами по всемирной паутине.
  • Это можно назвать процессом, который программист использует для связи с сервером.
  • Для вызова этого процесса программист может использовать SOAP и т. Д.
  • Веб-сервисы построены на основе открытых стандартов, таких как TCP / IP, HTTP

Преимущество веб-сервиса заключается в том, что вы разрабатываете один фрагмент кода в .net и хотите использовать JAVA для его использования. Вы можете напрямую взаимодействовать с абстрагированным уровнем и не знать, какая технология использовалась для разработки кода.


Образ

Devrath
источник
7

Веб-сервис - это технология, с помощью которой два или более удаленных веб-приложения взаимодействуют друг с другом через сеть / Интернет. Это может быть реализовано с использованием Java, .net, PHP и т. Д.

Особенности веб-сервиса: -

  1. Используя веб-сервисы, две или более системы обмениваются данными по сети. Обмен данными осуществляется с использованием XML или JSON.
  2. Любой веб-сервис состоит из двух частей: серверная часть, на которой развернут сервис, и клиентская часть, где сервис доступен для клиентов. Любой веб-сервис может иметь несколько клиентов. Когда туристический портал продает билеты на авиалайнер. Портал является клиентом, а авиакомпания - сервером, который продает свои услуги.
  3. Веб-сервисы могут быть синхронными или асинхронными. Веб-приложение может взаимодействовать со многими веб-сервисами. но эти веб-сервисы слабо связаны со своими клиентскими веб-приложениями. Это означает, что любое изменение в родительском приложении практически не влияет на веб-сервисы или наоборот.
  4. Веб-сервисы могут переносить вложения документа, такие как PDF, Word и т. Д. С его полезной нагрузкой XML. Java предоставляет отдельный API для этого типа веб-сервисов.
  5. Веб-сервис всегда скрывает внутреннюю сложность сервиса для своих клиентов. Например, авиалайнер, который продает билеты через сторонний портал, только собирает информацию о конечном пользователе через веб-сервис, а взамен предоставляет билет. Портал, который продает билеты, не должен беспокоиться о внутренней сложности систем бронирования авиабилетов.
  6. Веб-сервис может быть запущен и забыть тип, или он может что-то вернуть. Предположим, веб-приложение просто хочет отправить некоторую информацию стороннему приложению. Отправителю не нужно подтверждение от получателя. В этом типе сценария нам нужно запустить и забыть веб-сервис.
сиддхартха чакраборти
источник
5

Веб-сервис, используемый разработчиками программного обеспечения, обычно относится к операции, которая выполняется на удаленном сервере и вызывается с использованием спецификации XML / SOAP. Как и во всех определениях, в этом есть свои нюансы, но это наиболее распространенный термин.

jezell
источник
1
Извини, Изелль, пришлось бросить голос. Это не то, что я бы назвал «простым английским» :( У меня нет проблем с намерением вашего определения, но использование таких слов, как «операция», «удаленный сервер», «вызванный» и «спецификация» усложняет задачу. для начинающих, чтобы понять. См. ответ Митчел Селлерс как пример «простой английский».
Dhaust
5

Операционная система предоставляет графический интерфейс (и CLI), с которым вы можете взаимодействовать. Он также предоставляет API, с которым вы можете взаимодействовать программно.

Точно так же веб-сайт предоставляет HTML-страницы, с которыми вы можете взаимодействовать, а также может предоставлять API, который предлагает ту же информацию и операции программным способом. Или эти услуги могут быть доступны только через API без связанного пользовательского интерфейса.

Джон Топли
источник
4

Хорошо,

Как сказал @Vincent Ramdhanie, веб-сервис предназначен не для просмотра / использования конечным пользователем, а для другой программы. Так что технически логика в вашей программе будет:

Если действует как обычная программа

user on website -> HTML/JS/JQuery etc -> give me a random number ->ur program

Сейчас

ur program -> generate random number -> generate HTML and encapsulate o/p -> go back to user

но в случае веб-сервиса поток немного меняется:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Сейчас

ur program -> generate random number -> generate XML/JSON/some other format -> my application -> generate HTML and encapsulate o/p -> go back to user

Надеюсь это поможет :)

user1079065
источник
3

Простое определение - это HTTP-запрос, который действует как обычный вызов метода; то есть он принимает параметры и возвращает структурированный результат, обычно XML, который можно десериализовать в объект (ы).

Марк
источник
3

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

Джоэл Коухорн
источник
3

Способ отправки сообщения для вызова операции на другом компьютере. Разница между веб-сервисами и предыдущими методами заключается в том, что отправка по проводам стандартизирована на более высоком уровне.

Старый способ: опишите порядковый номер, кодировку, номера портов и т. Д. Веб-служба: URL, XML

Архимед Траяно
источник
3

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

Толулоп Дэвид
источник
2

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

В вашем примере это зависит от того, используется ли оно в другом приложении, которое читает этот номер, да, это сервис, в противном случае это просто веб-страница с номером.

Ник
источник
1

Проще говоря, веб-сервис может быть любой простой программой, например: добавьте два числа, которые должны быть опубликованы через UDDI и могут использоваться другой программой. WSDL будет иметь конечную точку для определения местоположения веб-сервиса, а также сведения о привязке и порте.

Прабху
источник
0

«Веб-сервис» состоит из двух слов: «Интернет» и «Сервис».
Что такое «паутина»? «Сеть» означает «Всемирная паутина».
«Сервис» для чего? Не для Человека, если это так, это «Веб-страница», такая как текст, изображения, видео и т. Д.
Это для Программ, чтобы общаться через Интернет с использованием той же технологии, что и «Веб», такой как TCP, HTTP и т. Д.
«Сервис» также означает, что он предоставляет некоторые функции, такие как «Сервисный уровень» в CRUD. В основном это два типа:
1. SOAP (простой протокол доступа к объектам)
2. RESTful (передача состояния представления)

songxin
источник
0

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

joedavid
источник