java, internet das coisas, things api e arquiteturas de inovação
Post on 05-Jun-2015
1.498 Views
Preview:
DESCRIPTION
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