Esse artigo faz parte da revista WebMobile edição 1. Clique aqui para ler todos os artigos desta edição

wm1_capa.JPG

Sincronismo no Palm: comunicação e tecnologias

 

Nosso objetivo neste artigo é proporcionar ao desenvolvedor uma visão geral das tecnologias disponíveis para o sincronismo de dados das aplicações Palm. Veremos também os meios de transmissão de dados que podem ser utilizados, suas características, benefícios e cuidados necessários, de forma que o desenvolvedor possa utilizar este conhecimento na definição e desenvolvimento de suas aplicações. Porém, antes de falarmos sobre sincronismo de dados, faremos uma breve introdução ao Palm e às ferramentas usadas para desenvolvimento.

Onde tudo começou

Equipamentos que poderiam ser levados a qualquer lugar, armazenar as mais diversas informações e que, com poucos toques estariam à mão. Este foi o primeiro conceito dos assistentes digitais na década de 90. Nesta época havia uma variedade de agendas eletrônicas com funções estáticas, mas que atendiam as necessidades da época.

Alguns, no entanto, sentiam-se limitados pelas características destas "maquininhas" e queriam mais, eles achavam que estas "agendas" deveriam ter recursos que as fizessem adaptar às necessidades específicas de cada pessoa e uma das primeiras empresas a investir em uma máquina deste tipo foi a famosa Apple Computer, com seu equipamento Newton.

Jeff Hawkins, que na época desenvolvia softwares para o Newton e também para outros equipamentos portáteis, acreditava que estas pequenas e limitadas máquinas poderiam um dia substituir os computadores que cada pessoa usava regularmente em seu escritório ou residência. Em 1994, Jeff Hawkins projetou um equipamento portátil e com a ajuda de três investidores fez com que sua empresa, a Palm Computing, fosse o início da revolução dos computadores portáteis de uso pessoal e corporativo, tal como conhecemos hoje.

Em 1995, a USRobotics, maior fabricante de Modems dos Estados Unidos, comprou a Palm Computing e dirigiu o lançamento do Palm Pilot em 1996, equipamento este que vendeu como nenhum outro modelo da época, um sucesso absoluto.

Já em 1997, a 3Com, que desenvolve equipamentos e soluções para conectividade, adquiriu a USRobotics e lançou uma linha de equipamentos portáteis que se tornaram a vedete no mercado mundial, até que o segmento que fabricava o equipamento Palm se tornou uma empresa independente, a Palm Inc.

O sistema operacional PalmOS, aprimorado pela Palm Inc., teve tanto sucesso que outros fabricantes como Sony, TRG, HandEra, Symbol, entre muitos outros, decidiram utilizá-lo em seus equipamentos proprietários. A Palm Inc. decidiu dividir seu segmento de atuação criando a PalmSource (www.palmsource.com) somente para implementar o sistema operacional PalmOS e licenciá-lo a outros fabricantes e a PalmOne (www.palmone.com), para produzir os equipamentos Palm.

Palm, equipamento que se enquadra na família de "PDAs", ou Personal Digital Assistants (Assistentes Pessoais Digitais), foi utilizado inicialmente como uma "agenda melhorada", pois os aplicativos que acompanhavam o equipamento na época eram muito superiores aos de qualquer agenda disponível no mercado.

Com os aplicativos nativos, address book (agenda de endereços e contatos), calculadora, date book (compromissos), memo pad (anotações) e note pad (bloco de notas), os usuários podiam armazenar uma quantidade muito grande de informações, superior às antigas agendas disponíveis no mercado, e com qualidade de apresentação e interface mais amigável.

O sistema de entrada de dados disponível no Palm chama-se Graffiti, onde as letras e números têm um local próprio para que o usuário as escreva (escreva mesmo!). A capacidade de reconhecimento de escrita é surpreendente e a tecnologia foi utilizada até por equipamentos que utilizam outros sistemas operacionais, como o PocketPC, que a partir da versão 2002, possui um modo de entrada de dados similar ao Graffiti do Palm. Os Palms mais recentes já operam com o "Graffiti 2", uma variação do sistema de entrada de dados Graffiti original que torna a entrada de algumas letras mais próxima da escrita  manual.

Utilizando inicialmente um processador Motorola DragonBall de até 33MHZ (modelos até o PalmOS versão 4.1), o Palm não era tão poderoso em termos de processamento, mas seu sistema operacional sempre foi tão pequeno e rápido que compensava a velocidade do processador. Este processador Motorola pertence à família 68000, uma das mais antigas tecnologias desenvolvidas pela empresa e conhecida de muitos desenvolvedores. Os modelos de Palm a partir do Tungsten T utilizaram processador Texas com tecnologia ARM e velocidades muito superiores, partindo de 175MHZ, combinado com o lançamento de uma nova versão do sistema operacional PalmOS, a tão esperada versão 5 com BlueTooth, e outras melhorias. Os equipamentos mais novos operam com processadores Intel XScale. O PalmOS versão 6 (codinome Cobalt) tem previsão de lançamento em 2005, com novos recursos e ainda mais poderoso, mas o melhor de tudo é que ele continuará executando qualquer aplicação desenvolvida para versões anteriores do PalmOS, sem necessidade de recompilação.

O fato do equipamento ter uma memória relativamente pequena (os modelos mais antigos tem 2MB, os mais novos 32MB e 64MB, podendo atingir mais de 100MB de RAM) não é fator limitante. As aplicações Palm são extremamente pequenas. Só para ter uma idéia, uma solução para uso em campo tem em média 100KB quando desenvolvida com uma linguagem de programação que gera executáveis nativos da plataforma.

Existem vários periféricos que podem ser acoplados ao Palm como: modems, impressoras portáteis, equipamentos GPS e mais recentemente telefones celulares com Palm incorporado. A Kyocera foi a primeira fabricante de um telefone celular com Palm totalmente compatível e incorporado ao produto. Hoje, são diversos modelos, de vários fabricantes. Aplicações podem acessar os recursos do telefone para enviar e receber dados, sem a necessidade de conexão de qualquer periférico adicional e realizar transmissão de dados utilizando as tecnologias mais modernas de alta velocidade.

O mercado corporativo, de olho em toda esta revolução, entendeu que estes computadores portáteis poderiam proporcionar-lhes um ganho de produtividade em atividades onde a coleta externa de informações, aliada à necessidade de permanecer em contato com o escritório central eram demoradas ou repletas de falhas, pois utilizavam processos manuais como papel, fax ou uso constante do telefone. Quem nunca viu um vendedor externo passando pedidos por telefone à sua central, ou ainda aquela pilha de fax para a central de digitação, que nunca entende a letra do vendedor...

A demanda por aplicações que envolvem esta tecnologia exige que o desenvolvedor se atualize para estar apto a desenvolver aplicações na plataforma Palm e escolha uma ferramenta de desenvolvimento adequada. Costumo dizer que não existe “a melhor ferramenta para desenvolver”, mas existem opções e recursos que devem ser considerados:

·         As plataformas móveis ainda não têm poder de processamento e armazenamento como os desktops. Portanto, é importante que uma ferramenta possa tirar o maior e melhor proveito da plataforma, utilizando todos os recursos disponíveis pelo processador e sistema operacional.

·         É importante que a ferramenta possa gerar um código que garanta a sua utilização em versões futuras do sistema operacional, não tornando o código obsoleto quando uma nova versão do sistema operacional for liberada.

 

Em busca das características acima, temos dois grandes grupos de ferramentas:

·         As que suportam todos os recursos do sistema operacional, portanto tem garantia de suportar os dois itens listados acima;

·         As que têm runtime e geram executáveis interpretados e que dependem de atualização do fabricante para que possam funcionar plenamente na nova versão do sistema operacional.

 

Para o Palm, as ferramentas que suportam nativamente os recursos do sistema operacional e geram executáveis sem runtime são: CodeWarrior, PocketStudio, GCC (compilador free baseado em C/C++ que não tem IDE, mas existem IDEs para adquirir no mercado) e HB++. As ferramentas mais utilizadas que têm runtime são NSBasic, Satellite Forms, Java (J2ME e SuperWaba) e AppForge/MobileVB. Nada contra qualquer dessas ferramentas, desde que atenda às necessidades do desenvolvedor para seu projeto específico, principalmente no que diz respeito ao suporte aos recursos do equipamento e necessidades dos clientes.

Sincronismo de dados

O desenvolvimento de sistemas segue o tradicional ciclo de análise, projeto, codificação e testes. No desenvolvimento de aplicações para Palm, essa abordagem também pode ser aplicada, mas existe um outro fator que deve ser levado em conta: a aplicação será executada remotamente e necessita que os dados sejam integrados aos sistemas já existentes na empresa. Ou seja, é importante que o desenvolvedor tenha ciência da importância do sincronismo de dados para a sua aplicação, fator esse muitas vezes ignorado por iniciantes na computação móvel.

 A importância do sincronismo está no fato dele poder representar boa parte do esforço no desenvolvimento da solução e assim representar uma parcela grande dos custos de desenvolvimento. Outro fator de igual importância a ser observado é que a definição incorreta das tecnologias ou meios de transmissão utilizados pela aplicação pode levar ao fracasso na utilização desta aplicação pelo cliente ou ainda obrigá-lo a tomar atitudes reativas a problemas não previstos, causando transtornos a todos os envolvidos no processo.

Há outro fator fundamental: o desenvolvedor deve possuir sólido conhecimento sobre as opções para sincronismo dos dados. Ou seja, o desenvolvedor deve ter a habilidade de negociar com o cliente e dimensionar a quantidade de informação necessária para o bom funcionamento da aplicação no Palm. Recursos como disponibilizar todas as duplicatas abertas e pagas na aplicação Palm podem parecer um benefício para a tomada de decisão de um usuário ou gerente de vendas, mas impacta diretamente no volume de dados a serem sincronizados, elevando o custo e complexidade do sincronismo. Neste caso, o uso apenas das informações extremamente relevantes é aconselhável uma vez que consumirá muito menos espaço físico no equipamento e claro, o sincronismo será mais rápido, simples e com custo menor.

Conexão e transmissão de dados

Para poder se conectar a um serviço de comunicação de dados como internet ou RAS (Serviço de Acesso Remoto), o Palm necessita de um equipamento externo (aparelho celular ou modem) ou comunicação via base de sincronismo. A seguir, comentamos sobre os principais meios de conexão e transmissão de dados disponíveis para o Palm.

 

Telefonia móvel celular

A utilização da telefonia móvel celular para transmissão de dados pelo Palm pode ser a única solução em situações onde o usuário atua em locais variados, e permanece distante do seu escritório ou base por longo período. No entanto, é preciso observar que a telefonia móvel celular está sujeita à cobertura das operadoras e pode estar ausente em regiões onde o usuário atua. Mais um fator importante a analisar é o custo da comunicação. Hoje, as operadoras oferecem planos corporativos em minutos ou ainda em quantidade de dados transmitidos (por KB ou MB), portanto o desenvolvedor deve analisar o volume de transmissão de dados em função dos dados manipulados pela aplicação e procurar encontrar o custo de transmissão pelas diversas operadoras que oferecem o serviço.

A qualidade da comunicação de dados também deve ser avaliada. Nos grandes centros e capitais do Brasil, há disponibilidade das mais recentes tecnologias em transmissão de dados via celular, mas no interior e em regiões afastadas, normalmente é encontrada uma baixa qualidade na comunicação, quando ela está disponível. Os serviços de transmissão de dados em alta velocidade (GPRS/EDGE – para operadoras GSM, 1xRTT – para operadoras CDMA) podem não estar disponíveis em determinadas áreas de cobertura da operadora, obrigando a utilização da discagem para um provedor ou diretamente a um serviço de comunicação remota do cliente, tornando a comunicação mais cara.

As formas de comunicação do Palm com o aparelho celular também devem ser alvo da análise do desenvolvedor. Há modelos Palm com o conhecido conector universal que permite a ligação direta do Palm a um aparelho celular via cabo de comunicação. Temos ainda duas alternativas para conectar o Palm a um aparelho celular: Bluetooth e Infravermelho.

·         Bluetooth seria a melhor alternativa em termos de velocidade e praticidade na comunicação, mas financeiramente menos viável, pois os Palms que têm a tecnologia Bluetooth incorporada são bem mais caros se comparados aos modelos com melhor custo/benefício. A mesma situação encontramos para os aparelhos celulares, pois os modelos com Bluetooth são caros e se o cliente não conseguir os aparelhos em comodato com a operadora, terá um custo inicial de aquisição alto.

·         A transmissão por infravermelho tem custo menor, pois todos os Palms no mercado têm essa porta de comunicação já incorporada e há diversas alternativas em modelos de aparelhos celulares para esta finalidade. O problema maior deste tipo de comunicação é a velocidade de transmissão dos dados, pois além da lentidão na comunicação infravermelho do Palm com o celular, se a velocidade de transmissão de dados da operadora for baixa, o que é comum fora dos grandes centros onde a transmissão padrão ocorre a 9600 bps, pode tornar a solução inviável. Esta situação é em geral o pior caso de sincronismo.

 

A melhor forma de utilização de Palm em conjunto com celular são os modelos que integram Palm e celular, como o Tungsten W, ainda disponível em algumas operadoras e o recém lançado Treo 600, um bom equipamento para uso corporativo e pessoal, com excelente memória e conectividade. Neste tipo de comunicação, o Palm aproveita ao máximo os recursos de transmissão de dados da operadora (no caso o GPRS (serviço de comunicação de dados em alta velocidade disponível nas operadoras GSM), pois não precisa se comunicar com equipamentos externos; tudo é feito pelo próprio equipamento. Além disso, não é necessária nenhuma configuração no equipamento, pois o serviço de rede GPRS já vem configurado no cartão SIM (cartão adquirido na operadora que habilita o celular).

 

Telefonia fixa

A utilização da telefonia fixa para sincronismo dos dados é uma das mais atraentes para o cliente, pois o custo da comunicação é relativamente baixo e a qualidade é superior à da comunicação por celular, mesmo com a necessidade de aquisição de um modem externo. O cliente pode optar pela utilização de provedores de acesso a internet que tenham telefones de acesso nas áreas atendidas pelos seus usuários, possibilitando o uso de comunicação local pagando apenas os pulsos utilizados durante a conexão, e se a ligação for feita em horários com tarifa reduzida (durante a madrugada ou finais de semana), o custo será ainda mais baixo. Vale destacar também que o custo dos provedores não é mais um impedimento hoje em dia. Por causa do grande número de provedores em todas as regiões do Brasil; basta escolher os provedores que oferecem o melhor serviço e pontos de acesso nas localidades onde o cliente atua.

A utilização de serviços 0800 para comunicação direta com a central do cliente pode ser uma boa escolha para locais remotos onde não há provedores de internet, mas deve ser aplicado com cautela, pois o custo do serviço não é muito baixo e dependendo do volume de dados transmitidos e da freqüência de comunicação, este serviço pode ser bastante oneroso ao cliente.

A facilidade de utilização da telefonia fixa também é atraente, visto que o usuário pode utilizar a linha telefônica em sua residência, hotel, ou ainda pedir licença ao estabelecimento onde está visitando para transmitir as informações dali mesmo. Claro, nesta última situação o ideal é que a comunicação seja realizada para um serviço 0800, para não causar ônus ao estabelecimento.

Os modems disponíveis para utilização em conjunto com o Palm em telefonia fixa são:

·         PalmModem (http://store.palmone.com/product/index.jsp?productId=1164335&cp=1308826): os modelos Palm com conector universal podem utilizar este equipamento para transmissão de dados, com a vantagem de estarem fisicamente conectados (o Palm se encaixa sobre o PalmModem). Assim não há perda de velocidade na comunicação com o modem.

·         Modems por Infravermelho Pegasus III (http://www.3jtech.com/infrared_modems.htm) e ICC (www.icc.com.br): estes modems se comunicam a 56kbps, mas a comunicação de dados costuma ser mais lenta do que com o PalmModem, pois há perda de velocidade na comunicação infravermelho do Palm com o modem. Ainda assim, a utilização é válida nos modelos Palm que não dispõem do conector universal.

 

Cartões SD/MMC

Cartões de memória SD/MMC (Secure Digital e MultiMedia Card) são utilizados para expansão da capacidade de armazenamento do Palm, mas podem ser uma solução interessante em casos onde o volume de informações armazenadas no Palm seja muito grande ou a atualização total dos bancos de dados da aplicação desenvolvida seja realizada com freqüência e, portanto, com custo alto de sincronismo.

 

Wi-Fi (Redes sem fio 802.11)

As redes sem fio estão se tornando um padrão na comunicação entre os computadores e no Palm não é diferente. Dentre os padrões existentes, o Wi-Fi (rede 802.11) é o mais utilizado no mundo. No Brasil, existe cobertura de rede sem fio em alguns estabelecimentos comerciais, principalmente em grandes centros, e aeroportos.

 

Sincronismo via base ou cabo

O Palm pode fazer uso da conexão de rede ou internet de um computador através da utilização de softwares que realizam uma “ponte” entre a base ou cabo do Palm com o sistema de rede do computador. Estes softwares são conhecidos como “Gateways” e entre eles, podemos citar o Mocha W32 PPP (www.mochasoft.dk) para bases e cabos seriais e o Softick PPP (www.softick.com) para bases e cabos USB.

Se o usuário tiver um computador com acesso à internet, não há necessidade de aquisição de modem externo para o sincronismo, apenas a aquisição do software apropriado ao seu equipamento e a velocidade de transmissão será a mesma suportada pelo computador ao qual o Palm está conectado. Se a conexão do desktop à internet for via ADSL, rádio, cabo ou outro serviço de banda larga, o sincronismo será muito rápido e com custo muito baixo, visto que os programas citados acima custam menos de US$ 25 e o usuário já faz uso do serviço de banda larga em sua residência. Este tipo de conexão pode ser interessante até mesmo em escritórios regionais ou bases do cliente onde os usuários estejam localizados.

Tecnologias para sincronismo de dados

As tecnologias para sincronismo de dados estão relacionadas com os protolocos e formas de envio e recebimento de dados que podem ser aplicados ao Palm. A escolha do tipo de tecnologia deve ser feita em função da necessidade do cliente e não é difícil encontrar situações onde duas ou mais tecnologias necessitam ser utilizadas, o que pode resultar na situação já descrita anteriormente na qual o desenvolvimento do sincronismo tome mais tempo do que o da aplicação.

Algumas das tecnologias listadas abaixo não estão disponíveis para todas as ferramentas de desenvolvimento. As que possuem interface aberta ao acesso a bibliotecas, como PocketStudio, CodeWarrior e NSBasic, têm suporte a todos estes produtos. Se você usa outras ferramentas de desenvolvimento, é melhor consultar o fabricante.

 

HotSync

A tecnologia padrão do Palm para sincronismo de dados é o HotSync, mas recomendamos esta solução apenas para sincronismo de dados local (base ou cabo), pois o HotSync remoto, apesar de possível, é limitado e lento. Limitado, pois o HotSync é um processo monousuário, ou seja, apenas um Palm pode se conectar de cada vez, e lento porque a autenticação dos Palms é demorada e a transmissão dos dados se dá registro a registro. Em um banco de dados com muitos registros (digamos 5000 registros em diante), o sincronismo realizado registro a registro toma muito tempo de transmissão, acarretando em custos altos.

O HotSync pode executar duas operações:

·         Copiar aplicações (arquivos PRC) e bancos de dados do Palm (arquivos PDB) de/para o Palm durante o sincronismo, e;

·         Executar programas externos conhecidos como “Conduits”, que são DLLs que o desenvolvedor cria e registra no HotSync para realizar tarefas específicas de acesso direto a bancos de dados no Palm e na sua fonte de dados no desktop ou servidor durante o sincronismo.

 

Uma alternativa às limitações do HotSync é utilizar o computador na casa do usuário ou no escritório remoto do cliente, escrevendo um Conduit que se comunique via internet. Nesta solução, o Palm do usuário não se conectará diretamente à empresa, mas diretamente via base ou cabo a um computador para que o sincronismo seja realizado, contornando a lentidão do HotSync do Palm. Os dados transferidos podem ser enviados ao banco de dados da empresa pela aplicação Conduit criada pelo desenvolvedor, utilizando as técnicas mais adequadas para transmissão de dados.

 

FTP (File Transfer Protocol)

FTP é uma das soluções mais baratas em sincronismo de dados disponível para o Palm, e uma das mais utilizadas atualmente. Softwares para o servidor FTP estão disponíveis nativamente nos sistemas operacionais Linux e Windows 2000/2003 e, há softwares gratuitos como o GuildFTPd (http://www.guildftpd.com) que rodam também no Windows XP.

Para acessar o servidor FTP através do Palm, o desenvolvedor pode optar por um software gratuito como o LFTP (www.palmgear.com) ou ainda soluções mais elaboradas como o SyncAnywhere, produto da Cialogica (www.cialogica.com) que combina a compactação de vários bancos de dados em apenas um banco compactado, otimizando a transmissão. O SyncAnywhere possui também comandos para transmissão de dados por FTP, acionados a partir da aplicação Palm, permitindo que o desenvolvedor crie soluções completas sem necessitar que o usuário deixe sua aplicação.

A preparação dos dados para envio e o processamento dos dados recebidos, devem ser feitos por processos executados periodicamente no servidor FTP. O mais comum é que os arquivos a serem transmitidos ao Palm e os arquivos recebidos do Palm sejam colocados no servidor FTP em períodos que não haja conexão de usuários (na madrugada, por exemplo).

 

Acesso on-line a dados

O PalmOS, sistema operacional dos equipamentos Palm, não tem suporte interno a acesso a dados em um servidor remoto como bancos de dados relacionais e arquivos de dados em qualquer formato. Por isso, o desenvolvedor deverá optar por:

·         Customizar a transmissão usando sockets: ferramentas como PocketStudio, CodeWarrior, NSBasic e Java podem se comunicar com um servidor utilizando o protocolo TCP/IP. O desenvolvedor pode criar um protocolo de troca de dados escrevendo um servidor e um cliente de comunicação TCP/IP. Essa abordagem, no entanto, é complexa e indicada a desenvolvedores mais experientes.

·         Utilizar bibliotecas específicas: existem produtos de comunicação remota como o ASTA (www.astawireless.com), que permitem a criação mais rápida de aplicações que necessitam de acesso online a dados. Elas são formadas por um conjunto de funções para se comunicar com um servidor de comunicação, que faz a integração dos dados do Palm a um banco de dados relacional.

 

e-mail

Uma forma pouco utilizada de sincronismo é o envio de arquivos anexados em e-mails, pois há poucos programas de e-mail com a capacidade de enviar anexos (um deles é o VersaMail da PalmSource). Outro ponto negativo é o “overhead” dos controles incorporados ao protocolo de envio de mensagens eletrônicas e o limite no tamanho do anexo. Outro fator contrário à sua utilização é que o e-mail necessita de intervenção manual do usuário, tanto para anexar o que deve ser enviado, quanto para receber e salvar o que foi recebido, a não ser que o programa de e-mail tenha uma interface aberta onde a própria aplicação no Palm possa automatizar estas tarefas, e a ferramenta de desenvolvimento suporte o uso da interface.

Conclusão

A transmissão de dados é um dos fatores que determina o sucesso da aplicação Palm criada pelo desenvolvedor. Com estas informações, esperamos ter contribuído para que suas aplicações sejam completas tanto no funcionamento quanto no sincronismo dos dados. Visitem nosso site, estamos sempre publicando novos artigos para os desenvolvedores em computação móvel; o endereço é www.clubepda.com.br. Um abraço e até uma próxima oportunidade!