Questões de Mobilidade em Diferentes Níveis M-Business and Mobile Applications Wireless Infrastructure Platforms for Mobile Applications - Middleware Platforms (WAP, I-Mode, J2ME) - Mobile Platform Services (Mobile OS, Utilities) Wireless Networks Mobile Computing Platforms Mobile Device (Cell Phone, PDA, Pocket PC) Application Local Platform Services Middleware Services Network Transport Services Mobile Computing Platform Server (Web Server, email server, Mainframe) Local Platform Services Application Middleware Services Network Transport Services Physical Wireless Network (Antennas, Transceivers, Base Stations, Cellular Networks, 802.11 LANs, Satellites) 1
Mobile Computing Platforms Mobile Data Traffic (previsão Cisco) CAGR Compound annual growth rate Mobile Computing Platforms Padrão médio de uso de tráfego de voz-dados em smartphones: 70-30 Para usuários de iphone é 45-55 Em 2010, cada tablet gerou em média cerca de 5x mais tráfego na Internet do que smartphones (Cisco, Fev/2011). 2
Mobile Computing Platforms Mobile Computing Platforms 3
Crescimento Mobile 7 Julho/2008 Net Application Operating Systems Market Share Julho/2009 Fonte: http://www.netmarketshare.com/ Mauro N. Rocha 4
Julho/2010 Net Application Operating Systems Market Share Setembro/2011 Fonte: http://www.netmarketshare.com/ Mauro N. Rocha Mobile OS Net Market Share 5
Mobile Computing Platforms Mobile Computing Platforms Sistemas Operacionais SGBDs Gerenciadores de Transações Ferramentas para Dispositivos Móveis Wireless Middleware Wireless Gateways Servidores de Aplicação 6
Mobile Computing Platforms Sistemas Operacionais Windows CE / Windows Mobile / Phone 7 Symbian OS BlackBerry Linux LiMo (Linux Mobile) Foundation (Motorola et. al.); Moblin.org (Intel); Linux Phone Standards Forum (LiPS - lipsforum.org) ios (iphone, ipad, ipod) Android WebOS Chrome OS Ubuntu Firefox OS Jolla (MeeGo ex-nokia) Tizen (Intel + Samsung) Mobile Computing Platforms 7
Mobile Computing Platforms Diversas soluções cross-platform Trolltech C++ e Java (http://trolltech.com/) Comprada pela Nokia final jan/2008 Qt (http://qt.nokia.com) Azingo S60 over Linux (http://www.azingo.com) ACCESS Palm to Linux (http://www.accesscompany.com/home.html) JIL Joint Innovation Lab (http://www.jil.org) - criação de widgets e serviços. FireMonkey (Embarcadero Technologies) Suporte para Mobile Apps Depende do uso da rede por parte das aplicações Podemos destacar três categorias gerais para Aplicações em CM: Aplicações Stand-alone rodam inteiramente em dispositivos móveis em modo desconectado (detached). Aplicações C/S simples (e.g., DB query) c/ tempos de conexão curtos. Aplicações móveis avançadas (groupware e multimídia distribuída) intercâmbio de informações em tempo real. 8
O Papel do Middleware Transformação: Converter entre diferentes formatos (HTML / WML) Detecção e ajuste: Detectar dispositivos diferentes e otimizar a saída de acordo com os recursos do dispositivo. Compressão: Minimizar quantidade de dados trafegados na rede. Segurança: Assegurar privacidade e segurança fim a fim. Entrega de Mensagens: Assegurar entrega de mensagens mesmo sendo desconectado da rede (storage / forwarding). Ferramentas de Suporte: Oferecer ferramentas de suporte e gerência para provedores e clientes. O Papel do Middleware Adaptação Concorrência Fidelidade Agilidade 9
Tipos de Middleware Duas abordagens: Information Hiding (e.g. WAP) Information Providing (e.g. CODA) Universidade Federal de Viçosa Centro de Ciências Exatas Departamento de Informática Wireless Aplication Protocol 10
Histórico Em Junho de 1997, quatro empresas uniram-se para desenvolver um protocolo de aplicações sem fio em comum, inicialmente chamado de MDI (Mobile Data Initiative) O MDI herdou as características principais e a funcionalidade do HDML (Handheld Device Markup Language) e HDTP (Handheld Device Transport Protocol) desenvolvido através da Unwired Planet (agora Phone.com), a especificação TTML (Tagged Text Markup Language) desenvolvido através da Nokia; e o ITTP (Intelligent Terminal Transfer Protocol) especificação desenvolvida através da Ericsson. Histórico Desta união surgiu o WAP Forum, um órgão independente com a finalidade de desenvolver WAP e padronizar seu conteúdo. Hoje o WAP Forum está incorporado ao Open Mobile Alliance (OMA), e não existe mais como organização independente. 11
(Criado em 2002) WAP Forum Location Interoperability Forum (LIF) SyncML Initiative Multimedia Messaging Interoperability Process (MMS-IOP) Wireless Village Mobile Gaming Interoperability Forum (MGIF) Mobile Wireless Internet Forum (MWIF) Arquitetura 12
WAP Gateway O WAP gateway (WAP Proxy) é um software que basicamente realiza a conexão entre o cliente (dispositivo móvel) e o servidor. O WAP gateway possui as seguintes funcionalidades: Gateway de protocolo - traduz pedidos do protocolo WAP para o protocolo WWW Codificadores e Decodificadores de conteúdo - o codificador de conteúdo traduz o conteúdo WAP para um formato de código compactado (bytecode), com a intenção de reduzir o tamanho e o número de pacotes que trafegam na rede. WAP Gateway 13
Transmissão de dados WTA (Wireless Telephony Application) - A finalidade de WTA é fornecer meios para criar serviços de telefonia (voz) utilizando WAP. Quando o WAP browser é utilizado para solicitar informação, esse pedido é enviado através da rede sem fio para o WAP gateway, utilizando o protocolo WML (Wireless Markup Language) e converte a requisição para o protocolo da Internet (HTTP). A seguir, o que acontece é o envio dessa requisição para o Web Server através da Internet. O Web Server recebe, lê a requisição e retorna uma resposta com conteúdo para o WAP gateway. Transmissão de dados 14
Pilha de Protocolos Wireless Application Environment (WAE) É a camada responsável por estabelecer um ambiente interativo. O WAE inclui um ambiente de micro-browser que suporta as seguintes tecnologias: Wireless Markup Language (WML), uma linguagem de marcação similar ao HTML, mas otimizada para utilização em dispositivos móveis. WML Script, uma linguagem de script similar ao Java Script. Um conjunto de formatos de dados bem definidos, incluindo imagens, registros de agenda de telefones e de compromissos. Serviços de telefonia e interfaces de programação: Wireless Telephony Application (WTA, WTAI). 15
Wireless Session Protocol (WSP) O WSP disponibiliza dois tipos de serviço para a camada de aplicação do WAP. O primeiro é o serviço orientado a conexão, que opera sobre o protocolo de transação WTP. O segundo é o serviço não orientado a conexão, que opera sobre o serviço de datagrama seguro ou não (WDP). Os protocolos da família WSP são otimizados para uma banda de conexão baixa, com latência relativamente alta. WSP foi projetado para permitir que um proxy WAP conecte um cliente WSP a um servidor HTTP comum. Wireless Transaction Protocol (WTP) O WTP é executado sobre um serviço de datagramas, provendo um protocolo orientado a conexão. O WTP opera eficientemente, disponibilizando os seguintes serviços: Três classes de serviços de transação: Requisições one-way (pedidos) não confiáveis Requisições two-way (pedidos e respostas) confiáveis Confiabilidade opcional user-to-user. O usuário ativa a confirmação a cada mensagem recebida Transações Assíncronas 16
Wireless Transport Layer Security (WTLS) O WTLS é um protocolo de segurança baseado no protocolo TLS (Transport Layer Security), também conhecido como Security Sockets Layer (SSL). O WTLS disponibiliza os seguintes serviços: Integridade de Dados Privacidade Autenticação Detecção e rejeição de dados incorretos. Wireless Datagram Protocol (WDP) O WDP opera como um serviço geral de transporte de dados, oferecendo uma forma consistente de transmissão de pacotes das camadas superiores da pilha WAP. Desta forma, as camadas de Segurança, Sessão e Aplicação podem funcionar independentemente da rede sem fio utilizada. 17
WAP x Protocolo de Internet Pilhas de Protocolos Comparativo do número de pacotes necessários em uma comunicação 18
Segurança Privacidade Integridade Autenticação Não rejeição Wireless Transport Layer Security (WTLS) O WTLS garante as seguintes propriedades: Integridade de dados Privacidade Autenticação Proteção contra Denial-of-service 19
WAP 2.0 WAP 2.0 é a evolução da pilha de protocolos WAP. Traz um conjunto de melhoramentos e especificações que aumentam o poder de processamento dos dispositivos móveis e proporciona uma maior qualidade no acesso à Internet por parte dos mesmos. WAP 2.0 - Arquitetura A arquitetura do protocolo WAP 2.0 é organizada de modo a suportar uma pilha de protocolos baseada na pilha de protocolos usada na Internet, incluindo TCP, TLS e HTTP. Suporta a linguagem XHTML MP (extensible HyperText Markup Language Mobile Profile). WAP 2.0 não requer um WAP proxy, sendo toda a comunicação entre o cliente e o servidor feita através do uso do protocolo HTTP. O WAP proxy pode otimizar o processo de comunicação e oferecer melhoramentos nos serviços móveis. 20
Pilha de Protocolos WAP 2.0 Pilha de Protocolos 21
WAP 2.0 Pilha Dupla (opcional) Como WAP 2.0 suporta ambas as pilhas de protocolos (WAP 1.0 e WAP 2.0) é esperado que as pilhas operem independentemente. Dado isto, o dispositivo WAP deve possuir as duas pilhas de protocolo funcionando em conjunto. Serviços adicionais/aprimorados WAP Push User Agent Profile (UAProf) Wireless Telephony Application (WTA) External Funtionality Iterface (EFI) Persistent Storage Interface (PSI) Data Sincronization Multimedia Messaging Service (MMS) Pictogram Binary XML Content Wireless profile Cascading Style Sheet Specification Document Type Definition (DTD) 22
Estrutura da Linguagem WML Mesma estrutura e regras do XML Tags WML são case sensitive As tags podem conter atributos Declaração de variáveis $variable $(variable) $(variable:conversion) Estrutura da Linguagem WML Deck (baralho): Prólogo Cabeçalho Um ou mais cards (carta): Unidade básica do display no WAP texto, imagens, hiperlinks e campos de entrada (botões, múltipla escolha, caixa de entrada) 23
Deck Similar a uma página HTML (identificado por uma URL) Unidade de conteúdo de transmissão, enviada integralmente do servidor WAP para o terminal móvel Várias telas (cards) podem ser baixadas para um cliente de uma só vez. Não deve exceder 1400 bytes (tamanho do arquivo binário obtido a partir do arquivo fonte WML) Estrutura da Linguagem WML Imagens: WBMP (Wireless BitMap) P&B ou coloridas com até 150x150 pixels. Diretiva opcional alt, como no HTML, para terminais sem interface gráfica. 24
Exemplo (WML) <WML> <CARD> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#card2"/> </DO> Acme Inc.<BR/>Directory </CARD> <CARD NAME="card2"> <DO TYPE="ACCEPT"> <GO URL="?send=$type"/> </DO> Services <SELECT KEY="type"> <OPTION VALUE="em">Email</OPTION> <OPTION VALUE="ph">Phone</OPTION> <OPTION VALUE="fx">Fax</OPTION> </SELECT> </CARD> </WML> Acme Inc. Directory Next Services 1>Email 2 Phone OK WMLScript Linguagem derivada de JavaScript Otimizada para uso em dispositivos com CPUs e memórias limitadas Omite algumas funções Facilmente integrada com WML VM: bytecode-based, stack-oriented Assume compilador residente na rede p/ reduzir tráfego de dados e uso de memória/cpu do dispositivo Bibliotecas para processamento de URLs, caixas de diálogo simples (UI), processamento de strings e funções matemáticas, interface c/ browser WML 25
Exemplo (WMLScript) Funções Variáveis Estruturas de Controle function currencyconvertor(currency,exchrate ) { return currency*exchangerate; } function myday(sunshines) { var myday; if (sunshines) { myday = Good ; } else { myday = Not so good ; }; return myday; } Chamada WTAI Elemento de entrada Exemplo (WTA / WTAI) <WML> <CARD> <DO TYPE= ACCEPT > <GO URL= wtai:cc/mc;$(n) /> </DO> Enter phone number: <INPUT TYPE= TEXT KEY= N /> </CARD> </WML> Chamada WTAI function checknumber(n) { if (Lang.isInt(N)) WTAI.makeCall(N); else Dialog.alert( Bad phone number ); } 26
Exemplo Exemplo 27
Exemplo Exemplo 28
Exemplo Desenvolvendo para WAP 2.0 XHTML MP (XHTML Mobile Profile) WCSS (WAP CSS): subconjunto do CSS2 + extensões específicas de WAP 29
XHTML MP não dá suporte a: decks and cards timers events variables client-side scripting programmable softkeys <u> tag format attribute for input fields posting of data with anchor links Desenvolvendo para WAP 2.0 XHTML MP (XHTML Mobile Profile) WCSS (WAP CSS): subconjunto do CSS2 + extensões específicas de WAP Caso a adoção do XHTML MP ou WCSS não seja requerido, pode ser preferível adotar o WML por dar suporte aos dispositivos WAP 1.x. 30
Evolução das Linguagens de Marcação Fonte: Wikipedia Referências http://www.novomilenio.inf.br/fixos/mundowap.htm Operadoras, portais, serviços, notícias, tecnologia http://www.developershome.com/wap/wml/ Documentações e tutoriais de WML http://www.wapforum.org http://www.wapbr.com.br http://www.penta.ufrgs.br/tp951/tccd_ml.html http://www.wmlclub.com http://www.ovum.com http://www.openmobilealliance.org http://www.passani.it/gap/ Global Authoring Practices for the Mobile Web (XHTML MP) 31