O documento discute o desenvolvimento de aplicações corporativas Java para dispositivos móveis usando o NetBeans 5.5 Mobility Pack, conjuntos de ferramentas da Nokia e padrões Java como MIDP e CDC. O palestrante apresenta as principais APIs e JSRs para aplicações corporativas, demonstra o uso do MVC e discute desafios como restrições de memória e conectividade em diferentes dispositivos.
1. Desenvolvimento de
aplicações corporativas Java
ME – NetBeans 5.5, Mobility
Pack, Nokia SDKs
MGJUG – Janeiro de 2007
Juarez Junior - Arquiteto / Desenvolvedor de Software
2. Palestrante
• Juarez Barbosa Junior
– Senior Systems Architect / Java Software Expert
– Unisys
– SCMAD - Sun Certified Mobile Application
Developer
– SCAJ/SCPJ2/SCWCD/SCBCD e SCEA I
– Forum Nokia Champion
3. Agenda
• Java ME - 2007
• Mercado: Corporativo x Entretenimento
• JME – Restrições, plataformas, diferenças
• APIs / JSRs para o mundo corporativo
• MVC MIDlet
• Nokia SDKs – device x prototype
• NetBeans 5.5 Mobility Pack
• Demo / Cases
5. MSA (CLDC) – JSR-248
• Evolução JTWI, mais recursos
– MSA for CLDC
– MSA subset for CLDC
6. MSA Advanced (CDC) – JSR-249
• Evolução JTWI, mais recursos, flexibilidade
– MSA Advanced for CDC
– JSR-232: Mobile Operational Management
(OSGi)
– Foundation Profile
– Personal Profile
7. MIDP 3.0...
• JSR 271: Mobile Information Device Profile
3
– Compatibilidade com MIDP 2.0 (key design goal)
– LIBlets
– Especificar o comportamento adequado para
MIDlets em ambientes CLDC, CDC e OSGi:
• Permitir MIDlets concorrentes em uma VM
• Definir limites (firewalling), comportamento runtime,
gerenciamento do ciclo de vida
• Permitir background MIDlets (UI-less)
• Permitir auto-launched MIDlets (iniciada em boot
time)
8. MIDP 3.0...
• JSR 271: Mobile Information Device Profile
3
– Permitir bibliotecas compartilhadas entre os
MIDlets
– Esclarecer alguns pontos que vão permitir
interoperabilidade entre dispositivos
– Melhorar funcionalidades em vários aspectos.
• Melhorar usabilidade e extensibilidade (UI)
• Melhorar suporte a dispositivos com displays maiores
• Permitir acesso a displays secundários
• Segurança para bancos RMS
• Bancos RMS remotos
• IPv6
9. MIDP 3.0...
• JSR 271: Mobile Information Device Profile
3
– Definir outros padrões para provisão de MIDlets
(OMA (SyncML) DM/DS, Bluetooth, removable
media, MMS, JSR-232, etc.)
– Melhorar pesquisa de características dos
dispositivos
– Localização & Internationacionalização (se
necessário, aumentar JSR-238)
– http://jcp.org/en/jsr/detail?id=271
– https://opensource.motorola.com/sf/sfmain/do/viewP
10. CDC – Connected Device Configuration
• JSR-36: CDC - Connected Device
Configuration
– Classe Java comum - main()
– Xlets
– Applets
– AWT, JDBC, RMI subset for CDC
• JSR-218: CDC 1.1
– Atualizar APIs do J2ME CDC 1.0 com definições
do J2SE, v1.4.
– Atualizar APIs do J2ME CDC 1.0 usando
definições do J2ME CLDC 1.1.
– Adicionar novas APIs do J2SE, v1.4.
11. CDC – Mercado atual
• Nokia Series 80 e Sony Ericsson UIQ 3
12. Mercado
• Aplicações corporativas (foco)
– Processo de negócio, formulários, mobile web,
transações, segurança
• Missão crítica, HA, failover, ACID
• Hoje – Big $$$ - perfil usuário
• Entretenimento
– Jogos, música, fotografia, social networks,
comunidades online
• Diversão, sem requisitos HA, failover
• Hoje - $$$ - perfil usuário
13. Aplicacões corporativas
• Processos de negócio, soluções usando:
– Formulários, páginas WML, (X)HTML, Ajax
– JME – MIDP 2.0 High-level API (Form)
– JME – MIDP 2.0 Low-level API (Canvas)
– HTTP, raw sockets, UDP, SIP, Bluetooth
– Suporte WLAN
– Teclado QWERTY (mas ITU-T também)
– Low-end, mid, high-end mas geralmente sem
foco multimídia (apenas se ligado ao core biz da
empresa)
14. Enterprise Java ME
• Enterprise J2ME: Developing Mobile Java
Applications by Michael Juntao Yuan
– Mobile commerce
– Managed smart clients
– Mobile messaging
– P2P
– Enterprise messaging – MQe
– Mobile databases
15. Java ME – Desafios, restrições
• Memória – runtime heap, jar, storage
• Conectividade
• Sistema operacional e plataforma
• Versões – Configuration, Profile, Opt Packs
• Suporte pela implementação (JSRs), bugs (firmware)
16. Java ME – Nokia 6060 x N93
• Memória – runtime heap, jar, storage
18. Java ME – Nokia 6060 x N93
• Sistema Operacional e plataforma
• Nokia 6060
– Nokia OS, closed environment (oops, iPhone?)
– Series 40 Developer Platform 2.0
• Nokia N93
– Symbian OS v9.1
– S60 3rd Edition
19. Java ME – Nokia 6060 x N93
• Versões do Java – Configuration, Profile,
Optional Packs
20. APIs / JSRs enterprise
• Configurations
– CLDC 1.0, 1.1, CDC 1.0, CDC 1.1
• Profiles
– MIDP 1.0, MIDP 1.1, IMP 1.0, IMP-NG, FP, PP, PBP
• Optional Packages
– Bluetooth (JSR-82)
– WMA (JSRS 120 e 205)
– WebServices (JSR-172)
– PIM and FileConnection (JSR-75)
– Location API (JSR-179)
– Mobile Internationalization API (JSR-238)
– SIP API for JME (JSR-180)
– SATSA (JSR-177), S2DVG (JSR-226)
25. MVC MIDlet
• Model – DAO
• View – Form, Canvas
• Controller – MVCMIDlet
• Stateless x Stateful
26. Nokia SDKs
• Prototype SDKs (baseados nas RIs)
– Maior performance
– APIs - acesso antecipado
– Mais screen sizes
– Mais APIs
– Sem garantia de execução e comportamento
– Nokia Prototype SDK for Java™ Platform, Micro
Edition
• Device SDKs (firmware)
– Menor performance
– Screen sizes conforme plataforma, dispositivo alvo
– APIs conforme plataforma, dispositivo
– Mesma software stack do device, emulação próxima do
real
27. NetBeans Mobility Pack
• Features - CLDC
– Suporta Connected, Limited Device Configuration (CLDC)
1.1
– Suporta MIDP Mobile Information Device Profile (MIDP)
2.0
– Integração Sun Java Wireless Toolkit e vendor-SDKs
– Suporta Java ME Web Services (JSR 172)
– Ferramentas SVG-T
– Várias opções para deploy: HTTP, WebDAV, FTP e SCP a
partir do IDE
– Suporta emulação Over-The-Air emulation (OTA),
emulação de push registry, Wireless Messaging e
Multimedia APIs, e WMA usando SMS e CBS
28. NetBeans Mobility Pack
• Features - CDC
– Suporta Connected Device Configuration (CDC)
com Sony Ericsson P990, Sony Ericsson M600,
Nokia Series 80 e SavaJe Jasper S20
– Visual GUI Designer para aplicações CDC
– Suporte para aplicações Symbian (SIS)
– Testes com Junit: Suporta testar aplicações
CDC com JUnit
29. NetBeans Mobility Pack
• Features – Development Cycle Tools
– Visual Design Editor para aplicações CLDC
– Permite adicionar custom components no Visual
Mobile Designer
– Gerador de stubs e boiler plate code para Mobile
Clients
– O build system utiliza Ant
– Suporte end-to-end para construção de aplicações
corporativas
– Testes de unidade para aplcações MIDP/CLDC
usando o framework JMUnit
– Código gerado pode ser editado
30. NetBeans Mobility Pack
• Features – Development Cycle Tools
– Preprocessor reduz problemas com device
fragmentation
– Suporta localização e internacionalização através do
gerenciamento de componentes específicos
– Obfuscators integrados e facilmente configuráveis
31. Demo / Cases
• NetBeans 5.5 + Mobility Pack +
Nokia SDKs
• Cases – Web e aplicação de
logística
32. Muito Obrigado!
• Slides e dúvidas - juarez.barbosa@mgjug.com.br
• Agradecimentos
– Vinícius Carvalho, João Vitor - MGJUG
– Forum Nokia, Sun Microsystems
– Vocês (galera do MGJUG)
33. Trademarks and Copyrights
• As marcas registradas (trademarks) e direitos
autorais (copyrights) para as tecnologias são
propriedade das empresas apresentadas no
tutorial – Maio de 2006.