Você está na página 1de 27

FACULDADE N ATALENSE

PARA O

D ESENVOLVIMENTO

DO

R IO G RANDE

DO

N ORTE

Atualizao de Web Services em Tempo Real

Vincius Brando Mendes

Orientador: Prof. Ricardo Wendel

Relatrio tcnico apresentado ao Curso Especializao em Desenvolvimento de Sistemas Corporativos da FARN como trabalho de concluso de curso.

Natal, RN, abril de 2011

Atualizao de Web Services em Tempo Real

Vincius Brando Mendes

Relatrio tcnico aprovado em 25 de abril de 2011 pela banca examinadora composta pelos seguintes membros:

Prof. Ricardo Wendel (orientador) . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCA/UFRN

Prof. Dr. Pablo Javier Alsina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCA/UFRN

M. Sc. Andr Macedo Santana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCA/UFRN

Agradecimentos

Ao meu orientador, professor Ricardo Wendel, sou grato pela orientao. Aos meus pais, Joalmi Mendes de Oliveira e Maria Gleide Brando Mendes, pelo apoio total durante a execuo do trabalho e durante toda a minha vida, com educao, instruo e companheirismo. A minha noiva Rosana Curvelo de Souza pelo constante incentivo. Ao colega Fbio Miranda Costa pelo apoio durante o curso. Aos meus irmos, familiares e amigos pela pacincia e apoio dispensados durante a execuo do trabalho.

Resumo

Neste trabalho ser relatado o desenvolvimento de um cliente de Web Service baseado em SOAP que deve realizar vrias requisies para sincronizar uma grande massa de dados em um tempo relativamente curto. Foram abordadas trs tcnicas: requisies sob demanda do usurio; atualizador com requisies sncronas e sequenciais em um nico processo; e atualizador com requisies sncronas em vrios processos. Palavras-chave: Web services, SOAP, computao distribuda, programao concorrente.

Abstract

On the following work, will be reported the development of a Web Service client based on SOAP that should make many requests to synchronize a huge data in a short time. Three techniques were considered: request on user demand; update with synchronous and sequential requests in a single process; and updater with synchronous requests with multiprocessing. Keywords: Web Services, SOAP, distributed computing, multiprocessing.

Sumrio

Sumrio Lista de Figuras 1 Introduo 1.1 Descrio geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Mdulo para realizar comunicao utilizando SOAP . . . . . . . 1.4.2 Estratgia de atualizao de dados sob demanda . . . . . . . . . . 1.4.3 Atualizador de dados independente de este ser requisitado ou no 2 Web Services 2.1 Aplicao . . . 2.2 Descoberta . . 2.3 Descrio . . . 2.4 Empacotamento 2.4.1 SOAP . 3 Multiprocessamento 4 Implementao 4.1 Requisies sob demanda . . . . . . . . . . . . . . . . 4.2 Atualizar todos os dados de tempos em tempos . . . . 4.2.1 Requisies sequenciais . . . . . . . . . . . . 4.2.2 Requisies paralelas com mltiplos processos 5 Resultados 5.1 Requisies sob demanda . . . . . . . . . . . . . . . . 5.2 Atualizar todos os dados de tempos em tempos . . . . 5.2.1 Requisies sequenciais . . . . . . . . . . . . 5.2.2 Requisies paralelas com mltiplos processos 6 Concluso Referncias bibliogrcas i

i iii 1 1 1 1 2 2 2 2 3 3 3 3 4 4 5 7 7 7 7 7 9 9 9 9 9 11 12

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Lista de Figuras

iii

Captulo 1 Introduo

Este trabalho trata de um cliente de Web Service SOAP que deve obter o mais rapidamente possvel uma grande quantidade de dados do servidor e persist-los em seu banco de dados. Existem inmeras formas de resolver esse problema. Neste trabalho sero abordadas algumas tcnicas possveis.

1.1 Descrio geral


O trabalho baseado em um Web Service SOAP, que um protocolo para troca de informaes estruturadas em uma plataforma descentralizada e distribuda. Um portal de internet precisa oferecer a seus usurios em tempo real dados que so obtidos atravs de um servidor que os fornece atravs de um web service. Para no ter atraso na informao oferecida, ele precisa requisitar ao fornecedor de dados o mais frequentemente possvel ao mesmo tempo que tem que manter um bom tempo de resposta para seus usurios.

1.2 Objetivo
O objetivo do trabalho resolver os problemas relacionados otimizao do tempo de resposta e frequncia de atualizao do dado. Por se tratar de um problema de otimizao de tempo de resposta necessrio pensar na latncia e no overhead gerado por uma conexo HTTP e analisar a melhor arquitetura de sistema possvel.

1.3 Motivao
Com o avano da informtica e de conceitos como a computao em nuvem, cada vez mais os servidores esto em constante comunicao ao redor do mundo. Seja para autenticar usurios, seja para persistir dados ou seja para solicitar dados. Um portal de notcias, por exemplo, exibe, alm das notcias, dados meteorolgicos e econmicos. Esses dados normalmente no so produzidos pelo prprio portal e ento so necessrias parcerias com fornecedores de contedo que disponham de tal informao. Estes fornecedores, em geral, disponibilizam os dados atravs de um Web Service.

CAPTULO 1. INTRODUO

Dado que no mundo jornalstico a agilidade na entrega de informaes um fator primordial para o sucesso, surge a necessidade de otimizar o tempo de consumo de tais fornecedores a m de entregar aos usurios a informao mais recente possvel.

1.4

Metodologia

O projeto foi dividido em trs partes: mdulo para realizar comunicao utilizando SOAP; estratgia de atualizao de dados sob demanda; atualizador de dados independente de este ser requisitado ou no.

1.4.1 Mdulo para realizar comunicao utilizando SOAP


Foi necessrio desenvolver um mdulo capaz de fazer a comunicao utilizando o protocolo SOAP, serv-los aos clientes e persist-los em seu banco de dados.

1.4.2 Estratgia de atualizao de dados sob demanda


Uma das possveis opes de atualizao de dados faz-lo sob demanda. A medida em que um usurio solicita o dado, o portal o requisita ao fornecedor e gera a resposta para o usurio. Esta foi a primeira estratgia analisada.

1.4.3 Atualizador de dados independente de este ser requisitado ou no


Foi analisada uma estratgia de atualizar os dados indepentementemente de eles terem sido requisitados pelos usurios ou no. Esta estratgia se mostra interessante por reduzir o tempo de resposta para o usurio.

Captulo 2 Web Services

Web service uma interface acessvel atravs da rede para uma funcionalidade de uma aplicao construda usando tecnologias denidas como padro na Internet [Doug Tidwell & Kulchenko 2001]. apenas mais uma camada de troca de mensagens entre uma aplicao e outra. A principal vantagem no seu uso prover comunicao entre diferentes aplicaes independente da plataforma ou linguagem de programao utilizada por elas, o que garante interoperabilidade entre sistemas desde que ambos utilizem o mesmo protocolo de comunicao entre si. Atravs do uso de web services possvel fazer com que uma aplicao faa chamadas de mtodos remotos de outra aplicao. simples como gerar uma requisio HTTP que encapsule qual mtodo ser chamado e quais os parmetros e esperar uma resposta com o resultado da chamada do mtodo. Para isso se faz necessrio quebrar a camada de aplicao da pilha de camadas do modelo de redes TCP/IP em quatro camadas: aplicao, descoberta, descrio e empacotamento.

2.1 Aplicao
A camada de aplicao o cdigo que precisar se comunicar com a outra aplicao atravs do web service, que pode ser escrito em qualquer linguagem.

2.2 Descoberta
Esta camada responsvel por disponibilizar metadados sobre web services de modo a facilitar a busca pela aplicao necessria para cada projeto.

2.3 Descrio
A descrio dene como o web service deve ser utilizado. Quais os mtodos que ele expe, quais os parmetros necessrios em cada um deles e quais as possveis respostas. O Web Service Description Language (WSDL) um padro muito utilizado para descrever um web service atravs do uso de XML.

CAPTULO 2. WEB SERVICES

2.4

Empacotamento

Trata do empacotamento das mensagens de forma que ambas as partes sejam capazes de entend-las. Existem vrios formatos de empacotamento, em sua maioria baseados em XML (Extensible Markup Language), o qual possibilita a representao do signicado do dado e por existirem parsers XML para praticamente todas as linguagens e plataformas do mercado. Neste relatrio iremos abordar o protocolo de empacotamento SOAP que foi utilizado na implementao do projeto.

2.4.1 SOAP
SOAP (Simple Object Access Protocol) um protocolo cujo objetivo trocar informaes estruturadas em um ambiente distribudo e descentralizado [Gudgin et al. 2007]. um padro reconhecido e desenvolvido pelo World Wide Web Consortium (W3C) para desempenhar o papel da camada de empacotamento de um web service. Sua especicao dene um envelope baseado em XML para conter a informao a ser transmitida e uma srie de regras para traduzir dados especcos de uma de plataforma e aplicao para representaes XML.

Captulo 3 Multiprocessamento

Falar sobre programao concorrente com mltiplos processos.

CAPTULO 3. MULTIPROCESSAMENTO

Captulo 4 Implementao

4.1 Requisies sob demanda 4.2 Atualizar todos os dados de tempos em tempos
4.2.1 Requisies sequenciais 4.2.2 Requisies paralelas com mltiplos processos

CAPTULO 4. IMPLEMENTAO

Captulo 5 Resultados

5.1 Requisies sob demanda 5.2 Atualizar todos os dados de tempos em tempos
5.2.1 Requisies sequenciais 5.2.2 Requisies paralelas com mltiplos processos

10

CAPTULO 5. RESULTADOS

Captulo 6 Concluso

12

CAPTULO 6. CONCLUSO

Referncias Bibliogrcas

Doug Tidwell, James Snell & Pavel Kulchenko (2001), Programming Web Services with SOAP, 1 edi, OReilly. Gudgin, Martin, Marc Hadley, Noah Mendelsohn, Yves Lafon, Jean-Jacques Moreau, Anish Karmarkar & Henrik Frystyk Nielsen (2007), SOAP version 1.2 part 1: Messaging framework (second edition), W3C recommendation, W3C. http://www.w3.org/TR/2007/REC-soap12-part1-20070427/.

13

Você também pode gostar