getting to the next level with eclipse concierge...2016/10/26  · © 2016 ibm corporation...

22
© 2016 IBM Corporation EclipseCon Europe 26 th 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

Upload: others

Post on 26-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 2: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 3: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 4: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Getting to the Next Level

•  Eclipse SmartHome on Concierge

•  Concierge and enRoute

•  Performance Benchmarks 2016

4

Page 5: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Adoption of Concierge for Eclipse SmartHome

= + 5

Page 6: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Adoption of Concierge for Eclipse SmartHome

self-contained tailored to Embedded

small package Template for other solutions

See packaging sample: https://github.com/eclipse/smarthome-packaging-sample

6

Page 7: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 8: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Adoption of Concierge for Eclipse SmartHome

DEMO

+ 8

Page 9: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 10: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 11: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 12: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 13: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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  

Page 14: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 15: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Service Registry

15

0  

2000  

4000  

6000  

8000  

10000  

12000  

14000  

Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi  

!me  (m

s)  

0  

500  

1000  

1500  

2000  

2500  

3000  

3500  

4000  

Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi  

!me  (m

s)   Concierge  

Equinox  

Felix  

Knopflerfish  

Registration Unregistration

Page 16: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Service Registry – Service Lookup

16

0  

100000  

200000  

300000  

400000  

500000  

600000  

700000  

Beaglebone  ejre7   Beaglebone  ejre8   Raspberry  Pi  

!me  (m

s)   Concierge  

Equinox  

Felix  

Knopflerfish  

0  

10000  

20000  

30000  

40000  

50000  

60000  

70000  

80000  

90000  

100000  

Beaglebone  ejre7  

Beaglebone  ejre8  

Raspberry  Pi  

!me  (m

s)   Concierge  

Equinox  

Felix  

Knopflerfish  

Page 17: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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…

Page 18: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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  !m

e(ms)   Concierge  

Equinox  

Felix  

Knopflerfish  

Installation Resolving

18

Page 19: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 20: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 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

Page 21: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation

Page 22: Getting to the Next Level with Eclipse Concierge...2016/10/26  · © 2016 IBM Corporation EclipseCon Europe 26th October 2016 Getting to the Next Level with Eclipse Concierge Jan

© 2016 IBM Corporation 22

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