OSGi Overview OSGi Alliance and IIC Joint Liaison Workshop

Christer Larsson VP EMEA OSGi Alliance CEO Makewave

2018-05-24, Helsinki

COPYRIGHT © 2008-2018 OSGi Alliance. All Rights Reserved

What is the OSGi Technology?

• OSGi is a Standardized Software Execution Environment • Component based module system defined in Java • defined by the OSGi Alliance • Service oriented & remotely managed (OMA & TR-69) • Works like an operating system for small applications called Bundles • Ideal for a home gateway, IoT gateway, or similar equipment

Application Home Energy Components Control Mgmt Media

M C P H C L A Administrator O A r T o o g S N e T n g e T f P f n s t

OSGi Framework Mgmt System JVM / OS / HW Framework + std OSGi components

!2 COPYRIGHT © 2008-2018 OSGi Alliance. All Rights Reserved

The OSGi Alliance

• The OSGi Alliance is worldwide, non-profit consortium • Creates and controls the OSGi Specifications • The OSGi Technology is uses in a wide range of open source projects and commercial products for IoT, cloud and enterprise markets.

• OSGi Alliance members include:

!3 COPYRIGHT © 2008-2018 OSGi Alliance. All Rights Reserved

The OSGi Alliance?

Founded in 1999 Global Proven, Mature Ecosystem Software Architecture

Transparent Development Best Practices Process

Strategic Industry & End Partnerships/ User Adoption Collaboration

!4 COPYRIGHT © 2008-2018 OSGi Alliance. All Rights Reserved

OSGi Alliance Deliverables

• To foster a valuable cross-industry ecosystem, the OSGi Alliance delivers: • Specifications • Reference Implementations • Test Suites • Certifications

We are proud to be a democratic, collaborative, and non-profit organization that is operating in a fully transparent environment and open to everyone to join and contribute.

!5 COPYRIGHT © 2008-2018 OSGi Alliance. All Rights Reserved

More Info

OSGi Alliance Email: [email protected] Bishop Ranch 6 2400 Camino Ramon, Online: www.osgi.org Suite 375 San Ramon, CA 94583 Twitter: @OSGiAlliance USA LinkedIn: Phone: +1 (925) 275-6690 https://www.linkedin.com/ Fax: +1 (925) 275 6691 groups/122461

OSGi is a trademark or registered trademark of the OSGi Alliance in the United States, other countries, or both. Java and all Java based trademarks and logos are trademarks of the in the United States, other countries, or both. All other product or service names are the property of their respective owners.

!6 OSGi Alliance © 2008-2016. All Rights Reserved

Real world example of a bus fleet system based on OSGi

• An example of a bus fleet system based on Makewave’s OSGi Technology • Knopflerfish OSGi edge device stack • Ubicore - a remote management system for edge devices • ~5 000 buses, edge bus having ~5 edge devices running OSGi.

Christer Larsson Makewave AB 7 System Architecture - bus fleet All buses are equipped with one or more OSGi based on-board computers / devices. Each OSGi platform has a management agent which connects it to Ubicore Bus OSGi on-board Agent Operator Bus

OSGi on-board - Ticket Ticket Server Bundles BundlesBundles Agent

OSGi on-board - Ticket Ubicore Bundles BundlesBundles Agent

OSGi on-board - Driver Console Driver Server

Bundles BundlesBundles Agent Back-end

Vehicle network Bus

OSGi Gateways Agent

Christer Larsson Makewave AB 8 System Architecture - bus fleet

• Every bus has one or more on-board computers that has an embedded OSGi platform (Knopflerfish) • The on-board computers are connected to the in-vehicle network (FMS) • The on-board computers are connected to each other (in-vehicle IP) • Every on-board computer has an OSGi management agent. The agent is responsible for the connection to Ubicore and performs mgmt tasks decided by Ubicore. • All business logic is implemented as OSGi bundles. The business logic bundles are all managed via Ubicore. • The business logic bundles sends / receives data directly to/from its corresponding back-end server. I.e. the IP traffic is not routed via Ubicore • The Ubicore server is part of the complete back-end server infrastructure. It is integrated with other parts via a REST API.

Christer Larsson Makewave AB 9 OSGi is an embedded integration platform • OSGi provides a sandbox in which bundles exist and exchange data.

OSGi platform • An API layer is provided to the Application Logic My App WebCam • The Service is logically using a device, but Bundle physically abstracted Web Cam Service

Devices Temp Sens Temp

Temp Meter Temp Controller

Java Virtual Machine (JVM)

Operating System

Local network

Christer Larsson Makewave AB 10 Inside one vehicle Back-end / Cloud

Communication gateway Ubicore Tracking Server Validation Server OSGi on-board Knopflerfish

Bundle Agent Cache

OSGi on-board Knopflerfish Agent OSGi on-board Knopflerfish Agent FMS OSGi on-board Knopflerfish Agent Driver Console Validators

Christer Larsson Makewave AB 11 Benefits with an OSGi solution

• Clear separation between business logic (implemented as OSGi bundles) and lower lever parts device code (C/ C++). • Uniform architecture - exactly the same business logic bundles can be used regardless of on-board computer architecture (ARM, X86). No need to recompile, or support different versions. • Remotely Managed and Flexible - it is very easy to add, remove or update functionality in the business logic layer over time.

Christer Larsson Makewave AB 12 Thank you!

Christer Larsson CEO Makewave www.makewave.com

VP EMEA OSGi www.osgi.org

Knopflerfish OSGi www.knopflerfish.org

Christer Larsson Makewave AB 13