O documento discute a Internet das Coisas, Java para dispositivos embarcados e a plataforma Things API. Ele também apresenta demonstrações de um sistema de automação residencial usando um Raspberry Pi e Arduino controlado por Java.
6. Oportunidades da Internet das Coisas
Área de saúde
Supply chain
Indústria automotiva
Medidores Inteligentes
Agricultura
Monitores Ambientais
Smart Building / Smart City / Smart qualquer coisa
Muitos dispositivos, inúmeras oportunidades:
7. Internet das Coisas
50 bilhões de dispositivos gerando dados na Internet;
Embarcados com capacidade de PC: server-side no embarcado, filas,
complex event, novos protocolos;
Segurança é fator ainda mais crítico;
Estratégias de atualização e manutenção de legados podem gerar
impactos financeiros de grande proporção;
Embedded-Cloud o novo Client-Server!
Novos desafios:
8. Java e a Internet das Coisas
2020:
•50B de dispositivos
•4B de pessoas conectadas
Enterprise Data &
Applications
Cloud para
dispositivos
embarcado
s
Cloud para
dispositivos
embarcado
s
Meters
Smart Appliances
& electronics
Personal
Devices
Med-Large Embedded / Multi-
function Devices
VoIP Comm
Industrial controls /
Network Appliances
Management / Monitoring /
Operations
Sensors /
Microcontrollers
Connected Vehicles
10. Java Embedded
Dispositivos de exemplo com Java
Pequeno
• Leitores RFID
• Tarifadores de
Estacionamento
• Leitores Inteligentes
• Caneta Inteligente
Médio
• Routeadores & Switches
• Devices para Armazenamento
• Network Management Systems
• Sistemas de automação fábrica
• Sistemas de segurança
Grande
• Impressoras multi-
funcionais
• ATMs e sistemas de POS
• In-Flight Entertainment
Systems
• Sistema votação eletrônica
• Imagens médica
11. Java comparado com outras plataformas
Java Nativo HTML Flash / AIR
Suporte a apps. headless Sim Sim Não Não
Segurança sandbox Sim Não Não Não
Múltiplos processos Sim Sim Não Não
Comunidade de
desenvolvedores
Grande Fragmentada Grande Grande
Escalabilidade Excelente Excelente Pobre Pobre
Desempenho Muito bom Excelente Pobre Pobre
Capacidade de
atualização
Excelente Razoável Boa Razoável
13. Java ME Embedded
Internet das Coisas com 3G + Java ME + GPIO
Manutenção, debug, OTA, ferramentas
Baixo custo no Brasil: U$ 5 para larga escala!
Indústria, protótipos e "Do It Your Self"
BubbleBoard Gemalto
Geração Java ME pós-celular
14. Raspberry Pi
Computador compacto de R$ 150,00
ARM11 700mhz / 512MB memória RAM
SD Card
Vídeo por HDMI ou composto
Ethernet e 2 USBs
GPIO: UART, I2C, SPI, digitais
Audio
LCD / Camera
Computador pequeno, portátil e barato!
16. Java SE Embedded
Arquitetura máquina virtual amplamente otimizada para ARM
Suporte a hard-float no JDK 1.8
Todos os benefícios da JVM SE no seu projeto embarcado
Debug, distribuição, manutenção e interoperabilidade
Multi-plataforma real: ARM, Intel, Atmel e outros fabricantes!
Otimizado para ARM e devices como Raspberry Pi
17. Java Embedded Suite 7
Versão do Java EE para sistemas embarcados
Uma nova geração de paradigmas client-server
Gateway infrared, zigbee, rfid, rs232, rs485, etc. para TCP/IP
Sistemas de cache, persistência, processamento, integração e
segurança
REST / JPA / Servlet
Seu "firmware" como server!
O server-side no seu projeto embarcado
18. Java FX
Alta produtividade para interfaces ricas com seu conhecimento Java
Amplo investimento na otimização de GPUs na máquina virtual
Multi-plataforma real em interfaces gráficas: do Raspberry Pi ao
MacOS sem nenhuma alteração de código
Componentes e bibliotecas para animações, transformadas / análise
de espectros
Ferramentas WYSIWYG para desenho de telas
Interfaces MUITO ricas no seu projeto embarcado
19. Oracle Event Processing Embedded
Complex Event no seu sistema embarcado!
Dados + persistência = base de dados
Dados + Complex Event = base de informação
Base de Informaçao + Complex Event = inteligência!!
Dados sendo transformados em informação
20. Arquitetura para Embarcados
Embarcados com processamento Java server-side podem gerar
informações consistentes, não apenas dados;
Plataforma Java permite fácil integração de diferentes tipos de
microcontroladores via I2C, SPI, UART, etc.
Arquitetura Java Consistente end-to-end: ferramentas IDE, remote
debug, trace, stress-test, teste unitário, remote class-loading, Java
WebStart e todo ecosistema Java Desktop no seu projeto embarcado!
"Server is everywhere!"
21. Roadmap
Embedded Java
2015201520122012 20132013 20142014
Java Embedded Suite 7
•SE Embedded 7
•GlassFish for Embedded
•Java DB
Java Embedded Suite 7
•SE Embedded 7
•GlassFish for Embedded
•Java DB
Java SE Embedded 8
• Complete JVM convergence
• Additional compact profiles
• JavaFX for Embedded
Java Embedded Suite 8
• Additional enterprise middleware
integrations
• Flight Recorder/Mission Control
Java SE Embedded 8
• Complete JVM convergence
• Additional compact profiles
• JavaFX for Embedded
Java Embedded Suite 8
• Additional enterprise middleware
integrations
• Flight Recorder/Mission Control
Java ME Embedded 3.2
•Microcontroller support
•Device Access APIs
Java ME SDK 3.2
•Embedded emulator
•Eclipse integration
Java ME Embedded 3.2
•Microcontroller support
•Device Access APIs
Java ME SDK 3.2
•Embedded emulator
•Eclipse integration
Java Embedded 9
•JDK9
•Modularity based on
Jigsaw
•Additional Embedded
device APIs
•Ease of Development
Java Embedded 9
•JDK9
•Modularity based on
Jigsaw
•Additional Embedded
device APIs
•Ease of Development
Java ME Embedded 3.3
•Enhanced device access
•Footprint optimization &
configuration tools
•Improved developer tooling
& experience
Java ME Embedded 3.3
•Enhanced device access
•Footprint optimization &
configuration tools
•Improved developer tooling
& experience
Java ME Embedded 8
•Java ME 8
•Standardized Embedded API
•New on-device debugging
architecture
NetBeans IDE 8
•Java ME/SE 8 Embedded
support
Java ME Embedded 8
•Java ME 8
•Standardized Embedded API
•New on-device debugging
architecture
NetBeans IDE 8
•Java ME/SE 8 Embedded
support
NetBeans IDE 7.2
•ME Embedded support
NetBeans IDE 7.2
•ME Embedded support
NetBeans IDE 9
•Java ME/SE 9
Embedded support
•Jigsaw support
NetBeans IDE 9
•Java ME/SE 9
Embedded support
•Jigsaw support
22. Things-API
http://github.com/vsenger/things-api
Facilita integração entre diferentes plataformas e tecnologias:
– Java SE, FX, EE, ME, Embedded
– Android
– Arduino
– Raspberry Pi e outros single board computer
Internet of Things API para Java, Arduino e Android
25. Things / Device / Component
Três principais objetos
Abstração Simples:
– Device: é a coisa
– Componentes: parte da coisa
Componente = Input / Output:
– Input = Sensor : luz, temperatura, presença, aceleração;
– Output = Atuador : motor, led, relé, som;
Sensores = leitura
Atuadores = escrita
26. Arquiteturas de Inovação
Novos dispositivos, novas entradas, novas arquiteturas
"Somos todos servidores"
Voz, gestos, faces e sensores como entrada de dados
Respostas audíveis, parâmetros por voz e controle total por celular
Embarcado-Centralizador-Nuvem: o novo 3 tier?
Somos todos "smart"
API + DSL: um caminho sem volta!
28. DEMO
Raspberry Pi + 6 relés + Atmega328 + sensor luz + temperatura +
humidade + controle iluminação RGB
Raspbian: Linux para Raspberry Pi
Java Embedded Suite 7: interface via REST oferece dados de
sensores e permite manipulação de atuadores
Java DB: persistência local até encontrar rede / nuvem;
CEP: Complex Event para transformar dados de sensores em
informações, ações e reações;
Smart Building / Home Automation
31. Agenda Globalcode
Curso Arquiteto de Aplicações Enterprise" – 14 de setembro – SP
Curso Oficial Oracle preparatório para Certificação OCEA)
Android Hacking Weekend – 21 e 22 de setembro - SP
The Developers Conference - 25 e 26 de outubro – POA
Java is available In several configurations, specifically optimized for small, medium, or large hardware platforms.
Java embedded technologies are used in a wide variety of embedded devices. This list is just a small sampling of devices that are currently using Java ME and SE Embedded.
we are leading the charge in embedded In parallel, bringing the specs forward to enable the ecosystem. Next year, updating specs in SE8 & ME8, enable alignment between the 2 platforms ME will be a proper subset of SE. JavaME releases will be synchronized with SE release. update release for JES and ME Embedded * ME SDK integrating enterprise middleware technology such as identity management & event processing capabilities into Java embedded platforms. Java 9., developers will have even more flexibility with modularity with Jigsaw.