Escolar Documentos
Profissional Documentos
Cultura Documentos
PARA O
D ESENVOLVIMENTO
DO
R IO G RANDE
DO
N ORTE
Relatrio tcnico apresentado ao Curso Especializao em Desenvolvimento de Sistemas Corporativos da FARN como trabalho de concluso de curso.
Relatrio tcnico aprovado em 25 de abril de 2011 pela banca examinadora composta pelos seguintes membros:
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.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.
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.
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
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