msdn10_capa.JPG

Clique aqui para ler todos os artigos desta edição

 

Arquitetura Móvel: Smart Client X Server Side

por Renato Haddad

 

O mundo de mobilidade sempre me fascinou, a possibilidade de estar conectado o tempo todo em qualquer lugar e hora permite criar e consumir aplicações com diversas finalidades, seja ler e-mail, consumir um Web Services, receber Short Message Service (SMS), enfim, dizer que a tecnologia não proporciona um meio de comunicação é um grave erro.

O objetivo deste artigo é expor as diferenças entre Smart Client e Server Side, suas definições, vantagens, mercados, recursos, tipos de aplicações a serem desenvolvidas com o Visual Studio .NET 2003. Espero que todas as suas dúvidas sejam esclarecidas no tocante ao mundo móvel.

 

Definições

O que é Smart Client?

É uma aplicação do tipo Smart Device Applications que poderá ser instalada em qualquer dispositivo onde houver o sistema operacional Windows Mobile ou Pocket PC 2003, sendo um Pocket PC ou um Smartphone. Fazendo uma analogia com uma aplicação Windows 32, é o mesmo tipo de formulário que você desenvolve para uma Windows Applications, ressalvando-se os tipos de controles existentes para este dispositivo.

 

O que é Server Side?

É uma aplicação do tipo ASP.NET Mobile Web Applications que será instalada em um servidor Web. Com isso, qualquer telefone celular (inclusive os antigos) que suporte WAP podem acessá-la diretamente via uma URL. Você pode utilizar qualquer controle existente na toolbox do VS.NET. É importante ressaltar que os telefones celulares que suportam WAP contém um microbrowser que entende WML 1.0 e 1.1. Se você chamar uma aplicação no servidor com dois telefones de diferentes fabricantes, é possível que a interface seja completamente diferente. Isso ocorre devido à versão do WML instalado no aparelho.

Esta é uma das principais questões existentes na comunidade: Por que a minha aplicação feita em VS.NET não roda em determinado celular? A resposta é que você deverá aplicar os filtros existentes para cada fabricante ou ainda, se achar melhor e o telefone suportar, poderá aplicar CSS (Cascade Style Sheet) ou XSLT.

A execução é exatamente igual a uma aplicação ASP.NET, sendo o processamento feito somente no servidor que contém o Framework, o qual monta o WML final para o respectivo telefone celular.

Posso executar uma aplicação ASP.NET a partir de um Pocket PC? Sem dúvida pode, basta abrir o Internet Explorer, informar a URL e pronto. Inclusive, se for o sistema operacional Pocket PC 2003, você tem recursos de JavaScript 5.5, CSS e XHTML.

 

Definições dos dispositivos

Para esclarecer quais tipos de dispositivos existentes, veja a definição de cada um:

Pocket PC – É um computador com funcionalidades e recursos do Windows Mobile, contendo Internet Explorer, Windows Media Player, Messenger, Excel, Word, sincronização com Inbox, Agenda e Contatos existentes no Outlook Express ou MS-Outlook, Gerenciador de Arquivos, entre outros.

Phone Edition – É um Pocket PC com funcionalidades de telefone celular. Tem tudo o que existe em um Pocket PC, acrescido dos recursos de um telefone celular. Portanto, você o usa como Pocket e celular no mesmo aparelho. Dispensa o uso de um modem externo, e a comunicação é feita via GSM/GPRS. Suporta redes Wi-Fi, Bluetooth e ActiveSync. Neste caso, se o dispositivo não estiver embutido você pode adicionar um cartão específico para esta finalidade.

Smartphone – é um telefone celular com funcionalidades de um Pocket PC. No entanto, nem todos os programas existem para Smartphone, por exemplo, o Excel e o Word. Mas, para quem é viciado em jogos, Messenger, Windows Media Player, Agenda, Inbox e Contatos, pode ficar tranquilo que já vem instalado.

Tablet PC – é um computador similar a um notebook, o qual tem funcionalidades de portabilidade como reconhecimento de voz, escrita e o sistema operacional Windows XP for Tablet PC.

 

A Figura 1 demonstra os dispositivos existentes para a plataforma móvel. Note que quanto mais portável for o dispositivo, mais funcionalidades e recursos o mesmo dispõe.

 

image002.jpg

Figura 1 – Dispositivos e plataformas

 

O sistema operacional existente nestes dispositivos, chama-se Windows Mobile, no entanto, alguns dispositivos antigos contêm o sistema operacional chamado Pocket PC 2002 e Pocket PC 2003. As aplicações criadas no Visual Studio .NET 2003 rodam em qualquer sistema operacional. O Windows Mobile originou-se do Windows CE, o qual é encontrado em mais de 256 dispositivos existentes atualmente nos chamados sistemas embarcados, por exemplo, a urna eletrônica de votação.

 

Como instalo o .NET Compact Framework nos dispositivos?

O .NET Compact Framework é um subset do .NET Framework, contendo as funcionalidades e classes criadas para estes dispositivos. O meio mais fácil ocorre quando é feito o primeiro Deploy de uma aplicação, o .NET Compact Framework é instalado automaticamente, assim como o SQL Server CE (isso se a aplicação utilizar). Outra forma é instalar o respectivo arquivo (EXE) do .NET CF. Já em Smartphone o .NET Compact Framework vem gravado na ROM.

Pontos chaves

Quando for desenvolver uma aplicação para o mundo móvel é preciso analisar os seguintes fatores:

 

·         Os usuários deverão ter acesso aos dados o tempo todo no servidor?

Este ponto é fundamental para avaliar em que momento os usuários precisam acessar a informação. Se for em um cenário de telefone celular, você precisa ter um bom sinal da operadora para permitir a conexão. Se for em Pocket PC ou um Tablet PC você deverá estar conectado a rede, seja através do ActiveSync, Wi-Fi, Bluetooth ou através de um telefone celular fazendo o papel de um modem. Caso seja um PhoneEdition ou SmartPhone, você já está conectado a rede de telefonia via GSM o tempo todo, sendo que no momento em que ocorrer a transmissão de dados, será usado o protocolo GPRS.

 

·         Qual o tipo de UI necessária?

A interface oferecida em um Tablet PC, Pocket PC, telefone celular ou Smartphone são completamente diferentes. No Tablet ou Pocket você dispõe de recursos de caneta ótica e teclado (mesmo que seja ligado via infra-vermelho), onde a facilidade de interagir com o usuário é infinitamente melhor que um telefone. Os tipos de controles existentes para isso permitem criar uma interface rica e funcional. Particularmente em Pocket PC, apesar de ter uma tela menor que o Tablet PC, é possível criar boas interfaces, pois os controles existentes para Smart Device Application facilitam o desenvolvimento e a interação com o usuário.

Já para telefones celulares, faço a seguinte pergunta: Você já cadastrou um simples contato? É exatamente isso que você está pensando! Por mais rica que seja a interface em um smartphone ou celular, o teclado numérico é o único meio de interagir. Salvo casos em que é possível o reconhecimento de voz. Se você estiver navegando em uma página na internet considero até aceitável e fácil a interação, desde que não seja preciso nenhum cadastro.

Outro aspecto relevante é o tamanho da tela, os controles disponíveis para cada tipo de dispositivo, os recursos externos de interação, como por exemplo, caneta ótica, reconhecimento de voz e funções automatizadas nos botões pré-definidos nos dispositivos.

 

·         Qual é o preço da conexão?

Este ponto cabe apenas a conexão via celular, mesmo que ele esteja ligado a um Pocket PC fazendo o papel de um modem. O custo da conexão é um ponto decisivo em muitas aplicações. É preciso avaliar junto as operadoras o preço de pacotes de acesso. Se você utilizar GSM, o preço cobrado é por pacote de informação trafegada na rede, não por pulso, conforme os celulares normais. Este custo x benefício pode decidir entre uma aplicação on-line ou off-line.

No caso de conexão com redes, você deve levantar os custos de montar uma rede sem fio (Wi-Fi). O dinheiro investido em cabeamento, conduites e terminais é facilmente superado pelo custo de uma rede Wi-Fi. A única desvantagem do Wi-Fi ainda é a velocidade de transmissão, mas isso é uma questão de tempo. As vantagens são enormes: custo, localização, acesso em qualquer lugar e dispositivos preparados para isso. Já existem diversos Notebooks, Pockets e Tablets que já são fabricados com suporte Wi-Fi. O custo é apenas de um Access-Point até o limite físico de alcance do sinal, que varia de 50 a 150 metros. Com isso, é possível dotar uma equipe de levantamento de controle de estoques de uma fábrica ou supermercado com Pocket PCs dentro da área da empresa conectados o tempo todo. A aplicação no Pocket ou Tablet solicita os dados diretamente no servidor através de Web Services ou Socket. Cabe ressaltar que é possível se conectar ao SQL Server diretamente. Enfim, tenha em mente o seguinte: o seu dispositivo é um ponto de rede.

 

·         É preciso instalar e dar manutenção na aplicação no device?

Uma aplicação Server Side é instalada no servidor, e em caso de manutenção será preciso apenas atualiza-la. Com isso, a grande vantagem é que qualquer solicitação desta aplicação no servidor estará sempre atualizada.

Já em aplicações onde é preciso instalar nos dispositivos, por exemplo em Pocket ou Tablet, qualquer manutenção realizada será preciso redistribuir para todos os dispositivos. Isso pode se tornar um pesadelo em aplicações que sofrem alterações constantemente. No entanto, você pode disponibilizar a nova versão em um servidor e via Internet Explorer ou direto pela rede, os usuários podem baixar sempre a versão mais recente e instalar direto no dispositivo através do ActveSync ou um Setup Project.

Diferenças da Arquitetura

Veja as diferenças entre os dois modelos existentes para esta arquitetura móvel:

 

Smart Client

 

Target smart device: O executável sempre estará instalado no dispositivo. Se houver conexão com uma rede, a única ligação com o servidor ocorre em solicitações de Web Services ou uma ligação direta com o banco de dados.

Lógica e dados no cliente: Toda a aplicação (executável), as regras de negócio e os dados (pode ser um banco de dados no SQL Server CE ou XML) ficam armazenados no dispositivo.

UI flexível: A interface para estes dispositivos é rica em relação aos controles existentes. Você consegue desenvolver uma interface para atender todas as necessidades das aplicações.

Performance: É natural que o processamento seja mais rápido direto no dispositivo que requisitar algo no servidor.

Suporte On-Line e Off-Line: Você pode escolher qualquer tipo de suporte. Neste cenário é possível montar uma aplicação para trabalhar completamente off-line, por exemplo, coletando dados e armazenando no SQL Server CE e quando o usuário se conectar, transfere estes dados para o servidor com o SQL Server.

 

Server Side

 

Suporte a device: Como o processamento é feito no servidor, o Framework identifica qual foi o dispositivo que fez a solicitação, monta o produto final (seja XHTML, cHTML, HTML, WML 1.0 ou superior) e envia para quem o solicitou. Portanto, é importante que o Framework suporte todos os dispositivos (leia-se telefones celulares). Caso contrário, você precisará criar os filtros necessários aos dispositivos não suportados pelo Framework ou usar CSS e XSLT. Cabe ressaltar que qualquer página no servidor pode ser aberta através do Internet Explorer do Pocket ou Tablet.

Lógica no servidor: Toda a lógica, a aplicação, o banco de dados, os componentes e as regras de negócios estão armazenadas e serão processadas no servidor.

Sem instalação no cliente: Neste tipo de aplicação não é possível instalar absolutamente nada no cliente, pois o celular irá apenas solicitar dados no servidor.

Interface através de browser ou mensagens: A única interface existente é o microbrowser instalado no celular. Um recurso muito utilizado é o uso de Short Message Service (SMS). Neste cenário você pode ter no servidor da empresa uma rotina que dispare SMS em função de uma regra de negócio.

Somente On-Line: Para solicitar qualquer dado no servidor é preciso que o telefone esteja ligado. Não é possível requisitar algo no servidor, desconectar, processar o dados e enviar novamente ao servidor.

 

Acesso a Dados

O acesso a dados em um ambiente de dispositivos móveis pode estar armazenado em um banco ou fonte de dados, seja o SQL Server CE ou XML. No entanto, os cenários não se enquadram para todos os dispositivos, tudo dependerá do dispositivo, da conexão e a forma de armazenamento.

A Figura 2 mostra os cenários para um Browser (leia-se ASP.NET Mobile Web Application) e para Smart Device Application, podendo ser um SmartPhone, Tablet PC, Pocket PC ou PhoneEdition.

Analisando o acesso a dados através de um telefone celular, a única forma de obter dados de um banco de dados é através de XML Web Services ou uma camada de acesso a dados armazenada no servidor. Note que todo o processamento é feito no Servidor com Internet Information Server (IIS), afinal é uma aplicação ASP.NET e o produto final que retorna ao celular é o WML suportado pelo mesmo.

No caso de Smart Client (Pocket PC, PhoneEdition ou Tablet PC) existem as seguintes possibilidades:

- SQL Server CE – pode ser instalado direto no aparelho com todas as informações necessárias para futuramente serem sincronizadas com o SQL Server no servidor. Este cenário é usado em aplicações de coleta de dados, onde o usuário armazena todas as informações no SQL Server CE e quando se conectar a uma rede, pode sincronizar com o servidor ou transferir dados direto via Web Services;

- XML Web Services – para acessar qualquer serviço de Web Service você deverá estar conectado a rede via TCP/IP. Sendo assim, quem se preocupa em ler os dados no servidor é o Web Service. A sua aplicação apenas irá manipular o retorno do Web Service, que é um XML;

- Acesso direto ao SQL Server – se você estiver conectado direto a rede da empresa, é possível acessar o SQL Server direto no servidor e manipular os dados de qualquer maneira.

 

Perceba que são duas situações que trabalham juntas: dispositivo e conectividade.

Em relação à conectividade, se você tiver uma rede Wi-Fi na empresa e os dispositivos (Pocket PC, PhoneEdition e Tablet PC) suportarem isso, é possível andar por toda a empresa estando na rede. Com isso, o cenário de usar uma aplicação desenvolvida em .NET em um chão de fábrica, depósito, almoxarifado, etc abre um enorme campo de aplicações a serem desenvolvidas para automatizar as informações de forma imediata.

Imagine um cenário onde os vendedores podem efetuar os pedidos em um supermercado diretamente nas gondolas dos produtos. Uma solução é que o vendedor acesse o sistema no Pocket PC (desconectado), monta os pedidos e armazena no SQL Server CE, e no término do mesmo, se conecta na rede e envia os dados para empresa através de Web Services diretamente no banco de dados. Outra solução é fazer via browser do Pocket que o vendedor se conecte ao site da empresa e on-line, efetiva os pedidos diretamente das prateleiras.

Sendo assim, cada vez mais locais com conexão Wi-Fi estarão disponíveis para acessar os equipamentos e prover serviços a todas as comunicações suportadas pelos dispositivos.

Em relação ao dispositivo, caso não tenha uma conexão de rede, é possível usar um telefone celular comum para fazer o papel de modem. Basta conectá-lo ao Pocket ou Tablet e fazer uma ligação. Já para Smartphone e PhoneEdition, isso está totalmente integrado no mesmo aparelho, pois lembre-se do conceito que são telefones celulares com GSM com funcionalidades de Pocket PC.

Cabe ressaltar que o SQL Server CE não é disponível para o SmartPhone, justamente em função da capacidade de memória disponível.

 

image004.jpg

Figura 2 – Acesso a dados

 

O SQL Server CE suporta Dataset, DataAdapter, XML e praticamente tudo o que o ADO.NET oferece. Portanto, o conhecimento que você já dispõe de acesso a dados em aplicações desktop ou ASP.NET é totalmente aplicável neste mundo móvel.

 

Conclusão

O mundo de aplicações móveis tem crescido em todo o mundo, principalmente para agregar valores às aplicações já existentes. Crie soluções para agilizar o fluxo de informações e atender as necessidades dos clientes. Dizer que não há conexão não é mais uma desculpa, além disso os custos estão cada vez mais baixos e sendo cobertos pelo benefício que o acesso a qualquer lugar e hora proporciona.

No stress, think .NET