Definição
Web Services são agentes integradores que realizam o compartilhamento de dados entre um indeterminável número de aplicações. Sua principal característica é a capacidade de tornar sistemas e plataformas heterogêneos, descentralizando serviços.
Agente Integrador De Múltiplos Sistemas
A expansão dos sistemas em baixa plataforma das décadas anteriores não seria possível sem os Web Services. Sem dúvida, foi uma das chaves fundamentais para o rumo dos novos sistemas de informação. Através dos Web Services os sistemas puderam ser migrados para outras tecnologias, em busca de novos recursos aos utilizadores, visando a possibilidade de integração em sistemas de diferentes plataformas, independentemente de linguagem, banco de dados e principalmente do sistema operacional utilizado.
Figura 1 – Sistemas de baixa plataforma.
Arquitetura Heterogênea De Um Web-Service
O processo para geração de um Web Service se resume em três passos:
- Publicação
- Localização
- Consumação
Vamos exemplificar isso neste diagrama:
Figura 2 – Estrutura de um Web Service.
Service Provider
Responsável por prover o serviço. Em troca de requisições ele disponibiliza o retorno das informações. A técnica de troca de mensagens com o Service Requester ocorre com o uso da tecnologia SOAP, um XML que contém dados categóricos sobre a requisição e os resultados encontrados. Por se tratar de um recurso comum (XML) a todas as tecnologias, sua implantação é viável em qualquer tipo de negócio.
Service Requester
Responsável por consumir o serviço. Efetua a troca de mensagens com o Service Provider de forma análoga com o uso do SOAP. Os métodos acessíveis no Web Service estão especificados no Service Broker através do uso da tecnologia WSDL, outro XML genérico, a qual prove estes dados. O Service Requester independe da linguagem de programação ou banco de dados utilizado, o importante é compreender as mensagens.
Service Broker
Responsável por publicar e divulgar o serviço. O Service Provider disponibiliza as informações de seu Web Service ao Service Broker, o qual irá registrar este serviço em um diretório público e gerenciá-lo. Este diretório possui um nome, UDDI, que teoricamente deveria ser uma espécie de Google aos consumidores de Web Services mas que na prática ainda é pouco usual. Seu uso é vital para troca de dados WSDL.
Descentralização De Serviços Uni-Plataforma.
Desde que Web Services se tornaram necessários para expansão e implantação de novas tecnologias, o fato mais considerável é que ele foi responsável por descentralizar serviços de sistemas uni-plataforma. Hoje, podemos prover serviços básicos em um servidor de grande porte, e gerar novos serviços em qualquer porte de servidor, com recursos e capacidades totalmente relevantes aquela situação.
Existe ainda a possibilidade de um novo tipo de comércio, a venda de acessos a serviços. Empresas fundamentais, como por exemplo, os correios de determinado país, podem vender consultas de endereços e códigos a aplicações de terceiros que queiram sincronizar estas informações. Uma financeira poderia fornecer dados de bloqueio a possíveis compradores incapacitados. Definitivamente, um novo mercado.
Figura 3 – Compartilhamento de informações.
Por Onde Começar?
Como descrito neste artigo, a tecnologia adotada será análoga ao trabalho do Web Service. Cada linguagem / framework tem suas peculiaridades, mas a forma em que ocorrerá a troca de mensagens entre os envolvidos no serviço deveram ser as mesmas.
Muito provável que algumas tecnologias, tal como Java, obrigue você a usar algum componente de terceiro para criação ou consumação de Web Services. Entretanto, linguagens como PHP provêm isso nativamente em seu núcleo. A vantagem de se utilizar uma biblioteca de terceiro, seria a praticidade de se trabalhar com Web Services. Subentenda-se como evitar repetições de escopos básicos de Web Services.
Recomendaria um estudo mais aprofundado na essência de Web Services:
http://www.w3.org/2002/ws
Ler alguns exemplos práticos de Web Services:
http://www.w3schools.com/webservices
E daí então partir para as especificações de cada tecnologia:
ASP.NET
http://msdn.microsoft.com/en-us/library/ms972326.aspx
Zend Framework
http://www.zftutorials.com/zend-web-services
Ruby On Rails
http://www.tutorialized.com/tutorial/Create-Web-services-with-Ruby-on-Rails-and-Action-Web-Service/39880
JavaServer Faces
http://www.oracle.com/technology/products/jdev/101/howtos/jsfws/index.html
Django (Phyton)
http://andrewwilkinson.wordpress.com/2009/04/08/building-better-web-services-with-django-part-1
Considerações finais.
Esperamos que este terceiro artigo da série “ABC” seja útil em compreender porque Web Services se tornaram populares e precisos no mercado da tecnologia da informação. Lembramos que o foco dessa série é apenas conceituar os temas, artigos mais especializados do assunto surgirão na medida do possível. Sugestões, críticas e comentários sempre serão bem vindos!
Próximo artigo: APIs, mashups que geram novos serviços.
Referências Cibliográficas.
What Is Web Service?
http://www.codeproject.com/KB/XML/Defining_Web_Services.aspx
Understanding Web Services.
http://www.alistapart.com/articles/webservices
Introduction to Web Services.
http://www.w3schools.com/webservices/ws_intro.asp
Secure, Reliable, Transacted Web Services.
http://www.ibm.com/developerworks/webservices/library/ws-securtrans