Modelo De Coleta E Processamento De Dados De Forma

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Modelo De Coleta E Processamento De Dados De Forma as PDF for free.

More details

  • Words: 1,671
  • Pages: 6
Modelo de Coleta e Processamento de Dados de Forma  Assíncrona Jônnison Lima Ferreira1, Aislan Rafael Rodrigues de Sousa1 , Artur Luiz Torres de  Oliveira1 1­Instituto Federal de Educação Ciência e Tecnologia do Piauí ­ Campus Picos(IFPI­ Picos) jonnison_1234[arroba]hotmail.com, aislanmaster[arroba]gmail.com, tuca_jampa[arroba]hotmail.com

Abstract.  This article presents a model for construction of applications that   require the collection and processing of data in asynchronous. Describes the   technologies, architecture and was designed as the skeleton of code to support   applications. Resumo. Este artigo apresenta um modelo para construção de aplicações que   necessitem de coleta e processamento de dados de forma assíncrona. Descreve   as   tecnologias utilizadas, arquitetura e como  foi idealizado o esqueleto de   código para dar suporte às aplicações.  

1. Introdução O   modelo  apresentado   é   uma   proposta   para   solucionar   problemas   que   necessitam  coletar informações para serem processadas em uma aplicação servidora. A seguinte  situação serve como exemplo para o uso do modelo apresentado:  Uma empresa de distribuição de bebidas tem uma equipe de vendedores, estes  vão até os clientes coletando informações sobre os pedidos: produtos e quantidade. Ao  final do expediente estes descarregam essas informações para ser feito a logística de  entrega. Situação   na   qual   os   vendedores   devem   ter   um   dispositivo   portátil   com   uma  aplicação   cliente,   para   descarregar   os   dados   no   servidor   onde   vai   ser   feito   todo   o  processamento de estoque e logística da aplicação. O artigo tem o propósito de analisar  as tecnologias utilizadas na coleta, envio e processamento de dados.  

2. Tecnologias adotadas Para a construção do modelo utilizou­se de tecnologias tanto na aplicação servidora,  cliente e no estabelecimento da comunicação entre as duas aplicações.

2.1 BDOO(banco de dados orientado ao objeto) É um banco de dados que utiliza objetos para persistir dados e faz uso das características  do paradigma de orientação a objeto. Dois fatores importantes para a criação deste novo  modelo foi a dificuldade existente para trabalhar com dados complexos em um banco de  dados relacional, e o emprego em larga escala de linguagens de programação orientada  a objetos para a manipulação dos dados, na forma tradicional na aplicação é necessário  a tradução entre a representação dos dados como objetos e as tuplas do banco de dados  relacional. Os BDOOs armazenam objetos persistentes, ou seja, mesmo após o término do  programa, os dados podem ser recuperados e compartilhados com outras aplicações.  Cada Objeto possui um identificador (OID) gerado pelo sistema. Com isso foi criado  várias possibilidades de uso. Ganharam nicho nas áreas de bancos de dados espaciais,  telecomunicações e áreas cientificas (como física de alta energia e biologia molecular).  Inicialmente houve pouco impacto nas aplicações comerciais, embora sejam utilizados  em algumas áreas especializadas em serviços financeiros. A partir de 2004 esses bancos tiveram uma nova fase de crescimento, com o  surgimento   de   bancos   de   dados   livres   e   vários   recursos   de   fácil   uso,   por   serem  totalmente escritos em linguagens de programação orientada a objetos (como Java, C++,  C#). O   acesso   aos   bancos   de   dados   pode   ser   rápido,   porque   geralmente   não   são  necessárias as junções (como numa implementação de um banco de dados relacional),  isto   é,   o   objetos   é   obtido   diretamente   sem   busca,   seguindo   os   ponteiros,   outra  característica importante é o fato de que a linguagem de programação e banco têm os  mesmos tipos de dados. O BDOO escolhido para o modelo foi o DB4O. Possui código aberto e uma  comunidade bastante ativa, compatível com a linguagem de programação Java. Próprio  para uso em aplicações feitas para dispositivos portáteis. 

2.2 Hibernate O hibernate é uma ferramenta de mapeamento objeto­relacional para a linguagem de  programação Java. Ele tem como objetivo diminuir a complexidade da relação entre um  programa Java que é uma linguagem orientada a objetos com um banco de dados do  modelo relacional (maioria dos SGBDs). Ele   tem   como   principal   característica   a   transformação   das   classes   Java   em  tabelas de dados (convertendo os tipos Java em tipos SQL). O hibernate gera todas as  SQL, poupando o desenvolvedor do trabalho de conversão de dados, fazendo com que o  programa fique portável para qualquer SGBD  relacional de linguagem SQL, o único  problema   causado   por   ele   é   um   pequeno   aumento   do   tempo   de   execução,   para 

compensar isso a ferramenta poupa o desenvolvedor do trabalho da escrita de muito  código de acessos ao banco e de SQL, acelerando o desenvolvimento. Mas esse framework pode não ser a melhor opção para todas as aplicações, como  em aplicações que fazem grande uso de stored procedures, gatilho ou que fazem grande  implementação da lógica da aplicação no próprio banco, tendo um modelo “pobre” ele  não irá se beneficiar do uso do hibernate. Sendo indicado para sistemas com um modelo  “rico”, onde grande parte da lógica de negócios fica na aplicação Java. O hibernate usa um dialeto SQL feito pra ele, o HQL(hibernate query language),  que é uma poderosa linguagem de consulta, muito parecida com a própria SQL, mas é  totalmente   orientada   ao   objeto,   com   isso   tem   todos   os   benefícios   desse   tipo   de  linguagem, como herança, polimorfismo e encapsulamento.

2.3 TCP Segundo Battisti (2006)  TCP é um protocolo de transporte que garante que os dados  sejam entregues de forma confiável, sem corromper ou alterar­los, é sem duvidas um  dos mais importantes protocolos da família TCP/IP. Este é um protocolo orientado a  conexão (onde são passadas informações de logon) antes de começar a troca de dados. As principais características do TCP são a garantia de entrega de pacotes IP, ele  executa a segmentação e reagrupamento de grandes blocos de dados enviados, verifica a  integridade dos dados transmitidos, garantindo que os dados não sejam alterados ou  corrompidos   durante   o   transporte   enviando,   mensagens   positivas   ou   negativas,  dependendo do recebimento bem­sucedido ou não. Baseando­se na conexão ponto­a­ponto entre dois hosts de redes. Ao receber os  dados   do   programa   ele   os   processa   como   um   fluxo   de   bytes,   esses   segmentos   são  conhecidos como “pacotes”. Antes de se iniciar a troca de dados, primeiro é estabelecida a conexão sessão  entre   si,   essa   seção   é   iniciada   através   de   um   processo   conhecido   como  tree­way   handshake, processo no qual ocorre a sincronização do numero de sequencia e oferece  as informações de controle necessárias para o estabelecimento da conexão virtual entre  os hosts. O protocolo de transmissão TCP foi escolhido justamente por garantir a entrega  dos dados, já que ele só finaliza a conexão após a transferência correta de todos os  dados, já o protocolo UDP mesmo sendo um pouco mais rápido não garante a chegada  dos dados não assim indicada a esse tipo de aplicação.       

2.4 Soquete Segundo Colouris (2007) , soquete é uma abstração que serve como ponto de texto  para a comunicação entre processos. Para haver comunicação deve haver dois soquetes  onde vão ser transferidas mensagens. Para que a operação seja realizada com sucesso, o  soquete deve estar vinculado a uma porta local e a um dos endereços IP do computador  em que é executado a aplicação cliente ou servidora.

3. Arquitetura do Modelo

Figura 1. Modelo de Arquitetura

O servidor é responsável por receber os dados coletados pelos clientes e persistir­los em  uma   base   de   dados   através   de   uma   conexão   estabelecida   quando   o   cliente   achar  necessário.

3.1 Servidor

Figura 2. Modelo de Arquitetura da camada do Servidor

Na aplicação servidora os dados são persistidos em um banco de dados relacional. Ex.:  Mysql  e SQL Server. Os bancos de dados relacionais são largamente utilizados nas  empresas. Assim não há necessidade de grandes alterações em base de dados legadas, e  também se trata de um modelo bastante testado e eficiente. O hibernate é utilizado como uma camada para recuperar e persistir objetos em  uma base de dados relacional. O paradigma de Orientação a Objeto facilita no processo  de construção da aplicação servidora. A comunicação entre cliente e servidor é feita 

através   de   trocas   de   mensagens,   onde   as   quais   transportam   apenas   objetos   e   as  informações necessárias para chegar ao destino.  

3.2 Camada de comunicação

Figura 3. Modelo de Arquitetura da camada de comunicação

Para esta camada é empregado o uso de comunicação por fluxo TCP. Foi escolhido este  protocolo pelo fato de ocultar, ou seja, trata de maneira automática: •

Tamanho das mensagens;



Mensagens perdidas;



Controle de fluxo;



Duplicação e ordenamento de mensagens;



Destinos de mensagens.

A linguagem de programação escolhida para rodar tanto na aplicação servidora e  na aplicação cliente é o Java, por causa dessa escolha os objetos têm que ser serializados  ao serem transportados. De acordo com Coulouris (2007), essa é uma atividade para  simplificar um objeto, ou um conjunto de objetos conectados, em uma forma seqüencial  conveniente para ser armazenada em disco ou transmitida em uma mensagem.

3.3 Cliente

Figura 4. Modelo de Arquitetura da aplicação cliente

Na  aplicação cliente é utilizado o banco de dados orientado a objeto DB4O, onde são  persistidos os objetos até que eles sejam transferidos a aplicação servidora por meio da  camada de comunicação.

DB4O  é  um  banco  próprio  para  aplicações  portáteis  e  nativo  para  o uso  de  objetos   e   tem   suporte   nativo   para   Java.   A   aplicação   cliente   deve   sempre   entra   em  contato com a aplicação servidora sempre que for necessário descarregar os objetos. 

4. Conclusão Neste artigo foi apresentado um modelo para construção de aplicações que necessitem  de coleta e processamento de forma assíncrona. A opção pela utilização das tecnologias  descritas   mostrou­se   acertada,   por   facilitar   a   implementação   e   manutenção   de  aplicações do tipo. Na aplicação servidor o uso de um banco de dados relacional junto a aplicação  Java, mostrou­se acertada pelo fato do grande uso desse tipo de banco, facilitando assim  a construção ou aperfeiçoamento de um sistema já existente.

Na aplicação cliente o uso do DB4O junto à aplicação mostrou­se muito  importante, não deixando o cliente totalmente dependente do servidor, alem de  facilitar a manutenção do sistema, alem de possuir um melhor desempenho. Referências  Battisti, Julio. (2006) tutorial TCP/IP parte 11 – TCP, UDP e Portas de Comunicação  disponível   em     acessado em 18/05/09. Colouris, George. (2007) Sistemas distribuídos: conceitos e projeto.4 .ed. Porto Alegre:  Bookman. Linhares,   Mauricio   Introdução   ao   hibernate   3   disponível   em    acessado em 17/05/09. Monteiro,   Eduardo(2006)   db4o   :   Banco   OO   disponível   em   acessado em  19/05/09 Informações   db4o   disponível   em     acessado   em  19/05/09.

Related Documents