SlideShare ist ein Scribd-Unternehmen logo
MICROSERVICES
WITH OSGI
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
2
Microservices with OSGi
Speaker
Dirk Fauth
Software-Architect Rich Client Systeme
Eclipse Committer
Robert Bosch GmbH
Franz-Oechsle-Straße 4
73207 Plochingen
dirk.fauth@de.bosch.com
www.bosch.com
blog.vogella.com/author/fipro/
Twitter: fipro78
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
3
Microservices with OSGi
Speaker
Peter Kirschner
Developer, Architect, Build and Release
Engineer
OSS, OSGi & Eclipse Enthusiast
Kirschners GmbH
Löchgauer Straße 57
74321 Bietigheim-Bissingen
peter@kirschners.de
GitHub: peterkir.github.io
Twitter: peterkir
MOTIVATION
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
5
Motivation
 Microservices are one of the current hype topics
 A lot of people are actually doing microservices with different approaches
 OSGi has a mature service design
 OSGi Core R6 – Chapter 5 Service Layer
 OSGi Compendium R6 – Chapter 112 Declarative Services
 OSGi has specifications for remote services
 OSGi Compendium R6 – Chapter 100 Remote Services
 OSGi Compendium R6 – Chapter 122 Remote Service Admin Service
 There are several talks about OSGi, microservices and remote services
 But mostly about architecture, cool demos but little about the technical details
OVERVIEW
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
7
Publish-Find-Bind
 Bundles register (publish) services
 Bundles get (bind) services
 Bundles listen (find) services
A BS
register
(publish)
get
(bind)
listen
(find)
<<bundle>> <<bundle>><<service>>
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
8
Publish-Find-Bind - Remote
A S
register
(publish)
<<bundle>> <<service>>
A S
register
(publish)
<<bundle>> <<service>>
A S
register
(publish)
<<bundle>> <<service>>
A S
register
(publish)
<<bundle>> <<service>>
B
get
(bind)
listen
(find)
<<bundle>>
S
B
get
(bind)
listen
(find)
<<bundle>>
S
B
get
(bind)
listen
(find)
<<bundle>>
S
B
get
(bind)
listen
(find)
<<bundle>>
S
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
9
Remote Services
OSGi Compendium Specification R6 – Figure 100.1 Architecture
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
10
Terminology
 Remote Service (aka Distributed Service)
 OSGi service that is available across container boundaries
 Distribution Provider
 Exports services by creating endpoints
 Imports services by creating proxies to access endpoints
 Manage policies around the topology
 Discover remote services
 Endpoint
 Communication access mechanism to a remote service that requires some
protocol for communications
 Topology
 Mapping between services and endpoints as well as their communication
characteristics
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
11
Remote Service Admin
OSGi Compendium Specification R6 – Figure 122.1 Remote Service Admin Entities
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
12
Terminology
 Remote Service Admin
Passive Distribution Provider providing the mechanism but actually does
not export or import services itself
 Topology Manager
Provides the policy for importing and exporting services via RSA
Implements a topology by using the RSA
 Discovery
Discover / announce Endpoint Descriptions via some discovery protocol
 Endpoint Description
Describes an Endpoint via configuration type (name and set of properties)
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
13
Remote Service Admin – Export Simplified
Service
Producer
Discovery
Topology
Manager
Remote Service
Admin
informsinstructs
Remote Service Implementation
endpoint
created by RSA
announced by Discovery
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
14
Remote Service Admin – Import Simplified
Service
Consumer
Discovery
Topology
Manager
Remote Service
Admin
learns from instructs
Remote Service Implementation
endpoint
discovered by Discovery
proxied by RSA
IMPLEMENTATION
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
16
Remote Service Implementation
@Component(property= {
"service.exported.interfaces=*",
"service.exported.configs=ecf.generic.server"
})
public class UppercaseModifier implements StringModifier {
@Override
public String modify(String input) {
return input.toUpperCase(Locale.getDefault());
}
}
@Component(property= {
"service.exported.interfaces=*",
"service.exported.configs=ecf.generic.server"
})
public class UppercaseModifier implements StringModifier {
@Override
public String modify(String input) {
return input.toUpperCase(Locale.getDefault());
}
}
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
17
Remote Service Properties
 service.exported.interfaces=*
Required property to mark a service for export. Specifies which service
interfaces should be exported. Using the wildcard it says that all the
interfaces that are registered should be exported.
 service.exported.configs
The configuration types that should be used to export a service. Each
configuration type (endpoint type) represents the configuration
parameters for endpoints. For example:
 ECF Generic Provider = ecf.generic.server
 CXF DOSGi provider RS = org.apache.cxf.rs
https://wiki.eclipse.org/Distribution_Providers
https://github.com/apache/cxf-dosgi
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
18
Implementations
 Eclipse Communication Framework
https://www.eclipse.org/ecf/
 Apache Aries Remote Service Admin
http://aries.apache.org/modules/rsa.html
 Amdatu
https://amdatu.org/application/remote/
 Paremus RSA
https://docs.paremus.com/display/SF113/Remote+Service+implementation
 Apache CXF Distributed OSGi (distribution providers for Aries RSA)
http://cxf.apache.org/distributed-osgi.html
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
19
Required Bundles – Equinox OSGi Application
Bundle-SymbolicName Bundle-Name
org.fipro.modifier.api
Application Bundles
org.fipro.modifier.uppercase
org.apache.felix.gogo.command
OSGi Console
org.apache.felix.gogo.runtime
org.apache.felix.gogo.shell
org.eclipse.equinox.console
org.eclipse.osgi Equinox OSGi System Bundle
org.eclipse.osgi.services Equinox OSGi Service Interfaces
org.eclipse.equinox.common Common Eclipse Runtime
org.eclipse.equinox.event Event Admin
org.eclipse.equinox.util Equinox Util Bundle
org.apache.felix.scr Apache Felix Declarative Services
org.eclipse.osgi.util OSGi Utility Classes
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
20
Required Bundles – ECF with Generic Provider
Bundle-SymbolicName Bundle-Name
org.eclipse.core.jobs Eclipse Jobs Mechanism
org.eclipse.equinox.concurrent Equinox Concurrent API
org.eclipse.ecf ECF Core Bundle
org.eclipse.ecf.discovery ECF Discovery API Bundle
org.eclipse.ecf.identity ECF Identity Bundle
org.eclipse.ecf.osgi.services.distribution ECF RSA Basic Topology Manager
org.eclipse.ecf.osgi.services.remoteserviceadmin ECF RSA Implementation
org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy ECF RSA Proxy
org.eclipse.ecf.provider ECF Generic Provider
org.eclipse.ecf.provider.jmdns ECF Discovery Zeroconf/JMDNS Provider
org.eclipse.ecf.provider.remoteservice ECF Generic Provider RemoteServices Support
org.eclipse.ecf.remoteservice ECF RemoteServices API
org.eclipse.ecf.remoteservice.asyncproxy ECF RemoteServices AsyncProxy API
org.eclipse.ecf.sharedobject ECF SharedObject API
org.eclipse.osgi.services.remoteserviceadmin OSGi RSA API
Bundle-SymbolicName Bundle-Name
org.eclipse.core.jobs Eclipse Jobs Mechanism
org.eclipse.equinox.concurrent Equinox Concurrent API
org.eclipse.ecf ECF Core Bundle
org.eclipse.ecf.discovery ECF Discovery API Bundle
org.eclipse.ecf.identity ECF Identity Bundle
org.eclipse.ecf.osgi.services.distribution ECF RSA Basic Topology Manager
org.eclipse.ecf.osgi.services.remoteserviceadmin ECF RSA Implementation
org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy ECF RSA Proxy
org.eclipse.ecf.provider ECF Generic Provider
org.eclipse.ecf.provider.jmdns ECF Discovery Zeroconf/JMDNS Provider
org.eclipse.ecf.provider.remoteservice ECF Generic Provider RemoteServices Support
org.eclipse.ecf.remoteservice ECF RemoteServices API
org.eclipse.ecf.remoteservice.asyncproxy ECF RemoteServices AsyncProxy API
org.eclipse.ecf.sharedobject ECF SharedObject API
org.eclipse.osgi.services.remoteserviceadmin OSGi RSA API
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
21
 Discovery
 Zeroconf/aka Bonjour/Rendevous (JmDNS) org.eclipse.ecf.provider.jmdns
 jSLP aka SLP/RFC2608 org.eclipse.ecf.provider.jslp
 Distribution Provider
 Generic Provider
org.eclipse.ecf.provider
org.eclipse.ecf.provider.remoteservice
 r-OSGi Provider
org.eclipse.ecf.provider.r_osgi
ch.ethz.iks.r_osgi.remote
 Apache CXF Jax-RS Implementation
org.eclipse.ecf.provider.cxf.server
org.eclipse.ecf.provider.jaxrs.server
org.eclipse.ecf.provider.jaxrs
 …
ECF – Providers
https://wiki.eclipse.org/Distribution_Providers
https://github.com/apache/cxf-dosgi
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
22
Troubleshooting with Equinox
 Bundles that need to auto-started
 org.eclipse.osgi
 org.apache.felix.scr
 org.eclipse.equinox.event
 org.eclipse.ecf.osgi.services.distribution
 org.eclipse.ecf.provider.jmdns
 org.eclipse.ecf.provider.remoteservice
 On the producer side when using a product file additional bundles needed
 org.eclipse.equinox.app
 org.eclipse.equinox.registry
 On the consumer side
 Eclipse RCP and @Service: configure the service interface bundles for a lower start level
than the default
 Eclipse RCP with low level OSGi API: ensure the bundle is started (UI bundles are typically
not started)
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
23
 Simple at service implementation
 Complicated at runtime definition
 Even more complicated on DevOps side
 Fallacies of Distributed Computing
https://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
 Service interface evolution
 …
 Developer specifies topology via service property, not the administrator
Conclusion
DEMO
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
25
Demo Setup
Consumer with local service
PC
Service Producer
PC
Service Producer
Raspberry Pi
Service Producer
REFERENCES
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
27
 Neil Bartlett - Scaling and Orchestrating Microservices with OSGi
https://de.slideshare.net/mfrancis/scaling-and-orchestrating-
microservices-with-osgi-n-bartlett
 Achim Nierbeck – Microservices and OSGi – running with Apache Karaf
https://de.slideshare.net/AchimNierbeck/microservices-
osgirunningwithapachekaraf
 Christian Schneider – Lean microservices on OSGi
https://de.slideshare.net/ChristianSchneider3/lean-microservices-on-osgi
 Graham Charters - Microservices & OSGi - Better Together?
https://de.slideshare.net/mfrancis/microservices-osgi-better-together-
graham-charters
References
Microservices with OSGi
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
28
References
 Wim Jongman - How to cook an egg with the Eclipse Communication
Framework
http://www.eclipsecon.org/europe2014/sites/default/files/slides/How%20to
%20Cook%20an%20Egg%20with%20the%20Eclipse%20Communication
%20Framework.pdf
 Christoph Keimel – Powering a Live Escape Game with ECF & e(fx)clipse
https://de.slideshare.net/keimel/powering-a-live-escape-game-with-ecf-
and-efxclipse
OSGi Remote Services
Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017
© Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
29
Evaluate the Sessions
Sign in and vote at eclipsecon.org
- 1 + 10

Weitere ähnliche Inhalte

Ähnlich wie Microservices with OSGi - D Fauth

Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
DNUG e.V.
 
Deutsche Wolke
Deutsche WolkeDeutsche Wolke
Deutsche Wolke
Thomas Uhl
 
Li So G Osci
Li So G OsciLi So G Osci
Li So G OsciCloudcamp
 
Sbs unternehmenspräsentation v14.3.8
Sbs unternehmenspräsentation v14.3.8Sbs unternehmenspräsentation v14.3.8
Sbs unternehmenspräsentation v14.3.8
Joschka Gerrit Bronst
 
2016 9000 0013_pcc_integrierte_struktur_001
2016 9000 0013_pcc_integrierte_struktur_0012016 9000 0013_pcc_integrierte_struktur_001
2016 9000 0013_pcc_integrierte_struktur_001
Ulrich Schmidt
 
Hosting Provider Summit Mai 2012
Hosting Provider Summit Mai 2012Hosting Provider Summit Mai 2012
Hosting Provider Summit Mai 2012Thomas Uhl
 
Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
Christian Baranowski
 
SAP Build Process Automation: Hands-on Session
SAP Build Process Automation: Hands-on SessionSAP Build Process Automation: Hands-on Session
SAP Build Process Automation: Hands-on Session
IBsolution GmbH
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
QAware GmbH
 
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
NETWAYS
 
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
NETWAYS
 
Adruni Ishan - applord Unternehmenspräsentation
Adruni Ishan - applord UnternehmenspräsentationAdruni Ishan - applord Unternehmenspräsentation
Adruni Ishan - applord UnternehmenspräsentationAdruni Ishan
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
Oliver Lemm
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
 
Microprofile.io
Microprofile.io Microprofile.io
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114
Georg Klauser
 
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer" All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
Intland Software GmbH
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
Frank Rahn
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
Robin Sedlaczek
 

Ähnlich wie Microservices with OSGi - D Fauth (20)

Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 
Deutsche Wolke
Deutsche WolkeDeutsche Wolke
Deutsche Wolke
 
Li So G Osci
Li So G OsciLi So G Osci
Li So G Osci
 
Sbs unternehmenspräsentation v14.3.8
Sbs unternehmenspräsentation v14.3.8Sbs unternehmenspräsentation v14.3.8
Sbs unternehmenspräsentation v14.3.8
 
2016 9000 0013_pcc_integrierte_struktur_001
2016 9000 0013_pcc_integrierte_struktur_0012016 9000 0013_pcc_integrierte_struktur_001
2016 9000 0013_pcc_integrierte_struktur_001
 
Hosting Provider Summit Mai 2012
Hosting Provider Summit Mai 2012Hosting Provider Summit Mai 2012
Hosting Provider Summit Mai 2012
 
Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
 
SAP Build Process Automation: Hands-on Session
SAP Build Process Automation: Hands-on SessionSAP Build Process Automation: Hands-on Session
SAP Build Process Automation: Hands-on Session
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
 
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
OSMC 2023 | IGNITE: Honeypot Flavors: Open-Source Honeypots and their Use in ...
 
Adruni Ishan - applord Unternehmenspräsentation
Adruni Ishan - applord UnternehmenspräsentationAdruni Ishan - applord Unternehmenspräsentation
Adruni Ishan - applord Unternehmenspräsentation
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Microprofile.io
Microprofile.io Microprofile.io
Microprofile.io
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114
 
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer" All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
 
Hsps2014
Hsps2014Hsps2014
Hsps2014
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 

Mehr von mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
mfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
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...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
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...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
mfrancis
 

Mehr von mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
 

Microservices with OSGi - D Fauth

  • 2. Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 2 Microservices with OSGi Speaker Dirk Fauth Software-Architect Rich Client Systeme Eclipse Committer Robert Bosch GmbH Franz-Oechsle-Straße 4 73207 Plochingen dirk.fauth@de.bosch.com www.bosch.com blog.vogella.com/author/fipro/ Twitter: fipro78
  • 3. Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 3 Microservices with OSGi Speaker Peter Kirschner Developer, Architect, Build and Release Engineer OSS, OSGi & Eclipse Enthusiast Kirschners GmbH Löchgauer Straße 57 74321 Bietigheim-Bissingen peter@kirschners.de GitHub: peterkir.github.io Twitter: peterkir
  • 5. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 5 Motivation  Microservices are one of the current hype topics  A lot of people are actually doing microservices with different approaches  OSGi has a mature service design  OSGi Core R6 – Chapter 5 Service Layer  OSGi Compendium R6 – Chapter 112 Declarative Services  OSGi has specifications for remote services  OSGi Compendium R6 – Chapter 100 Remote Services  OSGi Compendium R6 – Chapter 122 Remote Service Admin Service  There are several talks about OSGi, microservices and remote services  But mostly about architecture, cool demos but little about the technical details
  • 7. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 7 Publish-Find-Bind  Bundles register (publish) services  Bundles get (bind) services  Bundles listen (find) services A BS register (publish) get (bind) listen (find) <<bundle>> <<bundle>><<service>>
  • 8. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 8 Publish-Find-Bind - Remote A S register (publish) <<bundle>> <<service>> A S register (publish) <<bundle>> <<service>> A S register (publish) <<bundle>> <<service>> A S register (publish) <<bundle>> <<service>> B get (bind) listen (find) <<bundle>> S B get (bind) listen (find) <<bundle>> S B get (bind) listen (find) <<bundle>> S B get (bind) listen (find) <<bundle>> S
  • 9. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 9 Remote Services OSGi Compendium Specification R6 – Figure 100.1 Architecture
  • 10. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 10 Terminology  Remote Service (aka Distributed Service)  OSGi service that is available across container boundaries  Distribution Provider  Exports services by creating endpoints  Imports services by creating proxies to access endpoints  Manage policies around the topology  Discover remote services  Endpoint  Communication access mechanism to a remote service that requires some protocol for communications  Topology  Mapping between services and endpoints as well as their communication characteristics
  • 11. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 11 Remote Service Admin OSGi Compendium Specification R6 – Figure 122.1 Remote Service Admin Entities
  • 12. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 12 Terminology  Remote Service Admin Passive Distribution Provider providing the mechanism but actually does not export or import services itself  Topology Manager Provides the policy for importing and exporting services via RSA Implements a topology by using the RSA  Discovery Discover / announce Endpoint Descriptions via some discovery protocol  Endpoint Description Describes an Endpoint via configuration type (name and set of properties)
  • 13. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 13 Remote Service Admin – Export Simplified Service Producer Discovery Topology Manager Remote Service Admin informsinstructs Remote Service Implementation endpoint created by RSA announced by Discovery
  • 14. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 14 Remote Service Admin – Import Simplified Service Consumer Discovery Topology Manager Remote Service Admin learns from instructs Remote Service Implementation endpoint discovered by Discovery proxied by RSA
  • 16. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 16 Remote Service Implementation @Component(property= { "service.exported.interfaces=*", "service.exported.configs=ecf.generic.server" }) public class UppercaseModifier implements StringModifier { @Override public String modify(String input) { return input.toUpperCase(Locale.getDefault()); } } @Component(property= { "service.exported.interfaces=*", "service.exported.configs=ecf.generic.server" }) public class UppercaseModifier implements StringModifier { @Override public String modify(String input) { return input.toUpperCase(Locale.getDefault()); } }
  • 17. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 17 Remote Service Properties  service.exported.interfaces=* Required property to mark a service for export. Specifies which service interfaces should be exported. Using the wildcard it says that all the interfaces that are registered should be exported.  service.exported.configs The configuration types that should be used to export a service. Each configuration type (endpoint type) represents the configuration parameters for endpoints. For example:  ECF Generic Provider = ecf.generic.server  CXF DOSGi provider RS = org.apache.cxf.rs https://wiki.eclipse.org/Distribution_Providers https://github.com/apache/cxf-dosgi
  • 18. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 18 Implementations  Eclipse Communication Framework https://www.eclipse.org/ecf/  Apache Aries Remote Service Admin http://aries.apache.org/modules/rsa.html  Amdatu https://amdatu.org/application/remote/  Paremus RSA https://docs.paremus.com/display/SF113/Remote+Service+implementation  Apache CXF Distributed OSGi (distribution providers for Aries RSA) http://cxf.apache.org/distributed-osgi.html
  • 19. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 19 Required Bundles – Equinox OSGi Application Bundle-SymbolicName Bundle-Name org.fipro.modifier.api Application Bundles org.fipro.modifier.uppercase org.apache.felix.gogo.command OSGi Console org.apache.felix.gogo.runtime org.apache.felix.gogo.shell org.eclipse.equinox.console org.eclipse.osgi Equinox OSGi System Bundle org.eclipse.osgi.services Equinox OSGi Service Interfaces org.eclipse.equinox.common Common Eclipse Runtime org.eclipse.equinox.event Event Admin org.eclipse.equinox.util Equinox Util Bundle org.apache.felix.scr Apache Felix Declarative Services org.eclipse.osgi.util OSGi Utility Classes
  • 20. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 20 Required Bundles – ECF with Generic Provider Bundle-SymbolicName Bundle-Name org.eclipse.core.jobs Eclipse Jobs Mechanism org.eclipse.equinox.concurrent Equinox Concurrent API org.eclipse.ecf ECF Core Bundle org.eclipse.ecf.discovery ECF Discovery API Bundle org.eclipse.ecf.identity ECF Identity Bundle org.eclipse.ecf.osgi.services.distribution ECF RSA Basic Topology Manager org.eclipse.ecf.osgi.services.remoteserviceadmin ECF RSA Implementation org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy ECF RSA Proxy org.eclipse.ecf.provider ECF Generic Provider org.eclipse.ecf.provider.jmdns ECF Discovery Zeroconf/JMDNS Provider org.eclipse.ecf.provider.remoteservice ECF Generic Provider RemoteServices Support org.eclipse.ecf.remoteservice ECF RemoteServices API org.eclipse.ecf.remoteservice.asyncproxy ECF RemoteServices AsyncProxy API org.eclipse.ecf.sharedobject ECF SharedObject API org.eclipse.osgi.services.remoteserviceadmin OSGi RSA API Bundle-SymbolicName Bundle-Name org.eclipse.core.jobs Eclipse Jobs Mechanism org.eclipse.equinox.concurrent Equinox Concurrent API org.eclipse.ecf ECF Core Bundle org.eclipse.ecf.discovery ECF Discovery API Bundle org.eclipse.ecf.identity ECF Identity Bundle org.eclipse.ecf.osgi.services.distribution ECF RSA Basic Topology Manager org.eclipse.ecf.osgi.services.remoteserviceadmin ECF RSA Implementation org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy ECF RSA Proxy org.eclipse.ecf.provider ECF Generic Provider org.eclipse.ecf.provider.jmdns ECF Discovery Zeroconf/JMDNS Provider org.eclipse.ecf.provider.remoteservice ECF Generic Provider RemoteServices Support org.eclipse.ecf.remoteservice ECF RemoteServices API org.eclipse.ecf.remoteservice.asyncproxy ECF RemoteServices AsyncProxy API org.eclipse.ecf.sharedobject ECF SharedObject API org.eclipse.osgi.services.remoteserviceadmin OSGi RSA API
  • 21. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 21  Discovery  Zeroconf/aka Bonjour/Rendevous (JmDNS) org.eclipse.ecf.provider.jmdns  jSLP aka SLP/RFC2608 org.eclipse.ecf.provider.jslp  Distribution Provider  Generic Provider org.eclipse.ecf.provider org.eclipse.ecf.provider.remoteservice  r-OSGi Provider org.eclipse.ecf.provider.r_osgi ch.ethz.iks.r_osgi.remote  Apache CXF Jax-RS Implementation org.eclipse.ecf.provider.cxf.server org.eclipse.ecf.provider.jaxrs.server org.eclipse.ecf.provider.jaxrs  … ECF – Providers https://wiki.eclipse.org/Distribution_Providers https://github.com/apache/cxf-dosgi
  • 22. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 22 Troubleshooting with Equinox  Bundles that need to auto-started  org.eclipse.osgi  org.apache.felix.scr  org.eclipse.equinox.event  org.eclipse.ecf.osgi.services.distribution  org.eclipse.ecf.provider.jmdns  org.eclipse.ecf.provider.remoteservice  On the producer side when using a product file additional bundles needed  org.eclipse.equinox.app  org.eclipse.equinox.registry  On the consumer side  Eclipse RCP and @Service: configure the service interface bundles for a lower start level than the default  Eclipse RCP with low level OSGi API: ensure the bundle is started (UI bundles are typically not started)
  • 23. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 23  Simple at service implementation  Complicated at runtime definition  Even more complicated on DevOps side  Fallacies of Distributed Computing https://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing  Service interface evolution  …  Developer specifies topology via service property, not the administrator Conclusion
  • 24. DEMO
  • 25. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 25 Demo Setup Consumer with local service PC Service Producer PC Service Producer Raspberry Pi Service Producer
  • 27. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 27  Neil Bartlett - Scaling and Orchestrating Microservices with OSGi https://de.slideshare.net/mfrancis/scaling-and-orchestrating- microservices-with-osgi-n-bartlett  Achim Nierbeck – Microservices and OSGi – running with Apache Karaf https://de.slideshare.net/AchimNierbeck/microservices- osgirunningwithapachekaraf  Christian Schneider – Lean microservices on OSGi https://de.slideshare.net/ChristianSchneider3/lean-microservices-on-osgi  Graham Charters - Microservices & OSGi - Better Together? https://de.slideshare.net/mfrancis/microservices-osgi-better-together- graham-charters References
  • 28. Microservices with OSGi Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 28 References  Wim Jongman - How to cook an egg with the Eclipse Communication Framework http://www.eclipsecon.org/europe2014/sites/default/files/slides/How%20to %20Cook%20an%20Egg%20with%20the%20Eclipse%20Communication %20Framework.pdf  Christoph Keimel – Powering a Live Escape Game with ECF & e(fx)clipse https://de.slideshare.net/keimel/powering-a-live-escape-game-with-ecf- and-efxclipse
  • 29. OSGi Remote Services Automotive Service Solutions | AA-AS/EIS2-EU | 24.10.2017 © Robert Bosch GmbH 2017. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen. 29 Evaluate the Sessions Sign in and vote at eclipsecon.org - 1 + 10