JULIO CESAR DE SOUZA SINCRONIZAÇÃO DE DADOS EM DISPOSITIVOS MÓVEIS UTILIZANDO WEB SERVICES Trabalho de conclusão de curso apresentado ao Curso de Tecnologia em Informática como requisito parcial à obtenção do grau de Tecnólogo em Informática Universidade Tecnológica Federal do Paraná. Orientadora: Vendramin. CURITIBA, 2006 Profª Ana Cristina B. Kochem JULIO CESAR DE SOUZA SINCRONIZAÇÃO DE DADOS EM DISPOSITIVOS MÓVEIS UTILIZANDO WEB SERVICES Este trabalho de conclusão de curso foi julgado adequado à obtenção do grau de Tecnólogo em Informática e aprovada em sua forma final pelo Curso de Graduação em Tecnologia em Informática da Universidade Tecnológica Federal do Paraná. Curitiba – PR, outubro de 2006 ______________________________________________________ Profª Ana Cristina B. Kochem Vendramin Universidade Tecnológica Federal do Paraná ______________________________________________________ Prof. Universidade Tecnológica Federal do Paraná ______________________________________________________ Prof. Universidade Tecnológica Federal do Paraná ii RESUMO O objetivo final deste trabalho prático-teórico é demonstrar, através de implementação, a possibilidade de integração entre dispositivos móveis com diversos outros sistemas através da utilização de Web Services, buscando conciliar praticidade, flexibilidade e interoperabilidade em um pacote de soluções viável e de baixo custo. Palavras-chave: Web Services, sincronização de dados, PDA, JAVA conduit. iii SUMÁRIO LISTA DE SIGLAS............................................................................................................................................... 6 LISTA DE FIGURAS............................................................................................................................................ 7 1 INTRODUÇÃO.................................................................................................................................................... 1 2 DETALHES DA EMPRESA...............................................................................................................................3 2.1 OBJETIVOS DO SISTEMA ...................................................................................................................................... 3 3 SOFTWARE E HARDWARE UTILIZADOS.................................................................................................. 5 3.1 J2EE 1.4 SDK................................................................................................................................................ 5 3.2 ECLIPSE 3.1....................................................................................................................................................... 5 3.3 TOMCAT 5.0.18................................................................................................................................................ 5 3.4 CDK 4.03....................................................................................................................................................... 6 3.5 SATELLITE FORMS 6.0.........................................................................................................................................6 3.6 APACHE 1.3.27................................................................................................................................................. 6 3.7 AXIS 1.1........................................................................................................................................................... 7 3.8 MYSQL 4.0.15.................................................................................................................................................. 7 3.9 PHPMYADMIN 2.5.3........................................................................................................................................ 7 3.10 PHP 4.3.3......................................................................................................................................................7 3.11 HARDWARE UTILIZADO..................................................................................................................................... 8 4 ANÁLISE DO SISTEMA.................................................................................................................................... 9 4.1 ESTUDO DE VIABILIDADE..................................................................................................................................... 9 4.2 ANÁLISE - MODELAGEM DOS DADOS.....................................................................................................................9 4.2.1 Entidades Externas............................................................................................................................... 12 4.2.2 Depósitos.............................................................................................................................................. 12 4.2.3 Fluxo de Dados.................................................................................................................................... 13 4.2.4 Processos.............................................................................................................................................. 14 5 PROJETO E IMPLEMENTAÇÃO................................................................................................................. 16 5.1 O PALM SAAVE............................................................................................................................................... 16 5.2 TABELAS DO SISTEMA....................................................................................................................................... 17 5.2.1 Tabela Ovos.........................................................................................................................................19 5.2.2 Tabela Logon........................................................................................................................................20 5.2.3 Tabela Operador.................................................................................................................................. 20 Tabela Piquete..............................................................................................................................................21 Tabela Cdaves.............................................................................................................................................. 21 Tabela LogonA............................................................................................................................................. 21 Tabela OvosA............................................................................................................................................... 22 Tabela PiqueteA........................................................................................................................................... 22 Tabela Prop..................................................................................................................................................23 5.3 TELAS DO SISTEMA........................................................................................................................................... 23 Tela do Sistema............................................................................................................................................ 23 Tela Início.................................................................................................................................................... 25 Tela Logon....................................................................................................................................................26 Tela Menu – Início....................................................................................................................................... 30 Tela Menu – Continuação............................................................................................................................ 34 Tela Cadastro de Ovos.................................................................................................................................35 Tela Listagem de Ovos................................................................................................................................. 39 Tela Banco de Horas....................................................................................................................................42 5.4 SAAVEPALM CONDUIT...................................................................................................................................... 43 iv 6 TESTES...............................................................................................................................................................46 7 INSTALAÇÃO DO SISTEMA......................................................................................................................... 47 8 MANUTENÇÃO................................................................................................................................................ 52 9 CONCLUSÃO.................................................................................................................................................... 53 9.1 TRABALHOS FUTUROS....................................................................................................................................... 54 REFERÊNCIAS BIBLIOGRÁFICAS............................................................................................................... 56 v Lista de Siglas CD – Compact Disk CDK – Conduit Development Kit CORBA – Common Object Request Broker Architecture DCOM – Distributed Component Object Model GPL – GNU Public License HTTP – Hypertext Transfer Protocol IBM – International Business Machines IDE – Integrated Development Environment PC – Personal Computer PDA – Personal Digital Assistants PDB – Palm Data Base PHP – Personal Home Page RMI – Remote Method Invocation SDK – Standard Development Kit SOAP – Simple Object Access Protocol XML – Extensible Markup Language WSDL – Web Service Definition Language vi Lista de Figuras FIGURA 1 – DIAGRAMA DE CONTEXTO DO SISTEMA...........................................................................10 FIGURA 2 – DIAGRAMA MACROSCÓPICO DO SISTEMA...................................................................... 11 FIGURA 3 – DIAGRAMA ENTIDADE RELACIONAMENTO DO SISTEMA.......................................... 19 FIGURA 4 – ÍCONE DE ACESSO AO SISTEMA PALM SAAVE................................................................24 FIGURA 5 – TELA DE INÍCIO DO SISTEMA PALM SAAVE.....................................................................25 FIGURA 6 – LOGON NO SISTEMA PALM SAAVE......................................................................................27 FIGURA 7 – TECLADO NUMÉRICO AUTOMÁTICO................................................................................. 29 FIGURA 8 – MENU COM BOTÃO CONFIGURAÇÕES............................................................................... 31 FIGURA 9 – TELA DE CONFIGURAÇÕES DO PALM SAAVE..................................................................33 FIGURA 10 – MENU COMPLETO................................................................................................................... 34 FIGURA 11 – TELA CADASTRO DE OVO..................................................................................................... 36 FIGURA 12 – MENSAGEM DA COLETA DE OVO.......................................................................................38 FIGURA 13 – TELA LISTAGEM DE OVOS....................................................................................................40 FIGURA 14 – MENU PARA EXCLUSÃO DE REGISTROS......................................................................... 41 FIGURA 15 – TELA BANCO DE HORAS........................................................................................................42 FIGURA 16 - CONFIGURAÇÃO DO CONDUIT............................................................................................ 49 FIGURA 17 – PARÂMETROS DO CONDUIT.................................................................................................50 vii viii 1 Introdução Com a crescente necessidade de intercomunicação entre sistemas, novas tecnologias e ferramentas surgem para auxiliar e aperfeiçoar o desenvolvimento de softwares distribuídos. Este trabalho de conclusão de curso visa, através de implementação, demonstrar a viabilidade da integração entre sistemas integrados e dispositivos móveis de uma forma simples, aliando praticidade e baixo custo em uma única solução. A utilização de web services vem sendo empregada com êxito em diversas situações onde há a necessidade de intercomunicação de sistemas com trocas de dados (exchange). Devido à relativa simplicidade e a fácil aplicabilidade do modelo utilizado em aplicações web services se comparado com outros modelos concorrentes como CORBA (Common Object Request Broker Architecture), Java RMI(Remote Method Invocation), DCOM (Distributed Component Object Model) ou .NET Remoting, este trabalho utiliza como paradigma o desenvolvimento de aplicativos distribuídos baseados na troca de dados através da publicação e acesso aos serviços disponibilizados por cada software que compõe o sistema. Através da realização de uma pesquisa técnica, os equipamentos e softwares utilizados foram escolhidos de forma a fornecer um pacote de desenvolvimento viável tecnicamente e economicamente, possibilitando desta forma que novas tecnologias e procedimentos possam ser utilizados por vários setores do mercado da informação e da tecnologia da informação. A empresa ECOSTRUZ demonstrou interesse pelo modelo de desenvolvimento de sistemas distribuídos abordado neste trabalho, e propôs a criação de um sistema integrado que atendesse às necessidades identificadas pelos seus gestores. Após a discussão da idéia inicial, chegou-se a especificação de um sistema para controle das atividades essenciais realizadas nos procedimentos diários, executados pelos funcionários da empresa. O objetivo final da criação 1 deste sistema é proporcionar um maior controle do processo que envolve a empresa em suas atividades operacionais, afim de facilitar e melhorar o acesso às informações pelos clientes desta. Buscando agrupar tecnologias já conhecidas, foi possível chegar em um produto final embasado nas soluções propostas, além de se verificar a eficiência da integração destas tecnologias para a obtenção de um sistema final inovador e funcional, que possuí como principais características a versatilidade, a flexibilidade, a interoperabilidade entre sistemas e a adaptabilidade a diversos cenários e situações. 2 2 Detalhes da Empresa A ECOSTRUZ é uma empresa localizada na cidade de Araucária no estado do Paraná, e tem como enfoque principal o mercado da estrutiocultura. Atuando através de parcerias e sociedades, investe em equipamentos sofisticados e na melhoria constante da estrutura da fazenda, afim de propiciar bons resultados aos seus investidores. Os investimentos em novas tecnologias para automatização dos processos internos estão resultando em uma maior lucratividade e em um aumento significativo da qualidade dos produtos oferecidos pela empresa. 2.1 OBJETIVOS DO SISTEMA O objetivo principal do sistema é melhorar alguns dos processos funcionais da empresa com o intuito de aumentar a produtividade, criando assim benefícios econômicos à mesma. Até o momento da implementação do sistema, a empresa necessitava realizar o cadastro da postura dos ovos manualmente através de fichários. No fim do expediente, era necessário conferir todos os fichários manualmente e passá-los para o sistema já existente. Este processo acabava por demandar muito tempo dos funcionários e gerava muitos erros no momento do cadastro no sistema atual. O controle das horas de trabalho dos funcionários responsáveis pela realização da coleta dos ovos passou a ser outro problema a ser resolvido, devido ao crescimento do negócio da empresa. Desta forma, foram definidos três pontos principais como objetivos específicos do sistema: • Implementação do controle de horas dos funcionários; • Implementação do cadastro de ovos no software do PDA (Personal Digital Assistants), integrado com o sistema externo; 3 • Implementação de validações e consistências no software do PDA, afim de eliminar erros humanos naturais que ocorrem atualmente com o cadastro manual. Como resultado da implementação do sistema foi possível alcançar uma melhoria na qualidade dos dados coletados na fazenda, redução de custos operacionais devido à automatização de alguns processos e maior rapidez ao acesso às informações de negócio da empresa, tanto pelos clientes como pelos administradores desta. 4 3 Software e Hardware Utilizados Para o desenvolvimento do trabalho, foram utilizadas ferramentas de desenvolvimento (softwares e hardware) e de testes. Nas próximas seções há a especificação de cada tecnologias utilizada. 3.1 J2EE 1.4 SDK O J2EE 1.4 SDK (Standard Development Kit) [JAV 01] é o kit de desenvolvimento JAVA que contém todos os pacotes e classes necessárias para a criação e execução dos aplicativos envolvidos no trabalho. Ele é fornecido gratuitamente pela Sun Microsystems. 3.2 ECLIPSE 3.1 Para a criação dos códigos JAVA, foi utilizado a IDE (Integrated Development Environment) de desenvolvimento Eclipse [ECL 02], a qual fornece várias funcionalidades facilitadoras ao desenvolvimento de aplicativos e à realização de testes. 3.3 TOMCAT 5.0.18 O servidor HTTP (Hypertext Transfer Protocol) utilizado para a realização de testes foi o TomCat [TMC 00]. Juntamente com o Axis foi possível publicar serviços web services e realizar testes de integração com os outros sistemas criados. 5 3.4 CDK 4.03 O CDK (Conduit Development Kit) [CDK 04] é o kit de desenvolvimento de conduits fornecido gratuitamente pela PalmOS®, e contém classes e pacotes para acesso às funcionalidades do PDA. 3.5 SATELLITE FORMS 6.0 O Satellite Forms é a IDE de desenvolvimento para aplicativos em PDAs que utilizam o sistema operacional PalmOS. O Satellite Forms [STF 04] é composto por uma IDE de desenvolvimento e pelo ambiente de execução dos aplicativos criados (runtime). Após a instalação das bibliotecas no PDA através de um executável contido no pacote do Satellite Forms, é possível transferir os aplicativos criados e executá-los no PDA. O custo estimado da licença para desenvolvimento é de U$ 795,00. 3.6 APACHE 1.3.27 O Apache [APC 02] foi utilizado juntamente com o PHP (Personal Home Page) para a realização de testes com geração de relatórios de dados consistidos pelas chamadas web services realizadas por aplicativos externos. O Apache pode ser utilizado gratuitamente em desenvolvimentos coorporativos (open source), no entanto não permite que este seja alterado pois não é coberto pela GPL (GNU Public Licence). 6 3.7 AXIS 1.1 O Axis [AXS 02] é uma plataforma para publicação de serviços web services fornecida gratuitamente (open source) e que, utilizada juntamente com o TomCat, possibilita uma fácil manipulação e publicação dos serviços criados para a gravação e recuperação dos dados necessários para o funcionamento dos sistemas. 3.8 MYSQL 4.0.15 O MySql [MSQ 00] é um sistema gerenciador de banco de dados que fornece uma camada de persistência dos dados. Algumas versões do MySQL podem ser utilizadas gratuitamente em aplicações coorporativas. 3.9 PHPMYADMIN 2.5.3 O PHPMyAdmin [PMA 03] é uma ferramenta gratuita utilizada para a manipulação do banco de dados e fornece facilidades para a criação de tabelas e para a visualização dos dados inseridos no banco de dados. 3.10 PHP 4.3.3 O PHP [PHP 02] é um conjunto de bibliotecas que, juntamente com o Apache, possibilita que códigos sejam criados e executados nesta linguagem. 7 3.11 HARDWARE UTILIZADO Foi utilizado um Palm One Zire 21 para o deployment1 do projeto e para a realização dos testes. Este PDA possui como sistema operacional o Palm OS, o qual permite que bibliotecas e programas externos sejam instalados e executados. 1 Etapa de instalação, testes e execução de um sistema 8 4 Análise do Sistema Utilizou-se a análise estruturada moderna [YRD 00] como metodologia para a construção da modelagem do sistema e do projeto conceitual, lógico e físico de banco de dados. Para que os objetivos da construção do sistema pudessem ser alcançados, cada etapa foi definida com atividades e produtos específicos, as quais fazem parte do ciclo de vida clássico de projetos. Nas subseções abaixo há uma descrição mais específica sobre cada etapa adota pela metodologia deste trabalho. 4.1 ESTUDO DE VIABILIDADE O estudo da viabilidade econômica do desenvolvimento do projeto foi realizado pela própria empresa. Assim que os administradores da fazenda identificaram a necessidade da automatização de alguns processos internos, tentou-se encontrar diversas soluções para os problemas identificados. Devido ao baixo custo dos softwares e ferramentas utilizadas pela solução proposta por este trabalho, constatou-se a compensação do custo/benefício em um curto período após o início da implementação da solução proposta. Através de entrevistas com os responsáveis pelas áreas afetadas pela implementação do sistema, foi possível definir o escopo do novo sistema e quais seriam as ferramentas utilizadas para a criação deste, afim de se verificar a viabilidade técnica do mesmo. 4.2 ANÁLISE - MODELAGEM DOS DADOS Para um melhor entendimento do sistema como um todo e de suas principais funções, algumas ferramentas de análise de sistemas foram 9 utilizadas para a representação visual do fluxo de dados e do relacionamento dos mesmos dentro do sistema. Os DFDs a seguir mostram, respectivamente, o primeiro e o segundo níveis do fluxo dos dados no sistema desenvolvido, bem como o relacionamento existente na interação do sistema externo com o sistema desenvolvido e do usuário com este último. P1 Entrada de dados A Usuário B PALM SAAVE • Dados do sistema Dados da coleta Sistema Externo Figura 1 – Diagrama de Contexto do Sistema • O DFD ilustrado na Figura 2 mostra o detalhamento do processo P1. 10 Informações sobre ovos coletados Us uá Usuário rio Total de horas Envio de dados ovos Dados das aves D1 Cadastro de piquetes Dados dos piquetes Ovos B Horas trabalhadas Cadastro de aves Informações sobre Consiste código do ovo, piquete e código da ave D2 Dados do sistema externo Resultado da verificação Ovos processados d Sistema Externo Sincroniza Dados P2 Dados do logon Dados Coletados P4 Verifica Dados Dados do sistema A Ovos coletados P1 Aves D3 Piquetes P3 Calcula Horas Horas acumuladas Total de D4 Banco de Horas horas Figura 2 – Diagrama Macroscópico do Sistema 11 O dicionário de dados abaixo descreve de uma forma específica cada entidade do diagrama macroscópico do sistema. 4.2.1 ENTIDADES EXTERNAS Nome: Usuário Descrição: operadores do sistema Referência: A Tipos Existentes: Nome: Sistema Externo Descrição: sistema de informação externo Referência: B Tipos Existentes: sistemas de informação 4.2.2 DEPÓSITOS Nome: Ovos Referência: D1 Descrição: ovos cadastrados no PDA Conteúdo: código da propriedade, código do ovo, código identificador da ave, código do piquete, responsável pela coleta, responsável pela armazenagem, data da coleta Nome: Aves Referência: D2 Descrição: dados cadastrais de aves Conteúdo: código da propriedade, código da ave Nome: Piquetes Referência: D3 Descrição: dados cadastrais de piquetes Conteúdo: código da propriedade, código do piquete, tipo do piquete Nome: Banco de Horas Referência: D4 Descrição: dados de logons e logoffs realizados pelos usuários Conteúdo: operador do sistema, data inicial, total de minutos, data + hora de inicio, data + hora fim 12 4.2.3 FLUXO DE DADOS Nome: Informações sobre ovos coletados Referência: EP1-1 Nome: Total de Horas Referência: EP1-2 Nome: Resultado da verificação Referência: EP1-3 Nome: Dados do sistema Referência: SP1-1 Nome: Ovos coletados Referência: SP1-2 Nome: Envio de dados Referência: SP1-3 Nome: Informações sobre ovos Referência: EP2-1 Nome: Dados dos piquetes Referência: EP2-2 Nome: Dados das aves Referência: EP2-3 Nome: Dados do logon Referência: EP3-1 Nome: Horas acumuladas 13 Referência: EP3-2 Nome: Total de horas Referência: SP3-1 Nome: Total de horas Referência: SP3-2 Nome: Ovos processados Referência: EP4-1 Nome: Horas trabalhadas Referência: EP4-2 Nome: Dados do sistema externo Referência: EP4-3 Nome: Cadastro de aves Referência: SP4-1 Nome: Cadastro de piquetes Referência: SP4-2 Nome: Ovos coletados Referência: SP4-3 4.2.4 PROCESSOS Nome: Verifica Dados Referência: P1 Descrição: realiza verificação da entrada de dados pelo usuário Fluxos de entrada: EP1-1, EP1-2, EP1-3 14 Fluxos de saída: SP1-1, SP1-2, SP1-3 Resumo lógico: o processo é responsável por coletar e agrupar os dados recebidos pela entrada efetuada pelo usuário, e realizar as verificações de consistências necessárias. Envia os dados processados da entrada para o processo P2 e recebe o resultado da verificação efetuado por este Nome: Consiste código do ovo, piquete e código da ave Referência: P2 Descrição: agrupa dados e realiza comparações com dados pré-cadastrados Fluxos de entrada: SP1-3, EP2-2, EP2-2, EP2-3 Fluxos de saída: EP1-3 Resumo Lógico: recebe os dados pré-processados pelo processo P1 e realiza a consistência dos dados solicitados através da consulta de informações contidas nos depósitos D1, D2 e D3. Nome: Calcula Horas Referência: P3 Descrição: efetua a somatória das horas trabalhadas Fluxos de entrada: EP3-1, EP3-2 Fluxos de saída: SP3-1, SP3-2 Resumo lógico: monitora logons e logoffs efetuados e calcula as horas trabalhadas pelos usuários armazenando e recuperando informações referentes a este processo no depósito D4 Nome: Sincroniza Dados Referência: P4 Descrição: realiza a transferência de dados entre os sistemas Fluxos de entrada: EP4-1, EP4-2, EP4-3 Fluxos de saída: SP4-1, SP4-2, SP4-3 Resumo lógico: armazena e recupera informações em todos os depósitos realizando a transferência dos dados entre o sistemas. 15 5 Projeto e Implementação Após etapas preliminares como instalação e configuração dos softwares utilizados para o início das atividades práticas, iniciou-se o desenvolvimento dos aplicativos que compõe o sistema. O sistema é formado, basicamente por dois módulos. O primeiro consiste no aplicativo executado no PDA o qual é responsável pela coleta dos dados e consistência física destes. O processo de coleta dos dados foi definido de acordo com os procedimentos já realizados por um sistema de cadastro manual em fichários utilizados para a coleta diária de informações de ovos e para o controle da produtividade dos funcionários na empresa ECOSTRUZ. O software desenvolvido para o PDA foi elaborado de acordo com informações coletadas na ECOSTRUZ, e este tem como principais objetivos um maior controle sobre a produtividade dos funcionários bem como uma coleta mais precisa e eficiente das informações sobre os ovos produzidos internamente, os quais representam 70% das atividades essenciais e de alta prioridade dentro da empresa. O segundo módulo do sistema é formado pelo conduit o qual é responsável pela leitura dos dados coletados pelo PDA. O conduit funciona como um middleware capaz de gravar e recuperar dados do PDA e de interagir com o meio externo através de chamadas a classes externas. Uma descrição mais específica sobre cada módulo e os softwares criados para a integração do sistema pode ser vista nas seções seguintes. 5.1 O PALM SAAVE O Palm Saave foi desenvolvido com o Satellite Forms e é o software executado no PDA. É formado por sete telas e por nove tabelas que são usadas na gravação dos registros gerados pela utilização do software, para a listagem de dados externos previamente gravados e para filtragem de dados em determinadas circunstâncias. Algumas tabelas são utilizadas apenas como 16 tabelas internas do software, e somente quatro destas tem como finalidade a consistência e transferência dos dados manipulados pelo software. O Palm Saave é formado por um login de usuários os quais são fornecidos por uma base de dados criada externamente. Sempre que uma sincronização de dados é efetuada com o PDA, ocorre a atualização automática destes usuários do sistema e suas respectivas senhas. Outras informações como a lista de piquetes, códigos de aves e informações sobre propriedades também são atualizadas nesta sincronização. Isto significa que o sistema é auto-suficiente com relação a vários aspectos como segurança, já que somente usuários cadastrados podem utilizar o sistema, e com relação à confiabilidade dos dados coletados já que são feitas várias consistências internas que impedem a entrada incorreta de dados por parte dos usuários. Por fim, são consistidos em uma tabela interna do sistema dados sobre as operações executadas pelos usuários no sistema. Estas informações são transferidas ao meio externo sempre que acontece uma sincronização do PDA através do HotSync. 5.2 TABELAS DO SISTEMA O Palm Saave utiliza tabelas internas para a persistência temporária dos dados. As tabelas no PDA são estruturadas no formato .pdb (Palm Data Base). Neste tipo de tabela não é possível realizar operações como em um banco de dados tradicional e, para que seja possível criar um novo registro, alterar ou excluir, é necessário percorrer a tabela até o fim em busca do registro e, então, executar a operação desejada. No caso da inserção de novos registros, estes devem ser inseridos no fim da tabela. Para o contorno de limitações ao utilizar as tabelas do PDA, são utilizadas tabelas de controle que permitem uma melhor organização dos dados dentro da aplicação do PDA, e reduzem em muito os impactos de performance que poderiam ocorrer como conseqüência das limitações em 17 operações de busca. Desta forma, é possível classificar as tabelas utilizadas no sistema em dois tipos: dados e controle. As tabelas de dados acumulam informações que serão transmitidas aos sistemas externos no momento da sincronização. As tabelas de controle guardam informações sobre a execução do programa. Elas são necessárias devido à baixa capacidade de processamento do PDA. Estas tabelas funcionam como filtros de dados e proporcionam uma performance aceitável ao aplicativo executado no PDA. Quando ocorre uma sincronização com sucesso, as tabelas do PDA são atualizadas ou reinicializadas. Caso ocorra algum problema na sincronização dos dados, estas tabelas são mantidas inalteradas até que uma nova sincronização seja executada. A Figura 3 mostra o diagrama de entidade e relacionamento criado para a representação do relacionamento entre as tabelas do sistema. Pelo fato de muitas tabelas serem geradas dinamicamente, ou seja, possuem uma utilidade somente em momentos específicos da execução do software, somente as tabelas responsáveis pela persistência dos dados são representadas neste diagrama. 18 Figura 3 – Diagrama Entidade Relacionamento do Sistema Abaixo segue uma descrição das tabelas de dados utilizadas pelo sistema. 5.2.1 TABELA OVOS A tabela OVOS armazena todas as informações sobre os ovos coletados. É composta pelos seguintes campos: • CD_PROP – Código da propriedade (tipo: char de 10 caracteres); • CD_OVO – Código do ovo (chave única; tipo: char de 10 caracteres); 19 • TP_IDENT – Código identificador da ave (tipo: char de 2 caracteres); • CD_PIQT – Código do piquete (tipo: char de 10 caracteres); • RESP_COLT – Responsável pela coleta (tipo: char de 10 caracteres); • RESP_ARM – Responsável pela armazenagem (tipo: char de 10 caracteres); • DATAAUX – Data da coleta (tipo: char de 10 caracteres); • DT_COLT – Data da coleta (tipo: date). 5.2.2 TABELA LOGON A tabela LOGON armazena informações sobre a utilização do PDA pelos funcionários do sistema como o horário de início de uso, o horário final e o total em minutos. É composta pelos seguintes campos: • OPERADOR – Operador do sistema (tipo: char de 10 caracteres); • DATA – Data inicial (tipo: char de 10 caracteres); • TOTAL – Total de minutos (tipo: char de 12 caracteres); • DTHRINI – Data + hora de início (tipo: char de 10 caracteres); • DTHRFIM – Data + hora de fim (tipo: char de 10 caracteres). 5.2.3 TABELA OPERADOR A tabela OPERADOR contém os usuários que podem utilizar o aplicativo Palm Saave. É composta pelos seguintes campos: • NOME – Nome do usuário (tipo: char de 10 caracteres); • SENHA – Senha do usuário (tipo: char de 6 caracteres). 20 TABELA PIQUETE A tabela PIQUETE contém os dados sobre os piquetes, a empresa correlacionada e o tipo deste. É composta pelos seguintes campos: • CD_PROP – Código da propriedade (tipo: char de 10 caracteres); • CD_PIQT – Código do piquete (tipo: char de 10 caracteres); • TP_PIQT – Tipo do piquete (tipo: char de 3 caracteres). TABELA CDAVES A tabela CDAVES armazena a relação entre propriedades e aves. A cardinalidade indica que uma propriedade pode possuir várias aves (1:N). É composta pelos seguintes campos: • PROPR – Código da propriedade (tipo: char de 20); • CODAVE – Código da ave (tipo: char de 20). TABELA LOGONA A tabela LOGONA é utilizada para o filtro de logons. Antes da listagem de logons ser exibida na tela, esta tabela é populada com registros filtrados de acordo com o usuário. É composta pelos seguintes campos: • OPERADOR – Operador do sistema (tipo: char de 10 caracteres); • DATA – Data inicial (tipo: char de 10 caracteres); • DTHRINI – Data + hora de inicio (tipo: char de 10 caracteres); • DTHRFIM – Data + hora de fim (tipo: char de 10 caracteres); • TOTAL – Total de minutos (tipo: char de 12 caracteres). 21 TABELA OVOSA A tabela OVOSA é utilizada para a filtragem de ovos no momento da listagem na tela. É composta pelos seguintes campos: • CD_PROP – Código da propriedade (tipo: char de 10 caracteres); • CD_OVO – Código do ovo (chave única; tipo: char de 10 caracteres); • TP_IDENT – Código identificador da ave (tipo: char de 2 caracteres); • CD_PIQT – Código do piquete (tipo: char de 10 caracteres); • DT_COLT – Data da coleta (tipo: date); • RESP_COLT – Responsável pela coleta (tipo: char de 10 caracteres); • RESP_ARM – Responsável pela armazenagem (tipo: char de 10 caracteres). TABELA PIQUETEA A tabela PIQUETEA é utilizada para o filtro de piquetes e aves de acordo com a propriedade selecionada pelo usuário. É composta pelos seguintes campos: • CD_PROP – Código da propriedade (tipo: char de 10 caracteres); • CD_PIQT – Código do piquete (tipo: char de 10 caracteres); • TP_PIQT – Código identificador da ave (tipo: char de 2 caracteres). 22 TABELA PROP A tabela PROP é utilizada para a filtragem de propriedades. Ela é populada com os dados das propriedades no momento da sincronização. É composta pelo seguinte campo: • 5.3 CD_PROP – Código da propriedade (tipo: char de 10 caracteres). TELAS DO SISTEMA O Palm Saave é composto por telas navegáveis e intuitivas ao operador do sistema. As telas contêm os componentes de interação com o usuário como campos de entrada e visualização de dados, campos combobox, drop-lists, botões e links. Uma das características do desenvolvimento destas telas é a possibilidade da associação destas com eventos, dependendo da necessidade do programador. Existem vários eventos default disponíveis para serem utilizados em diversas ocasiões, mas também é possível criar eventos para que scripts sejam executados em determinados momentos, o que acaba por suprir completamente todas as necessidades relativas à criação de telas interativas e de fácil uso (user-friendly). A seguir há uma descrição detalhada das telas do sistema, o objetivo funcional de cada uma dentro do sistema, e os eventos associados a estas e a seus componentes. TELA DO SISTEMA Quando o sistema Palm Saave é instalado no PDA, um ícone é criado na tela principal deste, como pode-se observar na marcação em ilustrada na Figura 4. 23 Figura 4 – Ícone de acesso ao sistema Palm Saave Ao clicar no ícone do sistema, a aplicação Palm Saave é iniciada e uma tela inicial é aberta ao usuário. 24 TELA INÍCIO A tela de início é uma apresentação do sistema Palm Saave. Contém informação sobre a versão do sistema e um botão para o início da aplicação conforme é possível observar na figura 5. Figura 5 – Tela de início do sistema Palm Saave 25 Quando o usuário clica no botão Iniciar, um script é executado e a tela do menu do sistema é aberta. Portanto, o único objetivo desta tela é apresentar o sistema ao usuário e informá-lo sobre a versão do software utilizado pois podem ocorrer eventuais modificações no sistema. TELA LOGON Quando o usuário entra no sistema, uma tela de logon é mostrada (ver Figura 6) com os campos usuário e senha a serem preenchidos e um botão que indica a execução do logon no sistema. 26 Figura 6 – Logon no sistema Palm Saave O campo usuário foi construído como um componente drop list, e quando o usuário clica em cima deste, uma lista de usuários é mostrada para que seja feita a seleção. O campo senha é um componente edit control configurado para exibir um teclado numérico automático. Este tipo de teclado é fornecido pela API de desenvolvimento como default e agiliza o desenvolvimento da aplicação 27 pois trata os eventos de entrada e saída automaticamente. Este teclado possui várias funcionalidades como a configuração para a entrada obrigatória dos dados, o formato da entrada dos dados e a possibilidade da realização de operações matemáticas simples em sua execução. Este campo foi configurado para que a entrada da senha fique “escondida”, o que evita que outras pessoas possam visualizar qual a senha digitada pelo usuário. Na Figura 7 é possível observar o funcionamento do teclado numérico automático para a entrada da senha no sistema. 28 Figura 7 – Teclado Numérico Automático Quando o usuário digita a senha e pressiona o botão Done, ocorre o retorno à tela de logon. O usuário deve então pressionar o botão LogOn e, caso os dados entrados estejam corretos, a próxima tela será exibida. Caso contrário uma mensagem de erro será mostrada e o usuário deverá corrigir a senha entrada executando a operação novamente. 29 TELA MENU – INÍCIO Após o logon no sistema, a tela de menu é exibida com o botão Configurações visível. Nesta etapa o usuário é obrigado a clicar no botão para realizar as configurações necessárias para a utilização do sistema. A Figura 8 ilustra a tela do menu com o botão Configurações visível: 30 Figura 8 – Menu com botão Configurações Quando o usuário clica no botão, a tela de configurações é aberta. Nesta tela o usuário pode verificar se a data e hora do PDA estão corretas e, caso não estejam, deverá acertá-las e efetuar logon novamente no sistema. Na tela de configurações do sistema, o usuário deverá informar qual a propriedade corrente de trabalho. Ao se clicar no campo Cód. Propriedade, uma lista de 31 propriedades é mostrada e o usuário deve então salvar esta configuração pressionando o botão Salvar. O usuário pode retornar a esta tela em qualquer momento para realizar estas mesmas configurações. Inicialmente o campo Cód. Propriedade estava junto com os outros dados de logon do usuário porém, após alguns testes, notou-se que era mais produtivo a criação de um espaço para a realização das diversas configurações que podem vir a aparecer com o desenvolvimento de novos módulos para o sistema. A tela de configurações foi criada para que quando ocorra uma expansão no software, sejam incluídas novas opções de customização que possam ser realizadas no momento da execução do aplicativo de uma forma a minimizar a complexidade da navegação entre as telas pelo usuário. A Figura 9 mostra a tela de configurações no momento atual. 32 Figura 9 – Tela de configurações do Palm Saave 33 TELA MENU – CONTINUAÇÃO Quando o usuário salva as configurações efetuadas na tela de configuração, o menu é exibido novamente, porém com todas as opções habilitadas, como pode-se observar na figura 10. Figura 10 – Menu Completo 34 Nesta tela o usuário tem acesso às outras funcionalidades do Palm Saave, as quais serão descritas nas seções seguintes. TELA CADASTRO DE OVOS A tela cadastro de ovos é aberta assim que o usuário pressiona o botão Cadastro de Ovos no menu principal. A Figura 11 mostra o status da tela de cadastro de ovos quando aberta. 35 Figura 11 – Tela Cadastro de Ovo Nesta tela, o campo propriedade aparece com o valor que foi configurado na tela de configurações do sistema. Isto facilita para o usuário pois além de informar para qual propriedade os ovos correntes estão sendo cadastrados, mantém uma lógica no processo executado dentro da empresa por quem utiliza o PDA. 36 No campo Cód Ave o usuário deve informar o código da ave para a qual o ovo está sendo cadastrado. O usuário deverá informar um código válido neste campo pois uma verificação de consistência de dados é executada no fim da operação de cadastro, quando o usuário pressiona o botão Salvar. A verificação de consistência para este campo é feita de acordo com os registros contidos na tabela CDAVES, o que significa que o código da ave inserido deve existir para a propriedade de trabalho corrente. No campo Ovo o usuário deve inserir o código do ovo o qual é previamente etiquetado por um outro funcionário da empresa. Por este motivo, para este campo, a única consistência feita é com relação à repetição de códigos já que o processo para a geração de etiquetas para a enumeração dos ovos garante a consistência dos códigos para ovos. Não há uma verificação dos dados externos, como acontece no caso do código da ave. O campo Código Piquete é um drop list que exibe a lista de piquetes pertencentes à propriedade corrente de trabalho. Este drop list é preenchido de acordo com a tabela PIQUETESA. Esta tabela é reinicializada e gerada novamente cada vez que a tela de cadastro de ovos é exibida. Assim como ocorre com o campo de código da ave, esta tabela é gerada de acordo com a propriedade corrente de trabalho e então associada ao drop list. Este procedimento é executado no evento After Open da tela de cadastro de ovos. O usuário deve informar o responsável pela armazenagem do Ovo no campo Responsável Armazenagem. Este campo é um drop list que lista todos os usuários da tabela OPERADOR. Após preencher os campos solicitados, o usuário deverá clicar no botão Salvar para que o registro seja gravado. Neste momento, são feitas as verificações necessárias dos dados inseridos e uma mensagem informativa é exibida ao usuário conforme mostra a Figura 12. 37 Figura 12 – Mensagem da Coleta de Ovo Em caso de erro nos dados entrados, mensagens informativas são exibidas indicando quais dados devem ser corrigidos. Após realizar a gravação dos dados, a tela é reinicializada e o usuário pode continuar a realizar os cadastros ou retornar ao menu principal clicando no botão Menu. 38 TELA LISTAGEM DE OVOS No menu principal do sistema o usuário pode consultar os ovos cadastrados clicando no botão listagem de ovos. Esta tela é gerada através da tabela OVOSA. Esta tabela é reinicializada e populada sempre que o usuário entra nesta tela. A tabela OVOSA é preenchida somente com os registros referentes ao usuário corrente e é então associada a um componente list box da tela. Desta forma, o usuário só é capaz de visualizar, alterar ou excluir registros gerados por ele mesmo. Como é possível observar na Figura 13, a Listagem de Ovos cadastrados é uma síntese dos registros inseridos. 39 Figura 13 – Tela listagem de ovos Nesta tela o usuário poderá alterar cadastros já cadastrados selecionando o registro desejado e clicando no botão Alterar. Será aberta a tela de cadastro de ovos com os campos preenchidos de acordo com o registro selecionado pelo usuário, e então os dados poderão ser alterados. Há também a possibilidade da exclusão dos registros. Para isto o usuário deverá selecionar o registro a ser excluído, e clicar no canto superior esquerdo da tela, em cima do texto “Listagem de Ovos”. Neste momento, um menu é exibido com a opção Delete, permitindo que o registro seja excluido. Uma mensagem de confirmação de exclusão é exibida ao usuário antes da finalização da operação. A Figura 14 mostra a execução deste procedimento. 40 Figura 14 – Menu para exclusão de registros 41 TELA BANCO DE HORAS O usuário pode consultar a quantidade de horas em atividade pressionando o botão Banco de Horas no menu principal. A Figura 15 mostra um exemplo desta tela. Figura 15 – Tela Banco de Horas 42 Os campos exibidos nesta tela indicam o usuário logado no sistema, a data de logon e a quantidade em hora/minuto/segundo de cada logon. Caso o usuário faça logoff em algum momento, uma nova linha é criada assim que o usuário acessa o sistema em um novo logon. A última linha indica o logon corrente e o tempo desta linha é atualizado sempre que o usuário consulta esta tela. No parte inferior da tela é mostrado o total do tempo de utilização do aplicativo no formado hora/minuto/segundo. Este campo é a soma total do tempo de cada logon do usuário no sistema, inclusive o tempo do logon corrente. O programa é capaz de controlar vários logons de usuários distintos ao mesmo tempo. 5.4 SAAVEPALM CONDUIT O SaavePalm Conduit é formado por um conjunto de classes que são responsáveis pela leitura e gravação de dados no PDA. Desta forma, sempre que uma sincronização é executada pelo PDA, ocorre a chamada deste pacote de classes. É possível registrar classes a serem executadas na sincronização através da configuração de parâmetros do aplicativo CondCfg.exe do CDK. Os passos para o registro do conduit JAVA desenvolvido estão descritos no Capítulo 7. Desta forma, sempre que ocorre uma sincronização de dados todos os conduits registrados na tela de configuração deste aplicativo são executados juntamente com o HotSync. O conduit registrado com o nome SaavePalm é responsável pela manipulação dos dados que devem ser sincronizados entre o PDA e o PC (Personal Computer) no qual este está conectado. Quando o usuário aciona a sincronização de dados no PDA pelo HotSync o conduit SaavePalm instancia algumas classes JAVA responsáveis pela leitura de dados do PDA e comunicação com algum serviço web service publicado. E neste ponto que ocorre a integração entre o software desenvolvido para o PDA e o conduit, o qual está instalado no PC local. 43 Inicialmente a classe SaavePalmCond.class faz a leitura das tabelas do PDA. No passo seguinte, a classe WebServicesSaave.class lê as configurações do serviço publicado através da leitura da interface WSDL (Web Service Definition Language) [WSD 05] gerada pelo fornecedor, afim de identificar os métodos necessários e realizar a comunicação com o sistema externo. Assim que os métodos web services foram definidos pelo sistema externo, iniciou-se a construção das classes internas responsáveis pela manipulação dos dados obtidos das tabelas do PDA e da preparação destes para o envio ao sistema externo. Para isso, utilizou-se a ferramenta open source WSDL2Java, fornecida pela IBM (International Business Machines) [IBM 04]. Com esta ferramenta é possível gerar classes JAVA através da leitura de interfaces WSDL. Os métodos gerados nas classes criadas ficam disponíveis ao programador no formato de objetos façade, ou seja, no formato de uma biblioteca de software de fácil utilização e com uma interface bem definida. A comunicação ocorre através do envio e recebimento de pacotes SOAP (Simple Object Access Protocol) [SOA 05], os quais contém os dados encapsulados no padrão XML (Extensible Markup Language) [XML 05]. O WSDL é uma linguagem baseada em XML, utilizada para descrever um web service. O documento WSDL contém todas as definições de interfaces, operações, esquemas de codificação, etc. Basicamente, quando um cliente deseja enviar uma mensagem para um determinado web service, ele obtém a descrição do serviço (através da localização do respectivo documento WSDL) e, em seguida, constrói a mensagem, passando os tipos de dados corretos de acordo com a definição encontrada no documento. Em seguida, a mensagem é enviada para o endereço onde o serviço está localizado, a fim de que possa ser processada. O web service, quando recebe esta mensagem, valida-a conforme as informações contidas no documento WSDL. Então, o serviço remoto sabe como tratar a mensagem, sabe como processá-la e como montar a resposta ao cliente. Através da utilização da ferramenta WSDL2Java, gerou-se as classes stub (cliente) e skeleton (servidor) para a comunicação entre os sistemas. As seguintes classes foram geradas pelo aplicativo: 44 . WSDLSaave.java . WSDLService.java . WSDLServiceLocator.java . WSDLSoapBindingStub.java Quando a classe WSDLServiceLocator.class é instanciada, todos os métodos disponibilizados pelo serviço web services tornam-se disponíveis no formato de métodos JAVA. Esta classe implementa a interface WSDLSaave.class, a qual descreve todos os métodos publicados, indicando o tipo de entrada e de retorno dos mesmos. Desta forma, os passos executados pelo conduit (classe SaavePalmCond.class), no momento da sincronização, para a leitura e gravação dos dados, tanto no servidor como no PDA são os seguintes: • Leitura dos dados do PDA; • Leitura dos dados publicados pelo serviço web service; • Chamada do método web service para envio dos dados lidos do PDA, através da utilização da classe WSDLServiceLocator.class; • Chamada do método web service para leitura dos dados do sistema externo, através da utilização da classe WSDLServiceLocator.class; • Gravação no PDA dos dados lidos do sistema externo. Após estas etapas, a sincronização é finalizada e o PDA já possui os dados atualizados do sistema. 45 6 Testes No decorrer do desenvolvimento do projeto vários testes e simulações foram executados em conjunto com usuários chave da empresa. Ao finalizar a primeira versão do software, um ambiente novo foi criado para simular o funcionamento do sistema, da mesma forma que este seria usado no dia a dia. Poucos erros foram encontrados e a maioria das alterações efetuadas nesta etapa consistiu em melhorias no visual do software do PDA e na implementação de alguns recursos facilitadores ao usuário. Alguns problemas de comunicação entre o PDA e o PC foram identificados no início, e foram solucionados através da atualização do driver do PDA no PC de testes. Após muitas simulações executadas por diversos usuários e de várias formas, chegou-se a conclusão de que o sistema estava consistente e pronto para ser utilizado produtivamente. 46 7 Instalação do Sistema Nesta seção estão descritos os passos para a instalação do sistema Palm Saave no PDA. A instalação dos softwares descritos no Capítulo 3 deverá ser feita conforme o manual de instalação e configuração que acompanham os mesmos. Para que o Palm Saave possa ser executado no PDA, é necessário que o RDK (Runtime Time Deployment Kit) do Satellite Forms esteja instalado neste. É possível efetuar a instalação do RDK através da sincronização tradicional efetuada pelo aplicativo Palm Desktop do arquivo SF60RDK.prc. Para que a sincronização deste arquivo ocorra com sucesso, é necessário possuir o aplicativo HotSync instalado, bem como estar com o dispositivo PDA conectado ao PC. Os aplicativos Palm Desktop e HotSync devem ser instalados no PC de acordo com instruções contidas no CD (Compact Disk) que contém o pacote de instalação, o qual acompanha o PDA. O Palm Saave é instalado através de uma coleção de arquivos que também devem ser sincronizados utilizando-se o software Palm Desktop. Os arquivos a serem sincronizados estão contidos na pasta Palm Saave/Aplicativo do CD de instalação do PalmSaave. Abaixo segue a listagem dos arquivos que devem ser sincronizados para a instalação do Palm Saave: . ESMS80000#PALMSAAVE.PRC 47 . ESMS80000$PALMSAAVE.PDB . ESMS80000_CDAVES.PDB . ESMS80000_LOGON.PDB . ESMS80000_LOGONA.PDB . ESMS80000_OPERADOR.PDB . ESMS80000_OVOS.PDB . ESMS80000_OVOSA.PDB . ESMS80000_PIQUETE.PDB . ESMS80000_PIQUETEA.PDB . ESMS80000_PROP.PDB . PalmSaave.PRC Outro procedimento a ser realizado para que o Palm Saave possa ser executado é a cópia da pasta saave para o diretório raiz do PC (por exemplo em C:\). Nesta pasta, estão contidas as classes de sincronização do conduit bem como outras pastas para a geração de arquivos temporários e arquivos de log. A pasta saave está contida na raiz do CD de instalação do PalmSaave. O último passo para a instalação do sistema é a efetuação do registro do conduit. Para isto é necessário executar o aplicativo CondCfg.exe, o qual é encontrado na pasta de instalação do CDK, em CDK403/Common/Bin. Ao executar este aplicativo, uma tela será aberta mostrando todos os conduits registrados. A Figura 16 mostra um exemplo desta tela. 48 Figura 16 - Configuração do Conduit Nesta tela, é necessário selecionar a opção memo e clicar no botão Details. Uma outra tela será aberta conforme ilustra a Figura 17. 49 Figura 17 – Parâmetros do Conduit 50 Nesta tela deve-se entrar com os dados do conduit desenvolvido para o aplicativo Palm Saave. Os parâmetros a serem inseridos são listados abaixo: Name: SaaveCond Priority: 2 No quadro Extra Information, deve-se marcar a opção Java Conduit e entrar com os parâmetros: Class Name: conduit.SaavePalmCond Class Path: C:\saave Após efetuar estas configurações é necessário reinicializar o aplicativo HotSync para que as alterações façam efeito. Não foi encontrado nenhum problema na instalação dos softwares e do aplicativo Saave Palm Conduit no ambiente de testes e produtivo da empresa. Da mesma forma, a instalação do software Palm Saave nos PDAs foi bem sucedida. 51 8 Manutenção Apesar de não terem sido identificados problemas na utilização do sistema, até o momento presente e principalmente na etapa da realização das simulações no ambiente de qualidade, serão executados testes de amostragem de dados em determinados períodos de tempo, afim de se verificar a correta utilização do sistema e para que haja a certificação da qualidade do produto. Manutenções serão previstas no caso da identificação de algum mau funcionamento do sistema até o momento em que se possa atestar a total estabilidade do sistema. 52 9 Conclusão A realização deste trabalho teve como um dos principais objetivos demonstrar a possibilidade da criação de sistemas distribuídos através da utilização de web services, agrupando diversos softwares e técnicas em um pacote de desenvolvimento de baixo custo. Com relação aos resultados práticos e específicos do trabalho, pode-se notar uma significativa melhoria na produtividade dos funcionários responsáveis pela coleta dos ovos após a implementação do sistema. Vários outros benefícios puderam ser constatados pelos gerentes e funcionários da empresa após algumas semanas de utilização do novo sistema como por exemplo, a redução de erros relacionados às coletas efetuadas na fazenda. Devido à expansão do negócio da empresa, o processo de coleta de ovos passou a ter uma importância muito grande dentro da fazenda. Com o crescimento exponencial do número de aves, o controle manual de ovos não estava sendo capaz de manter a qualidade e eficiência desta tarefa e, com a implementação do novo sistema, foi possível solucionar este problema operacional ainda no início, sem que fossem necessários maiores investimentos em recursos humanos por parte da empresa, estratégia a qual poderia acabar por encarecer os serviços prestados pela empresa bem como ocasionar a redução dos lucros da mesma. Foi possível observar uma redução de 80% do tempo utilizado para a coleta dos ovos, o que significa uma diminuição de 60 segundos aproximadamente em cada coleta utilizando-se formulários, para 12 segundos com a utilização do sistema. A automatização do envio das coletas para o sistema externo trouxe como benefício uma 53 economia de tempo em torno de 85% para a realização deste procedimento, que agora não leva mais do que 10 minutos para ser executado. Antes da implantação do sistema o processo de cadastro dos formulários no sistema externo consumia entre 60 e 85 minutos de trabalho. Outro aspecto importante a ser observado com a implementação do sistema é referente ao controle das atividades dos funcionários. Através da contagem automática das horas trabalhadas, é possível realizar estatísticas relativas às horas trabalhadas por cada funcionário, a quantidade de ovos coletados e a quantidade de funcionários necessária para a realização desta atividade. Desta forma os gerentes da empresa podem realizar previsões, de acordo com os valores obtidos dos cruzamentos dos dados citados, e remanejar recursos internos, reduzindo assim significativamente os custos operacionais da empresa. 9.1 TRABALHOS FUTUROS Existem muitas outras funcionalidades que podem ser adicionadas ao sistema atual. Novos módulos podem ser criados no PDA com relativa facilidade, já que o desenvolvimento da sincronização dos dados deste com o PC e com o sistema de dados externo já está completamente desenvolvido, sendo que poucas alterações são necessárias para a implementação de novas funcionalidades. Devido ao baixo custo de desenvolvimento adotado por este trabalho, e pela opção por utilizar muitos softwares livres, há um grande potencial para a expansão e melhoria no sistema criado, por qualquer um que tenha interesse em ampliá-lo. O conceito de desenvolvimento e de integração entre os sistemas proposto por este trabalho também pode ser aperfeiçoado e fica como sugestão de futuros desenvolvimentos, além da criação de novas funcionalidades para o software do PDA, a criação de um plugin para o Eclipse para a geração automática de classes para leitura de dados do PDA, algo 54 simples, factível e que pode dinamizar ainda mais o desenvolvimento de aplicativos nos moldes do conceito proposto pelo trabalho. 55 REFERÊNCIAS [APC 02] The Apache Software Foundation Disponível em: <http://www.apache.org/>. Acesso em fev. 2006 [AXS 02] Web Services - Axis Disponível em: <http://ws.apache.org/axis/>. Acesso em fev. 2006 [CDK 04] PalmOS.com: Conduits Disponível em: <http://www.palmos.com/dev/tech/conduits/>. Acesso em mar. 2006 [ECL 02] Eclipse Project Disponível em: <http://www.eclipse.org>. Acesso em jan. 2006. [IBM 04] IBM – WSDL2Java Disponível em: <http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1/topic/com.i bm.wasee.doc/info/ee/javadoc/ae/com/ibm/websphere/ant/tasks/ WSDL2Java.Mapping.html>. Acesso em mar. 2006. [JAV 01] Java Technology Disponível em: <http://www.sun.com/java>. Acesso em mar. 2006. [MSQ 00] MySQL AB Disponível em: <http://www.mysql.com/>. Acesso em abr. 2006 [PHP 02] PHP: HyperText Preprocessor Disponível em: <http://www.php.net>. Acesso em abr. 2006 [PMA 03] The phpMyAdmin Project Disponível em: <http://www.phpmyadmin.net>. Acesso em abr. 2006 [SOA 05] SOAP Specifications Disponível em: <http://www.w3.org/TR/SOAP/>. Acesso em mai. 2006 [STF 04] Satellite Forms - Mobile App Design Disponível em: <http://www.satelliteforms.net/>. Acesso em mar. 2006 [TMC 00] The Apache Software Foundation Disponível em: <http://tomcat.apache.org>. Acesso em fev. 2006. 56 [WSD 05] Web Services Description Language (WSDL) Version 1.2 Disponível em: <http://www.w3.org/TR/2002/WD-wsdl12-20020709/>. Acesso em abr. 2006 [XML 05] Extensible Markup Language (XML) Disponível em: <http://www.w3.org/XML/>. Acesso em jun. 2006 [YRD 00] YOURDON, Eduard. Análise Estruturada Moderna. Rio de Janeiro: Campus, 1990 57