O que é um "serviço da Web" em inglês simples?

186

Eu tenho lido sobre "serviços da web" aqui no SO, na Wikipedia, Google, etc., e não entendo direito o que são. Qual é a definição / descrição comum em inglês?

Se eu criar um site simples usando PHP que, digamos, imprima um número inteiro aleatório na página ... esse é um "serviço da web"? Se não, por que não?

MrDatabase
fonte

Respostas:

286

Uma definição simples: um serviço da web é uma função que pode ser acessada por outros programas pela web (HTTP).

Por exemplo, quando você cria um site em PHP que gera HTML, seu destino é o navegador e, por extensão, o humano que lê a página no navegador. Um serviço da Web não é direcionado a humanos, mas a outros programas.

Portanto, seu site PHP que gera um número inteiro aleatório pode ser um serviço da Web se ele gera o número inteiro em um formato que pode ser consumido por outro programa. Pode estar em um formato XML ou outro formato, desde que outros programas possam entender a saída.

A definição completa é obviamente mais complexa, mas você pediu um inglês simples.

Vincent Ramdhanie
fonte
2
Essa explicação é boa, mas o que quebra a capacidade de consumir o número inteiro aleatório por outro programa do HTML? Existem muitas bibliotecas para ler HTML e isso é o mesmo que ler XML para mim e quase o mesmo que ler JSON. Conheço este post muito antigo, embora comente por favor, se possível.
Pavlo 27/06
7
É uma questão de intenção e não de capacidade. A intenção do serviço da web é ser consumida por outros aplicativos. A intenção do html deve ser renderizada para o usuário pelo navegador.
Vincent Ramdhanie
para qualquer pessoa que se sente como isso soa muito semelhante a um API - veja este excelente artigo para as diferenças entre um serviço web e um api
Sami Birnbaum
60

Explicação não técnica simplificada: um serviço da Web permite que um PROGRAMA fale com uma página da Web, em vez de usar o navegador para abrir uma página da Web.

Exemplo: posso ir para maps.google.com, digitar meu endereço residencial e ver um mapa de onde moro no meu navegador.

Mas e se você estivesse escrevendo um programa de computador em que desejasse pegar um endereço e mostrar um mapa bonito, como os mapas do Google?

Bem, você pode escrever um programa de mapeamento totalmente novo do zero, ou pode chamar um serviço da Web fornecido pelo Google Maps, enviar o endereço e ele retornará um mapa gráfico do local, que você pode exibir no seu programa.

Há muito mais, como algumas das outras postagens, mas o resultado é que ela permite que seu aplicativo recupere informações de ou envie informações para algum recurso. Alguns outros exemplos:

  1. Você pode usar um serviço da Web para recuperar informações sobre livros na Amazon.com
  2. Você pode usar um serviço da Web semelhante para enviar um pedido à Amazon.com
  3. Você pode criar um serviço da Web para permitir que aplicativos externos descubram informações sobre o produto em sua empresa
  4. você pode criar um serviço da web para permitir que aplicativos externos enviem pedidos para sua empresa.
BradC
fonte
34

Sim, esse é um serviço da web simples.

Os serviços da Web nada mais são do que um mecanismo de solicitação / resposta que permite ao cliente acessar / modificar dados remotamente. Existem padrões formais para serviços da web (SOAP, SOA etc), mas sua página simples também é um serviço.

A principal desvantagem de imprimi-lo em uma página é que seu serviço retornaria HTML. Os formatos de dados preferenciais são JSON e XML, porque a maioria das estruturas de clientes (e estruturas de servidor) são projetadas usando JSON e XML.

Portanto, se você modificou seu serviço para retornar:

<RANDOM>some random number</RANDOM>

ao invés de:

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

seria mais útil para a maioria dos clientes

David Arno
fonte
Atualizei minha resposta para refletir isso. Problemas teve com SO não exibir XML / HTML guias :)
David Arno
Obrigado. Exatamente o que eu penso sobre isso. O XML é muito semelhante ao HTML, portanto, a página HTML de que falamos é fornecida pelo serviço da web.
Pavlo 27/06
21

Em termos simplificados, um serviço da Web é algo que fornece dados como um serviço através do protocolo http. Concedido que nem sempre é o caso ... mas está próximo.

Uso padrão de serviços da Web O protocolo SOAP, que define a comunicação e a estrutura das mensagens, e XML é o formato dos dados.

Os serviços da Web são projetados para permitir que aplicativos criados usando diferentes tecnologias se comuniquem sem problemas.

Exemplos de serviços da Web são coisas como o Weather.com, que fornece informações sobre o tempo que você pode usar em seu site, ou a UPS, que fornece um método para solicitar cotações de remessa ou rastreamento de pacotes.

Editar

Mudança de redação em referência ao SOAP, pois nem sempre é SOAP como eu mencionei, mas queria deixar mais claro. A chave é fornecer dados como um serviço, não um elemento da interface do usuário.

Mitchel Sellers
fonte
1
Não precisa ser SOAP - se você estiver falando de serviços da Web (em minúsculas), o REST será cada vez mais comum.
John Topley
17

Um serviço da web difere de um site, pois ele fornece informações consumíveis por software e não por humanos. Como resultado, geralmente falamos sobre serviços JSON , XML ou SOAP expostos .

Os serviços da Web são um componente essencial em "mashups". Os mashups são quando as informações de muitos sites são automaticamente agregadas em um serviço novo e útil. Por exemplo, existem sites que agregam o Google Maps com informações sobre relatórios policiais para fornecer uma representação gráfica do crime em sua área. Outro tipo de mashup seria pegar dados de ações reais fornecidos por outro site e combiná-los com um aplicativo de negociação falso para criar um "jogo" do mercado de ações.

Os serviços da Web também são usados ​​para fornecer notícias (consulte RSS), itens mais recentes adicionados a um site, informações sobre novos produtos, podcasts e outros ótimos recursos que fazem a web moderna girar.

Espero que isto ajude!

64BitBob
fonte
15

A melhor explicação simples em inglês vem do uso de uma analogia:

  • As páginas da Web permitem que as pessoas se comuniquem e colaborem entre si.
  • Os serviços da Web permitem que os programas se comuniquem e colaborem entre si.

Seu exemplo de PHP é um serviço da web com essa definição, porque a saída pode ser consumida por outro programa. Mas, na realidade, a captura de tela HTML não é uma maneira confiável ou sustentável de produzir serviços da Web.

HTTP 410
fonte
13

Para a maioria dos sites, você tem páginas HTML que você visita quando usa seu navegador. São páginas legíveis por humanos (uma vez renderizadas em seu navegador), onde muitos dados podem ser agrupados, porque faz sentido para os seres humanos.

Agora imagine que alguém mais queira usar alguns desses dados. Eles poderiam fazer o download da sua página e começar a filtrar todo o "ruído" para obter os dados que desejavam, mas a maioria dos sites não é construída de maneira a que os dados sejam 100% seguros para serem colocados no mesmo local para todos os elementos. por ser complicado, também se torna não confiável.

Digite serviços da web.

Um serviço da web é algo que um site escolhe oferecer para aqueles que desejam ler, atualizar e / ou excluir dados do seu site. Você pode chamar isso de "backdoor" para seus dados. Em vez de apresentar os dados como parte de uma página da web, eles são fornecidos de forma pré-determinada, onde alguns dos mais populares são XML e JSON. Existem várias maneiras de se comunicar com um serviço da web, algumas usam SOAP, outras possuem serviços da web REST, etc.

O que é comum para todos os serviços da Web é que eles são legíveis por máquina, equivalentes às páginas da Web que o site oferece. Isso significa que outras pessoas que desejam usar os dados podem enviar uma solicitação para recuperar certos dados que são fáceis de analisar e usar. Alguns sites podem exigir que você forneça um nome de usuário / senha na solicitação, para dados confidenciais, enquanto outros sites permitem que qualquer pessoa extraia os dados de que possa precisar.

Christian P.
fonte
12

Um serviço da web é uma coleção de protocolos e padrões abertos usados ​​para a troca de dados entre aplicativos ou sistemas. Os aplicativos de software escritos em várias linguagens de programação e executados em várias plataformas podem usar serviços da Web para trocar dados através de redes de computadores como a Internet de maneira semelhante à comunicação entre processos em um único computador. Essa interoperabilidade (por exemplo, entre aplicativos Java e Python ou Windows e Linux) deve-se ao uso de padrões abertos (XML, SOAP, HTTP).

Todos os serviços da Web padrão funcionam usando os seguintes componentes:

  • SOAP (Protocolo Simples de Acesso a Objetos)
  • UDDI (Descrição Universal, Descoberta e Integração)
  • WSDL (Web Services Description Language)

Funciona assim:

  • O programa cliente agrupa as informações de registro da conta em uma mensagem SOAP.
  • Essa mensagem SOAP é enviada ao Serviço da Web como o corpo de uma solicitação HTTP POST.
  • O serviço da Web descompacta a solicitação SOAP e a converte em um comando que o aplicativo possa entender.
  • O aplicativo processa as informações conforme necessário e responde com um novo número de conta exclusivo para esse cliente.
  • Em seguida, o Serviço da Web empacota a resposta em outra mensagem SOAP, que é enviada de volta ao programa cliente em resposta à sua solicitação HTTP.
  • O programa cliente descompacta a mensagem SOAP para obter os resultados do processo de registro da conta.
vanguard69
fonte
1
" Todos os serviços da Web padrão funcionam usando os seguintes componentes: " ... o problema com esta resposta é que sugere que os serviços da Web operam ou devem operar dentro do mecanismo SOAP / WSDL. Isso é impreciso. Representational State Transfer (REST) ​​é outro paradigma muito popular para implementar serviços da Web. Alguns sites importantes preteriram seus serviços SOAP em favor dos serviços web REST.
22750 scottb
@scottb Concordo totalmente. Obrigado pela atualização. Além disso, em minha defesa, meu conhecimento sobre serviços da Web era muito limitado naquela época!
vanguard69
7

Simple way to explain web service is ::

  • Um serviço da Web é um método de comunicação entre dois dispositivos eletrônicos na World Wide Web.
  • Pode ser chamado de processo que um programador usa para se comunicar com o servidor
  • Para invocar esse processo, o programador pode usar SOAP etc.
  • Os serviços da Web são criados com base em padrões abertos, como TCP / IP, HTTP

A vantagem de um serviço da web é, digamos, que você desenvolva um pedaço de código no .net e deseje usar o JAVA para consumir esse código. Você pode interagir diretamente com a camada abstraída e não sabe qual tecnologia foi usada para desenvolver o código.


Imagem

Devrath
fonte
7

Webservice é uma tecnologia pela qual dois ou mais aplicativos remotos da Web interagem entre si pela rede / internet. Pode ser implementado usando Java, .net, PHP etc.

Recursos do serviço da Web: -

  1. Usando serviços da web, dois ou mais sistemas trocam dados pela rede. Os dados são trocados usando XML ou JSON.
  2. Qualquer serviço da web possui duas partes de servidor, onde o serviço é implantado e a parte do cliente em que o serviço é acessado por seus clientes. Qualquer serviço da web pode ter vários clientes. Quando um portal de viagens está vendendo bilhetes de um avião. O Portal é cliente e a Companhia Aérea é o servidor, pois está vendendo seu serviço.
  3. Os serviços da Web podem ser síncronos ou assíncronos também. Um aplicativo da Web pode interagir com muitos serviços da Web mas esses serviços da Web são vagamente acoplados aos aplicativos da Web clientes. Isso significa que qualquer alteração no aplicativo pai tem pouco ou nenhum efeito nos serviços da web ou vice-versa.
  4. Os serviços da Web também podem transportar documentos em anexo, como PDF, Word etc. com sua carga XML. Java fornece API separada para esse tipo de serviços da web.
  5. Um serviço da web sempre oculta a complexidade interna do serviço para seus clientes. Por exemplo, um avião comercial que está vendendo bilhetes por meio de um portal de terceiros está apenas coletando informações do usuário final por meio de um serviço da Web e, em troca, está fornecendo o bilhete. O portal que está vendendo passagens não precisa se preocupar com a complexidade interna dos sistemas de reserva de passagens aéreas.
  6. Um serviço da web pode ser do tipo fogo e esquecer, ou pode retornar algo. Suponha que um aplicativo da Web queira apenas enviar algumas informações para um aplicativo de terceiros. O remetente não precisa de nenhum reconhecimento do destinatário. Nesse tipo de cenário, precisamos acionar e esquecer o tipo de serviço da web.
siddhartha chakraborty
fonte
5

Um serviço da Web, conforme usado pelos desenvolvedores de software, geralmente se refere a uma operação que é executada em um servidor remoto e chamada usando a especificação XML / SOAP. Como em todas as definições, existem nuances, mas esse é o uso mais comum do termo.

jezell
fonte
1
Desculpe Jezelll, tive que fazer um voto negativo. Isso não é o que eu consideraria 'inglês simples' :( Não tenho problemas com a intenção de sua definição, mas usar palavras como 'operação', 'servidor remoto', 'invocado' e 'especificação' dificulta para iniciantes para entender See Mitchel Sellers resposta como um exemplo de 'plain Inglês'..
Dhaust
5

Um sistema operacional fornece uma GUI (e CLI) com a qual você pode interagir. Ele também fornece uma API com a qual você pode interagir programaticamente.

Da mesma forma, um site fornece páginas HTML com as quais você pode interagir e também pode fornecer uma API que oferece as mesmas informações e operações programaticamente. Ou esses serviços podem estar disponíveis apenas por meio de uma API sem interface de usuário associada.

John Topley
fonte
4

Bem,

Como o @Vincent Ramdhanie disse que um serviço da Web não deve ser visto / consumido pelo usuário final, mas por outro programa. Portanto, tecnicamente, a lógica do seu programa será:

Em caso de atuar como um programa normal

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

Agora

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

mas no caso de serviço da web, o fluxo muda um pouco:

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

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 isto ajude :)

user1079065
fonte
3

Uma definição simples seria uma solicitação HTTP que atua como uma chamada de método normal; ou seja, ele aceita parâmetros e retorna um resultado estruturado, geralmente XML, que pode ser desserializado em um objeto (s).

marc
fonte
3

Os serviços da Web são quase como uma página da Web normal. A diferença é que eles são formatados para facilitar a extração de dados da página por um programa, a ponto de provavelmente não usar nenhum HTML. Eles geralmente também são mais confiáveis ​​quanto à consistência do formato, podem usar um processo formal diferente para definir o conteúdo, como sabão ou xml bruto, e geralmente há também um documento descritor que define formalmente a estrutura dos dados.

Joel Coehoorn
fonte
3

Uma maneira de enviar uma mensagem para chamar uma operação em outro computador. A diferença entre os serviços da web e os métodos anteriores é o que é enviado por cabo, é padronizado em um nível superior.

Maneira antiga: descreva endians, codificação, números de portas, etc. Serviço Web: URL, XML

Archimedes Trajano
fonte
3

O Web Service é como um meio de comunicação entre dois programas não relacionados. Os programas usam um protocolo especificado (SOAP) como meio para entender qual SOLICITAÇÃO / RESPOSTA devem processar / executar na respectiva extremidade.

tolulope david
fonte
2

Um serviço da web define um contrato de ações que um servidor executará para você. O formato e o protocolo realmente não importam, mas você deve ter uma definição definida de como a comunicação acontece.

No seu exemplo, depende, se isso estiver sendo usado em outro aplicativo que leia esse número, sim, é serviço, caso contrário, é apenas uma página da Web com um número.

usuario
fonte
1

Em palavras simples, o serviço da Web pode ser qualquer programa simples, por exemplo: adicione dois números que devem ser publicados sobre o UDDI e podem ser consumidos por outro programa. O WSDL terá o terminal para localizar o serviço da Web e também os detalhes de ligação e porta.

Prabhu
fonte
0

'Web Service' é composto por duas palavras, 'Web' e 'Service'.
O que é 'Web'? 'Web' significa 'World Wide Web'.
'Serviço' para quê? Não para humanos, se for, é 'página da Web', como texto, imagens, vídeo, etc.
É para que os programas se comuniquem pela Internet usando a mesma tecnologia usada pela 'Web', como TCP, HTTP, etc.
'Serviço' também significa que ele fornece algumas funções, como a 'Camada de serviço' no CRUD. Existem principalmente dois tipos:
1. SOAP (Simple Object Access Protocol)
2. RESTful (Representational state transfer)

songxin
fonte
0

Sem prejuízo de outras definições, eu diria que um serviço da Web é um sistema de software que permite a interação interoperável máquina-máquina / aplicativo-aplicativo através de uma rede. Essas definições genéricas também ajudariam a considerar as arquiteturas REST como um serviço da Web, pois fornecem funcionalidade semelhante, embora seja um estilo de arquitetura diferente do SOAP, que é um protocolo totalmente definido.

joedavid
fonte