java, internet das coisas, things api e arquiteturas de inovação

Post on 05-Jun-2015

1.496 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Pequeno

Medium Embedded

Grande

Platform Footprint

Device CPU/GPU/I-O

50KB-1MB

1MB-10MB

10MB-100MB

Plataforma Java Embedded

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

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 PiFaç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!"

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

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-APIEvolução do jHome Automation: Duke's Choice Award 2011

Things-APIGené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

top related