wpjr2’s Weblog

Artigos e tutoriais úteis

Arquiteturas e Plataformas para Terminais Móveis

Posted by wpjr2 em abril 24, 2008

Introdução

Este capítulo apresentará o conceito de plataformas e arquiteturas existentes para terminais móveis, com o enfoque sobre a plataforma JavaME criada pela Sun Microsystems. Apesar de já existirem diversas plataformas para terminais móveis no mercado atualmente, por motivos de ênfase neste trabalho, somente a plataforma JavaME será abordada em detalhe. Esta plataforma provê a infra-estrutura no desenvolvimento de aplicativos móveis para terminais. Ela será esta utilizada também na demonstração dos padrões de desenho e da componentização de software descritos nesta monografia nos capítulos 5 e 6.

Definição

Uma plataforma é caracterizada como a tecnologia básica de um sistema computacional composto de hardware e software. Ela define a forma como o dispositivo é controlado e determina quais outros tipos de software a serem utilizados. A arquitetura é responsável por definir o desenho ou estrutura global de um sistema computacional, incluindo o hardware e software, ambos necessários para executar tal sistema, incluindo especialmente a estrutura interna do microprocessador. O framework é caracterizado como uma estrutura de suporte definida (software) onde outros componentes de software podem ser organizados e desenvolvidos. Todos os itens acima são aplicáveis para terminais móveis, sendo estes dispositivos portáteis, freqüentemente equipados com um teclado simples e uma tela por onde dados ou informações podem ser inseridos ou visualizados, conforme descrito nas características de terminais móveis no capítulo 2 desta monografia.

Sistemas Operacionais vs. Plataformas

Devido à diversidade de plataforma e sistemas operacionais para terminais, a distinção entre estes se torna bastante confusa. Em geral, uma plataforma descreve um tipo de framework (hardware ou software) que permite que aplicativos sejam executados. Em algumas situações, a plataforma pode incluir a arquitetura de hardware do dispositivo, o sistema operacional e linguagens de programação. Algumas plataformas populares incluem (serão mais bem detalhadas neste capítulo) o JavaME e o BREW.

O termo “plataforma” também é utilizado para frameworks específicos que incluem também o sistema operacional, tais como o Nokia Série 60, Palm OS, Symbian OS e Windows Mobile. O sistema operacional em geral é responsável por gerenciar o hardware e o software, em alguns casos incluindo o framework para aplicativos. Por exemplo, tanto o Symbian OS quanto o Nokia Série 60 possuem suporte a plataforma Java [3]. Neste caso, em cada sistema operacional, uma implementação específica da plataforma Java é provida (interface entre as bibliotecas proprietárias e aplicativos em Java), mediante a garantia de que os serviços providos em cada implementação sejam os mesmos ou razoavelmente similares entre eles e com relação ao padrão definido pela Sun Microsystems. Porém estes sistemas operacionais possuem uma forte dependência com o hardware do dispositivo móvel. Podemos citar, por exemplo, o Nokia Série 60, que pode ser utilizado somente em dispositivos deste fabricante. Esta é uma característica, porém que não deve existir na prática sobre a plataforma Java. Conforme será apresentado neste capítulo, um dos principais objetivos da plataforma Java para terminais móveis é prover a interoperabilidade de aplicativos, tornando-os independentes do hardware e do sistema operacional do dispositivo. Para isto, é necessário que o dispositivo suporte esta plataforma em sua arquitetura.

Na Figura 6, uma visualização (1) diferenciando a plataforma do dispositivo da plataforma de software e (2) uma visualização da interoperabilidade de aplicativos sobre a plataforma Java em sistemas operacionais diferentes é apresentada. No caso da primeira, podemos citar alguns exemplos já apresentados como a Nokia Série 60, Symbian OS (SO + plataforma), Qualcomm e o Linux. Todas estas plataformas de dispositivos, no entanto, possuem plataformas de software tanto para aplicativos Java quanto para aplicativos nativos, tais como (a) o BREW (“Binary Runtime Environment for Wireless“) da Qualcomm, (b) o C/C++ para o Symbian OS e (c) o Nokia Série 60. Para cada tipo de software, existe uma plataforma específica, com características específicas relativas ao acesso ao sistema operacional. Apesar da dependência da plataforma Java sobre a nativa, a primeira sempre proverá os mesmos serviços e bibliotecas entre todas as plataformas, graças ao esforço de padronização dos fabricantes e desenvolvedores de plataformas quanto à tecnologia Java.

A interoperabilidade se torna também um ponto importante nesta situação. Na Figura 6, os mesmos componentes ou aplicativos (em Java e nativo/C) na plataforma nativa X em (1) estão sendo portados para a plataforma Y em (2). Devido ao fato das plataformas nativas X e Y não serem compatíveis, a portabilidade dos aplicativos nativos é prejudicada, requerendo um esforço de adaptação na tarefa de integração. No caso dos aplicativos Java, a presença de uma plataforma Java em (2) compatível com a plataforma em (1) possibilitou uma integração mais transparente e com o mínimo de esforço.

Um dos grandes desafios no desenvolvimento de sistemas para terminais móveis é a uma melhor ênfase nas plataformas do que nos sistemas operacionais. Isto ocorre devido ao fato das plataformas em geral possuírem uma interdependência forte com o sistema operacional, mesmo que isto não seja altamente necessário. Sem esta interdependência, plataformas em geral podem oferecer uma maior interoperabilidade e portabilidade (se os SOs podem prover estes de fato) para os aplicativos e sistemas.

Plataformas de Software para Terminais Móveis

Qual seria a definição de uma plataforma perfeita? Em [12], o autor define uma plataforma perfeita como “um sistema de software programável por desenvolvedores iniciantes e avançados, possibilita a criação de aplicativos simples e complexos, está disponível em todas as plataformas de hardware, sistemas operacionais, e em tempo de execução comporta ou opera como o framework nativo ou bem próximo dele.” Alem disto, quaisquer candidatos à perfeição [2] devem possuir os seguintes requisitos: facilidade de implementação, níveis de acesso múltiplo, estabilidade, fácil empacotamento e disponibilização (“deploy“), escalabilidade, desempenho razoável, focado no mercado e ser baseado em padrões abertos, senão alguns.

Algumas plataformas populares no mercado de terminais móveis:

  • BREW: (Binary Runtime Environment for Wireless), plataforma de desenvolvimento de aplicativos em C/C++ [14] criada pela Qualcomm para telefones celulares. Esta plataforma é independente da interface de rádio, com suporte a tecnologias de rádio como GSM/GPRS/UMTS e CDMA, apesar dela ter sido inicialmente desenvolvida somente para terminais CDMA. Em geral, a plataforma BREW é composta de um sistema (intermediário entre o sistema operacional e os aplicativos) que possibilita o “download” e execução de aplicativos pequenos (jogos, gerenciadores de mensagens e fotos). Uma de suas grandes vantagens é o fato das aplicações serem altamente portáveis para todos os dispositivos que possuam o chipset da Qualcomm (conjunto de circuitos integrados).
  • APOXI: framework de aplicativos orientado a objetos [13] baseado em C++ para o desenvolvimento de aplicativos e interfaces homem-máquina para terminais móveis. Uma de suas significantes características envolve o rápido desenvolvimento de aplicativos e interfaces sobre a mesma.
  • JavaME: plataforma desenvolvida pela Sun Microsystems com suporte a linguagem Java para dispositivos móveis. Esta plataforma será melhor detalhada na próxima seção deste capítulo.

Artigo Extraído da monografia de dissertação entitulada “Componentização de Software e Padrões de Projeto para Terminais Móveis” do curso de pós-graduação em Sistemas Móveis e Convergentes em Telefonia Celular pela Universidade Estadual do Amazonas (2006).

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: