arquitetura java me (j2me)nacif/cmovel/12_j2me_brew.pdf · assim como java, roda em uma máquina...

21
1 Arquitetura Java ME (J2ME) & Tecnologias Java Embarcadas Relacionadas INF-455/655 – Computação Móvel Universidade Federal de Viçosa Departamento de Informática Conteúdo 3 sabores para as plataformas Java Arquitetura Java ME Configurações CDC CLDC Perfis Foundation MIDP Tecnologias Relacionadas Java card, Java TV

Upload: others

Post on 27-May-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 2: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 3: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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.

Page 4: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 5: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

5

Java ME

Sistemas embarcados

Java ME

Page 6: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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)

Page 7: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 8: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 9: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 10: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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() {}

}

Page 11: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 12: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 13: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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/

Page 14: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 15: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 16: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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

Page 17: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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)

Page 18: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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/)

Page 19: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

19

IDE Gluon

IDE Gluon

Page 20: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

20

Jamdat Bowling Diamond Mine

www.jamdatgames.com

Micro Nitro Froggy

www.morpheme.co.uk www.perimind.com

Page 21: Arquitetura Java ME (J2ME)nacif/cmovel/12_J2ME_BREW.pdf · Assim como Java, roda em uma máquina virtual (em hardware) Aplicações escritas em C, C++ ou Java Jogos de alta performance

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