Aplicações e Serviços para Computação Móvel Carlos Maurício S. Figueiredo.
Transcript of Aplicações e Serviços para Computação Móvel Carlos Maurício S. Figueiredo.
Aplicações e Serviços para Computação Móvel
Carlos Maurício S. Figueiredo
Aplicações e Serviços para Computação Móvel
• Aplicações Pessoais– Ex: Organização pessoal, acesso à informação, transferência de
arquivos, Web, email, etc.
• Aplicações Corporativas– Ex: Acesso remoto a informações corporativas, apoio à tomada de
decisão, vendas, distribuição, transportes, estoque, automação industrial, etc.
• Aplicações Financeiras– Ex: Transações eletrônicas, operações bancárias, etc.
• Aplicações para Medicina– Ex: Acesso a informações de pacientes, consulta a banco de dados de
doenças, interação entre equipe médica, monitoração de informações clínicas de pacientes e outras.
Aplicações e Serviços para Computação Móvel
• Policiamento e Segurança– Consulta de dados criminais de suspeitos, consulta de
dados de roubos e furtos, informações de ocorrências, etc.
• Aplicações Militares– Ex: Coordenação de operações, treinamento e outras.
• Serviços de Informação em geral– Ex: Trânsito, tempo, eventos, etc.
• Entretenimento– Ex: Jogos pessoais e interativos.
Aplicações e Serviços para Computação Móvel
• Serviços baseados na localização (LBS)– Serviços onde o resultado depende de:
• Localização do usuário;
• Informações de localização em uma base de dados.
– Questões a serem resolvidas:• Técnicas de obtenção da localização do usuário conforme infra-
estrutura de rede sem fio utilizada;
• Ter uma base de dados georeferenciada;
• Mecanismos de consulta.
– Classe importante de serviços.
– Exemplos,• Guias turísticos, serviços de transportes, serviços de emergência,
serviços de informação, etc.
Aplicações e Serviços para Computação Móvel
• Serviços de Comércio Eletrônico Móvel (M-Commerce)– Problema bem estudado para redes fixas;
– Questões a serem tratadas:• Modelagem da aplicação de M-Commerce;
• Levar em consideração características do ambiente de computação móvel (ambiente, energia, personalização, etc).
– Conseqüências:• Considerar interrupções na comunicação, transações simplificadas,
perfis de usuários, etc.
– Exemplo:• Compra em um shopping. Da pesquisa de preços até a realização da
transação.
Desenvolvimento de Aplicações e Serviços
Desenvolvimento de Aplicações e Serviços
• Existem muitos ambientes e ferramentas para o desenvolvimento de aplicação e serviços para computação Móvel.
• Os principais segmentos:– Celulares
– PDAs
• Dificuldades:– Variedade de plataformas
– Variedade de ferramentas
– Incompatibilidade entre dispositivos
Desenvolvimento de Aplicações e Serviços
• Desenvolvimento para Celulares– Baseado em linguagens de marcação
– Tendência: XML
– Alguns Padrões existentes:• WML – Parte do padrão WAP
• HDML – HandHeld Markup Language, baseada no HTML
• CHTML – Compact HTML
• VoiceXML – Aplicações baseada na voz
• XHTML Básico – Versão simplificada do XHTML
Desenvolvimento de Aplicações e Serviços
• Desenvolvimento para Celulares– WML – Wireless Markup Language
• Características:– Baseada em XML
– Metáfora de um baralho de cartas
– Utilização de Variáveis
– Existência de eventos e tarefas
• Vantagens:– Adaptada e otimizada para ambiente sem fio (Ex. codificação binária)
• Desvantagens:– Ainda restrita a celulares
– Recursos limitados.
Desenvolvimento de Aplicações e Serviços
• Desenvolvimento para Celulares– WML – Wireless Markup Language
Desenvolvimento de Aplicações e Serviços
• Desenvolvimento para PDAs– Ferramentas para a Geração de Aplicações Nativas
• Fornecedores provêm seus SDKs.
– Três grandes plataformas nos anos 90:• PALM OS• Windows CE• EPOC
– Ferramentas:• Destaque: Java 2 Micro Edition (J2ME)• OracleMobile – Ambiente para desenvolvimento de aplicações online.• AVIDRapidTools – Pacote de classes Java. Adaptação de conteúdo para
WML, Palm e outros.• AnyDevice’s GoAnyWhere Plataform – Aplicações com formato
proprietário SiteXML.• Everypath Mobile Application Plataform – Desenvolvimento com Java e
XML.• SmartServ Solution – Desenvolvimento para celulares com módulos
prontos.
Desenvolvimento de Aplicações e Serviços
• Java 2 Micro Edition (J2ME)– Plataforma Java 2 para dispositivos móveis
– Modular e escalável
– Possibilidade de personalização
– Três camadas:• Java Virtual Machine Layer- máquina virtual
• Configuration Layer -bibliotecas mínimas para uma família de dispositivos
• Profile Layer -interfaces de programação (API) para uma categoria de dispositivos.
– Altamente portável.
– J2ME possui um conjunto de tecnologias e ferramentas para o desenvolvimento de aplicação Java para os mais diversos dispositivos móvel.
– Facilita a integração com outras soluções Java (Ex. J2EE).
Desenvolvimento de Aplicações e Serviços
• Java 2 Micro Edition (J2ME)
Desenvolvimento de Aplicações e Serviços
• Novas plataformas de SW– Objetivos:
• Facilidade de uso (usabilidade e aplicações)• Fácil adaptação a diferentes plataformas de Hw (SOs)• Base de desenvolvimento comum (SDKs)
– Exemplo: SOs Móveis Proprietários• Symbian• Windows Mobile• Iphone OS-X
– Exemplo: SOs Móveis GPL• Nokia MAEMO (Linux)• Google Android (Linux)• Ubuntu Mobile• LiMo Foundation
Sistemas Operacionais Embarcados
Sistemas Operacionais
• Definição de SO:– “É um programa que atua como intermediário entre o usuário
e o hardware de um computador. Seu propósito é fornecer um ambiente no qual o usuário possa executar programas, tornando o uso do sistemas computacional conveniente usando o hardware de maneira eficiente.” (Silberschatz).
• Exemplos em PCs comuns: – Windows, Linux, MacOS, etc.
• Com o avanço das plataformas de sistemas móveis, Sos convencionais estão se tornando comuns.
SOs: Vantagens
• Isola do programador a complexidade do hardware.– Abstrai complexidade.– Protege o uso do HW.
• Controla todos os recursos do computador.– Centraliza a responsabilidade sobre o HW.– Desenvolver programas que controlam todos os
componentes de HW é um trabalho extremamente difícil.
• Gerencia a execução de diferentes programas em determinados instantes de tempo (Escalonamento de processos).– Suporte à multiprogramação.
SOs: Visão em Camadas
Hardware
Núcleo do Sistema Operacional
Aplicações Utilitários Linguagem deComandos
Usuários
SOs: Componentes Comuns
• Gerenciamento de Processos• Gerenciamento de Memória
Principal• Gerência de Armazenamento
Secundário e Arquivos• Gerenciamento do sistemas de I/O• Outros:– Redes– Proteção– Contabilização– Logs
Hardware
SO
Aps Util. Com.
Users
Exemplo do STB
Plataforma de Hardware(Rádio, Processador, Periféricos)
Middleware(Ginga-J e Ginga NCL)
Aplicações de Apresentação e
Interatividade
(Navegador, EPG, Entretenimento, etc.)
Software Básico(SO: Controle e configuração do Hw)
Específico dosFabricantes
Camada de SWpara Desenvolvimento
Conteúdo e aplicaçõesdas operadoras
Linux Embarcado
Linux Embarcado
• Muitos dispositivos usam Linux– Linux é livre e de código aberto.– Implementação em C: Linguagem de alto nível facilita o
porte entre diferentes plataformas.– Sistema robusto e completo.– Muito conhecimento público.– Distribuições: Kernel, programas de sistema e utilitários.
Linux Embarcado
• Exemplos: IP phone design runs Linux — A large embedded consulting house in Japan has started shipping a hardware reference design for handheld IP (Internet protocol) phones. Based on a Marvell PXA310 ("Monahans-LV") processor clocked at 624MHz, Sophia Systems's Sandgate 3-P design runs Linux, including Trolltech's Qtopia Phone Edition, or Windows CE/Mobile 6.
Monsoon Multimedia has used embedded Linux to build a consumer DVR (digital video recorder) with remote multimedia file serving capabilities. The Hava -- recently implicated in a GPL violation court case -- aims to let the user access live and recorded TV content from broadband-connected locations.
Linux Embarcado
• Exemplos:
LinkSys Router Linux. For under $100 US, the Linksys WRT54G is a capable Linux platform with 16MB of RAM, a 125MHz processor and support for 802.11b and g.
Urna Eletrônica!
Linux Embarcado
Etapas Básicas de Desenvolvimento– Otimização do Kernel
• Objetivo: Redução do tamanho do SO.• Basicamente, trata da remoção de módulos não utilizados na
plataforma de destino.• Recompilação para a plataforma de destino.
– Composição do Sistema de Arquivos Básico• Estrutura em diretórios contendo software necessário para aplicação
embarcada (kernel, Módulos do SO, bibliotecas, utilitários, programas de sistema e aplicativos).
– Desenvolvimento de Drivers de Dispositivos• Necessário para o controle de Hws específicos.• Sua implementação deve conter as diretivas para manipulção direta
do hardware.
Estudo de Caso
NOKIA/MAEMO
Estudo de Caso
Zagaia Aps