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

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
 
Bb push sapra
Bb push sapraBb push sapra
Bb push sapra
RavingTiger
 

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]

Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brussels
milsoftSDC
 
RF Code solutions presentation
RF Code solutions presentationRF Code solutions presentation
RF Code solutions presentation
pe2six
 
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
 

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

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

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 

Último (20)

WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
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
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
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
 
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
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
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...
 
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...
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
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...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
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
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
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
 

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