sábado, 2 de junho de 2012

Entendendo os WebServices

Entendendo os WebServices

Devido aos avanços tecnológicos, a popularização da Internet e a evolução das redes de computadores, resultando no surgimento de aplicações distribuídas, cada vez mais aumenta a necessidade de compartilhamento de informações. Em outras palavras, aumenta a necessidade de interoperabilidade entre sistemas. Surgem então os Web Services, como solução para uma melhor comunicação entre sistemas distribuídos.

Em principio, as redes de computadores eram baseadas na comunicação entre cliente e servidor. Mais adiante, com o surgimento da programação orientada a objetos, surgiram novos middlewares, que possuem como função possibilitar que as aplicações possam ser escritas de modo mais independente possível do hardware e do sistema operacional, permitindo assim que um mesmo código de aplicação possa ser carregado e executado em diferentes equipamentos receptores.

Em resumo, o middleware é um software capaz de interpretar os aplicativos e traduzi-los na linguagem do sistema operacional em que ele reside. Exemplos como, CORBA, DCOM e RMI, onde o processamento passou a ser repassado para vários servidores.

Através de um conjunto de novos conceitos de interoperabilidade como o XML, o SOAP, o WSDL, e o UDDI, os Web Services vieram facilitar a comunicação entre as aplicações que residem em múltiplas plataformas, usando diferentes modelos de objetos e baseados em linguagens diferentes. Este diferencial acaba com eventuais problemas que eram gerados antigamente em outras aplicações distribuídas citadas anteriormente.

Resumindo, Web Services é a tecnologia ideal para comunicação entre sistemas. A comunicação entre os serviços é padronizada, possibilitando a independência de plataforma e de linguagem de programação. Por exemplo, um sistema de desenvolvido em Java e rodando em um servidor Linux pode acessar, com transparência, um serviço feito em .Net rodando em um servidor Microsoft.

Definição

Segundo Menéndez, há uma definição bastante simples para um Web Services: É uma aplicação que aceita solicitações de outros sistemas através da Internet. Segundo James Snell, Web Services são interfaces acessíveis de rede, para as funcionalidades da aplicação, que utilizam em sua construção tecnologias padrões da Internet.

Através dessas afirmações, observa-se que Web Services são serviços que visam
facilitar o processamento distribuído em sistemas heterogêneos. Estes serviços são baseados em um conjunto de padrões da Internet definidos pelo W3C. O W3C é um consórcio, destinado a desenvolver tecnologias interoperantes, de domínio público, para a World Wide Web.

Simplificando, Web Service é uma maneira de expor funcionalidades para usuários Web através de protocolos padrão. Também podemos citar como uma aplicação identificada por uma URI (Uniform Resource Identifier), cujas interfaces podem ser descobertas e definidas através de artefatos XML, e que suporta interações diretas com outros softwares utilizando mensagens XML através de protocolos padrão da Internet (W3C).

Visando reforçar o conceito, um exemplo interessante de uma aplicação que utiliza alguma dessas características citadas acima, seria em um portal Internet de turismo descrito por Capelari. O portal receberia como entrada um destino turístico. Com essa informação, o sistema do portal procuraria serviços oferecidos para aquela localidade destino, como passagens, hospedagens, aluguel de veículos, entre muitos outros, comparando preços, horários, enfim, descrevendo os serviços oferecidos. Porém, para tal implementação, seriam necessários que as diversas empresas da área criassem seus Web Services, que seriam acessados pelo portal. Essas consultas poderiam ser feitas de maneira concorrente.
Esse tipo de implementação gera um controle descentralizado, pois uma companhia aérea, por exemplo, poderia alterar seus horários de embarque, sem necessitar informar a um sistema de controle central sobre a alteração.

Figura 1 - Web Services




Aplicação

O principal objetivo dos Web Services é proporcionar a interoperabilidade entre sistemas distribuídos, independente da plataforma e da linguagem de programação utilizada por eles, disponibilizando uma melhor interligação destas aplicações, como visto na figura 2.

Esta interligação tem como princípio facilitar os processos de negócios, proporcionando a softwares isolados passarem a funcionar de forma conjunta com os demais. Um projeto bem elaborado busca a diminuir custos, aumentar a produtividade e uma maior oportunidade de rendimento. Mas, diversos quesitos devem ser levados em conta, para evitar que esta comunicação de plataformas possa trazer prejuízos em vez de benefícios.


Figura 2 - A basic web service [OREILLY], p.06


Benefícios

Os Web Services trazem diversos benefícios quando utilizados de maneira correta e bem sucedida. 

Os serviços são baseados em um conjunto de padrões da internet definidos pelo W3C, não requerem configurações especiais nos firewalls, pois o protocolo http, o qual é o mais utilizado, atua como transporte na comunicação entre cliente e Web Service. Possuem independência de plataforma, devido a ser baseado em XML, o qual pode gerar documentos complexos.

Outra característica que deve ser destacada é o re-uso dos componentes pertencentes aos sistemas integrados, onde cada componente pode representar um serviço distinto, podendo participar de múltiplos sistemas provendo maiores benefícios imediatos e aumento da agilidade do negócio.

Arquitetura

A arquitetura dos Web Services é baseada na interação de três personagens: Provedor de Serviços, Consumidor de Serviços e Registro dos Serviços. A interação destes personagens envolve as operações de publicação, pesquisa e ligação. Vejamos a definição de cada uma destas funções [KREGER2001]:

Provedor de serviços: o provedor de serviços é a entidade que cria o Web Service. Ele disponibiliza o serviço para que alguém possa utilizá-lo. Mas, para que isto ocorra, ele precisa descrever o Web Service em um formato padrão, que seja compreensível para qualquer um, que precise usar esse serviço, também publicar os detalhes sobre seu Web Service em um registro central que esteja disponível.

Consumidor de serviços: qualquer um que utilize um Web Service criado por um provedor de serviços é chamado de consumidor de serviços. Este conhece a funcionalidade do Web Service, a partir da descrição disponibilizada pelo provedor de serviços, recuperando os seus detalhes através de uma pesquisa sobre o registro publicado. Através desta pesquisa, também o consumidor de serviços pode obter o mecanismo para ligação com este Web Service.

Registro dos serviços: Um registro de serviços é a localização central onde o provedor de serviços pode relacionar seus Web Services, e no qual um consumidor de serviços pode pesquisá-los. O registro dos serviços contém informações como detalhes de uma empresa, quais os serviços que ela fornece e a descrição técnica de cada um deles.
Portanto, o provedor de serviços define a descrição do serviço para o Web Service e publica esta para o consumidor de serviços no registro de serviços. O consumidor de serviços utiliza a descrição do serviço publicada para se ligar ao provedor de serviços e invocar ou interagir com a implementação do Web Service.

Figura 3 - Web Service Roles [OREILLY], p.11.


Comunicação entre as camadas

A comunicação entre aplicações de Web Service fazem uso de quatro camadas que empacotam a requisição e a resposta entre um servidor e um cliente. As camadas utilizadas são:

XML (Extensible Markup Language)
SOAP (Simples Object Access Protocol)
WSDL (Web Services Definition Language)
UDDI (Universal Discovery Description Integration)

Veremos cada uma destas tecnologias com mais detalhes adiante.

Bibliografia

[CAPELARI] CAPELARI, João Cláudio Junior; FORNARI, Miguel Rodrigues. WebClipping utilizando WebServices. ULBRA-Canoas 2004
[DEITEL2003] DEITEL, H. M. et al. XML: Como Programar. Porto Alegre: Bookman, 2003. 953 p.
[KREGER2001] KREGER, H.. Web Services Conceptual Architecture (WSCA 1.0), IBM Software Group.
[MENENDEZ2002] MENÉNDEZ, Andrés Ignácio Martínez. Uma ferramenta de apoio ao desenvolvimento de Web Services. Dissertação de Mestrado, Universidade Federal de Campina Grande, curso de Pós-Graduação em Informática, 2002. 97 p.
[SNELL2001] SNELL, James. Programming Web Services with SOAP. Sebastopol: O'Reilly, 2001. 216p.

Nenhum comentário:

Postar um comentário