Homenagem ao Alberto Fabiano (TechBerto)
Agenda
 Internet das Coisas
 Java para Internet das Coisas
 Things API
 Arquiteturas de Inovação
Progresso da Internet
1. Computadores em Universidades
2. Computadores Pessoais
3. Servidores Corporativos
4. Dispositivos Pessoais
5. Coisas Pessoais
6. Coisas "Impessoais"
Internet das Coisas
Coisas na Internet...
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:
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:
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
Pequeno
Medium Embedded
Grande
Platform
Footprint
Device
CPU/
GPU/I-O
50KB-1MB
1MB-10MB
10MB-100MB
Plataforma Java Embedded
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
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
Java Embarcado
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
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!
Raspberry Pi
Faça você mesmo, protótipos e indústria
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
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
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
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
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!"
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
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
Things-API
Evolução do jHome Automation: Duke's Choice Award 2011
Things-API
Genérica, sintaxe simples e fácil de usar
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
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!
Seu próximo projeto?
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
DEMO: Raspberry Pi + Glassfish + Arduino
DEMO
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
Q&A
 Vinicius Senger – vinicius@globalcode.com.br
 Twitter @vsenger
 github.com/vsenger/things-api
 www.globalcode.com.br

Java, Internet das Coisas, Things API e Arquiteturas de Inovação

  • 2.
    Homenagem ao AlbertoFabiano (TechBerto)
  • 3.
    Agenda  Internet dasCoisas  Java para Internet das Coisas  Things API  Arquiteturas de Inovação
  • 4.
    Progresso da Internet 1.Computadores em Universidades 2. Computadores Pessoais 3. Servidores Corporativos 4. Dispositivos Pessoais 5. Coisas Pessoais 6. Coisas "Impessoais"
  • 5.
  • 6.
    Oportunidades da Internetdas 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 aInternet 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
  • 9.
  • 10.
    Java Embedded Dispositivos deexemplo 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 comoutras 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
  • 12.
  • 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  Computadorcompacto 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!
  • 15.
    Raspberry Pi Faça vocêmesmo, protótipos e indústria
  • 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 Suite7  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  Altaprodutividade 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 ProcessingEmbedded  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 2013201320142014 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  Facilitaintegraçã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
  • 23.
    Things-API Evolução do jHomeAutomation: Duke's Choice Award 2011
  • 24.
  • 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 Novosdispositivos, 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!
  • 27.
  • 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
  • 29.
    DEMO: Raspberry Pi+ Glassfish + Arduino
  • 30.
  • 31.
    Agenda Globalcode  CursoArquiteto 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
  • 32.
    Q&A  Vinicius Senger– vinicius@globalcode.com.br  Twitter @vsenger  github.com/vsenger/things-api  www.globalcode.com.br

Notas do Editor

  • #10 Java is available In several configurations, specifically optimized for small, medium, or large hardware platforms.
  • #11 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.
  • #22 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.