Arquitetura Java ME (J2ME) & Tecnologias Java Embarcadas Relacionadas



Documentos relacionados
Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Desenvolvimento de Sistemas Móveis em Java com J2ME/MIDP. Jorge H. C. Fernandes

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

UMA ABORDAGEM SOBRE J2ME

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Computação Móvel J2ME

Tutorial J2ME Parte 3

Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Como dito anteriormente, a JCP especificou dois grupos para a J2ME conforme as necessidades dos dispositvos, chamadas Configurações:

Programação para Celular com Java

Java 2 Micro Edition (J2ME)

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Introducão à Tecnologia Móvel 1 UFU - BACALÁ

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 17/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Arquitectura de Sistemas Computacionais

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DEVELOPMENT OF SOFTWARE FOR MOBILE DEVICES 8º CICLO DE PALESTRAS DE INFORMÁTICA DA FAI

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

PROTÓTIPO DE APLICATIVO PARA DISPOSITIVO MÓVEL (PDA) USANDO A TECNOLOGIA J2ME E BANCO DE DADOS

Desenvolvimento para dispositivos móveis JavaME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Linguagem de Programação Introdução a Linguagem Java

Desenvolvimento de um aplicativo básico usando o Google Android

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

J2ME, Uma Platarfoma de programação para Dispositivos Móveis

BrokerCell: programando celular com J2ME para cotar papéis na Bovespa

A Plataforma Java 2 Micro Edition Aplicada em Dispositivos Móveis: Sistemas Embarcados para Telefones Celulares

INTEGRANDO A TECNOLOGIA J2ME NO ÂMBITO ACADÊMICO

PROGRAMAÇÃO JAVA. Parte 1

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010

Orientação a Objetos com Java

Programação Orientada a Objetos

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Introdução à Linguagem Java

Sistemas Distribuídos

Tutorial Java ME. Deixe o JME surpreender você também! Porque programar com 1 GB de RAM é fácil!! Neto Marin

Sistemas Operacionais

Programação por Objectos

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Aplicações Móveis e sua aplicação na saúde: micd, exemplo prático

Adriano Reine Bueno Rafael Barros Silva

UNIJUI - UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DETEC DEPARTAMENTO DE TECNOLOGIA

Digifort Mobile Manual Version 1.0 Rev. A

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Windows NT 4.0. Centro de Computação

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Interfaces Dinâmicas e Adaptativas para Celulares

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Um pouco mais que Hello World

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS GAME OF MEMORY TO MOBILE DEVICES

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

3 Ambientes Celulares

Arquiteturas para implantação de aplicações móveis wireless

OSGi Um Sistema Dinâmico de Módulos para Java

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Desenvolvimento Web TCC Turma A-1

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DOCUMENTOS E DINHEIRO ELETRÔNICO COM SMART CARDS UTILIZANDO A TECNOLOGIA JAVA CARD. Cleber Giovanni Suavi Orientador: Marcel Hugo

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

Agregador de feeds RSS para dispositivos móveis

Aula 1 Windows Server 2003 Visão Geral

Manual de Operação Aplicativo ClickIt

João Víctor Rocon Maia Engenharia de Computação - UFES

Projecto 5º Ano - Engenharia Informática. Orientadores. Prof. Doutor Sá Silva Prof. Mestre Sérgio Duarte

Aplicações Visuais Mobile com Netbeans 6.0

Daniel Wildt FACENSA Grupo de Estudos Java - FUJA Slide: 1

Sistemas Operacionais

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

DESENVOLVIMENTO DE UMA FERRAMENTA UTILIZANDO A TECNOLOGIA J2ME

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS. Célia Hirata Aoki Anderson Pazin

Administration Kit. Parte de Kaspersky Business Space Security Kaspersky Enterprise Space Security Kaspersky Total Space Security

Programação de Computadores II TCC Turma A-1

Arquitectura de Sistemas Computacionais

Windows Vista. Quadrantes de Inovação. Utilizadores Finais. IT Pros. Pesquisa e Utilização de Informação. Segurança e Conformidade.

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Desenvolvimento de um Framework de Jogos 3D para Celulares

UFG - Instituto de Informática

Introdução à Ciência da Computação

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

FAMINAS BH - FACULDADE DE MINAS CURSO DE SISTEMAS DE INFORMAÇÃO ALEXSANDRO GOMES DA SILVA CEZAR AUGUSTO SANTOS DE OLIVEIRA VAGNER JOSÉ DE SOUZA

Aplicações Móveis: Gestão de Estacionamento em Shoppings

Java 2 Platform, Micro Edition (J2ME)

B ringing Al l U sers to the Television

O Valor do Browser no POS Soluções e Cases

Transcrição:

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 1

Plataformas Java Por que Java? Outras Alternativas Embedded C++ (Visual Studio) Visual Studio.NET, C#, ASP.NET Delphi Flash Lite Python... Plataformas Java Plataformas Java 1. JVM 2. Languagem de prog. Java 3. Core & pacotes opcionais Java Standard Edition (Java SE) Java Enterprise Edition (Java EE) Java Micro Edition (Java ME) Aplicações desktop & workstation Sistemas corporativos pesados Dispositivos pequenos e de recursos restritos 2

Java SE Feature complete Java foundation Desenvolvimento corporativo do lado do Cliente: aplicações stand alone & web applets 2 binários necessários: JDK: Desenvolvimento das aplicações JRE: Ambiente Runtime Exemplo: 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. 3

Java ME: Modelo multi-tier First tier Cliente Business logic EIS tier Servidor dados First tier Cliente Middle tier Business logic EIS tier Servidor Serviços dados Java ME Dispositivos Móveis p/ Consumo 4

Java ME Sistemas embarcados Java ME 5

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 (Remote Method Invocation) Java ME: Dispositivos Characterísticas Memória limitada: 128K a 2M p/ embarcados Poder de processamento limitado Dispositivos móveis ou plug-in Mobile baterias Necessidades Consistência entre produtos Poder de uma LPOO Portabilidade Segurança em rede Escalabilidade vertical (para EE & SE) 6

Java ME: Building Blocks Configuração Plataforma mínima necessária para um grupo de dispositivos Perfil Endereça necessidades específicas para uma determinada família de dispositivos Java ME Profile Java ME Libraries Java Language Java Virtual Machine Host Operating System Configurações Java ME J2ME Profile1 J2ME Profile2 J2ME Profile3 J2ME Profile4 J2ME Profile5 J2ME Profile6 Bibliotecas CLDC Linguagem Java Máquina Virtual K Bibliotecas CDC Linguagem Java Máquina Virtual Compacta Memória: 128512 kb Processador: 1632 bits Memória: Até 2 MB Processador: 32 bits 7

Servers Optional Packages Java Enterprise Edition (Java EE) Desktop machines Optional Packages Java Standard Edition (Java SE) Java Platform High-end consumer devices Personal Profile Foundation Profile CDC Low-end consumer devices MIDP CLDC Smartcards Java Card APIs Java Virtual Machine KVM CardVM Java Micro Edition (Java ME) CLDC x CDC CLDC Connected, limited device configuration 160 Kbytes a 512 Kbytes de memória total disponível. Processador de 16 ou 32 bits. Baixo consumo de energia, operação com baterias. Conectividade limitada. Smartphones CDC Connected device configuration 2Mbytes ou mais de memória para a plataforma Java. 32 bits. Largura de banda maior, geralmente usando TCP/IP 8

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 9

Estrutura de um MIDlet Exemplo: HelloMIDlet import 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() {} } 10

Interface de Baixo Nível CLDC Profiles: IMP Information Module Profile Adequado para sistemas embarcados: settop 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 11

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/developertools/adf/overview/adf-mobile-096323.html MicroEmulator implementação de Java ME em Java SE - http://www.microemu.org/ Java Card Smart Cards Class file(s) Tipic. de 1 a 50K de memória Trê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 web applications Converter CAP files Off-card installation program CAD PC ou workstation Runtime environment On-card installer Interpreter Smart card 12

Java Card Smart Cards Smart Cards Contact (gold pads) - 8 pinos Contactless - 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/ 13

JavaTV Baseado em Java SE VM no receptor de TV & executa byte code Aplicações sobdemanda Applications & Applets Java TV API Java Platform Real Time OS Device Drivers Application layer Java technology layer RTOS layer Digital TV Receiver Hardware layer Embedded Server Aplicações em rede orientados a serviço Serviço sobdemanda Serviços através da rede 500K de memória Services http log admin billing other Service Space Java Virtual Machine Operating System Java Embedded Server Hardware 14

Outros Personal Java Versão antiga de embedded java Usa JDK Perfil pessoal para CDC Wireless Toolkit CLDC/MIDP development toolkit BREW Game Design 15

BREW Binary Runtime Environment for Wireless Desenvolvido pela QUALCOMM Internet Services Amarrado 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 Java Jogos de alta performance p/ aparelhos not Symbian OS BREW x CLDC/MIDP Pouca diferença em termos de capacidade técnica Decisão mais baseada em política da empresa Acredita-se que o J2ME tenha um parque maior de aplicações instalado 16

Por que desenvolver jogos usando J2ME/BREW? Maior controle sobre a IHM Acesso direto ao hardware Número de usuários desse tipo de dispositivo crescendo rapidamente Área de grande interesse para as operadoras Limitações Técnicas Sem teclas simultâneas Sem transparências em imagens Não é possível assumir suporte a áudio Sem matemática de ponto flutuante Sem JNI (Java Native Interface) ou AWT (Abstract Windowing Toolkit) Requer certificação da Qualcomm (custo proibitivo p/ hobbyists) 17

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 e Sistemas Avançados do Recife baseado em Eclipse / plugin CDT http://gluon.cesar.org.br/ US$ 18,75 p/ instalador binário, 0800 p/ código fonte (http://opensource.cesar.org.br/project s/gluon/) 18

IDE Gluon IDE Gluon 19

Jamdat Bowling Diamond Mine www.jamdatgames.com Micro Nitro Froggy www.morpheme.co.uk www.perimind.com 20

URLs Java ME Wireless Toolkit: http://java.sun.com/products/sjwtoolkit/index.html Java Card http://developers.sun.com/mobility/javacard/articles/javacard2/ Artigos Úteis: http://wireless.java.sun.com/midp/articles/ www.gamasutra.com/resource_guide/20010917/fox_01.htm http://www.devx.com/wireless/article/27871 BREW SDK e informações: https://brewx.qualcomm.com/brew/sdk/download.jsp www.codeproject.com/useritems/introduction_brew.asp www.developer.com/ws/brew/ http://en.wikipedia.org/wiki/brew 21