arquitetura java me (j2me)nacif/cmovel/12_j2me_brew.pdf · assim como java, roda em uma máquina...
TRANSCRIPT
1
Arquitetura Java ME (J2ME) &Tecnologias Java Embarcadas Relacionadas
INF-455/655 – Computação Móvel
Universidade Federal de ViçosaDepartamento de Informática
Conteúdo
3 sabores para as plataformas JavaArquitetura Java ME Configurações CDC CLDC
Perfis FoundationMIDP
Tecnologias Relacionadas Java card, Java TV
2
Plataformas Java
Por que Java?Outras Alternativas Embedded C++ (Visual Studio) Visual Studio .NET, C#, ASP.NET Delphi Flash Lite Python ...
Plataformas Java
JavaStandard Edition
(Java SE)
JavaEnterprise Edition
(Java EE)
JavaMicro Edition
(Java ME)
Plataformas Java
Aplicações desktop &workstation
Sistemas corporativospesados
Dispositivos pequenose de recursos restritos
1. JVM2. Languagem de prog. Java3. Core & pacotes opcionais
3
Java SE
Feature complete Java foundationDesenvolvimento corporativo do lado doCliente: aplicações stand alone & webapplets2 binários necessários: JDK: Desenvolvimento das aplicações JRE: Ambiente RuntimeExemplo: desktop ou workstation
Java EE
Aplicações distribuídas Desenvolvimento corporativo do lado do
servidor
Modelo multi-tier Middle-tier contém regras de negócios e
serviços do sistema Escalabilidade, gerenciabilidade, acessibilidade
Exemplos: JDBC, Componentes, CGI etc.
4
Java ME: Modelo multi-tier
Businesslogic
Cliente
First tierServidor
EIS tier
dados
Serviços
Businesslogic
Middle tier
Servidor
EIS tier
dados
Cliente
First tier
Java ME
Dispositivos Móveis p/ Consumo
5
Java ME
Sistemas embarcados
Java ME
6
Java ME
Principais limitações: Atualmente restrito aos recursos do JRE 1.3 Ausência de matemática de ponto flutuante p/
CLDC 1.0 (incluído na versão 1.1) Ausência de finalize() Conjunto limitado de exceções e tratamento de
erros Não suporta JNI (Java Native Interface),
Reflection, Object Serialization, RMI (RemoteMethod Invocation)
Java ME: Dispositivos
Characterísticas Memória limitada:
128K a 2M p/embarcados
Poder de processa-mento limitado
Dispositivos móveisou plug-in
Mobile baterias
Necessidades Consistência entre
produtos Poder de uma LPOO Portabilidade Segurança em rede Escalabilidade
vertical (para EE &SE)
7
Java ME: Building Blocks
Configuração Plataforma mínima
necessária para umgrupo de dispositivos
Perfil Endereça necessida-
des específicas parauma determinadafamília de disposi-tivos
Java MEProfile
Java MELibraries
Java Virtual Machine
Host Operating System
Java Language
Configurações Java ME
J2MEProfile4
Bibliotecas CDC
Máquina Virtual Compacta
J2MEProfile5
J2MEProfile6
Memória: Até 2 MBProcessador: 32 bits
Linguagem Java
J2MEProfile1
Bibliotecas CLDC
Máquina Virtual K
J2MEProfile2
J2MEProfile3
Memória: 128512 kBProcessador: 1632 bits
Linguagem Java
8
Java™ PlatformServersServers
JavaEnterprise
Edition(Java EE)
JavaStandardEdition
(Java SE)
OptionalPackages
OptionalPackages
Java Micro Edition (Java ME)
Java Virtual Machine KVM
CLDCCDC
MIDPFoundation Profile
Personal Profile
JavaCardAPIs
CardVM
DesktopmachinesDesktopmachines
High-endconsumerdevices
High-endconsumerdevices Low-end
consumerdevices
Low-endconsumerdevices
Smart-cardsSmart-cards
CLDC x CDC
CLDCConnected, limited deviceconfiguration160 Kbytes a 512 Kbytesde memória totaldisponível.Processador de 16 ou 32bits.Baixo consumo deenergia, operação combaterias.Conectividade limitada.
CDCConnected deviceconfiguration2Mbytes ou mais dememória para aplataforma Java.32 bits.Largura de banda maior,geralmente usandoTCP/IP
Smartphones
9
CLDC x CDC
CLDC Profiles: MIDP
Mobile Information Device Profile Bibliotecas adicionais para comunicação
em duas vias (two-way)Estende APIs CLDC Application model (MIDlets) User interface APIs (LCDUI) Persistent storage (RMS) Networking (HTTP) Timers JSR 271 – MIDP 3.0
10
Estrutura de um MIDlet
Exemplo: HelloMIDletimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;import java.util.*;
public class HelloWorld extends MIDlet implements CommandListener {private Command exitCommand;private TextBox tb;public HelloWorld() {exitCommand = new Command("exit", Command.EXIT, 1);tb = new TextBox("HelloWorld", "Hello world!", 15, 0);tb.addCommand(exitCommand);tb.setCommandListener(this);
}protected void startApp() {Display.getDisplay(this).setCurrent(tb);}public void commandAction(Command c, Displayable d) {if (c== exitCommand) { destroyApp(false); notifyDestroyed();}
}protected void destroyApp(boolean u) {}protected void pauseApp() {}
}
11
Interface de Baixo Nível
CLDC Profiles: IMP
Information Module Profile Adequado para sistemas embarcados: set-
top boxes, máquinas de serviços etc. Subconjunto do MIDP 1.0 Não possui interface c/ usuário
(javax.microedition.lcdui) JSR-228 – IMP-NG, baseado em MIDP 2.0
– APIs p/ segurança e networking
12
Java ME
Disponibilidade Nokia S40, Symbian OS Windows CE, Windows Mobile Bada, Maemo, MeeGo Android e iOS através do Oracle ADF
Mobile – http://www.oracle.com/technetwork/developer-tools/adf/overview/adf-mobile-096323.html
MicroEmulator – implementação de JavaME em Java SE - http://www.microemu.org/
Java Card – Smart Cards
Tipic. de 1 a 50K dememóriaTrês componentes: JCVM, JCRE, JC API
Versão 3.0 (04/2008) Standard Edition,
baseada na v2.2.2 Connected Edition –
suporte a rede e webapplications
Class file(s)
Converter
CAP files
Off-card installationprogram
CAD
On-cardinstaller
Interpreter
Runtimeenvironment
PC ou workstation
Smart card
13
Java Card – Smart Cards
Smart Cards
Contact (gold pads) - 8 pinosContactless - NFC, RFID
Memory Cards / Processor Cards 8 kB RAM, 346 kB ROM, 256 kB PROM, microprocessador de 8, 16
ou 32 bits (tipicamente 3 a 10 MHz)
Mais info: http://www.smartcardalliance.org/ http://developers.sun.com/mobility/javacard/articles/javacard2/ http://developers.sun.com/mobility/javacard/articles/javacard3/
14
JavaTV
Baseado em Java SEVM no receptor deTV & executa bytecodeAplicações sob-demanda
Applications & Applets
Java Platform
Digital TV Receiver
Device Drivers
Java TV API
Real Time OS
Applicationlayer
Java technologylayer
RTOSlayer
Hardwarelayer
Embedded Server
Aplicações em redeorientados a serviçoServiço sob-demandaServiços através darede500K de memória
Service Space
Operating System
Hardware
Java Virtual Machine
http
log
adm
in
billi
ng
othe
r
JavaEmbeddedServerServices
15
Outros
Personal Java Versão antiga de
embedded java Usa JDK Perfil pessoal para
CDC
Wireless Toolkit CLDC/MIDP
development toolkit
BREW Game Design
16
BREW
Binary Runtime Environment for WirelessDesenvolvido pela QUALCOMM Internet ServicesAmarrado ao CDMA (na prática, não na teoria)Assim como Java, roda em uma máquina virtual(em hardware)Aplicações escritas em C, C++ ou JavaJogos de alta performance p/ aparelhos ‘notSymbian OS’
BREW x CLDC/MIDP
Pouca diferença em termos decapacidade técnicaDecisão mais baseada em política daempresaAcredita-se que o J2ME tenha umparque maior de aplicações instalado
17
Por que desenvolver jogosusando J2ME/BREW?
Maior controle sobre a IHMAcesso direto ao hardwareNúmero de usuários desse tipo dedispositivo crescendo rapidamenteÁrea de grande interesse para asoperadoras
Limitações Técnicas
Sem teclas simultâneasSem transparências em imagensNão é possível assumir suporte a áudioSem matemática de ponto flutuanteSem JNI (Java Native Interface) ouAWT (Abstract Windowing Toolkit)Requer certificação da Qualcomm(custo proibitivo p/ hobbyists)
18
Recursos Disponíveis
Recursos de IU de alto nível: PNGs & bitmaps Entrada de Texto Radio buttons, check boxes Gráficos de Barras Suport para teclas padrão de celulares (0-9, *, #,
setas) Controles de jogos abstraídos
Recursos de IU de baixo nível: Canvas Gráficos
HTTP
IDE Gluon
C.E.S.A.R - Centro de Estudos eSistemas Avançados do Recifebaseado em Eclipse / plugin CDThttp://gluon.cesar.org.br/US$ 18,75 p/ instalador binário, 0800 p/código fonte(http://opensource.cesar.org.br/projects/gluon/)
19
IDE Gluon
IDE Gluon
20
Jamdat Bowling Diamond Mine
www.jamdatgames.com
Micro Nitro Froggy
www.morpheme.co.uk www.perimind.com
21
URLsJava ME Wireless Toolkit:
http://java.sun.com/products/sjwtoolkit/index.html
Java Cardhttp://developers.sun.com/mobility/javacard/articles/javacard2/
Artigos Úteis:http://wireless.java.sun.com/midp/articles/www.gamasutra.com/resource_guide/20010917/fox_01.htmhttp://www.devx.com/wireless/Article/27871
BREW SDK e informações:https://brewx.qualcomm.com/brew/sdk/download.jspwww.codeproject.com/useritems/introduction_brew.aspwww.developer.com/ws/brew/http://en.wikipedia.org/wiki/BREW