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

32

description

Slides utilizados no QCONSP 2013 e no É Dia de Java 2013 em São Carlos na UFSCAR

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

Page 1: Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Page 2: Java, Internet das Coisas, Things API e Arquiteturas de Inovação

Homenagem ao Alberto Fabiano (TechBerto)

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

Agenda

Internet das Coisas

Java para Internet das Coisas

Things API

Arquiteturas de Inovação

Page 4: Java, Internet das Coisas, Things API e 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"

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

Internet das Coisas

Coisas na Internet...

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

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:

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

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:

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

Java e a Internet das Coisas2020:•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

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

Pequeno

Medium Embedded

Grande

Platform Footprint

Device CPU/GPU/I-O

50KB-1MB

1MB-10MB

10MB-100MB

Plataforma Java Embedded

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

Java EmbeddedDispositivos 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

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

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

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

Java Embarcado

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

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

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

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!

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

Raspberry PiFaça você mesmo, protótipos e indústria

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

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

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

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

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

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

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

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

Page 20: Java, Internet das Coisas, Things API e Arquiteturas de Inovaçã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!"

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

RoadmapEmbedded 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

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

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

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

Things-APIEvolução do jHome Automation: Duke's Choice Award 2011

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

Things-APIGenérica, sintaxe simples e fácil de usar

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

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

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

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!

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

Seu próximo projeto?

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

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

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

DEMO: Raspberry Pi + Glassfish + Arduino

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

DEMO

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

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

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

Q&A

Vinicius Senger – [email protected] Twitter @vsenger github.com/vsenger/things-api www.globalcode.com.br