Java além das aplicações comerciais convencionais



Documentos relacionados
UM FRAMEWORK PARA DESENVOLVIMENTO DE

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

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

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

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

Tipos de Computadores. Sediane Carmem Lunardi Hernandes

Sistemas Operacionais

O que é Grid Computing

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Seleção de Livros sobre Desenvolvimento de Jogos. Por Marcos Romero Dezembro / 2008

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

NanoDataCenters. Aline Kaori Takechi

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

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

Novo cabo HDMI AVIS da Discabos

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Linguagem de Programação Visual. Aula 2 Prof. Gleison Batista de Sousa

GameGol. Um Manager de Futebol On-line Brasileiro

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

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Everson Scherrer Borges João Paulo de Brito Gonçalves

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

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

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC

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

Prof. Samuel Henrique Bucke Brito

Alexandre Malveira, Wolflan Camilo

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Desenvolvimento de um aplicativo básico usando o Google Android

LISTA DE EXERCÍCIOS. Mede a capacidade de comunicação de computadores e dispositivos. Operam em diferentes plataformas de hardware

SIM V.T 3D Software de simulação completo para treinamento dos futuros Técnicos e Engenheiros

Web 2.0. Amanda Ponce Armelin RA

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 9.1

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

Introdução à Computação

Agregador de feeds RSS para dispositivos móveis

FIREWIRE. O logotipo padronizado: Suas principais vantagens:

SISTEMAS DISTRIBUÍDOS

Soluções de Gerenciamento de Clientes e de Impressão Universal

Administração de Sistemas de Informação Gerenciais

Profs. Deja e Andrei

1. CAPÍTULO COMPUTADORES

Sistemas Embarcados Android

35% GARTNER. Despesas com tecnologia ocorrem fora da T.I. Fazem uso de tecnologias não aprovadas pela T.I.

Introdução à Linguagem Java

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Desenvolvimento Web TCC Turma A-1

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Sistemas Operacionais

Projeto Arquitetural do IEmbedded

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

CONSTRUÇÃO DE VEÍCULO MECATRÔNICO COMANDADO REMOTAMENTE

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

UFG - Instituto de Informática

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

Senado Federal Questões 2012

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

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha.

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

No mercado atual, podemos encontrar vários tipos de sistemas operacionais que fazem parte das seguintes classes:

Soluções IBM SmartCloud IBM Corporation

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

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

Universo Online S.A 1

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

SUMÁRIO. Motivação Contextualização Objetivo Desenvolvimento. Aplicação Discussão Conclusão Perguntas. Hardware Software

Projeto de Sistemas Embarcados Microcontrolados

SAP Business One Mobile App Seus negócios em tempo real e a qualquer hora! Alexandre Castro Channel Enabler & Solution Expert

PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES

LEAS ONLINE: PROTÓTIPO DE UM JOGO DE MMORPG

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

Capítulo 1 Introdução

Orientação a Objetos com Java

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Java Básico. Aula 1 por Thalles Cezar

Tecnologia Java. Helder darocha

Desenvolvimento de Aplicações Móveis: Presente, Passado e Futuro

SISTEMAS OPERACIONAIS

Sistemas Embarcados Android

PROJETO E IMPLANTAÇÃO DE INTRANETS

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

MANUAL DE INSTRUÇÕES

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

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

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Fone: atendimento@wissenconsulting.com.br

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

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

Seminário de Lei de Informática. Francisco Siqueira de Sousa Gerente Comercial

Programador/a de Informática

Transcrição:

Java além das aplicações comerciais convencionais Leonardo Simberg Solution IT Architect IBM Professor Pós-Graduação - IBTA leosimberg@gmail.com v setembro de 2009

O que é uma aplicação Comercial Tradicional? 2

Tecnologias normalmente utilizadas Desktop (Java FX, SWF, ) Web (JSF, Java FX,..) Mobile (JME, ) Dados (Derby, Hibernate,..) Integração (WS,REST, EAI ) 3

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 ) 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, ) Real Time (JSR 1 RTSJ) Robótica (MAX, ) Visualização (Java 2D, Java 3D,..) Inteligencia Artificial (JOONE, ) Java Card 4

Mas Java é muito mais! Alguns exemplos: Desktop (Java FX, SWF, ) Web (JSF, Java FX,..) Mobile (JME, ) Dados (Derby, Hibernate,..) Integração (WS,REST, EAI ) 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, ) Real Time (JSR 1 RTSJ) Robótica (MAX, ) Visualização (Java 2D, Java 3D,..) Inteligencia Artificial (JOONE, ) Java Card 5

Blu-ray Disc 6

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: Blu-ray Disc: 1920x1080 DVD: TV analógica: 720x480 352x240 Alta capacidade 25GB (single layer) / 50GB (double layer) Futuramente 200GB (multi-layer) 7

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 8

Visão geral do Blu-ray Disc Java (BD-J) 9

Profiles do Blu-ray 10

Alguns títulos com o BD-J 11

Menus mais elaborados * Menus podem ser abertos em cima do filme em execução sem interrupção! 12

Criação de jogos Use the embedded cross-hair to shoot either heroes or foes, in this rather lame, early game from Fox Studios for The League of Extraordinary Gentlemen. 20th Century Fox Studios. 13

Criação de jogos Ratatouille: Gusteau's Gourmet Game - The Walt Disney Company. 14

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 15

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. 16

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

Jogos 3D em Java 18

Por que um jogo em Java deveria ser assim? 19

Se ele pode ser assim? 20

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? 21

Arquitetura típica de um jogo 3D em Java API Gráfica Nativa (OpenGL) Código do Jogo (Personalisado) Controle de Jogo (JMonkey) Wrapper Java + Utilitários (LWJGL) API Áudio Nativa (OpenAL) Interface de Entrada Nativa + Java (JInput) Wrapper Java (JME-Physics) API de Cálculos Físicos Nativa (ODE) 22

Exemplo de arquitetura de um jogo em Java 23

JMonkey Engine DEMO 24

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 25

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 26

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

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; 28

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_DitZUrzz4ThkCatc8nE&hl=en&sa=X&oi=book_result&resnum=9&ct=result 29

Sistema Embarcados com Java 30

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 31

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. 32

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 33

Exemplo de Uso Avançado: Perrone Robotics 34

Vários Sun Spot criam uma rede mesh 35

Máquina Virtual para sistema embarcado da SUN: SquawK 36

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. 37

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; 38

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 39

Java além das aplicações comerciais convencionais Leonardo Simberg Solution IT Architect IBM Professor Pós-Graduação - IBTA leosimberg@gmail.com v setembro de 2009