O documento discute várias aplicações não convencionais para Java, incluindo Blu-ray Disc, jogos 3D, sistemas embarcados, inteligência artificial e computação em nuvem. Ele destaca como Java pode ser usado para aplicações além do desktop e web tradicionais.
1. v
setembro de 2009
Java além das aplicações
comerciais convencionais
Leonardo Simberg
Solution IT Architect – IBM
Professor Pós-Graduação - IBTA
leosimberg@gmail.com
3. 3
Just Java
Tecnologias normalmente utilizadas
Desktop
(Java FX, SWF,…)
Web
(JSF, Java FX,..)
Mobile
(JME,…)
Dados
(Derby, Hibernate,..)
Integração
(WS,REST, EAI…)
4. 4
Just Java
Mas Java é muito mais! Veja alguns exemplos:
Desktop
(Java FX, SWF,…)
Web
(JSF, Java FX,..)
Mobile
(JME,…)
Dados
(Derby, Hibernate,..)
Integração
(WS,REST, EAI…)
Real Time
(JSR 1 – RTSJ)
Robótica
(MAX,…)
Visualização
(Java 2D, Java 3D,..)
Inteligencia
Artificial
(JOONE,…)
Java Card
SOA
(SCA, SDO,…)
Processos
(BPM, Workflow,..)
Cloud
Computing
(SAS,..)
Sistemas
Distribuídos
(Grid, Javaspace,…)
Orientação
a aspectos
(AspectJ,…)
TV Digital
(Java TV, Xlet,…)
Blu-Ray
(BDJ)
Games 3D
(JMonkey, JOGL,...)
Sistemas
Embarcados
(JSTAMP,SPOT,..)
Massivamente
Paralela
(HPC, Concurrent,…)
5. 5
Just Java
Mas Java é muito mais! Alguns exemplos:
Desktop
(Java FX, SWF,…)
Web
(JSF, Java FX,..)
Mobile
(JME,…)
Dados
(Derby, Hibernate,..)
Integração
(WS,REST, EAI…)
Real Time
(JSR 1 – RTSJ)
Robótica
(MAX,…)
Visualização
(Java 2D, Java 3D,..)
Inteligencia
Artificial
(JOONE,…)
Java Card
SOA
(SCA, SDO,…)
Processos
(BPM, Workflow,..)
Cloud
Computing
(SAS,..)
Sistemas
Distribuídos
(Grid, Javaspace,…)
Orientação
a aspectos
(AspectJ,…)
TV Digital
(Java TV, Xlet,…)
Blu-Ray
(BDJ)
Games 3D
(JMonkey, JOGL,...)
Sistemas
Embarcados
(JSTAMP,SPOT,..)
Massivamente
Paralela
(HPC, Concurrent,…)
7. 7
Just Java
Blu-ray Disc – O que é?
• Novo formato de mídia de óptica para eletrônicos de consumo,
computadores e vídeo games (PS3).
• Excelente qualidade de áudio e vídeo:
• Alta capacidade
• 25GB (single layer) / 50GB (double layer)
• Futuramente 200GB (multi-layer)
352x240TV analógica:
720x480DVD:
1920x1080Blu-ray Disc:
8. 8
Just Java
Uma Plataforma -> Dois modelos
• High-Definition Movie (HDMV) – Modelo criado através da extensão de
funcionalidades do DVD.
• Blu-ray Disc Java (BD-J) – Modelo baseado em uma plataforma
completamente programável com suporte a conectividade e novos modos de
interação.
* Todos os aparelhos compatíveis com Blu-ray
devem suportar ambos os modelos
15. 15
Just Java
Algumas idéias de uso para o BD-J
• Menus elaborados
• Interatividade In-movie
• Jogos
• Persistência de Informações
• Download de conteúdo
• Comercio eletrônico associado com o filme
• Download de legendas
• Eventos sincronizados
• Compartilhamento de experiências em comunidades
• Versatilidade de design
• Internet Banking
16. 16
Just Java
Impactos
• Um mercado potencial de mais de 1 Bilhão de aparelhos novos rodando a
Máquina Virtual Java (JVM);
• Milhares de títulos que podem ser incrementados com Java, abrindo um grande
mercado para desenvolvedores;
• Uma nova plataforma para comercio eletrônico interativo, onde você pode
comprar os objetos que estão aparecendo no filme!
• Novo método de integração entre os usuários sem a necessidade de um
desktop.
17. 17
Just Java
Referências
• Hollywood Studios and Blu-ray Disc Interactivity Using BD-J; Malik, Sumit;
http://www.blueboard.com/bluray/pdf/2007_5_23_tv_kickoff.pdf
• Blu-ray BD-J Application Development using Java ME;
http://www.blueboard.com/bluray/
21. 21
Just Java
Principais mitos sobre jogos 3D em Java
• O Java é muito lento para ser usado em jogos 3D!
ERRADO! A partir do Java 1.4.2 o Java resolveu os principais problemas de
desempenho, além de grande parte do “trabalho pesado” do processamento nos jogos
é feito pelo hardware, principalmente pelas placas gráficas.
• Falta de qualidade visual e sonora!
ERRADO! O Java contêm APIs gráficas poderosas como Java 3D e Java 2D, além de
ser integrado com OpenGL e DirectX. E possui recursos poderosos de audio através da
integração com o OpenAL.
Pergunta: Será que Java conseguirá a curto prazo ser
mais poderoso ou igualar as Engines em C, como por
exemplo a Unreal? Por que?
22. 22
Just Java
Arquitetura típica de um jogo 3D em Java
Código do
Jogo
(Personalisado)
API de
Cálculos Físicos
Nativa
(ODE)
API Áudio
Nativa
(OpenAL)
Interface
de Entrada
Nativa + Java
(JInput)
API Gráfica
Nativa
(OpenGL)
Wrapper
Java
+
Utilitários
(LWJGL)
Controle de
Jogo
(JMonkey)
Wrapper
Java
(JME-Physics)
25. 25
Just Java
Inteligência Artificial e outros facilitadores
Enquanto deixamos os gráficos e sons para bibliotecas especializadas em
C/Assembler, podemos nos preocupar com o enredo do jogo e a inteligência
artificial que pode ser desenvolvida de mais alto nível, como o Java.
Existem diversos algoritmos e api’s em java:
• JSR94 – Java Rule Engine (JESS, JBOSS DROOLS)
• JMonkey, LWJGL, JME-Physics
• Reconhecimento de Voz
• Reconhecimento de Vídeo e Movimento
• Sintetização de voz
• Comunicação
26. 26
Just Java
Jogos MMOG (Massively Multiplayer Online Games)
• Grande quantidade de usuários simultâneos;
• Controle de interação entre usuários e objetos em um mesmo espaço;
• Gerenciamento de comunicação;
• Segurança;
• Velocidade;
• Tolerância a falhas;
• Baixa latência;
• Alta capacidade de processamento.
Servidor
central
27. 27
Just Java
Projeto Darkstar
What is Project Darkstar?
Project Darkstar is software infrastructure that aims to simplify the development and
operation of massively scalable online games, virtual worlds, and social networking
applications. Originally created by Sun Microsystems, it is today advanced as an open
source project through the Project Darkstar Community.
What problems does Project Darkstar solve?
Project Darkstar is designed to help developers and operators avoid a range of serious, yet
typical, problems associated with massive scale online games today, including zone
overloading, data corruption, and server under-utilization. In addition, Project Darkstar will
enable developers to support new dimensions of play such as evolvable virtual worlds and
very large scale battlefields.
** Informações extraídas do site do projeto Darkstar, http://www.projectdarkstar.com/
28. 28
Just Java
Impactos
• Um mercado cada vez mais crescente de jogos sendo desenvolvidos em Java,
tanto a parte 3D, como a parte server;
• Criação de interfaces mais ricas para os sistemas comerciais desenvolvidos em
Java;
• Avanço nas técnicas de Inteligência Artificial que podem ser utilizadas em
outras áreas, como por exemplo o Algorithm Trade no mercado de ações;
• Uso de mundos virtuais dos MMOGs para outros usos, como
gerenciamento/fechamento de compra e vendas de ações para Bolsas de Valores;
29. 29
Just Java
Referências
• Creating Games on the Java™ Platform with the jMonkeyEngine; Slack, Joshua; Herlitz,
Rikard; http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-5711.pdf
• JMonkeyEngine; http://www.jMonkeyEngine.com
• Jogos 3D na Prática; Mundo Java; número 24
• Project Darkstar; http://www.projectdarkstar.com/
Editora Apress: http://www.apress.com/book/view/1590598172
Versão online: http://books.google.com/books?id=jL_yT-AZK-
8C&pg=PA10&lpg=PA10&dq=java+3dgames&source=web&ots=Ipg5xX
2Ahx&sig=LmjLd_DitZUr-
zz4ThkCatc8nE&hl=en&sa=X&oi=book_result&resnum=9&ct=result
31. 31
Just Java
O que é um sistema embarcado (Embedded System)?
“Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no
qual o computador é completamente encapsulado ou dedicado ao dispositivo ou
sistema que ele controla. Diferente de computadores de propósito geral, como
o computador pessoal, um sistema embarcado realiza um conjunto de tarefas
predefinidas, geralmente com requisitos específicos. “; Wikipedia
32. 32
Just Java
Sistemas prontos para uso: JStamp
• JStamp é um produto da Systronix pronto para uso, ele contem o Hardware e software
(VM) já implementado em um dispositivo comercial de aproximadamente $150 pronto para
uso. Este pode processar mais de 3 milhões de byte codes Java por segundo.
33. 33
Just Java
Sun Spot
• Dispositivo programável em Java composto por
camadas
• A camada de sensor pode ser trocada, existe uma
placa demo que contém os seguintes elementos:
• Acelerômetro
• Sensor de luz
• Sensor de temperatura
• Botões do tipo push buttons
• 8 LEDs RGB
• 6 Entradas analógicas
• 5 Entradas/Saídas de uso geral
• 4 Saídas de alta corrente
37. 37
Just Java
Máquina Virtual para sistema embarcado: NanoVM
• The NanoVM is a java virtual machine for the Atmel AVR ATmega8 CPU, the member of
the AVR CPU family used e.g. in the DLR Asuro robot, manufactured by AREXX
engineering. With the NanoVM, the Asuro can be programmed in the popular Java language
using the standard Sun JDK. The NanoVM and its tools are distributed under the GPL and
can be used on other AVR based systems as well.
38. 38
Just Java
Impactos
• Criação novas soluções cada vez mais baratas, inteligentes e conectadas;
• Junção de software e eletrônica, melhorando a interação dos aparelhos comuns
como Geladeira, Carro, Máquina de Lavar, Brinquedos até sistemas industriais
como Máquinas Operatrizes e Robôs;
• Um mercado crescente de desenvolvimento embarcados e Java é um grande
candidato, pois as aplicações estão ficando cada vez mais complexas, mais
conectadas e os microcontroladores estão cada vez mais rápidos;
• Desenvolvimento de novas ferramentas de desenvolvimento e metodologias;
39. 39
Just Java
Referências
• Embedded Systems Glossary; Barr, Michael;
http://www.netrino.com/Embedded-Systems/Glossary
• The Nano VM;
http://www.harbaum.org/till/nanovm/index.shtml
• JStamp;
http://www.jstamp.com/
• Project Sun SPOT: A Java Technology-Enabled Platform for Ubiquitous Computing;
http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-
6495&yr=2008&track=javame
40. v
setembro de 2009
Java além das aplicações
comerciais convencionais
Leonardo Simberg
Solution IT Architect – IBM
Professor Pós-Graduação - IBTA
leosimberg@gmail.com