SlideShare a Scribd company logo
PUBLIC1
REMOTE MANAGEMENT AND MONITORING
OF DISTRIBUTED OSGI APPLICATIONS
TIMVERBELEN
Senior Researcher
imec – Ghent University
JAN S. RELLERMEYER
Assistant Professor
TU Delft
PUBLIC
REMOTE MANAGEMENT AND MONITORING
▪ On-site management too expensive
▪ The device has no screen or input devices
▪ The device is unreachable
▪ There are too many devices
▪ …
2
FROM IOT TO CLOUD
PUBLIC
OSGI – MODULARITY FOR THE JVM
• Modular Software Management
• Can be managed individually
• Understand versioning
• The implementation of modularity for the JVM
▪ is the Bundle
• Dynamism
• Well-defined life-cycle
• Lose coupling
• Complex systems are inherently dynamic
Module A
Module B
Module C
PUBLIC
OSGI –THE PLATFORM FOR LONG-RUNNING DEVICES
▪ Dynamic Module System for the Java Runtime
▪ Original domain: Home Gateway
▪ Multiple software packages need to co-exist on the same machine
▪ Long-running software
▪ Periodic maintenance and updates requires
▪ Ideally with minimal downtime and no interruption of unrelated software packages
4
• Java on the Embedded Device
• Pros:
• bridges heterogeneity
• can run the same code in the cloud or on the device
• Cons:
• updates and maintenance
PUBLIC
REMOTE MANAGEMENT IS NOT NEW (IN OSGI)
▪ TR-069 is a remote management protocol specified by the Broadband Forum
▪ Specifies a bi-directional protocol based on SOAP 1.1 over HTTP
▪ For managing “Customer-Premise Equipment (CPE)”
▪ Designed for routers, gateways, set-op boxes,…
5
TR-069 CONNECTOR SERVICE SPECIFICATION
PUBLIC
REMOTE MANAGEMENT IS NOT NEW (IN OSGI)
▪ A logical view of manageable entities
implemented by plugins and structured in a
tree with named nodes
▪ One generic API to hide a multitude of
remote management protocols
▪ Used in IoT space (i.e. Bosch SI)
6
DEVICE MANAGEMENTTREE (DMT)
PUBLIC
REMOTE MANAGEMENT OVER REST
▪ RESTful interface
▪ Exposing the framework and its internal state as resources
▪ Bundles
▪ Services
▪ Easy management of OSGi deployments through REST
▪ Command line tools
▪ Web interfaces
▪ Application-level
▪ REST service implementation ships with Concierge 5.1
PUBLIC
REST SERVICE ARCHITECTURE
▪ framework
▪ framework/state
▪ framework/startlevel
▪ framework/bundles
▪ framework/bundles/representations
▪ framework/bundle/{bundleid}
▪ framework/bundle/{bundleid}/state
▪ framework/bundle/{bundleid}/startlevel
▪ framework/bundle/{bundleid}/header
▪ framework/services
▪ framework/services/representations
▪ framework/service/{serviceid}
8
PUBLIC
REST SERVICE ARCHITECTURE
▪ framework
▪ framework/state
▪ framework/startlevel
▪ framework/bundles
▪ framework/bundles/representations
▪ framework/bundle/{bundleid}
▪ framework/bundle/{bundleid}/state
▪ framework/bundle/{bundleid}/startlevel
▪ framework/bundle/{bundleid}/header
▪ framework/services
▪ framework/services/representations
▪ framework/service/{serviceid}
9
PUBLIC
REST SERVICE ARCHITECTURE
▪ framework
▪ framework/state
▪ framework/startlevel
▪ framework/bundles
▪ framework/bundles/representations
▪ framework/bundle/{bundleid}
▪ framework/bundle/{bundleid}/state
▪ framework/bundle/{bundleid}/startlevel
▪ framework/bundle/{bundleid}/header
▪ framework/services
▪ framework/services/representations
▪ framework/service/{serviceid}
10
PUBLIC
REST CLIENT
▪ RestClientFactory
public interface RestClientFactory {
RestClient createRestClient(URI uri);
}
▪ RestClient
public interface RestClient {
…
FrameworkStartLevelDTO getFrameworkStartLevel() throws Exception;
void setFrameworkStartLevel(FrameworkStartLevelDTO startLevel) throws Exception;
…
}
11
PUBLIC
REST CLIENT IN .JS
var client = new OSGiRestClient('http://localhost:8080/restendpoint’);
client.installBundle(bundle, {
success : function(res) {
// Start the bundle once the install has finished
client.startBundle(res.id);
}, failure : function(httpCode, res) {
// handle failure
}
});
12
PUBLIC
REST CLIENT IN .JS
var client = new OSGiRestClient('http://localhost:8080/restendpoint’);
client.installBundle(bundle, {
success : function(res) {
// Start the bundle once the install has finished
client.startBundle(res.id);
}, failure : function(httpCode, res) {
// handle failure
}
});
13
PUBLIC
REMOTE MANAGEMENT OVER REST
14
DEMO
PUBLIC
REST SPEC LIMITATIONS
▪ Requires a REST server on the device to manage
▪ Why not use the OSGi service layer? And OSGi Remote Services?
▪ Limited to a single OSGi framework
▪ Why not manage a cluster of OSGi frameworks?
▪ Limited to OSGi-specific information (i.e. bundles, services, etc)
▪ Why no metrics on the underlying (hardware?) platform?
15
PUBLIC
CLUSTER INFORMATION SPECIFICATION
16
THE NEW KID INTOWN
PUBLIC
FRAMEWORK NODE STATUS
17
CLUSTER INFORMATION SPECIFICATION
▪ Presence services indicating a framework / node is there
▪ Service properties exposing node metadata
▪ Unique identifier (and parent)
▪ Location information (country, region, zone, …)
▪ Endpoints (private and public)
▪ Tags (application-specific)
PUBLIC
FRAMEWORK NODE STATUS (2)
18
CLUSTER INFORMATION SPECIFICATION
▪ HashMap<String, String> metrics(String… keys)
▪ Provides implementation-specific metrics about the node
▪ Typically things that change over time (i.e. resource usage)
▪ Integrated with Remote Service Admin specification
▪ *NodeStatus exported as remote service
▪ Remote services automatically shared within cluster
PUBLIC
FRAMEWORK MANAGER
19
CLUSTER INFORMATION SPECIFICATION
▪ Managing of an OSGi framework
▪ Similar API as the REST specification, but now as remote service
▪ List / inspect bundles and services
▪ Install / start / update bundles
PUBLIC
CLUSTER INFORMATION SPECIFICATION
20
DEMO
PUBLIC
ECLIPSE CONCIERGE
▪ Full OSGi core R5 compatibility
▪ R6 almost done
▪ R7 to come
▪ Keep a small footprint to work well on embedded devices
▪ 250kiB without debug symbols
▪ 330kiB with debug symbols
▪ Remain “readable”
▪ Currently 9 classes
▪ Remain backwards-compatible
▪ Java 5
21
Gateway
PUBLIC
CONCLUSIONS
▪ Concierge is an OSGi framework
optimized for embedded devices and
the Internet ofThings
▪ It hosts the reference implementations
for the REST service and the Cluster
Information specifications.
▪ Check them out to ease the remote
management of your OSGi
deployments.
22
http://eclipse.org/concierge
https://github.com/eclipse/concierge
Project
Homepage
Clone it
from here
Evaluate the Sessions
-1 0 +1
Sign in and vote at eclipsecon.org

More Related Content

What's hot (20)

PPTX
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Piergiorgio Lucidi
 
PPTX
Guided overview of software frameworks qt framework
Benjamin Cottrell
 
PDF
OSGi Enterprise Expert Group (OSGi Users Forum Germany)
David Bosschaert
 
PDF
Why the WSO2 ESB should be part of your SOA infrastructure
WSO2
 
PPTX
Vertx in production
Mariam Hakobyan
 
PDF
Dependency management in Xcode 11
Boris Bielik
 
PPTX
Production ready Vert.x
Sascha Möllering
 
PDF
Saltstack for Ansible users
Paul Traylor
 
PDF
Kvm forum 2013 - future integration points for oVirt storage
Sean Cohen
 
ODP
Oslo Vancouver Project Update
Ben Nemec
 
PDF
Surviving a Plane Crash, a NU.nl case-study
peter_ibuildings
 
PPTX
São Paulo MuleSoft Meetup - Deployments Models
Guilherme Pereira Silva
 
PDF
oVirt – open your virtual datacenter
Bergamo Linux Users Group
 
PDF
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebula Project
 
PDF
BKK16-205 RDK-B IoT
Linaro
 
PPTX
Ruby on rails
Batzorigt Rentsen
 
PDF
OpenIndiana Hipster project progress review
Alexander Pyhalov
 
PPTX
Adopting OpenTelemetry
Vincent Behar
 
PDF
20171027 モニタリング勉強会
Paul Traylor
 
ODP
The current state of OpenIndiana Hipster project
Alexander Pyhalov
 
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Piergiorgio Lucidi
 
Guided overview of software frameworks qt framework
Benjamin Cottrell
 
OSGi Enterprise Expert Group (OSGi Users Forum Germany)
David Bosschaert
 
Why the WSO2 ESB should be part of your SOA infrastructure
WSO2
 
Vertx in production
Mariam Hakobyan
 
Dependency management in Xcode 11
Boris Bielik
 
Production ready Vert.x
Sascha Möllering
 
Saltstack for Ansible users
Paul Traylor
 
Kvm forum 2013 - future integration points for oVirt storage
Sean Cohen
 
Oslo Vancouver Project Update
Ben Nemec
 
Surviving a Plane Crash, a NU.nl case-study
peter_ibuildings
 
São Paulo MuleSoft Meetup - Deployments Models
Guilherme Pereira Silva
 
oVirt – open your virtual datacenter
Bergamo Linux Users Group
 
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
OpenNebula Project
 
BKK16-205 RDK-B IoT
Linaro
 
Ruby on rails
Batzorigt Rentsen
 
OpenIndiana Hipster project progress review
Alexander Pyhalov
 
Adopting OpenTelemetry
Vincent Behar
 
20171027 モニタリング勉強会
Paul Traylor
 
The current state of OpenIndiana Hipster project
Alexander Pyhalov
 

Similar to Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbelen (imec) & Jan S. Rellermeyer (TU Delft) (20)

PDF
Automated Deployment and Management of Edge Clouds
Jay Bryant
 
PDF
Adopting PCF At An Automobile Manufacturer
Gregor Zurowski
 
PDF
Adopting PCF At An Automobile Manufacturer
VMware Tanzu
 
PPTX
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Phil Wilkins
 
PDF
Docker Swarm and Traefik 2.0
Jakub Hajek
 
PDF
Enterprise Deployments: The Real World of Best Practices
Simon Haslam
 
PDF
Community Session: Strategic Private Cloud in SKY UK
VMUG IT
 
PPTX
Enterprise Node - Securing Your Environment
Kurtis Kemple
 
PDF
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Cisco Canada
 
PDF
Building a CI/CD driven infrastructure for managing kubernetes clusters on ba...
TEC Campus
 
PPTX
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup
 
PPTX
AGILE software, devices and wider ecosystem
AGILE IoT
 
PDF
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PROIDEA
 
PPTX
Design and Deploy Secure Clouds for Financial Services Use Cases
PLUMgrid
 
PPTX
Collaborating with OpenDaylight for a Network-Enabled Cloud
Tesora
 
PDF
Stratos Open PaaS OSCON 2011
Paul Fremantle
 
ODP
Sap webinar-briefing-sep-2013-final
Kenneth Peeples
 
PDF
Creating Polyglot Communication Between Kubernetes Clusters and Legacy System...
VMware Tanzu
 
PDF
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
Gerardo Pardo-Castellote
 
PDF
Puppet - Configuration Management Made Eas(ier)
Aaron Bernstein
 
Automated Deployment and Management of Edge Clouds
Jay Bryant
 
Adopting PCF At An Automobile Manufacturer
Gregor Zurowski
 
Adopting PCF At An Automobile Manufacturer
VMware Tanzu
 
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Phil Wilkins
 
Docker Swarm and Traefik 2.0
Jakub Hajek
 
Enterprise Deployments: The Real World of Best Practices
Simon Haslam
 
Community Session: Strategic Private Cloud in SKY UK
VMUG IT
 
Enterprise Node - Securing Your Environment
Kurtis Kemple
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Cisco Canada
 
Building a CI/CD driven infrastructure for managing kubernetes clusters on ba...
TEC Campus
 
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup
 
AGILE software, devices and wider ecosystem
AGILE IoT
 
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PROIDEA
 
Design and Deploy Secure Clouds for Financial Services Use Cases
PLUMgrid
 
Collaborating with OpenDaylight for a Network-Enabled Cloud
Tesora
 
Stratos Open PaaS OSCON 2011
Paul Fremantle
 
Sap webinar-briefing-sep-2013-final
Kenneth Peeples
 
Creating Polyglot Communication Between Kubernetes Clusters and Legacy System...
VMware Tanzu
 
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
Gerardo Pardo-Castellote
 
Puppet - Configuration Management Made Eas(ier)
Aaron Bernstein
 
Ad

More from mfrancis (20)

PDF
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
mfrancis
 
PDF
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
mfrancis
 
PDF
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
mfrancis
 
PDF
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
mfrancis
 
PDF
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
PDF
OSGi CDI Integration Specification - Ray Augé (Liferay)
mfrancis
 
PDF
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
PDF
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
PDF
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
mfrancis
 
PDF
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
mfrancis
 
PDF
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
mfrancis
 
PDF
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
mfrancis
 
PDF
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
mfrancis
 
PDF
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
mfrancis
 
PDF
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 
PDF
How to connect your OSGi application - Dirk Fauth (Bosch)
mfrancis
 
PDF
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
mfrancis
 
PDF
Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)
mfrancis
 
PDF
OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...
mfrancis
 
PDF
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
mfrancis
 
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
mfrancis
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
mfrancis
 
Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)
mfrancis
 
OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...
mfrancis
 
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
mfrancis
 
Ad

Recently uploaded (20)

PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 

Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbelen (imec) & Jan S. Rellermeyer (TU Delft)

  • 1. PUBLIC1 REMOTE MANAGEMENT AND MONITORING OF DISTRIBUTED OSGI APPLICATIONS TIMVERBELEN Senior Researcher imec – Ghent University JAN S. RELLERMEYER Assistant Professor TU Delft
  • 2. PUBLIC REMOTE MANAGEMENT AND MONITORING ▪ On-site management too expensive ▪ The device has no screen or input devices ▪ The device is unreachable ▪ There are too many devices ▪ … 2 FROM IOT TO CLOUD
  • 3. PUBLIC OSGI – MODULARITY FOR THE JVM • Modular Software Management • Can be managed individually • Understand versioning • The implementation of modularity for the JVM ▪ is the Bundle • Dynamism • Well-defined life-cycle • Lose coupling • Complex systems are inherently dynamic Module A Module B Module C
  • 4. PUBLIC OSGI –THE PLATFORM FOR LONG-RUNNING DEVICES ▪ Dynamic Module System for the Java Runtime ▪ Original domain: Home Gateway ▪ Multiple software packages need to co-exist on the same machine ▪ Long-running software ▪ Periodic maintenance and updates requires ▪ Ideally with minimal downtime and no interruption of unrelated software packages 4 • Java on the Embedded Device • Pros: • bridges heterogeneity • can run the same code in the cloud or on the device • Cons: • updates and maintenance
  • 5. PUBLIC REMOTE MANAGEMENT IS NOT NEW (IN OSGI) ▪ TR-069 is a remote management protocol specified by the Broadband Forum ▪ Specifies a bi-directional protocol based on SOAP 1.1 over HTTP ▪ For managing “Customer-Premise Equipment (CPE)” ▪ Designed for routers, gateways, set-op boxes,… 5 TR-069 CONNECTOR SERVICE SPECIFICATION
  • 6. PUBLIC REMOTE MANAGEMENT IS NOT NEW (IN OSGI) ▪ A logical view of manageable entities implemented by plugins and structured in a tree with named nodes ▪ One generic API to hide a multitude of remote management protocols ▪ Used in IoT space (i.e. Bosch SI) 6 DEVICE MANAGEMENTTREE (DMT)
  • 7. PUBLIC REMOTE MANAGEMENT OVER REST ▪ RESTful interface ▪ Exposing the framework and its internal state as resources ▪ Bundles ▪ Services ▪ Easy management of OSGi deployments through REST ▪ Command line tools ▪ Web interfaces ▪ Application-level ▪ REST service implementation ships with Concierge 5.1
  • 8. PUBLIC REST SERVICE ARCHITECTURE ▪ framework ▪ framework/state ▪ framework/startlevel ▪ framework/bundles ▪ framework/bundles/representations ▪ framework/bundle/{bundleid} ▪ framework/bundle/{bundleid}/state ▪ framework/bundle/{bundleid}/startlevel ▪ framework/bundle/{bundleid}/header ▪ framework/services ▪ framework/services/representations ▪ framework/service/{serviceid} 8
  • 9. PUBLIC REST SERVICE ARCHITECTURE ▪ framework ▪ framework/state ▪ framework/startlevel ▪ framework/bundles ▪ framework/bundles/representations ▪ framework/bundle/{bundleid} ▪ framework/bundle/{bundleid}/state ▪ framework/bundle/{bundleid}/startlevel ▪ framework/bundle/{bundleid}/header ▪ framework/services ▪ framework/services/representations ▪ framework/service/{serviceid} 9
  • 10. PUBLIC REST SERVICE ARCHITECTURE ▪ framework ▪ framework/state ▪ framework/startlevel ▪ framework/bundles ▪ framework/bundles/representations ▪ framework/bundle/{bundleid} ▪ framework/bundle/{bundleid}/state ▪ framework/bundle/{bundleid}/startlevel ▪ framework/bundle/{bundleid}/header ▪ framework/services ▪ framework/services/representations ▪ framework/service/{serviceid} 10
  • 11. PUBLIC REST CLIENT ▪ RestClientFactory public interface RestClientFactory { RestClient createRestClient(URI uri); } ▪ RestClient public interface RestClient { … FrameworkStartLevelDTO getFrameworkStartLevel() throws Exception; void setFrameworkStartLevel(FrameworkStartLevelDTO startLevel) throws Exception; … } 11
  • 12. PUBLIC REST CLIENT IN .JS var client = new OSGiRestClient('http://localhost:8080/restendpoint’); client.installBundle(bundle, { success : function(res) { // Start the bundle once the install has finished client.startBundle(res.id); }, failure : function(httpCode, res) { // handle failure } }); 12
  • 13. PUBLIC REST CLIENT IN .JS var client = new OSGiRestClient('http://localhost:8080/restendpoint’); client.installBundle(bundle, { success : function(res) { // Start the bundle once the install has finished client.startBundle(res.id); }, failure : function(httpCode, res) { // handle failure } }); 13
  • 15. PUBLIC REST SPEC LIMITATIONS ▪ Requires a REST server on the device to manage ▪ Why not use the OSGi service layer? And OSGi Remote Services? ▪ Limited to a single OSGi framework ▪ Why not manage a cluster of OSGi frameworks? ▪ Limited to OSGi-specific information (i.e. bundles, services, etc) ▪ Why no metrics on the underlying (hardware?) platform? 15
  • 17. PUBLIC FRAMEWORK NODE STATUS 17 CLUSTER INFORMATION SPECIFICATION ▪ Presence services indicating a framework / node is there ▪ Service properties exposing node metadata ▪ Unique identifier (and parent) ▪ Location information (country, region, zone, …) ▪ Endpoints (private and public) ▪ Tags (application-specific)
  • 18. PUBLIC FRAMEWORK NODE STATUS (2) 18 CLUSTER INFORMATION SPECIFICATION ▪ HashMap<String, String> metrics(String… keys) ▪ Provides implementation-specific metrics about the node ▪ Typically things that change over time (i.e. resource usage) ▪ Integrated with Remote Service Admin specification ▪ *NodeStatus exported as remote service ▪ Remote services automatically shared within cluster
  • 19. PUBLIC FRAMEWORK MANAGER 19 CLUSTER INFORMATION SPECIFICATION ▪ Managing of an OSGi framework ▪ Similar API as the REST specification, but now as remote service ▪ List / inspect bundles and services ▪ Install / start / update bundles
  • 21. PUBLIC ECLIPSE CONCIERGE ▪ Full OSGi core R5 compatibility ▪ R6 almost done ▪ R7 to come ▪ Keep a small footprint to work well on embedded devices ▪ 250kiB without debug symbols ▪ 330kiB with debug symbols ▪ Remain “readable” ▪ Currently 9 classes ▪ Remain backwards-compatible ▪ Java 5 21 Gateway
  • 22. PUBLIC CONCLUSIONS ▪ Concierge is an OSGi framework optimized for embedded devices and the Internet ofThings ▪ It hosts the reference implementations for the REST service and the Cluster Information specifications. ▪ Check them out to ease the remote management of your OSGi deployments. 22 http://eclipse.org/concierge https://github.com/eclipse/concierge Project Homepage Clone it from here
  • 23. Evaluate the Sessions -1 0 +1 Sign in and vote at eclipsecon.org