Universidade Federal de Santa Catarina Bacharelado em Sistemas

Propaganda
Universidade Federal de Santa Catarina
Bacharelado em Sistemas de Informação
Disciplina de Introdução a Projetos
Aluno : Nicolás Curti Chiribao – 0213836-0
Orientador: Prof. João Candido Dovicci
Dispositivos móveis como servidores de informação
Estudo de viabilidade para a criação de dispositivos móveis conectados
como provedores de serviços e Informação.
Florianópolis, julho de 2006
Introdução:
Sistemas usando dispositivos móveis celulares já são uma realidade presente no nosso
1/14
dia-a-dia e já são usados há tempos em aplicações de telemetria, controle, automação e
monitoramento de equipamentos e veículos.
Apesar de não ser uma idéia nova no meio tecnologico, o tema não é tão popular quanto
parece, e os conhecimentos na área muitas vezes não são difundidos no meio
academico, que muitas vezes confunde o que realmente existe e é possível com idéias de
ficção cientifica.
Durante o periodo academico, por muitas vezes houveram duvidas entre os colegas sobre
que tipo de tecnologia nesta área seria real e viável, tanto tecnicamente como
financeiramente. Monitorar a posição de uma pessoa por triangulação de antenas no
celular? Controlar o que acontece na nossa casa através de um link pela internet? E a
automação de uma fabrica inteira, seria possível através de um tecnico com um celular
em mãos? E quando o dispositivo a ser controlado não tem uma posição fixa, ou não tem
contato com um ponto de rede com acesso a internet?
Estas são algumas perguntas que nos levaram a pensar neste trabalho e desbravar um
pouco mais deste mundo da comunicação remota por celular, e sua aplicação em
sistemas, não só industriais, mas naqueles que temos uso e acesso no nosso cotidiano.
Com o barateamento destas tecnologias, a Experimentação Remota se torna cada dia
mais proxima de ser não só tecnica, mas financeiramente viável em muitas aplicações.
Mas para que isto saia da nossa imaginação e passe para o papel, e em seguida para os
prototipos e uso, precisamos antes acabar com alguns mitos e ver que na realidade, a
programação destes dispositivos móveis está longe de ter uma complexidade intangivel,
mas ao mesmo tempo, não é tão fácil quanto parece.
O tema Dispositivos Móveis como Servidores de Informação tem a intenção de mostrar
que é possível um dispositivo prover informações em tempo real a um usuario, não
importando onde ambos estejam. Não temos mais por que estar amarrados a fios e
cabos, nem a tecnologias carissimas para ter mobilidade. Mostrar que isso é possível, e
como podemos faze-lo, é a nossa busca neste trabalho.Objetivo
do trabalho
O objetivo deste trabalho é fazer um estudo da tecnologia J2ME e dos frameworks de
programação que existem hoje que permitam fazer com que dispositivos móveis possam
se tornar fornecedores de informação, e não apenas consumidores. Pretendemos ao final
2/14
deste propor uma arquitetura e apresentar um conjunto de tecnologias que torne viável
esta idéia.
Objetivos Específicos
–
Estudar tecnologia J2ME, suas vantagens e limitações;
–
Estudar frameworks de comunicação;
–
Estudar protocolos de comunicação;
–
Propor uma arquitetura para acesso a dados em dispositivos móveis.
Escopo
O escopo do trabalho será o estudo da tecnologia J2ME, incluindo aí as especificações da
criadora da tecnologia, Sun Microsystems. Também será estudado a arquitetura e
especificações de frameworks existentes hoje com o objetivo de facilitar a comunicação
entre dispositivos e dos protocolos envolvidos nestas.
Como o trabalho envolverá a aplicação prática dos conceitos estudados, também será
necessário o estudo das especificações de hardware compatível com a idéia, o que
envolve módulos celulares que implementam J2ME e são capazes de ser programados e
de ter embutidos neles os programas e frameworks descritos anteriormente.
Para que o trabalho tenha uma aplicação prática, estudaremos também as necessidades
de algumas empresas por esta tecnologia, através de estudos de caso, estudando as
vantagens da aplicação da tecnologia celular sobre as tecnologias usadas atualmente.
Tecnologia J2ME
A origem da plataforma java surgiu em 1995, e era destinada a tornar real a idéia de se
escrever os códigos de programa uma vez, e poder rodá-los em qualque rmaquina ou
dispositivo que tivesse implementado em si a plataforma da maquina virtual Java.
Dois anos depois de seu lançamento, o Java sofreu um Upgrade, junto com o lançamento
3/14
da sua versão 1.2. Foi criado o conceito de J2SE(Java 2 Standard Edition) para o pacote
java que seria executado em computadores pessoais, e incluidos na familia Java 2 o
J2EE(Java 2 Enterprise Edition), destinado a rodar aplicativos corporativos e J2ME(Java 2
Micro Edition), destinado a rodar em equipamentos com pouca capacidade de memoria e
processamento. Este ultimo foi o pacote mais revolucionario que foi criado, segundo
algumas opiniões, pois permitiu que dispositivos que vão desde microcontroladores,
celulares ou equipamentos acoplados a televisores pudessem ser programados e ter
aplicativos desenvolvidos e instalados a qualquer momento, e numa linguagem cada vez
mais popular e de facil aprendizado, se compararmos a linguagens tradicionais de
programação destes equipamentos, como assembly, por exemplo, que tornava inviavel a
ideia de que estes dispositivos rodassem qualquer outro aplicativo que não fosse aqueles
que saíam da fabrica com o equipamento. A partir da criação do J2ME, finalmente
podemos pensar em programação de aplicativos para equipamentos que, anteriormente,
tinham seus programas intimamente ligados a seus circuitos. Foi o inicio da
independencia entre software e hardware para dispositivos móveis, comparavel ao que
aconteceu quando do advento dos computadores pessoais na decada de 80.
Definição de CDC (Conected Device Configuration) e CLDC (Conected Limited
Device Configuration)
Para permitir a compatibilidade e distinção entre uma ampla variedade de dispositivos
com caracteristicas difrentes de recursos disponiveis, foi criado o conceito de
configurações de dispositivos para J2ME. As configurações de Dispositivos móveis são o
mínimo de recursos que um desenvolvedor pode esperar de um dispositivo com o qual
está trabalhando, em termos de memória, processamento, hardware, assim como
bibliotecas basicas da JVM disponiveis. Os dois padrões de configuração definidos pela
industria e amplamente conhecidos são o CDC e CLDC.
Num FAQ sobre J2ME do site da Sun, foi encontrado uma definição geral e informal das
configurações que pode dar uma idéia interessante das diferenças entre elas: "A
tecnologia J2ME tem dois centros de projeto – Um para os dispositivos que você carrega
na mão, e outro para aqueles que você conecta na parede."
CDC – Conected Device Configuration: É uma configuração focada em dispositivos
conectados à rede, como conversores de TV a cabo, navegadores de carros e PDAs. São
4/14
dispositivos que possuem todas as funcionalidades da maquina virtual java. Esta
configuração especifica que os dispositivos tenham ao menos 512 Kb de memoria ROM
para os programas Java, 256 Kb de memoria RAM para alocação de memoria em tempo
de execução e algum tipo de conexão de rede de banda possivelmente persistente e alta.
CLDC – Conected Limited Device Configuration: Esta será a configuração estudada e
aprofundada neste trabalho. Ela é importante dentro do J2ME, pois representa um grupo
basico de bibliotecas e caracteristicas de maquina-virtual suficientes para rodar uma
aplicação java em equipamentos limitados em memoria e processamento. A maquina
virtual e classes java para estes equipamentos podem ser contidos em dispositivos com
até 128Kb de memoria de programa e 32Kb de memoria para alocação em tempo de
execução.
Para caber neste espaço reduzido de memoria, algumas funcionalidades foram cortadas
da maquina virtual, como suporte a ponto flutuante, JNI ou Reflection, Thread Groups,
entre outras. Note que threads são suportadas pela maquina virtual. A restrição é apenas
para grupos de Threads. Uma nova versão de CLDC, conhecida como CLDC 1.1, tem
menos restrições, permitindo por exemplo o suporte a calculos com ponto flutuante.
Máquina Virtual K
A máquina virtual K é uma implementação de referencia de maquina virtual que atende à
especificação CLDC. Esta maquina virtual foi projetada paa ser a menor e mais eficiente
maquina virtual capaz de rodar aplicativos Java. Seu código foi escrito em C, para
possibilitar a portabilidade ao maior numero possivel de dispositivos, sendo necessárias
personalizações apenas na questão de tratamento de erros e manipulação de memoria
para atender a particularidades de cada maquina real. O nome K a maquina virtual se
explica pelo seu objetivo de rodar em equipamentos em apenas algumas dezenas de
Kbytes de memoria.
MIDP – Perfil de Dispositivo de Informação Móvel
Para tratar da ampla variação de recursos dos dispositivos, memso depois de
classificados dentro de configurações, e também das atualizações tecnologicas que
venham a ocorrer com os mesmos, a Sun lançou o conceito de Perfil na plataforma J2ME.
5/14
Um perfil pode ser entendido como uma extensão de uma configuração. O MIDP(MOBILE
Information Device Profile) particularmente é uma especificação de um conjunto de
bibliotecas minimas que devem ser contidas dentro de uma maquina virtual para rodar
J2ME em dispositivos móveis capazes de realizar comunicação e com limitações de
teclado e display, como celulares, por exemplo.
A Norma que rege os requisitos minimos que um perfil deve ter para ser considerado um
MIDP 1.0 é a JSR-37 (Java Specification Request) do JCP(Java Comunity Process).
Segundo esta norma, um dispositivo seria considerado um MIDP, se contivesse os
requisitos minimos de tela com tamanho 96x54, dispositivo de entrada de dados do tipo
teclado ou touch-screen, 128Kb de memoria de programa e 32Kb de memoria de
execução.
Nos equipamentos e módulos de telemetria estudados neste trabalho não temos
dispositivos de entrada e saída do tipo teclado e display, conforme rege a norma. Porém,
estes são opcionais, havendo APIs uqe permitem que estes sejam adaptados aos
módulos. Já que o principal objetivo da telemetria é fazer a interface com equipamentos
de medição e atuaçao, o principal meio de entrada e saída são portas seriais, que podem
trasmitir dados no padrão RS-232 ou através de entradas e saídas GPI/O(Generic
Pourpouse In/Out).
Esta é a principal diferença entre os equipamentos que implementam MIDP em celulares
de uso comum e modulos celular usados em telemetria. Nos demais quesitos de software
e hardware, ambos ostumam seguir as normas da JCP. Para contornar esta diferença no
tratamento de entradas e saídas, cada fabricante oferece bibliotecas particulares para o
tratamento e gerenciamento de entradas e saídas, de acordo com cada hardware.
Para o armazenamento de dados nos dispositivos, a JSR dita que estes devem ser
munidos de um sistema de armazenamento de dados, que é chamado RMS(Record
Management System). A plataforma deve ser responsável por fazer a gerencia deste
armazenamento no dispositivo, fornecendo às aplicações as bibliotecas necessárias para
incluir, ler e excluir dados em um meio persistente e organizado de armazenamento de
dados. A unidade de armazenamento deste sistema é uma Record(Registro), que nada
mais é que um array de bytes, identificados através de um identificador único chamado
6/14
RecordId.
O RMS tem uma utilidade muito grande nas aplicações de telemetria, uma vez que torna
possível ter no dispositivo meios de fazer buffer de dados ou armazenamento de
configurações ou parametros que possam ser usados e alterados durante a execução dos
aplicativos.
Telemetria
O termo telemetria, usado há algum tempo apenas como forma de medição de distancias
entre um observador e um ponto remoto, usando equipamentos conhecidos como
Telemetros. Com o avanço tecnologico, o termo telemetria passou a ser empregado
sempre que nos referimos a formas de fazer medições à distancia, pela origem grega da
palavra Tele(distancia) e Metria(Medição) [Rozas2004].
Esta tecnologia de medição à distancia que já é conhecida e difundida em diversos países
começa a se tornar popular no Brasil por conta da abertura de mercado que ocorreu na
década de 90 e da necessidade cada vez maor das empresas em melhorar seus serviços
de atendimento aos clientes, bem como ter um maior controle das operações de suas
industrias de produtos e serviços prestados.
Existem muitas maneiras de se implantar sistemas de telemetria no mercado,
dependendo das necessidades de cada empresa. A base de todo sistema de telemetria
está em tres elementos fundamentais, que são as unidades de medição e Leitura junto
com as suas interfaces, conhecido também como Elemento de Medição Remota(EMR),
redes de comunicação e uma central de monitoramento e gerenciamento.
7/14
A diferença entre o porte das diversas soluções de sistemas de telemetria são mais
visiveis quando pensamos no elemento de comunicação usado para integrar os
equipamentos à central de gerenciamento. Estas soluções de comunicação podem ir
desde um cabeamento serial RS-232 ou RS-485 para ligar as maquinas a uma sala de
controle até sistemas de comunicação por satélite, que permitem que seja controlado num
a só central equipamentos distribuidos por qualquer parte do mundo, até mesmo onde
não haja a minima condição de implementar qualquer outra comunicação.
Obviamente, que a diferença do custo do investimento de uma solução local é
sensivelmente menor que uma solução de telemetria global. E é para encontrar um meio
termo entre estas soluções, pesando custos e beneficios, que a comunicação via celular
se torna a opção mais viavel disponivel no mercado. Especialmente, após a popularização
de modens de relativamente baixo custo capazes de usar tecnologia GSM/GPRS para a
transmissão de dados. Além de diminuir o investimento inicial de compra de
equipamentos, são diminuidos também os custos de manutenção da telemetria, tanto do
ponto de vista do trafego de dados quanto da manutenção do hardware celular.
Vejamos agora uma pequena comparação entre algumas maneiras de se implementar
telemetria:
Satélite: A transmissão via satélite permite que seja feito controle sobre equipamentos de
maneira praticamente global, porém, o custo de equipamentos e manutenção desta
tecnologia a torna muitas vezes proibitiva. Também temos o problema da perda de sinal,
caso o equipamento de transmissão perca visibilidade com o satélite, algumas vezes por
se encontrar enclausurado ou até mesmo a causa de nuvens de mau tempo.
Rádio: É uma solução com custo de transmissão de dados zero, uma vez que os
equipamentos são de propriedade do proprio cliente. Porém, a responsabilidade do
8/14
funcionamento e o custo de instalação e manutenção também são responsabilidade do
cliente, o que exige uma equipe dedicada a esse trabalho. Tem a desvantagem também
de ter pouco alcance, o que exige pontos de repetição de sinal quando temos
equipamentos espalhados por uma grande área.
Linha discada(PSTN): Parece ser a principio a tecnologia mais barata de implementar
para telemetria, por precisar de equipamentos relativamente baratos e termos boa
disponibilidade de linhas telefonicas distribuidas nas areas urbanas e industriais. Porém,
os custos desta tecnologia começam a encarecer, quando levamos em conta o custo de
assinatura básica de uma linha telefonica, ou de instalação, manutenção e configuração
de centrais telefonicas e cabeamento. Também temos que considerar as relevantes
perdas de qualidade e demora de transmissão de dados por acesso discado.
Considerando também a probabilidade de queima de equipamentos caros por surto de
energia que vem com os cabos de telefonia, por resultado de raios, por exemplo,
implementar uma solução de telemetria com esta tecnologia pode ser um risco alto e caro
a se pagar.Estudo de Caso:
Implementação de Comunicação entre Epagri e estações meteorologicas
Para o aspecto prático deste trabalho, foi feito um estudo de caso através de projeto de
estágio do autor na EPAGRI/CIRAM – Empresa de pesquisa agropecuária e extensão
rural de SC/Centro de Informações de Recursos Ambientais e de Hidrometeorologia.
Neste projeto, foi projetada e desenvolvida uma arquitetura para fazer a comunicação
entre a empresa e as suas estações meteorológicas, para coleta de dados como
temperatura, pressão atmosferica, nivel de chuva, velocidade do vento, etc.
O estágio teve como objetivo inicial o estudo e desenvolvimento de aplicações em J2ME
para programação de módulo celular Siemens TC45.
A aplicação estudada foi a construção de uma interface de comunicação via rede celular
com as estações meteorológicas da empresa, que são distribuídas por uma extensa área
do estado, muitas vezes não permitindo uma fácil coleta dos dados registrados. A
comunicação destes dados via celular é uma alternativa, pela ampla cobertura da rede
celular GSM pelo estado.
O projeto teve inicio em setembro de 2005, e suas atividades se encerram em 20 de
dezembro de 2005.
9/14
Apresentação da Empresa: EPAGRI/CIRAM – Empresa de pesquisa agropecuária e
extensão rural de SC/Centro de Informações de Recursos Ambientais e de
Hidrometeorologia.
A Epagri/Ciram é um centro de informações associado ao governo do estado que
desenvolve pesquisas nos diversos segmentos do meio ambiente de forma
estrategicamente modulada e tem em sua estrutura funcional as seguintes áreas:
Recursos Hídricos, Geoprocessamento, Agrometeorologia, Educação e Saneamento
Agroambiental, Tecnologia da Informação e Zoneamento Agroambiental.
Atividades Realizadas no projeto:
-Estudo da tecnologia J2ME;
Inicialmente, foi estudada toda a arquitetura do Java J2ME, suas principais
funcionalidades e formas de implementação. Uma etapa importante nessa fase de estudo
foi a instalação do framework e do ambiente de desenvolvimento, que demandou trabalho
para sua correta configuração.
Nesta atividade o maior conhecimento adquirido foi a diferenciação das varias
classificações de aparelhos que rodam J2ME e as varias configurações e pacotes
adicionais que podem ser usados, dependendo destas características.
- Estudo das especificações do modulo Siemens TC45;
As especificações do equipamento Modulo Siemens TC45 e sua arquitetura foram
estudados de modo a conhecer a fundo as suas possibilidades de funcionamento e de
integração com equipamentos e com outros sistemas. Este equipamento foi escolhido
como referencia pela sua capacidade de rodar aplicativos J2ME CLDC1.0 e MIDP 1.0,
bem como por seu tamanho compacto e possibilidades de comunicação entre o modulo e
uma porta serial RS-232 padrão. Este equipamento também tem a opção de uso de pinos
de entrada e saída de dados digitais GPIO(Generic Purpouse I/O). Estas duas opções
permitem que o equipamento se comunique de maneira eficaz com a maioria dos
instrumentos de medição e automação existentes no mercado, sem a necessidade de
10/14
grandes implementações de interfaces entre os equipamentos.
Este módulo consiste num micro-controlador que roda Java J2ME, acoplado a um modem
GSM/GPRS e a uma saída serial para acoplar outros equipamentos de medição ou
telemetria.
Usando as APIs do equipamento, é possível programa-lo para fazer a interface entre um
equipamento de medição que possa transmitir dados lidos por sensores através de uma
interface serial RS-232, e transmitir para um servidor ou outro equipamento usando uma
conexão discada, GPRS, ou mensagem SMS.
- Elaboração da arquitetura de monitoramento remoto;
Como o objetivo do estudo, é o desenvolvimento de uma arquitetura, que possibilite a
comunicação com estações de monitoramento remotas. Na Epagri hoje existem estações
meteorológicas que medem por todo o estado as condições de vento, temperatura,
chuvas, entre outras variáveis. Nas estações é usado um equipamento DataLogger que lê
os dados dos sensores e transforma em caracteres numéricos, transmitidos por uma
interface serial RS-232 de tempos em tempos, conforme configuração.
Sendo assim, desenvolvemos uma arquitetura em que o modulo TC45 é programado para
ficar aguardando na porta serial a chegada dos caracteres a serem transmitidos e
armazena os mesmos numa fila. De tempos em tempos, outra Thread do programa lê a
fila, e encontrando dados a ser transmitidos faz a conexão http com o servidor, enviando
estes dados para ser armazenados e analisados.
Segue o esquema da arquitetura do projeto:
11/14
- Desenvolvimento do programa de monitoramento do modulo Siemens integrado com
DataLogger da estação;
Projetada a arquitetura do sistema, a codificação do programa passou pelas etapas de
modelagem, codificação, testes e reengenharia.
Na primeira modelagem, foram projetadas uma classe principal de controle do programa,
que instanciaria duas outras Threads, que fariam a interação com a porta serial e com a
conexão com o servidor.
Feitos os primeiros testes, foi adicionada mais uma classe chamada Modem para fazer o
controle do modem e seu estado.
Com os testes e a maturação do modelo, foi criada também uma classe para servir de
parser de comandos recebidos pela porta serial, enquanto o programa está ativo. Desta
maneira, o dataLogger ou outros equipamentos podem fazer interações com o modulo
através de comandos, quando estes forem identificados como tal, por terem um símbolo
de interrogação no inicio da mensagem. Desta maneira pode-se interagir diretamente com
o modulo e o programa vivo, e ter informações sobre seu estado e as condições do
módulo, sem precisar interromper a execução.
12/14
- Documentação de manual de uso do sistema.
A documentação do manual de uso do sistema consiste de uma descrição textual de
todas as funções do modulo TC45 e algoritmos em J2ME utilizados para o
desenvolvimento do projeto. O objetivo é manter na empresa, além do fonte funcionando
do sistema, também uma documentação explicativa sobre o que foi utilizado, para que
possa ser dado continuidade ao projeto.
Foram incluídos no manual os comandos AT mais importantes utilizados com uma
descrição de seu uso e do porque da sua importância no funcionamento do sistema.
Também foram descritos os algoritmos e funções em J2ME usados no programa fonte da
aplicação, com uma descrição do funcionamento dos comandos embutidos no framework
do módulo, e também das classes e funções implementadas para fazer o reuso do código.
Conclusões do projeto:
Concluímos que o projeto foi válido e produtivo no quesito do conhecimento e
desenvolvimento das aplicações que foram propostas. O equipamento e a tecnologia de
transmissão de dados por celular e GPRS foram estudados a fundo e desse estudo
surgiram muitas propostas e idéias novas para a área.
A implementação do sistema e da arquitetura proposta resultaram em um protótipo
funcional, que tem todas as condições de se transformar em um protótipo de campo, o
que é um resultado positivo deste trabalho.
No quesito de estudo, as próximas atividades estão em estudar os equipamentos novos
lançados pelos fabricantes com tecnologia mais moderna, que permitem a utilização de
novas funcionalidades do J2ME, e com certeza a partir destes estudos, surgirão novas
propostas de soluções e arquiteturas para o monitoramento e comunicação com estações
remotas.
Bibliografia:
13/14
–
Connected Limited Device Configuration (CLDC); JSR 30, JSR 139 Overview –
http://java.sun.com
–
Revista Gás Brasil – http://www.gasbrasil.com.br
–
Muchow, John W. - Core J2ME / Tecnologia e MIDP. - Pearson Makron Books – 2004
–
JCP Specification - JSR-37 - Mobile Information Device Profile – http://www.jcp.org
Referencias Bibliograficas:

[LIMA2004] Lima, Eduardo nascimento; Soares, Marilson Duarte; Fernandes,
Michelle P. - Artigo Wireless Modules – Revista Gás Brasil – 20/07/2004

[Rozas2001]Rozas, Norberto – Artigo Sistemas de medição à distancia – Revista
Gás Brasil – 05/09/2001

[Rozas2004]Rozas,Norberto – Artigo "O que é Telemetria" – Revista Gás Brasil –
22/11/2004

[JSR-37] JCP Specification - Mobile Information Device Profile – http://www.jcp.org
14/14
Download