SlideShare uma empresa Scribd logo
1 de 30
Building a Reliable 
Remote Communication 
Device with Java ME 8 
JavaOne San Francisco 2014 - CON2285 
Leonardo Lima – V2COM (llima@v2com.mobi, @leomrlima) 
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
About Leonardo Lima 
• Software Development Manager at V2COM 
• V2COM representative at the JCP-EC: Java Community 
Process – Executive Committee 
• Spec Lead - JSR 363 – Units of Measurement 
• llima@v2com.mobi and/or @leomrlima
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
• V2COM is a leading Latin American 
provider of Smart Grid technologies and 
Advanced Metering Infrastructure (AMI). 
Our offer includes hardware, software 
and services that can reduce losses and 
increase water and energy efficiency, 
currently connecting more than 
1.000.000 devices.
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Agenda 
• The definition of reliable 
• What it means to be a reliable device? 
• Java ME 8 improvements 
• What Java ME 8 brought to the game 
• Java ME 8 applied 
• Improvements, applied 
• More improvements to come 
• New JSRs and room for improvements
The definition of reliable 
What it means to be a reliable device? 
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
What does reliable mean? 
• re·li·a·ble (adjective): that may be relied on; dependable in 
achievement, accuracy, honesty, etc. 
• Do not fail! 
• Do not lose data! 
• Do not let others tamper with your data!
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Do not fail! 
• Protected against the environment 
• Protected against hardware failures 
• Protected against software failures 
• Protected against attackers
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Do not lose data! 
• It’s the device mission to ensure the data acquired is safely 
stored in itself. 
• It’s the device mission to ensure that data is safely transferred 
to the backend services.
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Do not let others mess with your data! 
• Take into account all security aspects 
• Authenticity: data you sent is sent from you, really 
• Confidentiality: Only you and the right server sees the data 
• Integrity: data received == data sent
Java ME 8 improvements 
What Java ME 8 brought to the game 
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Improvements 
• Language Improvements (less bugs!) 
• Service Loader pattern 
• Events and Inter-Midlet Communication 
• Device I/O 
• Security Improvements 
• Shared Libraries 
Java SE 8 
Java ME 8 (CLDC 8)
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Shared Libraries (LIBlets) 
• Can be uniquely updated, disabled/enabled. 
• A shareable software component that one or more applications 
MAY use at runtime 
• Save static footprint size by enabling multiple application suites 
to share the same common code without packaging them 
redundantly 
• Reduced download times for applications that declare 
dependencies on shared components
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Service Loader 
• Enables creation of microservices inside your device 
• Independent services that can be uniquely updated, 
disabled/enabled. 
• Monolithic firmware is now split into different services
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Events 
• Object driven communication 
• Publisher/Subscriber pattern 
• One-To-Many communication 
• Asynchronous delivery 
• Caveat: Events are (silently) discarded if there are no 
subscribers
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Inter-MIDlet Communication 
• Raw, bidirectional socket communication 
• Fast and Synchronous! 
• Reliable one-to-one communication 
• You know when the peer is there 
• Just like “localhost” sockets
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Network Security 
• TLS protocol enhancements 
• SecureConnection and SecureServerConnection support TLS 1.2 
• SecureServerConnection provides the server-side of a TLS connection 
• DTLS protocol support for TLS over UDP 
• SecureDatagramConnection provides client-side support for DTLS
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Application Provisioning & Management 
• Application Management System (AMS) allows fine grained 
control on what get installed 
• App Management Agent manages local applications via the 
AMS api
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Device I/O 
• Unified, object-oriented way to interact with I/O 
• Basic I/Os already mapped 
• I2C, GPIO, SPI, UART, ADC, Watchdog, PWM, Pulse Counter 
• Architecture is ready for extension with generic AbstractDevice, 
DeviceProvider
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Language improvements 
• Improved collections 
• Generics 
• Autoboxing 
• Static imports 
• Enumerations 
• Try with resources 
• Better byte and string manipulation 
• Events 
• Logging
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Java ME 8 applied 
Improvements, applied to our use cases
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Before… 
• We had 3 big blocks of code, merged as one on deploy 
• Hardcore for hardware abstraction 
• Zion for commons infrastructure and AT 
• App for application logic 
• One big file to manage (OTAP) 
• Java 1.3 language… 
• Did I mean Latin?
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
… and now 
• Multiple services and libraries 
• Instead of big libraries 
• Less boilerplate code 
• Enum, foreach, try with resources makes it less verbose, more agile 
• Less ancient code 
• Easier for “desktop developers” to understand and join the fun 
• Less “made in home” code 
• Many pieces are now already in the platform, like Device I/O, Events, 
Logging 
• Less code for us to mantain
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Shared Libraries 
Crypto / Hashes 
Queues 
Concurrency 
Advanced String 
& Byte 
Manipulation 
Advanced Math Device protocols 
Units and 
Measurements 
Event and Bus
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Services 
(Safe) Storage 
Data acquisition 
(Application) 
Black Box Logging 
Remote transfer 
External Sensor 
Power 
management 
WAN 
Management 
Watchdogs 
System 
Configuration 
Firmware Update 
Management 
Resource 
Management
More improvements to 
come 
New JSRs and room for improvements 
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
JSR 363 – Units of Measurement 
• JSR to beter type data that we acquire, targeting ME 8 
• https://java.net/projects/unitsofmeasurement 
import javax.measure.quantity.*; 
public class TemperatureRecord { 
private Time timestamp; 
private Temperature temperature; 
private String sensor; 
...getters, setters... 
}
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
JSR 363 – Units of Measurement in JDK 
• Otávio Santana (SouJava, OpenJDK) is actively working in a 
SE 8 port of the JSR! 
• Streams, Lambda, High precision (BigDecimal): guaranteed! 
• Reducers, sorters, summation, group and filters. 
List<Quantity<Time>> sortNaturalList = times 
.stream() 
.sorted(QuantityFunctions.sortNaturalDesc()) 
.collect(Collectors.toList());
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Room for improvement 
• Configuration 
• Concurrency utilities 
• Standard protocols (MQTT, CoAP, JSON, HTTP, REST)
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Q?
© 2002 - 2014 V2COM - Hardware + Software. All rights reserved 
Thanks! 
llima@v2com.mobi 
@leomrlima 
www.v2com.mobi

Mais conteúdo relacionado

Mais procurados

CNIT 141 13. TLS
CNIT 141 13. TLSCNIT 141 13. TLS
CNIT 141 13. TLSSam Bowne
 
Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation  Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation Sergey Gordeychik
 
CISSP Prep: Ch 5. Communication and Network Security (Part 2)
CISSP Prep: Ch 5. Communication and Network Security (Part 2)CISSP Prep: Ch 5. Communication and Network Security (Part 2)
CISSP Prep: Ch 5. Communication and Network Security (Part 2)Sam Bowne
 
Don't Architect a Real-Time System that Can't Scale
Don't Architect a Real-Time System that Can't ScaleDon't Architect a Real-Time System that Can't Scale
Don't Architect a Real-Time System that Can't ScaleReal-Time Innovations (RTI)
 
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...PROIDEA
 
Tech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentationTech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentationJisc
 
Bluetooth technology introduction and ecosystem
Bluetooth technology introduction and ecosystem Bluetooth technology introduction and ecosystem
Bluetooth technology introduction and ecosystem NiclasGranqvist
 
ThinManager - IRT Forum 2021
ThinManager - IRT Forum 2021ThinManager - IRT Forum 2021
ThinManager - IRT Forum 2021Joze Perko
 
CNIT 123 12: Cryptography
CNIT 123 12: CryptographyCNIT 123 12: Cryptography
CNIT 123 12: CryptographySam Bowne
 

Mais procurados (20)

CNIT 141 13. TLS
CNIT 141 13. TLSCNIT 141 13. TLS
CNIT 141 13. TLS
 
2012 ah vegas wlan design for high density
2012 ah vegas   wlan design for high density2012 ah vegas   wlan design for high density
2012 ah vegas wlan design for high density
 
Cloud Architecture
Cloud ArchitectureCloud Architecture
Cloud Architecture
 
Airheads dallas 2011 wireless security
Airheads dallas 2011   wireless securityAirheads dallas 2011   wireless security
Airheads dallas 2011 wireless security
 
2012 ah vegas wlan security fundamentals
2012 ah vegas   wlan security fundamentals2012 ah vegas   wlan security fundamentals
2012 ah vegas wlan security fundamentals
 
Airheads vail 2011 air wave overview
Airheads vail 2011   air wave overviewAirheads vail 2011   air wave overview
Airheads vail 2011 air wave overview
 
Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation  Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation
 
2012 ah vegas guest access fundamentals
2012 ah vegas   guest access fundamentals2012 ah vegas   guest access fundamentals
2012 ah vegas guest access fundamentals
 
CISSP Prep: Ch 5. Communication and Network Security (Part 2)
CISSP Prep: Ch 5. Communication and Network Security (Part 2)CISSP Prep: Ch 5. Communication and Network Security (Part 2)
CISSP Prep: Ch 5. Communication and Network Security (Part 2)
 
Access Management with Aruba ClearPass #AirheadsConf Italy
Access Management with Aruba ClearPass #AirheadsConf ItalyAccess Management with Aruba ClearPass #AirheadsConf Italy
Access Management with Aruba ClearPass #AirheadsConf Italy
 
Don't Architect a Real-Time System that Can't Scale
Don't Architect a Real-Time System that Can't ScaleDon't Architect a Real-Time System that Can't Scale
Don't Architect a Real-Time System that Can't Scale
 
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...
PLNOG15: Simplifying network deployment using Autonomic networking and Plug-a...
 
Tech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentationTech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentation
 
Bluetooth technology introduction and ecosystem
Bluetooth technology introduction and ecosystem Bluetooth technology introduction and ecosystem
Bluetooth technology introduction and ecosystem
 
BYOD with ClearPass
BYOD with ClearPassBYOD with ClearPass
BYOD with ClearPass
 
ThinManager - IRT Forum 2021
ThinManager - IRT Forum 2021ThinManager - IRT Forum 2021
ThinManager - IRT Forum 2021
 
CISSP - Chapter 3 - Cryptography
CISSP - Chapter 3 - CryptographyCISSP - Chapter 3 - Cryptography
CISSP - Chapter 3 - Cryptography
 
Aruba wireless and clear pass 6 integration guide v1 1.3
Aruba wireless and clear pass 6 integration guide v1 1.3Aruba wireless and clear pass 6 integration guide v1 1.3
Aruba wireless and clear pass 6 integration guide v1 1.3
 
Bb push sapra
Bb push sapraBb push sapra
Bb push sapra
 
CNIT 123 12: Cryptography
CNIT 123 12: CryptographyCNIT 123 12: Cryptography
CNIT 123 12: Cryptography
 

Semelhante a Building a Reliable Remote Communication Device with Java ME8 [CON2285]

Null mumbai-reversing-IoT-firmware
Null mumbai-reversing-IoT-firmwareNull mumbai-reversing-IoT-firmware
Null mumbai-reversing-IoT-firmwareNitesh Malviya
 
Accelerate file transfers with a software defined media network
Accelerate file transfers with a software defined media network Accelerate file transfers with a software defined media network
Accelerate file transfers with a software defined media network FileCatalyst
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfAswathRangaraj1
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifOracle Developers
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brusselsmilsoftSDC
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsJay Bryant
 
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...SolarWinds
 
Information Security Lesson 4 - Baselines - Eric Vanderburg
Information Security Lesson 4 - Baselines - Eric VanderburgInformation Security Lesson 4 - Baselines - Eric Vanderburg
Information Security Lesson 4 - Baselines - Eric VanderburgEric Vanderburg
 
RF Code solutions presentation
RF Code solutions presentationRF Code solutions presentation
RF Code solutions presentationpe2six
 
Chapter 5-IT infrastructure(REV 2.0).pptx
Chapter 5-IT infrastructure(REV 2.0).pptxChapter 5-IT infrastructure(REV 2.0).pptx
Chapter 5-IT infrastructure(REV 2.0).pptxMohdSyaifuadJasemi
 
Serving your phone calls with microservices
Serving your phone calls with microservicesServing your phone calls with microservices
Serving your phone calls with microservicesGergo Huszty
 
Media processing with serverless architecture
Media processing with serverless architectureMedia processing with serverless architecture
Media processing with serverless architectureKensaku Komatsu
 
Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Eurotech
 
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...mfrancis
 
FieldServer Overview 2015.r1
FieldServer Overview 2015.r1FieldServer Overview 2015.r1
FieldServer Overview 2015.r1Eric W Dunn
 

Semelhante a Building a Reliable Remote Communication Device with Java ME8 [CON2285] (20)

Null mumbai-reversing-IoT-firmware
Null mumbai-reversing-IoT-firmwareNull mumbai-reversing-IoT-firmware
Null mumbai-reversing-IoT-firmware
 
Accelerate file transfers with a software defined media network
Accelerate file transfers with a software defined media network Accelerate file transfers with a software defined media network
Accelerate file transfers with a software defined media network
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
ETS Services Outline
ETS Services OutlineETS Services Outline
ETS Services Outline
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal Arif
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brussels
 
JavaAndNetBeans.pdf
JavaAndNetBeans.pdfJavaAndNetBeans.pdf
JavaAndNetBeans.pdf
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
 
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...
Government Webinar: Low-Cost Log, Network Configuration, and IT Monitoring So...
 
Information Security Lesson 4 - Baselines - Eric Vanderburg
Information Security Lesson 4 - Baselines - Eric VanderburgInformation Security Lesson 4 - Baselines - Eric Vanderburg
Information Security Lesson 4 - Baselines - Eric Vanderburg
 
RF Code solutions presentation
RF Code solutions presentationRF Code solutions presentation
RF Code solutions presentation
 
Ankit Vakil (2)
Ankit Vakil (2)Ankit Vakil (2)
Ankit Vakil (2)
 
Chapter 5-IT infrastructure(REV 2.0).pptx
Chapter 5-IT infrastructure(REV 2.0).pptxChapter 5-IT infrastructure(REV 2.0).pptx
Chapter 5-IT infrastructure(REV 2.0).pptx
 
Serving your phone calls with microservices
Serving your phone calls with microservicesServing your phone calls with microservices
Serving your phone calls with microservices
 
Media processing with serverless architecture
Media processing with serverless architectureMedia processing with serverless architecture
Media processing with serverless architecture
 
Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation
 
Webinar- Internet of Things: Application Frameworks in IoT
Webinar- Internet of Things: Application Frameworks in IoTWebinar- Internet of Things: Application Frameworks in IoT
Webinar- Internet of Things: Application Frameworks in IoT
 
Anil Info
Anil InfoAnil Info
Anil Info
 
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...
Enabling Technologies for Branded Wireless Services - Boris Klots, Motorola, ...
 
FieldServer Overview 2015.r1
FieldServer Overview 2015.r1FieldServer Overview 2015.r1
FieldServer Overview 2015.r1
 

Mais de Leonardo De Moura Rocha Lima

Top 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQLTop 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQLLeonardo De Moura Rocha Lima
 
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...Leonardo De Moura Rocha Lima
 
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]Leonardo De Moura Rocha Lima
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...Leonardo De Moura Rocha Lima
 
Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);Leonardo De Moura Rocha Lima
 
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]Leonardo De Moura Rocha Lima
 
Using Java and Standards for Fast IoT Development [CON5513]
Using Java and Standards for Fast IoT Development [CON5513]Using Java and Standards for Fast IoT Development [CON5513]
Using Java and Standards for Fast IoT Development [CON5513]Leonardo De Moura Rocha Lima
 
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]Leonardo De Moura Rocha Lima
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!Leonardo De Moura Rocha Lima
 

Mais de Leonardo De Moura Rocha Lima (13)

Top 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQLTop 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQL
 
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
 
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
 
Java & IoT
Java & IoTJava & IoT
Java & IoT
 
Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);
 
JSR363 - Devoxx US
JSR363 - Devoxx USJSR363 - Devoxx US
JSR363 - Devoxx US
 
IoT Security: Cases and Methods
IoT Security: Cases and MethodsIoT Security: Cases and Methods
IoT Security: Cases and Methods
 
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
 
Using Java and Standards for Fast IoT Development [CON5513]
Using Java and Standards for Fast IoT Development [CON5513]Using Java and Standards for Fast IoT Development [CON5513]
Using Java and Standards for Fast IoT Development [CON5513]
 
IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]
 
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!
 

Último

Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jNeo4j
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 

Último (20)

Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 

Building a Reliable Remote Communication Device with Java ME8 [CON2285]

  • 1. Building a Reliable Remote Communication Device with Java ME 8 JavaOne San Francisco 2014 - CON2285 Leonardo Lima – V2COM (llima@v2com.mobi, @leomrlima) © 2002 - 2014 V2COM - Hardware + Software. All rights reserved
  • 2. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved About Leonardo Lima • Software Development Manager at V2COM • V2COM representative at the JCP-EC: Java Community Process – Executive Committee • Spec Lead - JSR 363 – Units of Measurement • llima@v2com.mobi and/or @leomrlima
  • 3. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved • V2COM is a leading Latin American provider of Smart Grid technologies and Advanced Metering Infrastructure (AMI). Our offer includes hardware, software and services that can reduce losses and increase water and energy efficiency, currently connecting more than 1.000.000 devices.
  • 4. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Agenda • The definition of reliable • What it means to be a reliable device? • Java ME 8 improvements • What Java ME 8 brought to the game • Java ME 8 applied • Improvements, applied • More improvements to come • New JSRs and room for improvements
  • 5. The definition of reliable What it means to be a reliable device? © 2002 - 2014 V2COM - Hardware + Software. All rights reserved
  • 6. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved What does reliable mean? • re·li·a·ble (adjective): that may be relied on; dependable in achievement, accuracy, honesty, etc. • Do not fail! • Do not lose data! • Do not let others tamper with your data!
  • 7. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Do not fail! • Protected against the environment • Protected against hardware failures • Protected against software failures • Protected against attackers
  • 8. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Do not lose data! • It’s the device mission to ensure the data acquired is safely stored in itself. • It’s the device mission to ensure that data is safely transferred to the backend services.
  • 9. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Do not let others mess with your data! • Take into account all security aspects • Authenticity: data you sent is sent from you, really • Confidentiality: Only you and the right server sees the data • Integrity: data received == data sent
  • 10. Java ME 8 improvements What Java ME 8 brought to the game © 2002 - 2014 V2COM - Hardware + Software. All rights reserved
  • 11. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Improvements • Language Improvements (less bugs!) • Service Loader pattern • Events and Inter-Midlet Communication • Device I/O • Security Improvements • Shared Libraries Java SE 8 Java ME 8 (CLDC 8)
  • 12. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Shared Libraries (LIBlets) • Can be uniquely updated, disabled/enabled. • A shareable software component that one or more applications MAY use at runtime • Save static footprint size by enabling multiple application suites to share the same common code without packaging them redundantly • Reduced download times for applications that declare dependencies on shared components
  • 13. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Service Loader • Enables creation of microservices inside your device • Independent services that can be uniquely updated, disabled/enabled. • Monolithic firmware is now split into different services
  • 14. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Events • Object driven communication • Publisher/Subscriber pattern • One-To-Many communication • Asynchronous delivery • Caveat: Events are (silently) discarded if there are no subscribers
  • 15. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Inter-MIDlet Communication • Raw, bidirectional socket communication • Fast and Synchronous! • Reliable one-to-one communication • You know when the peer is there • Just like “localhost” sockets
  • 16. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Network Security • TLS protocol enhancements • SecureConnection and SecureServerConnection support TLS 1.2 • SecureServerConnection provides the server-side of a TLS connection • DTLS protocol support for TLS over UDP • SecureDatagramConnection provides client-side support for DTLS
  • 17. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Application Provisioning & Management • Application Management System (AMS) allows fine grained control on what get installed • App Management Agent manages local applications via the AMS api
  • 18. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Device I/O • Unified, object-oriented way to interact with I/O • Basic I/Os already mapped • I2C, GPIO, SPI, UART, ADC, Watchdog, PWM, Pulse Counter • Architecture is ready for extension with generic AbstractDevice, DeviceProvider
  • 19. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Language improvements • Improved collections • Generics • Autoboxing • Static imports • Enumerations • Try with resources • Better byte and string manipulation • Events • Logging
  • 20. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Java ME 8 applied Improvements, applied to our use cases
  • 21. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Before… • We had 3 big blocks of code, merged as one on deploy • Hardcore for hardware abstraction • Zion for commons infrastructure and AT • App for application logic • One big file to manage (OTAP) • Java 1.3 language… • Did I mean Latin?
  • 22. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved … and now • Multiple services and libraries • Instead of big libraries • Less boilerplate code • Enum, foreach, try with resources makes it less verbose, more agile • Less ancient code • Easier for “desktop developers” to understand and join the fun • Less “made in home” code • Many pieces are now already in the platform, like Device I/O, Events, Logging • Less code for us to mantain
  • 23. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Shared Libraries Crypto / Hashes Queues Concurrency Advanced String & Byte Manipulation Advanced Math Device protocols Units and Measurements Event and Bus
  • 24. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Services (Safe) Storage Data acquisition (Application) Black Box Logging Remote transfer External Sensor Power management WAN Management Watchdogs System Configuration Firmware Update Management Resource Management
  • 25. More improvements to come New JSRs and room for improvements © 2002 - 2014 V2COM - Hardware + Software. All rights reserved
  • 26. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved JSR 363 – Units of Measurement • JSR to beter type data that we acquire, targeting ME 8 • https://java.net/projects/unitsofmeasurement import javax.measure.quantity.*; public class TemperatureRecord { private Time timestamp; private Temperature temperature; private String sensor; ...getters, setters... }
  • 27. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved JSR 363 – Units of Measurement in JDK • Otávio Santana (SouJava, OpenJDK) is actively working in a SE 8 port of the JSR! • Streams, Lambda, High precision (BigDecimal): guaranteed! • Reducers, sorters, summation, group and filters. List<Quantity<Time>> sortNaturalList = times .stream() .sorted(QuantityFunctions.sortNaturalDesc()) .collect(Collectors.toList());
  • 28. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Room for improvement • Configuration • Concurrency utilities • Standard protocols (MQTT, CoAP, JSON, HTTP, REST)
  • 29. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Q?
  • 30. © 2002 - 2014 V2COM - Hardware + Software. All rights reserved Thanks! llima@v2com.mobi @leomrlima www.v2com.mobi