Serviço de internet
Um web service (em inglês, web service ou web services ) é uma tecnologia que usa um conjunto de protocolos e padrões usados para trocar dados entre aplicativos. Diferentes aplicativos de software desenvolvidos em diferentes linguagens de programação e executados em qualquer plataforma podem usar serviços da Web para trocar dados em redes de computadores , como a Internet . A interoperabilidade é alcançada através da adoção de padrões abertos . As organizações OASIS e W3C são os comitês responsáveis pela arquitetura e regulamentação dos serviços Web.
O W3C define um serviço web como:
Um serviço da Web é um sistema de software projetado para oferecer suporte à interação máquina a máquina em uma rede de maneira interoperável. Possui uma interface descrita em um formato que pode ser processado por um computador (especificamente em WSDL ), por meio do qual é possível interagir com ele por meio da troca de mensagens SOAP , normalmente transmitidas usando serialização XML sobre HTTP em conjunto com outros padrões web .W3C [ 1 ]
Para melhorar a interoperabilidade entre diferentes implementações de serviços da web, foi criada a organização WS-I , encarregada de desenvolver vários perfis para definir esses padrões de forma mais exaustiva. É uma máquina que atende as solicitações dos clientes web e envia os recursos solicitados.
Arquitetura
Existem três partes na arquitetura de serviços da Web: o provedor de serviços da Web, o solicitante do serviço da Web e o editor. O provedor de serviços envia ao editor de serviços um arquivo WSDL com a definição do serviço da web. O solicitante do serviço entra em contato com o editor e descobre quem é o provedor (protocolo WSDL) e entra em contato com o provedor ( protocolo SOAP ). O provedor valida a solicitação de serviço e envia os dados estruturados em formato XML usando o protocolo SOAP. O arquivo XML é validado novamente pelo solicitante do serviço usando um arquivo XSD .
Normas empregadas
- Web Services Protocol Stack : conjunto de serviços e protocolos de web services.
- XML ( Extensible Markup Language ): formato padrão para os dados a serem trocados.
- SOAP ( Simple Object Access Protocol ) ou XML-RPC ( XML Remote Procedure Call ): protocolos sobre os quais a troca é estabelecida.
- Outros protocolos: Os dados XML também podem ser enviados de um aplicativo para outro usando protocolos normais, como Hypertext Transfer Protocol ( HTTP ), File Transfer Protocol (FTP) ou Simple Mail Transfer Protocol (SMTP).
- WSDL ( Web Services Description Language ): é a linguagem de interface pública para serviços web. É uma descrição baseada em XML dos requisitos funcionais necessários para se comunicar com serviços da web.
- UDDI ( Universal Description, Discovery and Integration ): protocolo para publicação de informações de serviços web. Permite verificar quais serviços da web estão disponíveis.
- WS-Security ( Web Service Security ): protocolo de segurança aceito como padrão pela OASIS ( Organization for the Advancement of Structured Information Standards ). Garante a autenticação dos atores e a confidencialidade das mensagens enviadas.
- REST ( Representational State Transfer ): estilo arquitetural que, utilizando o protocolo HTTP , disponibiliza uma API que utiliza cada um de seus métodos (GET, POST, PUT, DELETE, etc.) site de serviço e cliente.
- GraphQL, arquitetura alternativa ao REST.
Vantagens dos serviços web
- Eles fornecem interoperabilidade entre aplicativos de software, independentemente de suas propriedades ou das plataformas nas quais estão instalados.
- Os serviços da Web promovem padrões e protocolos baseados em texto, que facilitam o acesso ao seu conteúdo e a compreensão de como eles funcionam.
- Eles permitem que serviços e softwares de diferentes empresas localizadas em diferentes localizações geográficas sejam facilmente combinados para fornecer serviços integrados.
Desvantagens dos serviços web
- Para realizar transações , elas não podem ser comparadas em seu grau de desenvolvimento com os padrões abertos de computação distribuída como CORBA ( Common Object Request Broker Architecture ).
- Seu desempenho é ruim quando comparado a outros modelos de computação distribuída, como Java Remote Method Invocation (RMI), CORBA ou Distributed Component Object Model (DCOM). É uma das desvantagens de adotar um formato baseado em texto. E é que entre os objetivos do XML não está a concisão ou a eficiência do processamento.
- Ao confiar no HTTP, eles podem contornar as medidas de segurança baseadas em firewall cujas regras tentam bloquear ou auditar a comunicação entre programas em ambos os lados da barreira.
Razões para criar serviços da Web
A principal razão para usar serviços da Web é que eles podem ser usados com HTTP sobre TCP ( Transmission Control Protocol ) na porta de rede 80. Como as organizações protegem suas redes com firewalls (que filtram e bloqueiam muito tráfego da Internet), elas fecham quase todas as portas TCP exceto 80, que é precisamente o usado pelos navegadores da web . Os serviços da Web usam essa porta pelo simples motivo de não serem bloqueados. É importante observar que os serviços da Web podem ser usados em qualquer protocolo, no entanto, o TCP é o mais comum.
Outra razão é que, antes do SOAP existir , não havia boas interfaces para acessar a funcionalidade de outros computadores em rede. As que existiam eram ad hoc e pouco conhecidas, como Electronic Data Interchange (EDI), Remote Procedure Call (RPC), ou outras APIs .
Uma terceira razão pela qual os serviços da Web são muito úteis é que eles podem fornecer grande independência entre o aplicativo que usa o serviço da Web e o próprio serviço. Desta forma, as mudanças ao longo do tempo em um não devem afetar o outro. Essa flexibilidade se tornará cada vez mais importante, pois a tendência de construir grandes aplicativos a partir de componentes distribuídos menores se torna mais comum a cada dia.
Espera-se que nos próximos anos a qualidade e a quantidade dos serviços oferecidos melhorem com base nos novos padrões.
Plataformas
Servidores de aplicativos para serviços da Web:
- Servidor de aplicativos JBoss J2EE Open Source da Red Hat inc.
- Middleware Oracle Fusion
- IBM Lotus Domino a partir da versão 7.0
- Axis e o servidor Jakarta Tomcat (do Apache)
- Macromedia Cold Fusion MX
- Java Web Services Development Pack (JWSDP) da Sun Microsystems (baseado no Jakarta Tomcat )
- JOnAS (parte do ObjectWeb uma iniciativa de código aberto)
- Microsoft .NET
- Novell exteNd (baseado na plataforma J2EE )
- WebLogic
- WebSphere
- JAX-WS com GlassFish
- Zope é um servidor de aplicação web orientado a objetos desenvolvido na linguagem de programação Python.
- VERASTRAM by AttachmateWRQ para modernizar ou integrar aplicativos host IBM e VT
Veja também
- Interface de programação de aplicativos (API)
- escritório de serviço
- rede mundial de computadores
- web semântica
- SABÃO
- SOA
- API da Web
Referências
- ^ "Glossário de Serviços da Web § serviço da Web" . W3C . 11 de fevereiro de 2004 . Recuperado em 24 de junho de 2018 .