Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verbelen + Jochen Hiller

355 views

Published on

OSGi Community Event 2016 Presentation by Jan Rellermeyer (IBM), Tim Verbelen (imec) & Jochen Hiller (Deutsche Telekom AG)

Eclipse Concierge provides a clean, small and lightweight implementation of the OSGi core framework specification, specifically tailored to embedded systems and IoT. In this talk, we will cover how to use and deploy the Concierge OSGi framework (e.g. using OSGi enRoute), and discuss many of the new and upcoming features in the Concierge project such as the OSGi REST interface and Cloud Ecosystems reference implementations. We will also present our work in progress on implementing the OSGi R6 core specification level and novel demonstrations that illustrate the advantages of having a lean and streamlined OSGi implementation to deal with deployment and dynamism in IoT applications.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
355
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verbelen + Jochen Hiller

  1. 1. © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan S. Rellermeyer, IBM Research Tim Verbelen, iMinds - Ghent University Jochen Hiller, Deutsche Telekom AG
  2. 2. © 2016 IBM Corporation Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE DIFFERENCES. ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE. IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE. IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: - CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS 2
  3. 3. © 2016 IBM Corporation Eclipse Concierge Goals: §  Full OSGi core R5 compatibility §  Goal achieved §  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 3
  4. 4. © 2016 IBM Corporation Getting to the Next Level •  Eclipse SmartHome on Concierge •  Concierge and enRoute •  Performance Benchmarks 2016 4
  5. 5. © 2016 IBM Corporation Adoption of Concierge for Eclipse SmartHome =+ 5
  6. 6. © 2016 IBM Corporation Adoption of Concierge for Eclipse SmartHome self-contained tailored to Embedded small packageTemplate for other solutions See packaging sample: https://github.com/eclipse/smarthome-packaging-sample 6
  7. 7. © 2016 IBM Corporation How to achieve? •  Pre-configured runtime environment •  Get rid of modeling / DSL features (EMF, xText, DSLs) •  Do not use Karaf feature management •  Reduce footprint of OSGi framework / services (Concierge) •  Reduce footprint of JavaVM (JavaSE Embedded compact 2/3) •  Remove developer tooling (Swagger, WebConsole) 7
  8. 8. © 2016 IBM Corporation Adoption of Concierge for Eclipse SmartHome DEMO + 8
  9. 9. © 2016 IBM Corporation The results of tailoring (typical installation) Note: Compact 2/3 profile: logback needs cp3, quartz, jersey-min needs Full-JRE openHAB2 smarthome-concierge Distribution 160 MB 19 MB OSGi (no Karaf) 3.1 MB 1.6 MB EMF/xText 7 MB 0 MB Java Runtime 32 MB 16 MB (compact3) 12 MB (compact2) Memory footprint ~32 MB ~15 MB Startup time ~40 sec ~30 sec 9
  10. 10. © 2016 IBM Corporation Concierge & bnd(tools) / enRoute OSGi enRoute uses OSGi R6 and bndtools → R6 implementation of Concierge available as snapshot → OSGi repository hosted at the Concierge website 10
  11. 11. © 2016 IBM Corporation OSGi Frameworks Eclipse Equinox •  version 3.11.1.v20160708-1632 •  1.3 MiB •  (R6 framework) Apache Felix •  version 5.6.0 •  678 kiB Knopflerfish •  version 5.2.1 •  321kiB compact Concierge •  version 5.0.0 •  245kiB 11 <concierge.git>/tests/org.eclipse.concierge.stresstest
  12. 12. © 2016 IBM Corporation Platforms Beaglebone Rev A5 •  AM335x 720MHz ARM Cortex-A8 •  256 MiB DDR2 RAM •  4 GiB microSD card •  Angstrom Linux •  Java SE Embedded 1.7.0_21-b11 and •  Java SE Embedded build 1.8.0_06-b23 compact1 Raspberry Pi B •  ARM1176JZF-S 700 MHz ARM 11 •  512 MiB SDRAM (shared with GPU) •  8 GiB SDHD card •  Raspbian Linux •  Java SE build 1.8.0-b132 12 Image: http://beaglebone.org
  13. 13. © 2016 IBM Corporation Startup Time VM = startup time of the JVM Concierge is consistently the fastest framework in terms of startup time 13 0   2   4   6   8   10   12   14   16   18   20   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me(s)   VM   Concierge   Equinox   Felix   Knopflerfish  
  14. 14. © 2016 IBM Corporation Service Registry Stress test Register 10000 services •  Each one has a random value for the same key •  Range: byte => collisions Perform 1000 lookups (getServiceReferences) for a random value •  Range: byte Unregister the 10000 services 14 Registry
  15. 15. © 2016 IBM Corporation Service Registry 15 0   2000   4000   6000   8000   10000   12000   14000   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me  (ms)   0   500   1000   1500   2000   2500   3000   3500   4000   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me  (ms)   Concierge   Equinox   Felix   Knopflerfish   Registration Unregistration
  16. 16. © 2016 IBM Corporation Service Registry – Service Lookup 16 0   100000   200000   300000   400000   500000   600000   700000   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me  (ms)   Concierge   Equinox   Felix   Knopflerfish   0   10000   20000   30000   40000   50000   60000   70000   80000   90000   100000   Beaglebone   ejre7   Beaglebone   ejre8   Raspberry  Pi   !me  (ms)   Concierge   Equinox   Felix   Knopflerfish  
  17. 17. © 2016 IBM Corporation Resolver 17 Generate 1000 “random bundles” •  Can either import or export up to 5 packages •  Choice of 50 packages in total •  For exports: generate a random package version from [1.0.0-21.0.0) •  For import: generate a random import range from the interval. Install all 1000 bundles Resolve the bundles Benchmark turned out to be rather volatile…
  18. 18. © 2016 IBM Corporation Resolver 0   10000   20000   30000   40000   50000   60000   70000   80000   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me(ms)   0   5000   10000   15000   20000   25000   30000   35000   40000   45000   50000   Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi   !me(ms)   Concierge   Equinox   Felix   Knopflerfish   Installation Resolving 18
  19. 19. © 2016 IBM Corporation What’s next? •  More auxiliary bundles •  Remote services? •  Help other projects with transitioning to Concierge •  Short term: •  Move to Github •  Concierge R5.1 Release •  EventAdmin •  RFC 182: Remote management based on REST interface •  Medium term: •  RFC 183: Cluster Information Specification •  R6 compatibility 19
  20. 20. © 2016 IBM Corporation Eclipse Concierge Concierge is an OSGi framework optimized for embedded devices and the Internet of Things It’s simplicity and usability can help with developing complex IoT applications with ease. It’s fast, it’s pleasant, you should try it, too. http://eclipse.org/concierge http://git.eclipse.org/c/concierge/org.eclipse.concierge.git Project Homepage Clone it from here 20
  21. 21. © 2016 IBM Corporation
  22. 22. © 2016 IBM Corporation22 Copyright and Trademarks © IBM Corporation 2016. All Rights Reserved. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., and registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web – see the IBM “Copyright and trademark information” page at URL: www.ibm.com/legal/copytrade.shtml

×