A figura abaixo ilustra uma arquitetura típica de Web Services (SOA). Nessa arquitetura existem 3 principais atores.
- Provedor de Serviços (P) ;
- Requisitor de Serviços (R);
- Broker de Serviços (B): repositório com informações sobre serviços (UDDI); contém informações sobre o provedor de serviços (white pages), categorias que caracterizam os serviços (yellow pages) e a interface dos serviços (green pages).
A figura abaixo ilustra um cenário de SOA onde diversos fornecedores de serviços (P) publicam seus serviços no respositório (B), os quais são encontrados pelos requisitores (R) através de consultas a B e, finalmente, acessam os serviços de P.
Em uma arquitetura de serviços P2P, cada nodo deve ser capaz de publicar e consumir serviços, como ilustra a figura abaixo (cenário 1 - infraestrutura fixa: DHCP, DNS e servidor UDDI). Embora pareça simples, em um cenário móvel real, composto por rede ad-hoc, existem algumas dificuldades [1]:
- Como e onde o serviço deve ser publicado e descoberto (centralizado ou descentralizado)?
- Os nodos devem ser endereçáveis, mas na maioria das redes móveis atuais como GSM/GPRS o endereço IP fica escondido através de um NAT (Network Address Translation).
- O limitado poder de processamento e a pouca memória dos dispositivos móveis atuais causam dificuldados no fornecimento de funcionalidades de servidor.
- A comunicação móvel não é confiável não oferece QoS contínuo.
A figura abaixo ilustra um segundo cenário P2P SOA, que é uma rede ad-hoc pura, sem nenhuma infraestrutura, com nodos entrando e saindo da rede constantemente. Neste cenário não existe um único B centralizado. Maiores explicações podem ser encontradas em [1].
Para suportar essa arquitetura, foi criado um framework de aplicação P2P que possibilita Web Services em nodos P2P. Diversos componentes fazem parte desse framework, sendo que o principal deles é o Servidor SOAP [2], ilustrado na figura abaixo. O framework foi implementado em J2ME.
De forma simplificada, o funcionamento do servidor é o seguinte:
- O Servidor SOAP torna os serviços disponíveis através de uma interface HTTP.
- Quando um cliente conecta ao servidor enviando uma requisição HTTP POST/GET, o socket do servidor aceita a conexão cliente e retorna um socket contendo os o stream dos dados de entrada.
- O Request Handler usa kSOAP e kXML para processar a mensagem, desserializando o XML em objetos Java.
- ...
[1] G. Gehlen e L. Pham, "Mobile Web Services for Peer-to-Peer Applications", In Proceedings of the Consumer Communications and Networking Conference 2005, p. 7, Las Vegas, USA.
[2] L. Pham e G. Gehlen, "Realization and Performance Analysis of a SOAP Server for Mobile Devices", In Proceedings of the 11th European Wireless Conference 2005, Vol. 2, p.p. 791-797, Nicosia, Cyprus,VDE Verlag
Nenhum comentário:
Postar um comentário