¿Qué es un "servicio web" en inglés simple?

186

He estado leyendo sobre "servicios web" aquí en SO, en Wikipedia, Google, etc., y no entiendo lo que son. ¿Cuál es la definición / descripción simple en inglés?

Si hago un sitio web simple usando PHP que, por ejemplo, imprime un número entero aleatorio en la página ... ¿es este un "servicio web"? ¿Si no, porque no?

MrDatabase
fuente

Respuestas:

286

Una definición simple: un servicio web es una función a la que pueden acceder otros programas a través de la web (HTTP).

Por ejemplo, cuando crea un sitio web en PHP que genera HTML, su objetivo es el navegador y, por extensión, el humano que lee la página en el navegador. Un servicio web no está dirigido a humanos sino a otros programas.

Por lo tanto, su sitio PHP que genera un número entero aleatorio podría ser un servicio web si genera el número entero en un formato que puede ser consumido por otro programa. Puede estar en un formato XML u otro formato, siempre que otros programas puedan entender la salida.

La definición completa es obviamente más compleja, pero solicitó un inglés simple.

Vincent Ramdhanie
fuente
2
Esta explicación es buena, pero ¿qué rompe la capacidad de consumir el entero aleatorio por otro programa desde HTML? Hay muchas bibliotecas para leer HTML y esto es lo mismo que leer XML para mí, y casi lo mismo que leer JSON. Conozco esta publicación muy antigua, aunque comente por favor, si es posible.
Pavlo
77
Es una cuestión de intención más que de capacidad. La intención del servicio web es ser consumida por otras aplicaciones. La intención de html es que el navegador la represente para el usuario.
Vincent Ramdhanie
para cualquiera que sienta que esto suena muy similar a una API - vea este gran artículo para conocer las diferencias entre un servicio web y una API
Sami Birnbaum
60

Explicación simplificada y no técnica: un servicio web permite que un PROGRAMA se comunique con una página web, en lugar de utilizar su navegador para abrir una página web.

Ejemplo: puedo ir a maps.google.com, escribir la dirección de mi casa y ver un mapa de donde vivo en mi navegador.

Pero, ¿qué pasaría si estuviera escribiendo un programa de computadora donde quisiera tomar una dirección y mostrar un mapa bonito, al igual que los mapas de Google?

Bueno, podría escribir un programa de mapeo completamente nuevo desde cero, O podría llamar a un servicio web que proporciona Google Maps, enviarle la dirección y le devolverá un mapa gráfico de la ubicación, que puede mostrar en su programa.

Hay mucho más, ya que algunas de las otras publicaciones entran, pero el resultado es que permite que su aplicación recupere información DE o envíe información A algún recurso. Algunos otros ejemplos:

  1. Puede usar un servicio web para recuperar información sobre libros en Amazon.com
  2. Puede usar un servicio web similar para enviar un pedido a Amazon.com
  3. Puede CREAR un servicio web para permitir que aplicaciones externas se enteren de la información del producto dentro de su empresa
  4. podría crear un servicio web para permitir que aplicaciones externas envíen pedidos a su empresa.
BradC
fuente
34

Sí, ese es un servicio web simple.

Los servicios web no son más que un mecanismo de solicitud / respuesta que permite a un cliente acceder / modificar datos de forma remota. Existen estándares formales para los servicios web (SOAP, SOA, etc.), pero su página simple también es un servicio.

La desventaja principal de imprimirlo en una página es que su servicio devolverá HTML. Los formatos de datos preferibles son JSON y XML, porque la mayoría de los marcos de cliente (y los marcos de servidor) están diseñados para utilizar JSON y XML.

Entonces, si modificó su servicio para devolver:

<RANDOM>some random number</RANDOM>

más bien que:

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

entonces sería más útil para la mayoría de los clientes

David Arno
fuente
He actualizado mi respuesta para reflejar eso. Tuve problemas con SO para no mostrar pestañas XML / HTML :)
David Arno
Gracias. Exactamente lo que pienso sobre eso. XML es muy similar a HTML, por lo que la página HTML de la que hablamos es proporcionada por el servicio web.
Pavlo
21

En términos demasiado simplificados, un servicio web es algo que proporciona datos como un servicio a través del protocolo http. De acuerdo, ese no es siempre el caso ... pero está cerca.

Uso estándar de servicios web El protocolo SOAP que define la comunicación y la estructura de los mensajes, y XML es el formato de datos.

Los servicios web están diseñados para permitir que las aplicaciones creadas con diferentes tecnologías se comuniquen entre sí sin problemas.

Ejemplos de servicios web son cosas como Weather.com que proporciona información meteorológica para que pueda usar en su sitio, o UPS que proporciona un método para solicitar cotizaciones de envío o seguimiento de paquetes.

Editar

Se modificó la redacción en referencia a SOAP, ya que no siempre es SOAP como mencioné, pero quería dejarlo más claro. La clave es proporcionar datos como un servicio, no un elemento de la interfaz de usuario.

Mitchel Sellers
fuente
1
No tiene que ser SOAP: si habla de servicios web (en minúsculas), REST es cada vez más común.
John Topley
17

Un servicio web difiere de un sitio web en que un servicio web proporciona información consumible por software en lugar de humanos. Como resultado, generalmente estamos hablando de servicios JSON , XML o SOAP expuestos .

Los servicios web son un componente clave en "mashups". Los mashups son cuando la información de muchos sitios web se agrega automáticamente a un servicio nuevo y útil. Por ejemplo, hay sitios que agregan Google Maps con información sobre informes policiales para brindarle una representación gráfica del delito en su área. Otro tipo de mashup sería tomar datos de acciones reales proporcionados por otro sitio y combinarlos con una aplicación comercial falsa para crear un "juego" bursátil.

Los servicios web también se utilizan para proporcionar noticias (ver RSS), los últimos elementos agregados a un sitio, información sobre nuevos productos, podcasts y otras excelentes características que hacen que la web moderna funcione.

¡Espero que esto ayude!

64BitBob
fuente
15

La mejor explicación simple en inglés proviene del uso de una analogía:

  • Las páginas web permiten a las personas comunicarse y colaborar entre sí.
  • Los servicios web permiten que los programas se comuniquen y colaboren entre sí.

Su ejemplo de PHP es un servicio web según esa definición, porque la salida podría ser consumida por otro programa. Pero en realidad, el raspado de pantalla HTML no es una forma confiable o sostenible de producir servicios web.

HTTP 410
fuente
13

Para la mayoría de los sitios tiene páginas HTML que visita cuando usa su navegador. Estas son páginas legibles por humanos (una vez representadas en su navegador) donde una gran cantidad de datos pueden estar agrupados, porque tiene sentido para los humanos.

Ahora imagine que alguien más quiere usar algunos de esos datos. Podrían descargar su página y comenzar a filtrar todo el "ruido" para obtener los datos que querían, pero la mayoría de los sitios web no están construidos de manera que los datos estén 100% seguros de estar ubicados en el mismo lugar para todos los elementos, por lo que además ser engorroso también se vuelve poco confiable.

Ingrese a los servicios web.

Un servicio web es algo que un sitio web elige ofrecer a aquellos que desean leer, actualizar y / o eliminar datos de su sitio web. Podría llamarlo una "puerta trasera" para sus datos. En lugar de presentar los datos como parte de una página web, se proporcionan de forma predeterminada, donde algunos de los más populares son XML y JSON. Hay varias formas de comunicarse con un servicio web, algunas usan SOAP, otras tienen servicios web REST'ful, etc.

Lo que es común para todos los servicios web es que son el equivalente legible por máquina de las páginas web que de otro modo ofrece el sitio. Esto significa que otras personas que deseen usar los datos pueden enviar una solicitud para recuperar ciertos datos que es fácil de analizar y usar. Algunos sitios pueden requerir que proporcione un nombre de usuario / contraseña en la solicitud, para datos confidenciales, mientras que otros sitios permiten que cualquiera extraiga los datos que pueda necesitar.

Christian P.
fuente
12

Un servicio web es una colección de protocolos y estándares abiertos que se utilizan para intercambiar datos entre aplicaciones o sistemas. Las aplicaciones de software escritas en varios lenguajes de programación y que se ejecutan en varias plataformas pueden usar servicios web para intercambiar datos a través de redes de computadoras como Internet de manera similar a la comunicación entre procesos en una sola computadora. Esta interoperabilidad (p. Ej., Entre Java y Python, o aplicaciones de Windows y Linux) se debe al uso de estándares abiertos (XML, SOAP, HTTP).

Todos los servicios web estándar funcionan con los siguientes componentes:

  • SOAP (Protocolo simple de acceso a objetos)
  • UDDI (Descripción universal, descubrimiento e integración)
  • WSDL (lenguaje de descripción de servicios web)

Funciona algo así:

  • El programa cliente agrupa la información de registro de la cuenta en un mensaje SOAP.
  • Este mensaje SOAP se envía al servicio web como el cuerpo de una solicitud HTTP POST.
  • El servicio web desempaqueta la solicitud SOAP y la convierte en un comando que la aplicación puede entender.
  • La aplicación procesa la información según sea necesario y responde con un nuevo número de cuenta único para ese cliente.
  • A continuación, el servicio web empaqueta la respuesta en otro mensaje SOAP, que envía de vuelta al programa cliente en respuesta a su solicitud HTTP.
  • El programa cliente desempaqueta el mensaje SOAP para obtener los resultados del proceso de registro de la cuenta.
vanguard69
fuente
1
" Todos los servicios web estándar funcionan con los siguientes componentes: " ... el problema con esta respuesta es que sugiere que los servicios web operan o deben operar dentro del mecanismo SOAP / WSDL. Esto es inexacto. La transferencia de estado representativa (REST) ​​es otro paradigma muy popular para implementar servicios web. Algunos sitios web importantes han dejado de utilizar sus servicios SOAP en favor de los servicios web REST.
scottb
@scottb Estoy totalmente de acuerdo. Gracias por la actualización. Además, en mi defensa, mi conocimiento sobre los servicios web era muy limitado en ese entonces.
vanguard69
7

Simple way to explain web service is ::

  • Un servicio web es un método de comunicación entre dos dispositivos electrónicos a través de la World Wide Web.
  • Se le puede llamar un proceso que un programador usa para comunicarse con el servidor
  • Para invocar este proceso, el programador puede usar SOAP, etc.
  • Los servicios web se basan en estándares abiertos como TCP / IP, HTTP

La ventaja de un servicio web es que, digamos, usted desarrolla un código en .net y desea utilizar JAVA para consumir este código. Puede interactuar directamente con la capa abstracta y desconoce qué tecnología se utilizó para desarrollar el código.


Imagen

Devrath
fuente
7

El servicio web es una tecnología mediante la cual dos o más aplicaciones web remotas interactúan entre sí a través de la red / internet. Se puede implementar utilizando Java, .net, PHP, etc.

Características del servicio web: -

  1. Usando servicios web, dos o más sistemas intercambian datos a través de la red. Los datos se intercambian usando XML o JSON.
  2. Cualquier servicio web tiene dos partes: el extremo del servidor donde se implementa el servicio y la parte del cliente donde sus clientes acceden al servicio. Cualquier servicio web puede tener múltiples clientes. Cuando un portal de viajes está vendiendo boletos de un avión. Portal es cliente y la aerolínea es el servidor, ya que está vendiendo su servicio.
  3. Los servicios web pueden ser síncronos o también pueden ser asíncronos. Una aplicación web puede interactuar con muchos servicios web, pero estos servicios web están poco vinculados con sus aplicaciones web cliente. Eso significa que cualquier cambio en la aplicación principal tiene poco o ningún efecto en los servicios web o viceversa.
  4. Los servicios web pueden llevar documentos adjuntos también como PDF, Word, etc. con su carga útil XML. Java proporciona una API separada para este tipo de servicios web.
  5. Un servicio web siempre oculta la complejidad interna del servicio a sus clientes. Por ejemplo, un avión que vende boletos a través de un portal de terceros solo recopila información del usuario final a través de un servicio web y, a cambio, proporciona un boleto. El portal que vende boletos no tiene que preocuparse por la complejidad interna de los sistemas de reserva de boletos de las aerolíneas.
  6. Un servicio web puede ser de tipo fuego y olvido o puede devolver algo. Supongamos que una aplicación web solo quiere enviar información a una aplicación de terceros. El remitente no necesita ningún reconocimiento del receptor. En este tipo de escenario, necesitamos un tipo de servicio web de disparo y olvido.
siddhartha chakraborty
fuente
5

Un servicio web, como lo usan los desarrolladores de software, generalmente se refiere a una operación que se realiza en un servidor remoto y se invoca utilizando la especificación XML / SOAP. Como con todas las definiciones, hay matices, pero ese es el uso más común del término.

jezell
fuente
1
Lo siento, Jezelll, tuvo que lanzar un voto a favor. Esto no es lo que yo consideraría 'inglés simple' :( No tengo ningún problema con la intención de su definición, pero el uso de palabras como 'operación', 'servidor remoto', 'invocado' y 'especificación' hace que sea difícil para los principiantes a entender Ver Mitchel Sellers respuesta como un ejemplo de 'llanura Inglés'..
Dhaust
5

Un sistema operativo proporciona una GUI (y CLI) con la que puede interactuar. También proporciona una API con la que puede interactuar mediante programación.

Del mismo modo, un sitio web proporciona páginas HTML con las que puede interactuar y también puede proporcionar una API que ofrece la misma información y operaciones mediante programación. O esos servicios solo pueden estar disponibles a través de una API sin interfaz de usuario asociada.

John Topley
fuente
4

Bien,

Como @Vincent Ramdhanie ha dicho que un servicio web no debe ser visto / consumido por el usuario final sino otro programa. Entonces, técnicamente, la lógica en su programa será:

En caso de actuar como un programa normal

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

Ahora

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

pero en el caso del servicio web, el flujo cambia un poco:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Ahora

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

Espero que esto ayude :)

usuario1079065
fuente
3

Una definición simple sería una solicitud HTTP que actúa como una llamada a un método normal; es decir, acepta parámetros y devuelve un resultado estructurado, generalmente XML, que se puede deserializar en un objeto (s).

bagazo
fuente
3

Los servicios web son casi como una página web normal. La diferencia es que están formateados para que sea muy fácil para un programa extraer datos de la página, hasta el punto de que probablemente no use ningún HTML. Por lo general, también son más confiables en cuanto a la consistencia del formato, pueden usar un proceso formal diferente para definir el contenido, como jabón o xml en bruto, y a menudo también hay un documento descriptor que define formalmente la estructura de los datos.

Joel Coehoorn
fuente
3

Una forma de enviar un mensaje para invocar una operación en otra computadora. La diferencia entre los servicios web y los métodos anteriores es que lo que se envía por cable está estandarizado en un nivel superior.

A la antigua usanza: describe endianos, codificación, números de puerto, etc. Servicio web: URL, XML

Arquímedes Trajano
fuente
3

El servicio web es como un medio de comunicación entre dos programas no relacionados. Los programas utilizan un protocolo específico (por lo general, Simple Object Access Protocol (SOAP) ) como medio para comprender qué SOLICITUD / RESPUESTA deben procesar / ejecutar en su respectivo extremo.

tolulope david
fuente
2

Un servicio web define un contrato de acciones que un servidor realizará por usted. El formato y el protocolo realmente no importan, pero debe tener alguna definición establecida de cómo ocurre la comunicación.

En su ejemplo, depende, si eso se está utilizando en otra aplicación que lee ese número, sí, es servicio, de lo contrario, es solo una página web con un número.

Mella
fuente
1

En palabras simples, el servicio web podría ser cualquier programa simple, por ejemplo: agregue dos números que deben publicarse a través del UDDI y pueden ser consumidos por otro programa. WSDL tendrá el punto final para ubicar el servicio web y también los detalles de enlace y puerto.

Prabhu
fuente
0

'Servicio web' se compone de dos palabras, 'Web' y 'Servicio'.
¿Qué es 'web'? 'Web' significa 'World Wide Web'.
¿'Servicio' para qué? No es para humanos, si es así, es 'Página web', como texto, imágenes, video, etc.
Es para que los Programas se comuniquen a través de Internet utilizando la misma tecnología que la 'Web' utilizada, como TCP, HTTP, etc.
'Servicio' también significa que proporciona algunas funciones, como la 'Capa de servicio' en CRUD. Existen principalmente dos tipos:
1. SOAP (Protocolo simple de acceso a objetos)
2. RESTful (Transferencia de estado representativo)

songxin
fuente
0

Sin perjuicio de otras definiciones, diría que un servicio web es un sistema de software que permite la interacción interoperable de máquina a máquina / aplicación a aplicación a través de una red. Estas definiciones genéricas también ayudarían a considerar las arquitecturas REST como un servicio web, ya que proporcionan una funcionalidad similar, aunque sea un estilo arquitectónico a diferencia del SOAP, que es un protocolo completamente definido.

joedavid
fuente