An Introduction to Eclipse Kura - Eclipse Day Florence 2014

44 %
56 %
Information about An Introduction to Eclipse Kura - Eclipse Day Florence 2014
Technology

Published on May 27, 2014

Author: Eurotechchannel

Source: slideshare.net

Description

Deploying and configuring one device to act as a node in the Internet of Things is relatively easy. Doing the same for hundreds or thousands of devices is not so easy though. This is where the new Eclipse project Kura comes in.
Kura is a Java/OSGi-based container for M2M applications running in service gateways.
Kura was contributed to Eclipse by Eurotech who developed the original technology to run on everything from general purpose devices, rugged mobile computers, wearable devices, service gateways and vehicle consoles, all the way down to the Raspberry Pi.

Eclipse Kura: an Introduction Cristiano De Alti, EUROTECH Eclipse Day Florence 23 May 2014

Eclipse IoT Applying open source to end-to-end IoT solutions

Kura Project – Java/OSGi-based container for M2M applications running in service gateways – http://projects.eclipse.org/projects/technology.kura – Kura code available since March 2014 – 12 committers – Open source version of the Everyware Software Framework (ESF) – Most of the ESF codebase contributed to Kura. Some parts waiting for IP approval

OSGi on IoT Gateway Software Stack Linux Hardware Application Java VM Application • Built-in OSGi Services for IoT Apps • High-level Programming Language • Software Modularity • Configuration Management • Application Management • Shorter Time-to-Market • Device Abstraction • Application Portability • Investment Protection • Integrated Device Cloud features Application

Functional Overview Java VM OSGi Application Container Device Abstraction Gateway Basic Services Network Configuration Network Management Field Protocols Connectivity and Delivery AdministrationGUI Operation&Management Linux Hardware Multi- Service Gateway App 1 App 2 App n. . . . Applications

on Java VM OSGi Application Container Field Protocols Connectivity and Delivery AdministrationGUI Applications Operation&Management Gateway Basic Services Network ConfigurationNetwork Management Device Abstraction Device Abstraction USB javax.usb OtherGPIO I2C Ready to use OSGi bundles exposing Java APIs for device access and with the native code dependencies pre-compiled. Serial javax.comm Bluetooth javax.bluetoothDevice Abstraction

Gateway Basic Services on Java VM OSGi Application Container Field Protocols Connectivity and Delivery AdministrationGUI Applications Operation&Management Network ConfigurationNetwork Management Device Abstraction Gateway Basic Services Gateway Basic Services Watchdog Service Clock Service GPS Position Service Embedded Database Service Process Service Device Profile Service Configurable OSGi Services available to the applications to interact with the basic gateway functionality. Configuration Service

Network Management Network Management Link Monitor Ethernet on Java VM OSGi Application Container Field Protocols Connectivity and Delivery AdministrationGUI Applications Operation&Management Gateway Basic Services Device Abstraction Network ConfigurationNetwork Management WiFi Cellular DHCP NAT DNS Firewall Configurable OSGi Services to access the current network configuration and administer it. It interacts with the Linux system to configure network interfaces including WiFi access points and PPP connections.

Connectivity and Delivery on Java VM OSGi Application Container Field Protocols AdministrationGUI Applications Operation&Management Gateway Basic Services Network ConfigurationNetwork Configuration Device Abstraction Connectivity and Delivery Connectivity & Delivery Eclipse Paho (MQTT) Other Client Data Transport Data Service Cloud Service Configurable OSGi Services which greatly simplify the development of telemetry M2M applications interacting with a remote Cloud server.

Operation & Management on Java VM OSGi Application Container Field Protocols Connectivity and Delivery AdministrationGUI Applications Gateway Basic Services Network ConfigurationNetwork Configuration Device Abstraction Operation&Management Remote System Command Remote Configuration Management Operation & Management Remote Software Updates Remote Log Retrieval Device Diagnostic Service Remote VPN Access

Administration UI

Developer’s Experience

Greenhouse Demo Architecture Mqtt Broker Web Application MQTT Mosquitto HTTP LightModbus

Greenhouse Demo MQTT Topics and Payloads greenhouse/ sensors • Timestamp • Metrics: • request ID • Timestamp • Metrics: • temperature • humidity • luminosity • open Kura Payload Kura Payload EXEC/window/open EXEC/window/close REPLY/<request ID> • Timestamp • Metrics: • Reply code Kura Payload

Greenhouse Demo Anatomy of a Kura Cloud Application public class GreenHouse extends Cloudlet implements ConfigurableComponent

Greenhouse Demo Anatomy of a Kura Cloud Application (Metatype) A ConfigurableComponent has a metatype... <?xml version="1.0" encoding="UTF-8"?> <MetaData xmlns="http://www.osgi.org/xmlns/metatype/v1.2.0" localization="en_us"> <OCD id="org.eclipse.kura.demo.greenhouse.v2.GreenHouse" name="GreenHouse" description="Greenhouse example application."> <AD id="modbus.serialMode" name="modbus.serialMode" type="String" cardinality="0" required="true" default="RS232" description="Serial Mode (RS232 or RS485), or TCP for TCP-encapsulated Modbus."> <Option label="RS-232" value="RS232"/> <Option label="RS-485" value="RS485"/> <Option label="TCP" value="ETHERTCP"/> </AD> ... ...describing its configuration

Greenhouse Demo Anatomy of a Kura Cloud Application (Configuration) Metatype is used to display the configuration dinamically

Greenhouse Demo Anatomy of a Kura Cloud Application (Configuration) Configuration received in DS activate/updated methods protected void activate(ComponentContext componentContext, Map<String, Object> properties) protected void updated(Map<String, Object> properties)

Greenhouse Demo Anatomy of a Kura Cloud Application (Publishing) public void setCloudService(CloudService cloudService) { m_cloudService = cloudService; } protected void activate(ComponentContext componentContext, Map<String, Object> properties) { ... // Acquire a Cloud Application Client for this Application m_cloudClient = m_cloudService.newCloudClient("greenhouse"); m_cloudClient.addCloudClientListener(this); ... } protected void doPublish() { ... KuraPayload kuraPayload = new KuraPayload(); kuraPayload.addMetric("temperature", temperature); kuraPayload.addMetric("luminosity", luminosity); kuraPayload.addMetric("humidity", humidity); kuraPayload.addMetric("open", open); m_cloudClient.publish("sensors", kuraPayload, DFLT_QOS, DFLT_RETAIN,DFLT_PRIORITY); ... }

Greenhouse Demo Anatomy of a Kura Cloud Application (Requests) public class GreenHouse extends Cloudlet implements ConfigurableComponent public GreenHouse() { super("greenhouse"); } @Override protected void doExec(CloudletTopic reqTopic, KuraRequestPayload reqPayload, KuraResponsePayload respPayload) throws KuraException { String[] resources = reqTopic.getResources(); if (resources == null || resources.length < 2 || !resources[0].equals("window")) { respPayload.setResponseCode(KuraResponsePayload.RESPONSE_CODE_NOTFOUND); return; } boolean open = false; if (!((open = resources[1].equals("open")) || resources[1].equals("close"))) { respPayload.setResponseCode(KuraResponsePayload.RESPONSE_CODE_NOTFOUND); return; } ... }

Where to start?

www.eurotech.com Thank You!

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Eclipse Day Florence 2014. Cristiano De Alti, "Eclipse ...

Cristiano De Alti, "Eclipse Kura: an introduction" RCPVisionsrl. Subscribe Subscribed Unsubscribe 74 74. ... Eclipse Day Florence 2014. ...
Read more

An Introduction to Eclipse Kura - Eclipse Day Florence 2014

Home; Technology; An Introduction to Eclipse Kura - Eclipse Day Florence 2014; An Introduction to Eclipse Kura - Eclipse Day Florence 2014 Nov 28, 2014
Read more

Eurotech News - May 2014

Cristiano De Alti presented ‘An Introduction to Eclipse Kura' at Eclipse Day Florence this month. This presentation explores how deploying and ...
Read more

Eclipse Day Florence 2014. Nicholas Baumer, "Pimp your Pi ...

Eclipse Day Florence 2014. Nicholas Baumer, ... Eclipse Day Florence 2014. ... Eclipse Day Florence 2014. Cristiano De Alti, "Eclipse Kura: ...
Read more

Advanced MQTT and Kura - EclipseCON 2014 - Technology

Share Advanced MQTT and Kura - EclipseCON 2014. ... Eclipse Democamp München 2014. ... An Introduction to Eclipse Kura - Eclipse Day Florence 2014.
Read more

Advanced MQTT and Kura - EclipseCON 2014 - Technology

Best Practices for Topic Namespaces in M2M Applications EclipseCON 2014, San Francisco. Docslide.us. ... Share Advanced MQTT and Kura - EclipseCON 2014.
Read more

Eclipse In The News

http://eclipse .org News, articles ... Java 8 Day to EclipseCon 2014. ... and PDE OSGi tooling lead Chris Aniszczyk for an introduction to Equinox and OSGi ...
Read more

IoT/M2MIWG/Weekly call minutes/2014 ... - wiki.eclipse.org

... 2014 Agenda. Introduction of all the project leaders so ... Eclipse IoT day Grenoble (Feb. 19, 2014), ... Eurotech will present Kura during IoT Day in ...
Read more