Sistema de Gerenciamento Customizável Baseado em PDA`s

Propaganda
1
UnicenP
Curso de Engenharia da Computação
SISTEMA DE GERENCIAMENTO CUSTOMIZÁVEL
BASEADO EM PDA'S
2002
2
UNICENP – CENTRO UNIVERSITÁRIO POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
CURSO DE ENGENHARIA DA COMPUTAÇÃO
PROJETO FINAL – ESPECIFICAÇÃO E PROEJTO
SISTEMA DE GERENCIAMENTO CUSTOMIZÁVEL
BASEADO EM PDA’S
Autor: Tatiana Alves Lessnau
Prof. Orientador: Emerson Paraiso
CURITIBA
29/11/02
ii
SUMÁRIO
LISTA DE FIGURAS...............................................................................................................................iii
LISTA DE TABELAS.............................................................................................................................. iv
LISTA DE ABREVIATURAS E SIGLAS................................................................................................ v
RESUMO.................................................................................................................................................. vi
ABSTRACT ............................................................................................................................................ vii
1.
INTRODUÇÃO................................................................................................................................ 1
2.
ESPECIFICAÇÃO ........................................................................................................................... 2
2.1. DESCRIÇÃO ................................................................................................................................. 2
2.1.1. DESCRIÇÃO GERAL DO SISTEMA E ASPECTOS FUNCIONAIS ................................. 2
2.1.2. DESCRIÇÃO DOS MÓDULOS COMPONENTES DO SISTEMA..................................... 3
2.1.2.1. Banco de Dados ................................................................................................................... 4
2.1.2.2. Servidor Web ....................................................................................................................... 4
2.1.2.3. Aplicação Local - Cliente .................................................................................................... 4
2.1.2.4. Protocolos de Comunicação................................................................................................. 5
2.2. ESTUDO TEÓRICO...................................................................................................................... 5
2.2.1. ESTUDO TEÓRICO SOBRE O SGBD ................................................................................. 5
2.2.2. ESTUDO TEÓRICO SOBRE O SERVIDOR WEB............................................................... 8
2.2.3. ESTUDO TEÓRICO SOBRE A APLICAÇÃO LOCAL - CLIENTE................................... 9
2.2.4. ESTUDO TEÓRICO SOBRE A COMUNICAÇÃO............................................................ 10
2.3. ESPECIFICAÇÕES DE HARDWARE....................................................................................... 11
2.3.1. DIAGRAMA EM BLOCOS................................................................................................. 11
2.3.2. FUNÇÕES DO SISTEMA ................................................................................................... 11
2.3.3. REQUISITOS DE HARDWARE......................................................................................... 12
2.3.4.AMBIENTE DE DESENVOLVIMENTO ............................................................................ 12
2.4. ESPECIFICAÇÃO DO SOFTWARE.......................................................................................... 12
2.4.1. AMBIENTE DE DESENVOLVIMENTO ........................................................................... 13
2.4.2. LINGUAGENS E FERRAMENTAS DE SOFTWARE ...................................................... 13
2.4.3. INTERFACE COM O USUÁRIO........................................................................................ 14
2.4.4. DIAGRAMA EM BLOCOS................................................................................................. 14
2.4.5. FUNÇÕES A SEREM PROVIDAS ..................................................................................... 15
2.4.5.1. Aplicação Local - Cliente .................................................................................................. 15
2.4.5.2. Módulo Web - Servidor...................................................................................................... 15
2.5. EXEMPLO DE APLICAÇÃO..................................................................................................... 17
2.6. ESPECIFICAÇÃO DA VALIDAÇÃO DO PROJETO............................................................... 18
3.
PROJETO ....................................................................................................................................... 19
3.1. DIAGRAMA DE FLUXOS DE DADOS .................................................................................... 19
3.2. DIAGRAMA DE ENTIDADES E RELACIONAMENTOS ...................................................... 28
3.2.1. ESPECIFICAÇÃO DAS TABELAS.................................................................................... 30
3.3. DIAGRAMA DE CLASSES ....................................................................................................... 34
3.4 PROJETO DE INTERFACES ...................................................................................................... 36
3.5. CONSIDERAÇÕES SOBRE O PROJETO ................................................................................. 42
3.5.1. BANCO DE DADOS ........................................................................................................... 42
3.5.2. CLIENTE.............................................................................................................................. 42
3.5.3. SERVIDOR .......................................................................................................................... 43
3.6. FERRAMENTAS UTILIZADAS................................................................................................ 44
5.
ANEXO A – ANÁLISE DE CONCORRÊNCIA........................................................................... 48
6.
ANEXO B – ANÁLISE DE PDA’S............................................................................................... 48
7.
ANEXO C - CRONOGRAMA ...................................................................................................... 50
8.
ANEXO D – ESTIMATIVA DE CUSTOS ................................................................................... 51
9.
ANEXO E – SCRIPT DO BANCO DE DADOS........................................................................... 52
10.
REFERÊNCIAS BIBLIOGRÁFICAS....................................................................................... 55
iii
LISTA DE FIGURAS
Figura 01 - Diagrama Lógico do Sistema
03
Figura 02 - Diagrama com Módulos de Hardware Principais
11
Figura 03 - Módulos da Plataforma Java 2
13
Figura 04 - Diagrama com Módulos de Software Principais
14
Figura 05 - DFD-0, Diagrama de Contexto
20
Figura 06 - DFD-1
21
Figura 07 - DFD-2, Processo 1
22
Figura 08 - DFD-3, Processo 1.2
23
Figura 09 - DFD-2, Processo 2
24
Figura 10 - DFD-2, Processo 3
25
Figura 11 - DFD-2, Processo 4
26
Figura 12 - DFD-2, Processo 5
27
Figura 13 - Diagrama de Entidades e Relacionamentos
29
Figura 14 - Representação Física das Tabelas – Ger. de Sistemas e Usuários
30
Figura 15 - Representação Física das Tabelas - Gerenciamento de Entidades
32
Figura 16 - Diagrama de Classes
35
Figura 17 - Cadastro de Sistemas
36
Figura 18 - Cadastro de Entidades
37
Figura 19 - Cadastro de Usuários
38
Figura 20 - Acesso de Usuário com Perfil PDA
39
Figura 21 - Interface do Sistema do PDA
40
Figura 22 - Emissão de Relatórios
41
Figura 23 - Distribuição das Atividades no Tempo
50
Figura 24 - Distribuição de Custos
51
iv
LISTA DE TABELAS
Tabela I – Comparação de PDA’s
48
Tabela II – Cronograma
50
Tabela III – Estimativa de Custos
51
v
LISTA DE ABREVIATURAS E SIGLAS
PDA – Personal Digital Assistant (Assistente Digital Pessoal)
PC – Personal Computer (Computador Pessoal)
SGBD – Sistema de Gerenciamento de Banco de Dados
IIS – Internet Information Server
PWS – Personal Web Server
RMI – Remote Method Invocation (Invocação Remota de Métodos)
ASP – Active Server Pages (Páginas com Servidor Ativo)
FTP – File Transfer Protocol (Protocolo de Transmissão de Arquivos)
XML – Extensible Markup Language
RAM – Random Access Memory (Memória de Acesso Randômico)
ROM – Read Only Memory (Memória de Somente Leitura)
J2EE – Java 2 Enterprise Edition
J2SE – Java 2 Standard Edition
J2ME – Java 2 Micro Edition
vi
RESUMO
O objetivo deste projeto é o desenvolvimento de um sistema de gerenciamento
baseado em PDA's com a característica da customização. Este sistema, com base na
arquitetura cliente-servidor utilizará como clientes PDA's que possuam suporte a
aplicações Java, independentemente do hardware ou do sistema operacional. O módulo
servidor é totalmente implementado em um servidor web, em conjunto com um sistema de
gerenciamento de banco de dados. As aplicações atendidas são sistemas que necessitem de
coleta móvel de dados, como controles de venda, sistemas de pesquisa de opinião, sistemas
de requisição de produtos, entre outros. A característica marcante deste projeto em relação
às demais soluções disponíveis no mercado é justamente a customização, o que permite
que uma maior fatia do mercado de software para aplicações móveis seja atendida. Para a
implementação foi utilizada tecnologia ASP no servidor, com gerenciamento de dados no
MSDE. A opção do desenvolvimento da aplicação cliente e do módulo de comunicação em
linguagem Java foi feita para tornar o sistema independente da plataforma, gerando uma
maior diversidade de opções de PDA's para a instalação dos clientes móveis, permitindo
inclusive que, no futuro, o sistema seja executado também em telefones móveis com
suporte a Java.
vii
ABSTRACT
The objective of this project is the development of a management system based on
PDA's with the characteristic of the customization. This system, based in client-server
architecture will use as customers PDA's that support Java applications, independently of
the hardware or the operational system of the PDA. The server module is tottaly
implemented in a web server, using a data base management system. The applications this
system can handle are systems that need mobile collection of data, as selling controls,
systems of opinion research, systems of products solicitation, among others. The main
characteristic of this project in relation to another solutions available in market is exactly
the customization, wich allows that a bigger slice of the market of software for mobile
applications is attended. For the implementation, technology ASP in the server was used,
with management of data in MSDE database system. The option of the development of the
customer application and the module of communication in Java language was made to
become the system independent of the platform, being able a bigger diversity of options of
PDA's for the installation of the mobile customers, also allowing that, in the future, the
system may be also executed in mobile telephones wich support Java.
1
1. INTRODUÇÃO
Os PDA’s (Personal Digital Assistants) tornaram-se populares a partir dos anos 90,
inicialmente vistos como aparelhos capazes de controlar informações pessoais, como
tarefas, compromissos e contatos mais eficientemente que uma agenda eletrônica.
Gradativamente, estes aparelhos começam a fazer parte do mercado corporativo, sendo
esta uma área em constante expansão: a computação móvel. Diversas soluções usam o
potencial dos handhelds como ferramenta indispensável ao trabalho do dia-a-dia,
principalmente pela praticidade e mobilidade que estes aparelhos oferecem. A aplicação
destes dispositivos móveis vai desde a automação de forças de vendas até o monitoramento
de pacientes em hospitais.
A proposta do desenvolvimento deste projeto é aliar a flexibilidade e o dinamismo
oferecido pela computação móvel dos PDA’s e a confiabilidade de uma base de
gerenciamento de dados centralizada, fazendo esta integração por meio de comunicação
remota (utilizando Internet ou uma Intranet) e disponibilizando informações colhidas em
uma interface web, acessível de qualquer computador equipado com um browser.
Atualmente estão disponíveis no mercado diversos sistemas que utilizam PDA’s.
São aplicações providas por empresas especializadas (software houses) e que são, em sua
grande maioria, específicos para uma determinada aplicação. O sistema que é objeto deste
projeto final tem por meta ser customizável (não em sua totalidade, mas em alguns
aspectos, como tipo de informações que será gerenciada e formas de comunicação),
permitindo que, para determinadas aplicações sejam feitas configurações e customizações
ao sistema, atingindo assim uma fatia maior do mercado. Essa característica é também um
diferencial deste sistema em relação aos sistemas disponíveis no mercado. Isso porque, por
estar sendo utilizado um sistema básico comum e configurável, a possibilidade de atender
demandas em diferentes áreas com o mesmo sistema é sensivelmente maior, ainda que seja
necessário a implementação de pequenas alterações posteriores (específicas).
Neste documento, que corresponde à primeira fase do desenvolvimento do projeto
final, será apresentada a especificação do sistema. O objetivo é de apresentar um estudo
preliminar sobre a literatura existente, além de informações e subsídios que serão
necessários nas próximas fases do desenvolvimento do projeto.
2
2. ESPECIFICAÇÃO
Na especificação do projeto é apresentado um estudo inicial do contexto onde está
inserido este projeto, bem como a descrição das funcionalidades a serem desenvolvidas no
Sistema de Gerenciamento Customizável Baseado em PDA’s
2.1. DESCRIÇÃO
Serão apresentados nesta descrição as características gerais e os módulos do
Sistema de Gerenciamento Customizável Baseado em PDA’s, assim como uma breve
descrição de cada um destes componentes.
2.1.1. DESCRIÇÃO GERAL DO SISTEMA E ASPECTOS
FUNCIONAIS
O sistema especificado neste documento pode ser entendido como um sistema
móvel de aquisição de dados, com processamento local e armazenamento central, e que
permite a distribuição dos dados armazenados através da web.
Existirá uma interface de customização e set up que será responsável pela definição
dos aspectos configuráveis do sistema. Esse módulo será utilizado somente uma vez,
quando da instalação e customização (set up) inicial do sistema. Definidos estes requisitos,
o software de gerenciamento local poderá ser instalado no PDA, que será o responsável
pela aquisição dos dados.
No PDA, através da interface do software local, será feita a entrada de dados. Esta
informação deverá ser transmitida para o servidor, que possui a base de dados central, por
meio de uma Intranet ou da Internet, podendo ser utilizada para isso uma conexão física
com um PC (conectado à Internet ou Intranet Corporativa) ou comunicação diretamente do
dispositivo (PDA) que, neste caso, deve possuir periféricos ou módulos embutidos que
permitam essa comunicação.
3
A partir do momento que a informação está armazenada em uma base de dados
central é possível disponibilizá-la através da web. Para isso, será utilizado um servidor
web, acessando estes dados diretamente da base de dados. A interface de disponibilizarão
de dados é um tanto quanto genérica, pois atende a mais de uma aplicação (conforme a
configuração no set up do sistema). Isso não impede que sejam desenvolvidas,
posteriormente interfaces de visualização mais elaboradas, com o foco na aplicação
atendida e utilizando a mesma base de dados já disponível.
2.1.2. DESCRIÇÃO DOS MÓDULOS COMPONENTES DO SISTEMA
Um sistema é composto de diversos módulos que se inter-relacionam. A seguir
serão apresentados e descritos brevemente cada um dos módulos componentes do Sistema
de Gerenciamento Customizável Baseado em PDA’s.
Na figura 01 é apresentado o diagrama lógico do sistema, com a identificação dos
módulos básicos em que o sistema é dividido, destacando-se: banco de dados, servidor
web, aplicação cliente (interface para o PDA) e protocolos de comunicação. No diagrama,
são representadas as duas possibilidades de comunicação entre os módulos do sistema
(PDA – Servidor e PDA – PC – Servidor), além da distribuição dos dados armazenados
através da web.
Figura 01 – Diagrama Lógico do Sistema
4
2.1.2.1. Banco de Dados
No banco de dados serão armazenadas de forma centralizada todas as informações
sobre a configuração dos sistemas (customização) e os dados colhidos pela aplicação.
Será utilizado um SGBD (Sistema de Gerenciamento de Banco de Dados),
conforme será apresentado no estudo teórico. As informações armazenadas no banco de
dados serão atualizadas constantemente com os dados colhidos pelos dispositivos móveis
(PDA’s) e estarão disponíveis através do servidor web.
2.1.2.2. Servidor Web
O servidor web permite que informações sobre o sistema sejam consultadas através
de uma Intranet ou da Internet. Serão construídas páginas dinâmicas, que mesclam códigos
HTML e codificação de script para consultas no banco de dados e validações de
informações. Além disso, neste mesmo servidor será implementada a interface de recepção
dos dados colhidos pelos PDA’s. Mais informações sobre o servidor web serão
apresentadas no estudo teórico.
2.1.2.3. Aplicação Local - Cliente
A aplicação local consiste em um sistema que será instalado no PDA e permitirá
tanto a entrada de informações e armazenamento local, quanto a sincronização com a base
de dados central. Esse módulo será programado em linguagem específica para dispositivos
de processamento limitado.
5
2.1.2.4. Protocolos de Comunicação
Os protocolos de comunicação são a forma através da qual as informações são
enviadas e recebidas pelos módulos do sistema (clientes, servidor, gerenciador de banco de
dados). É necessário definir o formato de troca de informações e o meio em que estarão
trafegando. No estudo teórico, são apresentadas mais informações sobre os protocolos de
comunicação, bem como sobre a forma de interligação entre os módulos do sistema.
2.2. ESTUDO TEÓRICO
A seguir serão apresentadas informações sobre técnicas e aspectos teóricos
associados aos módulos do Sistema de Gerenciamento Customizável Baseado em PDA’s.
2.2.1. ESTUDO TEÓRICO SOBRE O SGBD
O projeto final a ser desenvolvido utiliza uma base de dados, onde são armazenadas
as informações colhidas através dos PDA's para serem distribuídas posteriormente através
de uma interface na web, além das informações sobre a customização do sistema. Para
isso, será necessária a utilização de um SGBD.
Um SGBD é um conjunto de aplicações desenvolvidas especialmente para o
tratamento de um banco de dados, fornecendo ao usuário (desenvolvedor) uma
representação conceitual dos dados, sem fornecer muitos detalhes sobre como as
informações são armazenadas. As vantagens da utilização de um SGBD incluem: controle
de redundância, compartilhamento de dados, restrições de acesso, representação de
relacionamentos complexos de dados, e tolerância a falhas.
Existem diversos SGBD's disponíveis no mercado, entre os quais pode-se destacar
os sistemas: Oracle, MySQL e SQL Server e também alguns sistemas específicos para
PDA’s, como o Oracle Lite, ThinkDB e DB2 Everyplace.
6
Líder de mercado, o sistema de gerenciamento de banco de dados Oracle é uma
excelente opção para projetos grandes e também onde exista disponibilidade de recursos
para investimento. A desvantagem deste sistema é o alto custo, e também a necessidade de
utilização de uma boa máquina para a sua execução, pois o sistema exige bastante do
hardware.
Por outro lado, o MySQL é um sistema de gerenciamento de banco de dados
gratuito, bastante difundido entre os desenvolvedores de software. Existe bastante
documentação disponível na Internet e novas versões do sistema estão sendo lançadas.
Atualmente, a última versão estável do sistema é a 3.23. Está em desenvolvimento a
versão 4.0 Alfa. Foram realizados alguns testes com o sistema, para verificação das
possibilidades oferecidas pelo sistema. O gerenciamento de tabelas e relacionamentos
funciona bem, assim como funções básicas (INSERT, UPDATE, DELETE, SELECT). O
grande problema na utilização deste banco de dados é o fato de ele ainda não gerenciar
stored procedures, que são scripts armazenados no próprio SGBD que podem ser
chamados diretamente da aplicação, tornando a aplicação mais modular, pois a lógica de
acesso ao banco de dados passa a ser armazenada do banco de dados, e não na aplicação.
Essa funcionalidade está prevista para ser implementada na versão 4.1 (ainda não
disponível).
O SQL Server é uma opção mais barata que o Oracle, mas ainda com custos
relativamente altos. O sistema é bastante eficiente, tem suporte a stored procedures,
triggers, replicação. A documentação é farta e o sistema é bastante utilizado em diversas
corporações (assim como o Oracle). Outra característica muito interessante do SQL Server
é a disponibilidade do MSDE (Microsoft Data Engine), que é um sistema gerenciador de
banco de dados compatível com o SQL Server, e que pode ser distribuído gratuitamente
com as aplicações para ele desenvolvidas. Para utilizar e distribuir o sistema é necessário
possuir uma licença de um dos softwares do pacote Microsoft Visual Studio 6.0. O sistema
MSDE torna-se portável, pois utiliza a mesma base do SQL Server. Outra vantagem é por
o sistema ser pequeno e não exigir muitos recursos de hardware (em comparação com os
sistemas maiores) e pode ser baixado na própria Internet.
Existem também SGBD’s específicos para PDA’s, como o Oracle Lite, o ThinkDB
e o DB2 Everyplace. O Oracle Lite (versão 9i) é a principal plataforma de
desenvolvimento e controle de aplicações de negócio em dispositivos móveis, com suporte
a Java em diversas plataformas e diversos dispositivos como telefones celulares, PDA’s e
laptops.
7
Já o ThinkDB é uma versão do software da Thinkingbytes para Palm OS. Algumas
características interessantes são o suporte a arquivos .MDB (do Access) e a possibilidade
de importação de arquivos do Access e do Excel, software de gerenciamento de dados e
planilha de cálculos da Microsoft, respectivamente. Esse sistema permite a sincronização
entre uma base no PC e o PDA (no caso, o Palm).
O DB2 Everyplace é um software da IBM projetado especificamente para PDA’s.
A solução consiste em um sistema relacional de banco de dados para o PDA, um servidor
bidirecional para sincronização da base no PDA com outro banco de dados externo e uma
ferramenta para o desenvolvimento de aplicações para PDA utilizando o DB2 Everyplace.
É um sistema bastante interessante em se tratando de armazenamento de dados no PDA
com sincronização externa. A desvantagem é o fato de o sistema ser pago, o que encarece
os custos do projeto.
Para o desenvolvimento deste projeto, as melhores opções são o MySQL e o
MSDE. O MySQL tem a vantagem de ser totalmente gratuito e rodar em diversas
plataformas. O MSDE tem a vantagem da portabilidade e facilidade de migração para uma
base de dados mais completa (SQL Server) e alguns recursos adicionais que não estão
presentes no MySQL. Para o PDA, o DB2 Everyplace seria uma solução bastante
interessante mas, por acarretar aumento de custos, a opção mais atrativa consiste em
gerenciar os dados no PDA como arquivos textos, produzidos com um comando
“serialize”, que transforma objetos na memória em arquivos texto, como será comentado
no tópico do estudo teórico da aplicação local. Isso é possível por estar-se utilizando uma
linguagem de programação para o cliente que permite este tipo de abordagem, por ser
orientada a objetos e dispor destes recursos, a linguagem Java. A escolha desta forma de
armazenamento no PDA não torna o sistema menos interessante do ponto de vista do
gerenciamento de dados porque o armazenamento no PDA é temporário, enquanto que na
base central, onde ficam os dados permanentes, será utilizado um sistema específico para o
gerenciamento da base de dados.
8
2.2.2. ESTUDO TEÓRICO SOBRE O SERVIDOR WEB
A proposta de implementar um sistema baseado em web segue a tendência atual, na
qual muitos sistemas antes rodando em aplicações convencionais passam a funcionar
através de uma Intranet e/ou da Internet. As vantagens de um sistema deste tipo são
diversas, indo desde a facilidade de manutenção à possibilidade de utilização de uma rede
de computadores mais heterogênea, sendo necessário apenas um browser para acessar o
sistema de controle da empresa. Com isso, todo o processamento pesado passa a ser feito
no servidor e não nos clientes.
Um sistema baseado em web necessita de um servidor capaz de disponibilizar as
informações que são acessadas pelos clientes, que estarão utilizando um browser para
visualizar dados transmitidos em hipertexto (forma como as informações transitam na web
para serem apresentadas nos browsers). Existem diversos servidores web disponíveis no
mercado, destacando-se o Apache - para Unix e Windows - e o IIS (Internet Information
Server) - para Windows.
Para este projeto, escolheu-se trabalhar com o IIS, que é compatível com a
tecnologia que será utilizada para a construção das páginas dinâmicas. Este software é
distribuído juntamente com o sistema operacional Microsoft Windows, com algumas
variações de acordo com a versão do sistema. Por exemplo, o Microsoft Windows 98 traz o
PWS (Personal Web Server), que é uma versão mais limitada do IIS. A versão NT 4.0 traz
o IIS 4.0, e as versões 2000 e Xp trazem as versões 5.0 e 5.1 do IIS, respectivamente.
As páginas armazenadas no servidor web deverão ser dinâmicas. Isso significa que
serão páginas com scrips de acesso a banco de dados, validação de informações, entre
outros. Páginas estáticas são escritas em código HTML simples. Diferentemente, as
páginas dinâmicas mesclam HTML e scrips. Estes scrips podem ser em ASP (Active
Server Pages), em PHP, ou em outra linguagem de scripts para web.
Para este sistema, a opção escolhida foi a utilização de páginas ASP, que podem ser
programadas em Visual Basic Script em conjunto com códigos Java Script e HTML. Estas
páginas têm os seus scripts executados no servidor, sendo enviado ao browser somente o
resultado da operação realizada. Podem também existir códigos executados no cliente,
como em validações. Para a disponibilização destas páginas (Active Server Pages) será
necessário utilização do IIS. Essa escolha se deu pela grande utilização desta tecnologia no
mercado corporativo e também por afinidade pessoal com a tecnologia.
9
Neste servidor será implementada, além da interface de disponibilização dos dados
e customização inicial do sistema, a interface de recebimento dos dados enviados pelo
cliente, que será comentado no estudo teórico sobre os protocolos de comunicação.
2.2.3. ESTUDO TEÓRICO SOBRE A APLICAÇÃO LOCAL - CLIENTE
Os PDA’s são dispositivos de processamento limitado que podem rodar aplicações
escritas especificamente para esse tipo de equipamento. Foram pesquisadas linguagens de
programação e ferramentas de desenvolvimento.
As principais linguagens para programação de aplicativos para PDA são C++ e
Java. Ambas as linguagens trabalham com orientação a objetos e possuem possibilidades
de implementação semelhantes.
No caso do sistema objeto deste trabalho, a utilização da linguagem Java é
extremamente interessante, pois torna a aplicação independente da plataforma do PDA.
Com isso, a variedade de PDA’s que podem utilizar o sistema é aumentada
significativamente, pois basta possuir suporte a Java (implementação de uma virtual
machine, ou “máquina virtual”) para que o PDA possa ser utilizador da aplicação local
deste sistema de gerenciamento. Além disso, existe uma grande tendência de os aparelhos
de telefonia celular incorporarem funções dos PDA’s, fazendo a fusão das duas
tecnologias. Por ser escrito em uma linguagem independente de plataforma, o sistema já
estará parcialmente preparado para funcionar nestes dispositivos.
Outra característica interessante da linguagem Java é a orientação a objetos e
comandos como o serialize, que permitem armazenar objetos em arquivos texto. Estes
arquivos, por sua vez, podem ser transmitidos para o servidor e armazenados (no formato
conveniente) em um banco de dados. É interessante notar que a linguagem Java é utilizada
em PC’s, PDA’s e diversos dispositivos, o que a torna bastante atrativa para este projeto.
A aplicação local, com base em uma configuração definida no set up do sistema
terá alguns de seus parâmetros modificados, para permitir a entrada das informações que
correspondem ao objetivo do controle do sistema.
10
2.2.4. ESTUDO TEÓRICO SOBRE A COMUNICAÇÃO
Para a comunicação entre o PDA e a base central, permitindo o intercâmbio de
informações entre os módulos será necessária a utilização de um protocolo de
comunicação. Este módulo inclui a forma como o PDA enviará os dados para a rede,
através de um microcomputador ou diretamente. Também inclui a forma como o servidor
recebe essa informação.
Está sendo estudada a possibilidade da implementação de um objeto DCOM no
servidor web, para a recepção dos dados enviados pela rede. Estes objetos são projetados
para sistemas distribuídos, com implementações de segurança, multithreading, etc.
Neste módulo também deve-se verificar a utilização de XML para torca de dados
entre o cliente, o servidor e o banco de dados. Esta tecnologia tem se desenvolvido muito
por ser simples e permitir o envio de dados pela web em formato texto.
Outra possibilidade é o desenvolvimento da recepção dos dados em Java, já que o
cliente (PDA) estará enviando um objeto Java para o servidor. A linguagem oferece
diversas possibilidades como a construção de uma aplicação, de um applet (para rodar em
um browser) ou mesmo dos objetos distribuídos Enterprise Java Beans.
A linguagem Java oferece um recurso bastante atrativo, que é a utilização de RMI
(Remote Method Invocation), que permite que a comunicação entre dispositivos seja feita
em um nível mais alto que o TCP-IP propriamente dito, e é uma tendência que está sendo
seguida pelo mercado. Neste caso, métodos podem ser invocados remotamente, e obejetos
serializáveis podem ser enviados como parâmetos.
Existem diversos outros modelos que podem ser utilizados nessa comunicação,
como a implementação de um Web Service, que é um conceito relativamente novo, que
começou a ser difundido após o lançamento do Microsoft Visual Studio .Net, uma
ferramenta de desenvolvimento. Esta ferramenta é bastante recente no mercado e
promoveu muitas modificações na forma como são desenvolvidas as aplicações web,
inclusive com a tecnologia ASP, que será utilizada neste projeto.
A transmissão dos dados do PDA para o servidor passando pelo PC, a princípio,
poderá ser feita por FTP ou através da utilização de um applet Java. Será estudada a opção
mais interessante.
11
2.3. ESPECIFICAÇÕES DE HARDWARE
Este projeto está focado no desenvolvimento de software, o que não implica que
não serão necessários conhecimentos sobre o hardware que está sendo utilizado. A seguir
serão apresentadas informações sobre o tipo de hardware que será utilizado para o
desenvolvimento e implementação do projeto.
2.3.1. DIAGRAMA EM BLOCOS
Na figura 02 são apresentados os principais módulos de hardware do sistema.
Podem ser acrescentados mais módulos, como modems ou interfaces de comunicação ao
esquema básico, conforme a necessidade.
Figura 02 – Diagrama com Módulos de Hardware Principais
2.3.2. FUNÇÕES DO SISTEMA
As funções de hardware neste projeto consistem em dar suporte às soluções de
software desenvolvidas. Como já foi mencionado, não serão desenvolvidos dispositivos de
hardware adicionais, mas aplicações em software que acessam funções do hardware
disponível (PDA’s e PC’s). No caso do PDA, a função é de recepção e armazenamento
12
temporário de dados, bem como a sua transmissão posterior. No caso do servidor a função
é de recepção, armazenamento e disponibilização de informações.
2.3.3. REQUISITOS DE HARDWARE
Para o PDA, os requisitos de hardware são bastante flexíveis, sendo necessário
somente que o dispositivo seja projetado para rodar uma aplicação Java e que exista
alguma forma de comunicação com o meio externo (porta serial, infravermelho, USB
(Universal Serial Bus), modem ou comunicação wireless). Ainda assim, na fase de projeto
serão definidos alguns requisitos mínimos para o PDA, o que garantirá o melhor
funcionamento do sistema.
Para o servidor será necessário que suporte a instalação de um servidor web e um
SGBD, bem como a conexão e acesso aos recursos através de uma rede (uma Intranet ou a
Internet).
2.3.4.AMBIENTE DE DESENVOLVIMENTO
A escolha do PDA está sendo estudada, com base nas informações apresentadas no
Anexo B – Análise de PDA’s. Para o desenvolvimento do sistema (software do servidor e
do PDA) será utilizado um microcomputador Pentium com 266 MHz, 64 Mbytes de
memória RAM, e disco rígido de 04 Gbytes, equipado com modem em cartão de acesso a
rede (PCM-CIA).
2.4. ESPECIFICAÇÃO DO SOFTWARE
Para o desenvolvimento do Sistema de Gerenciamento Customizável Baseado em
PDA’s será necessário utilizar algumas ferramentas conforme será descrito a seguir. Serão
apresentados também alguns pré-requisitos para o software que será desenvolvido.
13
2.4.1. AMBIENTE DE DESENVOLVIMENTO
O ambiente de desenvolvimento será Microsoft Windows 98, com o servidor web
PWS (Personal Web Server).
Para o desenvolvimento das aplicações Java será utilizado o J2ME. O J2ME é uma
nova versão da plataforma de desenvolvimento Java 2 destinada a dispositivos de
processamento limitado, como os PDA’s, consistindo de uma máquina virtual (virtual
machine) e alguns API’s para oferecer funcionalidades e segurança para instalar e rodar as
classes Java no dispositivo. Caso escolhida a opção do desenvolvimento dos demais
módulos (como comunicação) utilizando Java nos PC’s, poderá ser utilizado o ambiente
J2EE ou J2SE. Estes ambientes (Java 2 Enterprise Edition e Java 2 Standard Edition)
também são parte da plataforma Java 2, como é mostrado na figura 03.
Figura 03 – Módulos da Plataforma Java 2
2.4.2. LINGUAGENS E FERRAMENTAS DE SOFTWARE
Para o desenvolvimento do banco de dados será utilizado um analisador de queries
(ambiente de desenvolvimento), compatível com o SGBD escolhido e a ferramenta
Microsoft Visual Interdev, que também dá suporte ao desenvolvimento de páginas web.
No desenvolvimento do módulo web será utilizado o Microsoft Visual Interdev do
pacote Microsoft Visual Studio 6.0 e possivelmente a ferramenta J2SE ou J2EE para
desenvolvimento de applets e aplicações Java.
14
O módulo de aplicação local será desenvolvido utilizado o J2ME (Java 2
Plataform, Micro Edition) e possivelmente o Code Warrior ou Forte para Java. Uma opção
é utilizar o Palm OS Emulator para testar a aplicação no próprio PC de desenvolvimento.
Para isso será necessário obter uma ROM de Palm e instalá-la juntamente com o emulador.
Além disso, a implementação do módulo de protocolo de comunicação exigirá a
utilização de um software compatível com a solução escolhida, como um ambiente Java ou
ainda o Microsoft Visual C++ ou Microsoft Visual Basic no caso de um componente
DCOM.
2.4.3. INTERFACE COM O USUÁRIO
Pretende-se disponibilizar uma interface amigável com o sistema em todos os
módulos do sistema (tanto no PDA quanto no acesso via web). Para isso será necessário
definir uma interface que permita que as customizações sejam utilizadas para a definição
de como algumas informações serão mostradas nesta interface.
Em princípio, toda a parte do sistema que não for acessada através do PDA será
baseada em web, ou seja, acessada através de um browser.
2.4.4. DIAGRAMA EM BLOCOS
Na figura 04 é a apresentado um diagrama em blocos do software que será
desenvolvido, apresentando como as partes interagem entre si.
Figura 04 – Diagrama com Módulos de Software Principais
15
2.4.5. FUNÇÕES A SEREM PROVIDAS
Nesta etapa do projeto não são definidas em detalhes todas as funções que o sistema
desenvolvido deve possuir. Entretanto, é possível fazer uma análise macro do que deve ser
oferecido por cada um dos módulos de software utilizados pelo usuário.
2.4.5.1. Aplicação Local - Cliente
A aplicação local, que será rodada no PDA deve oferecer as seguintes
funcionalidades:
-
Interface de entrada de dados com gravação dos dados;
-
Opção de comunicação com a base central. Em princípio a comunicação será
feita em blocos (comunicação batch). Como uma melhoria ao projeto, poderá
ser implementada, caso existam recursos de tempo disponíveis, comunicação on
line com o servidor central.
2.4.5.2. Módulo Web - Servidor
O módulo web compreende a customização inicial do sistema, a comunicação entre
PDA e servidor por meio da Web (utilizando um PC) e a consulta aos dados recebidos
pela comunicação com os PDA’s.
Para a customização, pretende-se oferecer as funcionalidades:
-
Criação de um novo sistema, ou seja, o primeiro passo para a sua instalação;
-
Definição de configurações e customizações em alguns parâmetros, as serem
definidos na etapa de projeto deste sistema;
-
Disponibilização do software que será instalado no PDA.
16
Para a comunicação entre PDA, PC e Web serão oferecidas as funcionalidades:
-
Diponibilização do sistema base em Java e template gerado através da
customização para instalação no PDA;
-
Controle de PDA’s utilizados por usuário;
-
Envio de dados ao servidor e sincronização da base local do PDA.
Para a consulta, é objetivo oferecer as funcionalidades:
-
Identificação do sistema utilizado;
-
Exibição da informação coletada com a utilização de filtos de dados;
-
Caso existam recursos de tempo disponíveis, uma melhoria a ser implementada
ao projeto é a possibilidade de alteração dos dados disponíveis na web através
da própria web, ou seja, a complementação das informações já armazenadas.
17
2.5. EXEMPLO DE APLICAÇÃO
O sistema objeto deste trabalho será capaz de gerenciar diversos tipos de
aplicações, das quais será comentada, a título de exemplo, um controle de frigobar
(minibar) hoteleiro.
Esta aplicação será inicialmente cadastrada no sistema de gerenciamento através de
uma interface web. Nesta interface de customização serão definidos:
-
Nome da Aplicação;
-
Responsável pela Aplicação;
-
Usuários da Aplicação;
-
Tabelas de Armazenamento de Dados;
-
Forma de Entrada dos Dados no Cliente (PDA).
Em seguida deverá ser gerada a configuração da aplicação cliente que será instalada
no PDA com a aplicação local. Assim que a aplicação estiver instalada poderá ser feita
uma sincronização inicial com a base central (para alimentação dos dados locais – por
exemplo uma tabela de produtos disponíveis). Feita esta sincronização o sistema estará
apto para a coleta de dados.
Feita a coleta de dados, poderá ser feita a transmissão desta informação para o
servidor. Neste caso, o PDA deverá estar conectado a rede diretamente ou a um PC
(conectado a rede) e os dados serão enviados ao servidor.
O servidor fará a recepção dos dados e o seu armazenamento em banco de dados.
Todas as informações cadastradas no banco de dados estão, a partir deste momento,
disponíveis para consulta por um dos usuários da aplicação (cadastrados na customização
do sistema).
18
2.6. ESPECIFICAÇÃO DA VALIDAÇÃO DO PROJETO
Uma das etapas bastante importantes do desenvolvimento de um projeto consiste na
sua validação. Para isso devem ser feitos testes e simulações.
Para o Sistema de Gerenciamento Customizável Baseado em PDA’s serão feitos
testes para a validação da comunicação entre os módulos componentes. Também serão
feitos testes no software da aplicação local e no módulo web.
Para finalizar a validação do projeto, será feita uma simulação de uma situação real,
com a criação e customização de um sistema e a realização de todas as operações providas
pelo sistema, para que seja, desta forma, validado o seu funcionamento.
19
3. PROJETO
A seguir serão apresentadas as informações referentes à segunda etapa do
desenvolvimento deste sistema, o projeto do sistema. Este estudo tem por objetivo mostrar
como serão implementados os módulos componentes do sistema e como será o
relacionamento entre eles.
3.1. DIAGRAMA DE FLUXO DE DADOS
O diagrama de fluxo de dados de um sistema permite observar quais os módulos
do sistema e as ações que poderão ser geradas por cada usuário através destes módulos. É
através deste mapeamento inicial que é desenvolvido o diagrama de entidades e
relacionamentos (banco de dados). Estes diagramas são formas de análise estruturada de
projetos, e foram empregados principalmente na parte web do projeto do Sistema de
Gerenciamento Customizável Baseado em PDA’s.
Na figura 05, a seguir, é apresentado o DFD de nível zero, ou “diagrama de
contexto”, que mostra todo o sistema como uma única “bolha”, ou processo, que recebe e
gera diversas ações (todas as ações que o sistema gerencia).
Com a explosão do DFD-0, que é apresentada na figura 06, obtém-se o DFD de
nível um, que neste caso é bastante interessante por mostrar de forma bem clara a divisão
do sistema nos seguintes módulos:
-
Instanciação e customização de sistemas;
-
Gerenciamento de Usuários;
-
Gerenciamento de Relatórios;
-
Comunicação Cliente-Servidor;
-
Armazenamento de Dados no PDA.
As figuras 07, 08, 09, 10, 11 e 12 representam explosões destes módulos, a fim de
permitir uma visualização do sistema de forma abrangente, o que permite, com base nestes
diagramas gerados, o projeto do diagrama de entidades e relacionamentos.
20
Figura 05 – DFD-0, Diagrama de Contexto
21
Figura 06 – DFD-1
22
Figura 07 – DFD-2, Processo 1
23
Figura 08 – DFD-3, Processo 1.2
24
Figura 09 – DFD-2, Processo 2
25
Figura 10 – DFD-2, Processo 3
26
Figura 11 – DFD-2, Processo 4
27
Figura 12 – DFD-2, Processo 5
28
3.2. DIAGRAMA DE ENTIDADES E RELACIONAMENTOS
Com base nos diagramas de fluxo de dados e na especificação do Projeto foi
projetado o diagrama de entidades e relacionamentos, que é apresentado na figura 13 já no
nível de normalização que será utilizado na implementação.
Foram projetadas vinte tabelas, que representam a estrutura geral do sistema, que
fazem a administração e gerenciamento dos sistemas que são instanciados em tempo de
execução. As tabelas que serão criadas pelos usuários do sistema não são representadas
neste diagrama por serem dinâmicas, e criadas de acordo com cada sistema que é
instanciado.
Este diagrama representa a estrutura do banco de dados que será implementado. O
diagrama de entidades e relacionamentos tem muita importância dentro deste projeto, pois
uma grande parte deste sistema é baseado em implementações no banco de dados; o
próprio gerenciamento das aplicações customizáveis que são criadas através do sistema é
feito através do SGBD.
29
Figura 13 – Diagrama de Entidades e Relacionamentos
30
3.2.1. ESPECIFICAÇÃO DAS TABELAS
Nas figuras 14 e 15 são apresentadas as tabelas que gerenciam sistemas e usuários e
as tabelas de gerenciamento de entidades, respectivamente. A diferença em relação à figura
13 é que nestas é apresentada uma visão física do banco de dados, com a representação de
cada campo, tipo do campo e relacionamentos (chaves primárias e estrangeiras).
Todas as tabelas ficam armazenadas no servidor, no sistema de gerenciamento de
banco de dados MSDE. A seguir serão descritas cada uma das entidades que compõe o
sistema. Além desta descrição, o script do banco de dados, apresentado no anexo E,
permite uma melhor compreensão da estrutura de banco de dados que será criada.
Figura 14 – Representação Física das Tabelas – Ger. de Sistemas e Usuários
31
1. Entidade: tblgeSystems
Tem o propósito de armazenar os sistemas cadastrados e serve como ligação entre
as tabelas de gerenciamento de usuários e tabelas de gerenciamento de entidades. É
atualizada pelo módulo de customização e instanciação de sistemas.
2. Entidade: tblgeUsers
Armazena os usuários cadastrados no sistema, com informações como login e
senha. É atualizada pelo módulo de customização e instanciação de sistemas e acessada
pelo módulo de gerenciamento de usuários.
3. Entidades: tblgeProfiles e tblgeSystemUserProfiles
Armazenam os perfis disponíveis para os usuários dos sistemas e o relacionamento
de perfis com usuários (perfis que o usuário possui). Um usuário pode possuir vários perfis
distintos e em vários sistemas. São atualizadas pelo módulo de customização e
instanciação de sistemas e acessada pelo módulo de gerenciamento de usuários.
4. Entidades: tblgeStatus e tblgeSystemUserStatus
Armazenam os status de usuários nos sistemas e o relacionamento de usuários com
status. Um usuário pode possuir apenas um status por sistema, por isso existe uma cláusula
unique no script de criação deste tabela (conforme anexo E – Script do Banco de Dados).
São atualizadas pelo módulo de customização e instanciação de sistemas e acessada pelo
módulo de gerenciamento de usuários.
5. Entidades: tblgePDAs e tblgeUserPDAs
Armazenam os PDA’s disponíveis (cadastrados com número serial) e o status de
cada um, relacionando-o com o usuário que utiliza o aparelho. Utilizam a tabela status para
diferenciar registros de empréstimo e devolução e permitem o armazenamento de um
histórico de empréstimos de PDA’s a usuários. São atualizada no módulo de instanciação
de customização de sistemas.
32
Figura 15 – Representação Física das Tabelas - Gerenciamento de Entidades
6. Entidade: tblgeReportQuery
Armazena os scripts para geração de relatórios com as informações cadastradas.
Relaciona-se com sistemas porque os relatórios são partes do sistema, ou seja, devem ser
opções de consulta para os sistemas relacionados. É atualizada no módulo de instanciação
de customização de sistemas e utilizada no módulo de geração de relatórios.
7. Entidades: tblgeTables, tblgeTableTypes e tblgeSystemTables
A tabela tblgeTables armazena um registro para cada nova tabela criada para um
sistema que é instanciado. A tabela tblgeTableTypes armazena os tipos de tabelas,
indicando de tratam-se de depósitos fixos (que devem ser copiados para o PDA), se são
tabelas de armazenamento de coletas (que são alimentadas no PDA), etc. A tabela
tblgeSystemTables relaciona as tabelas com os sistemas. Uma tabela pode relacionar-se
com mais de um sistema. São atualizadas no módulo de instanciação de customização de
sistemas.
33
8. Entidades: tblgeFields e tblgeTableFields
Armazenam os campos criados em cada tabela e o relacionamento destes campos
com as tabelas (quais tabelas possuem quais campos). São atualizadas no módulo de
instanciação de customização de sistemas.
9. Entidades: tblgeFieldTypes e tblgeFieldTypeInterfaces
A tabela tblgeFieldTypes armazena os tipos de campos disponíveis, que podem ser
escolhidos na customização do sistema. A tabela FieldTypeInterfaces é uma tabela de
relacionamento auxiliar que relaciona tipos de campos com interfaces (representadas por
outra entidade), a fim de permitir que exista uma consistência entre os tipos de campos e as
interfaces utilizadas. São atualizadas no módulo de instanciação de customização de
sistemas.
10. Entidade: tblgeTableFieldRelationship
Esta tabela armazena os relacionamentos entre as tabelas, indicando chaves
primárias e estrangeiras. Existe uma clausula unique nesta entidade para que os
relacionamentos sejam armazenados sem redundâncias. É atualizada no módulo de
instanciação de customização de sistemas e utilizada no módulo de geração de relatórios.
11. Entidades: tblgeInterfaces e tblgeSystemFieldInterface
Armazenam respectivamente as interfaces com o usuário para cadastro em campos
disponíveis e o relacionamento dos campos com as interfaces dentro d um sistema. Uma
tabela pode possuir campos com interfaces diferentes em diferentes sistemas, conforme a
necessidade do usuário. São atualizadas no módulo de instanciação de customização de
sistemas e utilizada no módulo de geração de relatórios.
12. Entidade: tblgeFieldInterfaceKey
Esta tabela permite a criação de campos com valores pré-definidos vetoriais, ou
seja, para uma tabela de armazenamento, pode-se definir que um determinado campo tenha
em sua interface um vetor de opções vindos de um cadastro de uma outra tabela. É
atualizada no módulo de instanciação de customização de sistemas e utilizada no módulo
de geração de relatórios.
34
3.3. DIAGRAMA DE CLASSES
O projeto dos módulos cliente e servidor que serão implementados em linguagem
Java utilizam fortemente o conceito de.orientação a objetos. Por isso, apesar da análise de
grande parte do sistema ter sido feita de forma estruturada, para estes módulos foi feita
uma análise orientada a objetos, que permitiu a construção do diagrama de classes
apresentado na figura 16.
Estas classes devem ser utilizadas tanto no cliente (aplicação do PDA), quanto nos
applets de comunicação e na aplicação que roda no servidor, fazendo da comunicação com
os demais módulos do sistema. Esta é inclusive a grande vantagem da programação
orientada a objetos: além de permitir encapsulamento, permitir o reaproveitamento de
código.
35
Figura 16 – Diagrama de Classes
36
3.4 PROJETO DE INTERFACES
Nas figuras a seguir são representadas algumas das interfaces do sistema com o
usuário, em alguns dos módulos que compõe o sistema.
Estas interfaces podem sofrer alterações na etapa de implementação, pois
representam neste momento uma idéia do que será implementado no sistema.
Figura 17 – Cadastro de Sistemas
A figura 17 representa o cadastro de um sistema no Sistema de Gerenciamento
Customizável Basedo em PDA’s. É possível cadastrar entidades, usuários e relatórios.
Apenas o usuário administrador tem acesso ao cadastro de sistemas, entidades, usuários e
relatórios.
37
Figura 18 – Cadastro de Entidades
A figura 18 representa o cadastro de uma entidade. Pode-se criar uma tabela
definindo-se seu tipo, seus campos e, quando necessário, a interface dos campos. Podem
ser cadastrados dados fixos, para tabelas do tipo depósito fixo (tabelas que nunca tem seus
dados alterados no PDA, pois são pré-definidos no servidor).
38
Figura 19 – Cadastro de Usuários
Na figura 19 é apresentada uma representação do cadastro de um usuário de um
sistema instanciado.
39
Figura 20 – Acesso de Usuário com Perfil PDA
A figura 20 é um projeto da tela de acesso ao sistema web de um usuário com perfil
PDA, ou seja, um usuário que utiliza o PDA como coletor de dados. Neste caso o acesso é
feito via PC, mediante um login. Existe a possibilidade de receber uma instalação do
sistema para o PDA (que deve ser posteriormente transferida para o aparelho) ou de
comunicação (por um applet Java).
40
Figura 21 – Interface do Sistema do PDA
A figura 21 representa as duas funcionalidades básicas da aplicação que é
executada nos PDA’s: coleta de dados e comunicação.
A coleta de dados é construída com base nas entidades e interfaces definidas na
comunicação. A comunicação permite que o usuário escolha, no PDA, qual a forma de
comunicação entre o PDA e o Servidor, e qual a porta do aparelho utilizada (serial, USB
ou Infravermelho).
41
Figura 22 – Emissão de Relatórios
A figura 22 é o projeto da interface para o usuário com perfil consulta web, que
pode emitir relatórios dos dados que foram coletados pelos PDA’s e armazenados no
servidor. O acesso é feito mediante login e os relatórios são pré-definidos em uma lista,
onde o usuário pode selecionar quais as informações deseja acessar.
42
3.5. CONSIDERAÇÕES SOBRE O PROJETO
A seguir serão apresentadas algumas considerações sobre o projeto do sistema, para
cada um dos módulos (banco de dados, cliente e servidor).
3.5.1. BANCO DE DADOS
O banco de dados será implementado no MSDE (SQL Server), e será acessado via
ODBC, no caso das páginas ASP e via JDBC no caso da aplicação Java para comunicação
que estará sendo executada no servidor.
Além das tabelas, já especificadas neste documento, serão armazenadas no próprio
SGBD as procedures para acesso aos dados, tornando o sistema mais encapsulado, pois a
lógica de banco de dados ficará toda no banco de dados. Os comandos na base de dados
são executados mediante a chamadas de procedures no código.
As tabelas apresentadas (sistema geral), são as tabelas que administram o restante
do banco de dados e permitem que o sistema recupere as informações das demais tabelas
que serão criadas em tempo de execução. Por exemplo, a construção de um “SELECT” na
base de dados de um sistema que foi instanciado será feita com base em informações
coletadas das tabelas administrativas. Construída a query, o comando será passado ao
banco de dados para o retorno dos dados específicos.
3.5.2. CLIENTE
A aplicação do cliente será totalmente implementada em Java e não terá acesso
direto ao SGBD, mas sim a arquivos em formato texto que são armazenados no PDA.
Assim, coloca-se como requisito para este sistema que o PDA tenha pelo menos dois
megabytes de memória livre, para que o sistema possa ser instalado, juntamente com
tabelas e dados coletados.
43
A implementação será feita com base nas especificações J2ME e J2SE, além do
pacote RMI (Remote Method Invocation, ou Invocação Remota de Métodos) para a
comunicação. No cliente pretende-se utilizar o Personal Java, que faz parte da
especificação do J2ME, para a execução das aplicações Java.
Uma característica marcante do sistema do cliente é o fato de ele ser composto de
uma base comum, que contém o sistema que é executado no PDA, e um template, que é
criado especificamente para cada sistema.
3.5.3. SERVIDOR
O servidor será composto de um site, baseado em tecnologia ASP que permitirá a
administração dos sistemas, consulta de relatórios e comunicação do PDA com o servidor.
A comunicação com o cliente será feita por RMI e, para isso uma aplicação estará rodando
no servidor para receber e armazenar os dados que os clientes enviam no banco de dados
(acesso via JDBC).
No site, pretende-se disponibilizar um applet para envio de dados do PDA ao
servidor, como segunda opção de comunicação – indireta. Assim, um PDA que não possui
modem ou cartão de acesso à rede poderá enviar os dados via serial, porta USB ou
infravermelho para um PC, que esteja acessando o site e enviar os dados através do applet,
atualizando os dados coletados na base central.
44
3.6. FERRAMENTAS UTILIZADAS
Para o desenvolvimento deste sistema estão sendo utilizada as seguintes
ferramentas:
-
Microsoft Visual Interdev: para o desenvolvimento do módulo web (baseado em
tecnologia ASP).
-
Java Creator: para o desenvolvimento dos módulos implementados em
linguagem Java.
-
J2ME, J2SE, Personal Java e Java RMI: para o desenvolvimento dos módulos
implementados em Java.
-
MSDE, ODBC e JDBC: ODBC e JDBC são utilizados para acessar o banco de
dados, que é armazenado no sistema de gerenciamento de banco de dados
MSDE (engine do SQL Server).
-
IIS (Internet Information Server): para executar as páginas ASP no servidor e
disponibiliza-las para acesso em uma intranet ou na internet.
Além destas ferramentas, está sendo utilizado para testes e simulações, um PDA do
tipo Pocket PC - HP Jornada 540, com dezesseis megabytes de memória.
Outras ferramentas como Microsoft Access para visualização e edição de dados em
tabelas e browser para acesso às páginas web também podem ser consideradas, auxiliando
no desenvolvimento do projeto.
45
4. CONCLUSÃO
A fase de especificação do projeto permitiu uma visualização do que seria
implementado como projeto final – um Sistema de Gerenciamento Customizável Baseado
em PDA’s. Já nesta segunda fase, de projeto, a idéia a mostrar algumas diretrizes de como
o projeto deverá ser implementado. A intenção é projetar o sistema antes da
implementação para que, nesta próxima fase, não existam erros conceituais no sistema.
Com a conclusão da etapa de projeto do sistema pode-se visualizar com mais
clareza os objetivos do sistema, bem como a forma como ele se relacionará com o meio
externo (usuários e dispositivos de hardware, neste caso os PDA’s).
A próxima etapa, na qual será apresentada a implementação do sistema servirá
como validação desta etapa de projeto, pois poderão ser verificados quais os pontos que
foram atendidos e os que não foram previstos nesta fase – ainda que a preocupação de
atingir todo o sistema tenha sido bastante grande.
Este documento está em sua segunda revisão, de um total de pelo menos quatro.
Ainda existem pontos a acrescentar e a alterar para que seja constituída a documentação
formal completa deste projeto.
46
5. ANEXO A – ANÁLISE DE CONCORRÊNCIA
A área de desenvolvimento de aplicações baseada em dispositivos móveis está em
grande expansão. Existem diversas software houses provendo soluções para este mercado,
mas nota-se que nenhuma destas soluções possui a característica da customização. A seguir
serão listados os principais concorrentes, bem como algumas informações adicionais.
1. Airgate:
Empresa de São Paulo. Foco de trabalho: wireless, energia, telecom e integração.
2. Bergen Mobile:
Situada em São Paulo, a Bergen Móbile atende várias empresas de grande porte e
tem os seus produtos voltados para a área de logística, exportação e importação.
3. Compusol:
A empresa, de São Paulo, é provedora de diversas soluções para PDA’s, além de
possuir uma linha completa de impressoras portáteis para os produtos da linha Palm. Todas
as aplicações são específicas, faltando apenas uma aplicação mais genérica.
4. Criterium:
Esta empresa do Rio Grande do Sul tem como clientes várias empresas de grande
porte e possui vários softwares disponíveis, como controle de vendas por PDA.
5. Eccelera do Brasil Ltda:
Um pouco diferenciada das demais empresas, a Eccelera trata de investimentos em
desenvolvimento de tecnologias na América Latina.
6. Hands:
Empresa do Rio de Janeiro. Possui soluções de integração PDA/WAP.
Interessante. Possui soluções para Palm / WAP. Destaca-se entre as soluções um
sincronizador, que possui:
47
-
Intercâmbio bidirecional, permitindo que servidores corporativos solicitem e
controlem o fluxo de informações de e para PDAs;
-
Protocolo de comunicação HTTP;
-
Padrão de intercâmbio de dados XML.
Esta empresa trabalha também no ramo de prover informações para dispositivos
portáteis.
7. HandSolutions:
Empresa de São Paulo. As aplicações são desenvolvidos em C com o Code
Warrior, o banco de dados é o Oracle, e soluções web são desenvolvidas em Linux e
Apache. O protocolo de comunicação utilizado é o TCP/IP. As páginas web são
desenvolvidas em PHP. Atua na área de força de vendas, logística, transporte,
gerenciamento de leads, coleta de dados, serviços financeiros, saúde, governo e Internet
wireless.
8. Logical Systems:
Sistuada no Rio de Janeiro, trabalha especificamente com computação móvel. Tem
soluções para automação de força de vendas, tomada de preços, fiscal de ponto, geração de
comandas eletrônicas, controle de frigobar, automação de diário de classe, simulador de
seguros previdenciários, vistoriador de seguros e pesquisa eletrônica.
10. Orbsystem:
Esta empresa de São Paulo alia computação móvel a sistemas de restreamento por
satélite (localização). Possui um sistema de restreamento pela web (Orb-soft web) bastante
interessante.
11. Palm Systeme:
Situada em Minas Gerais, a empresa desenvolve especificamente para PDA’s. Uma
aplicação interessante é um navegador UOL para Palm.
12. Portway:
Localizada em São Paulo, os produtos incluem soluções para: força de vendas,
visitação médica, gerência de bancos, seguros e previdência, logística, pesquisas e
manutenção em campo.
48
6. ANEXO B – ANÁLISE DE PDA’S
Existem diversos tipos de PDA’s disponíveis no mercado, com preços e
características variados. O objetivo para este sistema é permitir a utilização de todos estes
dispositivos, pois o software é baseado em uma solução Java, que é independente de
plataforma.
Na tabela I, a seguir, são apresentados alguns PDA’s pesquisados, com algumas
características básicas de cada solução.
Tabela I – Comparação de PDA’s
FABRICANTE
DO PDA
MODELO
DO PDA
PREÇO PARA A
AQUISIÇÃO
SISTEMA
OPERACIONAL
HP
Jornada 720
R$ 3799,00
MS Windows 2000 for
Haldheld PC
HP
Jornada 568
R$ 2199,00
MS Windows para
Pocket PC
HP
Jornada 548
R$ 1499,00
MS Windows para
Pocket PC
HP
Jornada 545
R$ 1499,00
MS Windows para
Pocket PC
HP
Jornada 525
R$ 999,00
MS Windows para
Pocket PC
Palm
i705
(indisponível no Brasil)
Palm OS 4.1
Palm
m515
R$ 1399,00
Palm OS 4.1
Palm
m505
R$ 1699,00
Palm OS 4.0
Palm
m500
R$ 1299,00
Palm OS 4.0
Palm
m130
R$ 899,00
Palm OS 4.1
Palm
m125
R$ 699,00
Palm OS 4.0
Palm
m100
R$ 459,00
Palm OS 3.5
Palm
Vx
R$ 783,00
Palm OS 3.3
Sharp
Zaurus – SL5000D
US$ 299,00 na JavaOne Feira anual de
desenvolvedores Java.
Linux 2.4 (Embedix) /
Personal Java (Jeode)
FUNCIONALIDADES
/ CARACTERÍSTICAS
O PDA vem com teclado
acoplado e é um dos
melhores da HP.
Não possui teclado
acoplado, mas é um dos
top de linha da HP.
Handheld com tela
colorida e recursos
multimídia.
Handheld com tela
colorida e recursos
multimídia.
Opção mais econoômica
e com menos memória
que os modelos 540.
Possui acesso a Internet
por wireless embutido.
Não disponível no Brasil.
Colorido e com bastante
memória em relação aos
demais da Palm.
Colorido e com a metade
da memória do m515.
Deixou de ser fabricado.
Opção monocromática e
com menos memória que
os superiores.
PDA mais simples, mas
com o atrativo da tela
coloriada.
PDA mais simples, com
tela monocromática e
utilização de pilhas.
PDA mais simples,
monocromático, pilhas.
Deixou de ser fabricado.
Opção intermediária
entre m100 e m500.
Deixou de ser fabricado.
Baseado em Java e Linux
com especificações
abertas.
49
Além destes, existem diversas outras soluções para computação móvel, desde
PDA’s mais simples e baratos a PDA’s com integração a telefones móveis.
Especial atenção deve ser dada ao Sharp Zaurus, que tem a plataforma aberta e é
baseado em Linux e Java. Este PDA possui um site para desenvolvedores com toda a
especificação de hardware e software necessárias para desenvolvimento, e é desenvolvido
por pessoas por todo o mundo.
Durante a JavaOne, evento anual de encontro de desenvolvedores Java., o
equipamento estava sendo vendido a US$ 299,00. A JavaOne aconteceu em março de
2002, em São Francisco – CA.
50
7. ANEXO C - CRONOGRAMA
Na tabela II é apresentado o cronograma básico do desenvolvimento deste projeto
final, com as atividades que serão desenvolvidas.
Tabela II - Cronograma
TAREFAS
Definição da Proposta de Projeto Final
Elaboração da Especificação de Projeto Final
Projeto e Análise de Sistema
Implementação do Sistema
Validação e Documentação
Reunião de Acompanhamento
INÍCIO
18/02/02
11/03/02
29/04/02
17/06/02
16/09/02
18/02/02
FINAL
04/03/02
15/04/02
24/06/02
23/09/02
25/11/02
25/11/02
DIAS
16
34
55
96
69
Este cronograma é baseado nas atividades macro do desenvolvimento do projeto.
Para estimativa de horas, devem ser consideradas 2 horas de trabalho por dia (14 horas
semanais), e trabalho sendo realizado por apenas 01 recurso.
Na figura 23 é apresentado um diagrama simplificado da distribuição das atividades
no tempo, no qual cada célula representa aproximadamente 10 dias de trabalho.
Figura 23 – Distribuição das Atividades no Tempo
51
8. ANEXO D – ESTIMATIVA DE CUSTOS
Para o desenvolvimento deste projetos estão sendo utilizados recursos que já não
estão disponíveis no mercado, como é o caso do PC Pentium 266 MHz. O próprio
Microsoft Visual Studio 6.0 já foi substituído pela nova versão .NET, que é
significativamente diferente.
Para efeitos de estimativa de custos, optou-se por considerar um computador atual,
com sistema operacional e ferramenta de desenvolvimento nas versões que estão sendo
comercializadas e um PDA intermediário.
Na tabela III são apresentadas as estimativas de custo do projeto.
Tabela III – Estimativa de Custos
RECURSO / INSUMO
PC Celeron 900MHz, 128MM RAM
PDA Palm M130
SGBD
J2ME / J2EE
Ms Windows Xp Professional
Ms Visual Studio .NET Professional
400 Horas de Desenvolvimento
TOTAL
CUSTO
Na figura 24 é apresentada a distribuição de custos do projeto.
Figura 24 – Distribuição de Custos
R$1799,00
R$899,00
R$0,00
R$0,00
R$859,00
R$3075,00
R$10000,00
R$16632,00
52
9. ANEXO E – SCRIPT DO BANCO DE DADOS
O script a seguir é utilizado para a criação do banco de dados e das tabelas de
administração de sistemas. Ainda devem ser incluídos os códigos das stored procedures.
DROP DATABASE dbSyGePDA
CREATE DATABASE dbSyGePDA
CREATE TABLE tblgeUsers(
usrID
integer
usrLogin
varchar(10)
usrPassword
varchar(10)
usrName
varchar(100)
usrCompany
varchar(100)
usrPosition
varchar(100)
usrMail
varchar(100)
usrPhone
varchar(20)
usrInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeSystems(
sysID
integer
sysOwner
integer
sysName
varchar(100)
sysDescription
varchar(500)
sysInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
FOREIGN KEY REFERENCES tblgeUsers(usrID),
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeStatus(
staID
integer
staName
varchar(50)
staInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeProfiles(
prfID
integer
prfName
varchar(50)
prfDescription
varchar(100)
prfInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeSystemUserStatus(
susSystem
integer
susUser
integer
susStatus
integer
UNIQUE (susSystem, susUser)
)
FOREIGN KEY REFERENCES tblgeSystems(sysID),
FOREIGN KEY REFERENCES tblgeUsers(usrID),
FOREIGN KEY REFERENCES tblgeStatus(staID)
CREATE TABLE tblgeSystemUserProfile(
supSystem
integer
FOREIGN KEY REFERENCES tblgeSystems(sysID),
supUser
integer
FOREIGN KEY REFERENCES tblgeUsers(usrID),
supProfile
integer
FOREIGN KEY REFERENCES tblgeProfiles(prfID),
UNIQUE (supSystem, supUser, supProfile)
)
CREATE TABLE tblgePDAs(
pdaID
integer
pdaName
varchar(200)
pdaSerial
varchar(100)
pdaSO
varchar(50)
pdaMemory
integer
pdaInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT 0,
NOT NULL DEFAULT GETDATE()
53
CREATE TABLE tblgeUserPDAs(
updUser
integer
updPDA
integer
updStatus
integer
updInputDate
datetime
UNIQUE(updUser, updPDA)
)
FOREIGN KEY REFERENCES tblgeUsers(usrID),
FOREIGN KEY REFERENCES tblgePDAs(pdaID),
FOREIGN KEY REFERENCES tblgeStatus(staID),
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeTableTypes(
ttyID
integer
ttyName
varchar(50)
ttyDescription
varchar(200)
ttyInputDate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeTables(
tabID
integer
tabTableType
integer
tabName
varchar(50)
tabDescription
varchar(200)
tabInputdate
datetime
tabUpdateDate
datetime
)
PRIMARY KEY NONCLUSTERED,
FOREIGN KEY REFERENCES tblgeTableTypes(ttyID),
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE(),
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeSystemTables(
sytSystem
integer
sytTable
integer
UNIQUE (sytSystem, sytTable)
)
FOREIGN KEY REFERENCES tblgeSystems(sysID),
FOREIGN KEY REFERENCES tblgeTables(tabID),
CREATE TABLE tblgeInterfaces(
intID
integer
intName
varchar(50)
intDescription
varchar(200)
fltInputdate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeFieldTypes(
fltID
integer
fltName
varchar(50)
fltDescription
varchar(200)
fltInputdate
datetime
)
PRIMARY KEY NONCLUSTERED,
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeFieldTypeInterface(
ftiFieldType
integer
FOREIGN KEY REFERENCES tblgeFieldTypes(fltID),
ftiInterface
integer
FOREIGN KEY REFERENCES tblgeInterfaces(intID),
UNIQUE (ftiFieldType, ftiInterface)
)
CREATE TABLE tblgeFields(
fldID
integer
fldFieldType
integer
fldName
varchar(50)
fldDefault
varchar(200)
fldNotNull
bit
fldInputdate
datetim
)
PRIMARY KEY NONCLUSTERED,
FOREIGN KEY REFERENCES tblgeFieldTypes(fltID),
NOT NULL DEFAULT '',
NOT NULL DEFAULT '',
NOT NULL DEFAULT 0,
NOT NULL DEFAULT GETDATE()
CREATE TABLE tblgeSystemFieldInteface(
sfiID
integer
PRIMARY
sfiSystem
integer
FOREIGN
sfiField
integer
FOREIGN
sfiInterface
integer
FOREIGN
UNIQUE(sfiSystem, sfiField, sfiInterface)
)
KEY
KEY
KEY
KEY
NONCLUSTERED,
REFERENCES tblgeSystems(sysID),
REFERENCES tblgeFields(fldID),
REFERENCES tblgeInterfaces(intID)
CREATE TABLE tblgeTableFieldRelationship(
tfrID
integer
PRIMARY KEY NONCLUSTERED,
tfrParentTable
integer
FOREIGN KEY REFERENCES tblgeTables(tabID),
tfrChildTable
integer
FOREIGN KEY REFERENCES tblgeTables(tabID),
tfrParentField
integer
FOREIGN KEY REFERENCES tblgeFields(fldID),
tfrChildField
integer
FOREIGN KEY REFERENCES tblgeFields(fldID)
UNIQUE (tfrParentTable, tfrParentField, tfrChildTable, tfrChildField)
)
54
CREATE TABLE tblgeFieldInterfaceKey(
fikFieldInterface
integer
FOREIGN KEY REFERENCES tblgeSystemFieldInteface(sfiID),
fikRelationship
integer
FOREIGN KEY REFERENCES tblgeTableFieldRelationship(tfrID),
fikKey
integer
FOREIGN KEY REFERENCES tblgeFields(fldID),
fikDisplayOrder
integer
NOT NULL DEFAULT 0,
fikSortOrder
integer
NOT NULL DEFAULT 0,
fikDescendent
bit
NOT NULL DEFAULT 0
UNIQUE(fikFieldInterface, fikRelationship, fikKey)
)
CREATE TABLE tblgeTableFields(
tflTable
integer
tflField
integer
UNIQUE (tflTable, tflField)
)
CREATE TABLE tblgeReportQueries(
rpqID
integer
rpqSystem
integer
rpqQuery
varchar(5000)
rpqInputDate
datetime
)
FOREIGN KEY REFERENCES tblgeTables(tabID),
FOREIGN KEY REFERENCES tblgeFields(fldID)
PRIMARY KEY NONCLUSTERED,
FOREIGN KEY REFERENCES tblgeSystems(sysID),
NOT NULL DEFAULT '',
NOT NULL DEFAULT GETDATE()
55
10.
REFERÊNCIAS BIBLIOGRÁFICAS
DEITEL, H. M.; DEITEL, P. J. Java – Como Programar. 3.ed. Porto Alegre,
Bookman, 2001.
GRIMES, RICHARD. Professional DCOM Programming. Canadá, Wrox Press,
1997.
BATE BYTE – O ESTADO DA ARTE NA CELEPAR / Companhia de
Informática do Paraná. Curitiba, n. 118, Março 2002.
PALM, http://www.palm.com, Março/2002.
PALM OS EMULATOR,
http://webdev.apl.jhu.edu/~rbe/kvm/HowToInstallPOSE.html, Março/2002.
PALM OS, http://www.palmos.com/dev/tools/emulator/, Março/2002.
PALM DEVELOPERS, http://www.palm.com/br/developers/dev_index.html,
Março/2002
KVM, http://www.ajug.org/info/tech/KVM/kvm.html, Março/2002.
JAVA, http://www.javasoft.com, Março/2002.
MSDN, http://msdn.Microsoft.com/vstudio/downloads/addins/msde/default.asp,
Março/2002.
MYSQL, http://www.mysql.com, Março/2002.
Download