ia368 tópicos em engenharia de computação v 1 semestre de...
TRANSCRIPT
Prof. José Mario De [email protected]
Bloco A – sala 317-A
IA368 Tópicos em Engenharia de Computação V
1° semestre de 2008
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 1
Agenda
Visão geral plataformas Java: Java EE, Java SE e Java MEJava MEMáquina virtual Java – KVMConfigurações CLDC e CDCCLDC 1.0 e CLDC 1.1Perfil MIDPMIDP 1.0 e MIDP 2.0Pacotes OpcionaisFragmentaçãoJSR 185 JTWI e JSR248 (MSA)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 2
Referências
J2ME in a NutshellKim TopleyO’Reilly – 2002
Wireless Java Developing with J2ME, Second EditionJonathan KnudsenApress – 2003
Learning Wireless JavaOusay MahmoudO’Reilly – 2001
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 3
Referências
http://developers.sun.com/techtopics/mobility/allarticles (conjunto de artigos, alguns de interesse)
• Seção Application Models: Understanding J2ME Application Models• Seção Game: Getting Started with MIDP 2.0 Game API• Seção Getting Started• entre outros
http://java.sun.com/javame/overview/techpapers
http://java.sun.com/javame/index.jsp (Java ME at a Glance)
http://java.sun.com/javame/downloads/index.jsp (Downloads)
http://java.sun.com/javame/reference/apis.jsp (Java ME Technology APIs & Docs)
http://www.jcp.org/en/jsr/all (todas as Java Specification Requests - JSRs)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 4
Plataforma Java
Plataforma Java
• Linguagem (incluindo compilador e ferramentas de apoio)
• Ambiente de execução (Java Virtual Machine)
• Biblioteca (Java API – Application Programming Interface)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 5
Plataforma Java
Edições da Plataforma Java• Java SE (Java Plataform, Standard Edition) – edição padrão que
estabelece ambiente de desenvolvimento de aplicativos para computadores pessoais e estações de trabalho. Define um núcleo básico de funcionalidades, comum a todas as edições.
• Java EE (Java Plataform, Enterprise Edition) – é um superconjunto da edição padrão, voltada para o desenvolvimento de servidores e aplicativos corporativos orientados a transações e apoiado em bases de dados, para atender clientes, fornecedores e empregados.
• Java ME (Java Plataform, Micro Edition) – estabelece um ambiente de execução para sistemas embutidos/embarcados e dispositivos portáteis, incluindo telefones celulares, PDAs e set-top boxes, que possuem recursos limitados (memória, processamento, velocidade de comunicação,...), insuficientes para comportar as plataformas Java SE ou Java EE.
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 6
Plataforma Java
Edições da Plataforma Java
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 7
Plataforma Java ME
Modular e escalável, organizada em camadas
• Máquina virtual (KVM – Kilobyte Virtual Machine)
• Configuração (Configuration)
• Perfil (Profile) e Pacotes opcionais
Sistema Operacional
JVM
Configuração
Perfil
Hardware
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 8
Plataforma Java ME
CLDCCDC
KVM
MIDP
Foundation Profile
IMPPersonal Basis Profile
Personal Profile
Pagers
Celulares
PDAsInternetAppliances
Set-topBoxes
JVM
DispositivosEmbarcados
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 9
Máquina Virtual
Kilobyte Virtual Machine• Versão reduzida da JVM da edição J2SE• Tipicamente 40KB – 80KB• Para dispositivos com pouca memória (≤128KB)• Processador 16-32bits
CLDC-HI (CLDC HotSpot Implementation Virtual Machine)• Versão otimizada e aprimorada da KVM• Disponível sob licença para fabricantes de dispositivos
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 10
Configuração (Configuration)
Define as características mínimas da plataforma estabelecendo categoria de dispositivos com recursos similares no que tange:• tipo e tamanho de memória• capacidade de processamento• tipo de conectividade
Uma determinada configuração estabelece:• Os aspectos da linguagem Java suportados• As características da máquina virtual java• As bibliotecas (APIs) básicas suportadas
A camada de configuração e a da máquina virtual estão intimamente relacionadas.
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 11
Configuração (Configuration)
Duas configuração para duas categorias de dispositivos
• CLDC (Connected, Limited Device Configuration): tipicamente, dispositivo com pouca memória (160KB-512KB), processador de 16-32 bits e conexão wireless. Exemplos: celular e low-end PDA.
• CDC (Connected Device Configuration): tipicamente, dispositivo com mais memória (≥ 2MB), processor de 64 bits ou mais e conexão fixa (tipicamente). Exemplo: set-top box, web phone e high-end PDA.
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 12
CLDC
CLDC 1.0 (JSR-30)
• Memória mínima 160KB (sendo 32KB para heap)• Processador 16-32 bits• Segurança: processo de pré-verificação• Não suporta ponto-flutuante• Limitações no tratamento de erros • Sem finalização automática - Object.finalize()• Não permite a chamada de código nativo (JNI - Java Native Interface)• Suporta multithreading, mas não grupos de threads e threads daemons
(thread que termina automaticamente, após o término de todas threadsnão daemons)
• Não suporta referências fracas - java.lang.ref (SoftReference, WeakReference, PhantomReference)
• Não suporta carregadores de classe definidos pelo usuário• Não suporta reflexão – java.lang.reflect
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 13
CLDC
CLDC 1.1 (JSR-139)
• Memória mínima 192KB (sendo 32KB para heap)• Suporta ponto-flutuante• Suporte a referências fraca (WeakReference)• Threads com nomes
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 14
CLDC
Processo de verificação
Pré-verificação Verificação
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 15
CLDC
Processo de verificação
• Pré-verificação• Realizado na estação de desenvolvimento, após a compilação.• Geração e inserção de informações no arquivo de classe, que
permite o teste da integridade do arquivo no momento de carga.
• Verificação• Realizada no dispositivo.• Varredura do código e a informação gerada pela pré-verificação.• Verifica a aderência do código às regras da linguagem, entre
outras:• Variáveis locais devem ser inicializadas antes do uso;• Após a criação de um objeto, o seu construtor deve ser executado,
antes do uso do objeto;• Todo construtor deve começar evocando o construtor da superclasse.
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 16
CLDC - Bibliotecas
Classes Java SE• CLDC um suporta um subconjunto de classes da plataforma Java SE.• As classes derivadas da plataforma Java SE são versões, em geral, com
um conjunto menor de métodos do que versão original Java SE.• Pacotes:
• java.lang• java.io• java.util
Classes CLDC (Generic Connection Framework)• Pacote javax.microedition.io• A funcionalidade suportada nos pacotes java.io e java.net da plataforma
Java SE foi condensada na CLDC. O pacote javax.microedition.io estende a funcionalidade do pacote java.io suportado pela CLDC, definindo o GCF (Generic Connection Framework), permitindo a inclusão de protocolos como: HTTP, HTTPS e WAP (Wireless Application Protocol)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 17
Perfil (Profile)
Suporta serviços de mais alto-nível para uma classe de dispositivos, incluindo:
• Criação e gerenciamento de aplicativos
• Interface com usuário (teclado / display)
• Armazenamento persistente
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 18
Perfil (Profile)
Perfis de interesse
• MIDP 1.0 - Mobile Information Device Profile 1.0 (JSR 37)
• MIDP 2.0 (2.1) - Mobile Information Device Profile 2 (JSR 118)
• Mobile Information Device Profile 3 (JSR 271)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 19
MIDP – Mobile Information Device Profile
MIDP 1.0 (JSR 37) – requisitos mínimos• Memória
• 128KB de memória não-volátil para a implementação MIDP• 32KB de memória volátil para alocação dinâmica (heap)• 8KB de memória não-volátil para armazenamento persistente
• Display• Tamanho tela: 96x54 pixels• Cor: 1 bit (display depth) - monocromático• Aspect ratio: 1:1
• Entrada• Teclado de telefone (one-handed keypad) e/ou• Teclado QWERTY (two-handed keyboard) e/ou• Tela sensível ao toque (touch screen)
• Conectividade• 2-vias, wireless, possivelmente intermitente, e com faixa limitada
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 20
MIDP – Mobile Information Device Profile
MIDP 1.0 (JSR 37) – bibliotecas• Pacotes
• javax.microediton.midlet (aplicativos para MID) • javax.microedition.lcdui (interface com o usuário)• javax.microedition.rms (memória persistente)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 21
Perfis (Profiles)
MIDP 2.0 (JSR 118) – requisitos mínimos• Memória
• 256KB de memória não-volátil para a implementação MIDP• 128KB de memória volátil para alocação dinâmica (heap)• 8KB de memória não-volátil para armazenamento persistente
• Display• Tamanho tela: 96x54 pixels• Cor: 1 bit (display depth) - monocromático• Aspect ratio: 1:1
• Entrada• Teclado de telefone (one-handed keypad) e/ou• Teclado QWERTY (two-handed keyboard) e/ou• Tela sensível ao toque (touch screen)
• Conectividade• 2-vias, wireless, possivelmente intermitente e com faixa limitada
• Áudio• Suportar em hardware ou software WAV e MIDI
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 22
Perfis (Profiles)
MIDP 2.0 (JSR 118) – bibliotecas• Pacotes
• javax.microediton.midlet (aplicativos para MID)• javax.microedition.lcdui (interface com o usuário)• javax.microedition.lcdui.game (suporte a jogos)• javax.microedition.rms (memória persistente)• javax.microedition.media (controle e processamento de áudio)• javax.microedition.media.control (controle e processamento de
áudio)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 23
Pacotes opcionais
Adicionalmente ao perfil, existem pacotes opcionais que suportam outros serviços.Pacotes opcionais de interesse:• JSR 120 – Wireless Message API (SMS)• JSR 135 – Mobile Media API (apresentação áudio e vídeo - básico )• JSR 178 – Mobile Game API (proposta rejeitada)• JSR 184 – Mobile 3D Graphics API for J2ME (gráficos 3D)• JSR 205 – Wireless Messaging API 2.0 (Short Message Service - SMS, Multimedia
Messaging Service - MMS)• JSR 209 – Advanced Graphics and User Interface Optional Package for J2ME
(em andamento)• JSR 226 – Scalable 2D Vector Graphics API for J2ME (gráfico vetorial 2D)• JSR 234 – Advanced Multimedia Supplements (câmera e recurso avançados de
áudio)• JSR 287 – Scalable 2D Vector Graphics API 2.0 for J2ME (em andamento)• JSR 297 – Mobile 3D Graphics API 2.0 (em andamento)• JSR 239 – JavaTM Binding for the OpenGL® ES API
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 24
Fragmentação
Sistema operacional
CLDC/KVM
MIDlets
AplicativosNativos
ClassesOEM
AplicativosOEM
PacotesOpcionais
MIDP
Hardware do dispositivo
OEM: Original Equipment Manufacturer
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 25
Fragmentação
JSR 185 – Java Tecnology for the Wireless Industry
JSR 248 – Mobile Service Architecture
JSR 249 – Mobile Service Architecture Advanced (em andamento)
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 26
Fragmentação
JSR 185 – Java Tecnology for the Wireless Industry (JTWI)• Mandatório
• JSR 118 – MIDIP 2.0• JSR 120 – WMA 1.1 Wireless Messaging API (SMS)
• Opcional• JSR 135 – MMAPI 1.1 Mobile Media API• JSR 139 – CLDC 1.1
• Configuração mínima• JSR 30 – CLDC 1.0
• Dispositivo – requisitos mínimo• Display: 125x125; 4096 cores (12 bits)• Heap: 128KB
• Tamanho do aplicativo• Java Archive - JAR 64KB ()• Java Application Descriptor - JAD 5KB • Record Management System - RMS 30KB
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 27
Fragmentação
JSR 248 – MSA Mobile Service Architecture• JSR 139 (CLDC 1.1)• JSR 118 (MIDP 2.1)• JSR 75 (file & pim)• JSR 82 (bluetooth)• JSR 135 (MMAPI 1.1)• JSR 184 (3D Graphics)• JSR 205 (WMAPI 2.0)• JSR 226 (2D Vector Graphics)• JSR 172 (web services)• JSR 177 (security and trust)• JSR 179 (location)• JSR 180 (SIP)• JSR 211 (content handler)• JSR 229 (payment)• JSR 234 (multimedia supplements)• JSR 238 (internationalization)
subsetMSA
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 28
Atividade
Implantar sistema de desenvolvimento
• Java ME Wireless Toolkit 2.5.2http://java.sun.com/products/sjwtoolkit/download-2_2.html
• Eclipse sdk 3.3.2• http://www.eclipse.org/downloads/
• EclipseME 1.5.4• http://eclipseme.org/
IA368 Tópicos em Engenharia de Computação V - 1S2008 - Prof. JMario De Martino 29
Java ME Wireless Toolkit 2.5.2
API disponíveis• JSR 139 (CLDC 1.1)• JSR 118 (MIDP 2.1)• JSR 75 (file & pim)• JSR 82 (bluetooth)• JSR 135 (MMAPI 1.1)• JSR 184 (3D Graphics)• JSR 205 (WMAPI 2.0)• JSR 226 (2D Vector Graphics)• JSR 172 (web services)• JSR 177 (security and trust)• JSR 179 (location)• JSR 180 (SIP)• JSR 211 (content handler)• JSR 229 (payment)• JSR 234 (multimedia supplements)• JSR 238 (internationalization)• JSR 239 (OpenGL ES)