SlideShare a Scribd company logo
1 of 27
Download to read offline
June 10-11, 2008 Berlin, Germany
Opening OSGi to the world
Simple integration of services not written in Java
Tobias Wegner
11.06.2008 4:00pm SESSION Track 2
2
Overview
•! The Problem
•! Existing solutions
•! Our proposal
•! Conclusion
3
•! OSGi
•! Amazing technology
•! Fast growing
•! But: Whole platform based on Java
!!Problem: Existing software, other
prosperous platforms
Introduction
4
Beside OSGi
•! „Old“ software
•! Enterprise / industry specific
•! Historically grown over years
•! High migration costs
•! Proprietary software
•! Only available as black box
•! Dedicated API
•! Migration might not even be possible
5
Example
•! Contacts from Outlook
•! User manages his/her address book with Outlook
•! User has a home equipped with intelligent electronics
!!E.g. inHaus in Duisburg
!!When someone calls him on the phone, the caller’s name
should be displayed on the TV
!!The controlling OSGi service platform has to get information
from the user’s address book
6
Requirements
•! Easy to implement
•! Transparent for existing bundles
•! Code reusability
•! Support for various languages
7
Possible solutions
•! Java Native Interface (JNI)
•! Webservices (WS)
•! Universal Plug and Play (UPnP)
•! R-OSGi
8
JNI
•! Allows to call native code
•! Using dynamic libraries (dll, so)
•! Wrapper library
•! Proxy class
•! Security issues
•! No garbage collection
•! Caution with pointers (can change in java, locking)
•! Explicit conversion of certain types
9
Webservices (WS)
•! Based on standards like XML, HTTP
•! Platform & vendor independent
•! Service description
•! No standard driver for import
10
UPnP
•! Discovery
•! Description
•! Control
•! Based on HTTP and SOAP
•! Eventing
•! Import as generic UPnPDevice
11
WS / UPnP Disadvantages
•! XML
•! Not suitable for bigger amounts of data
•! No transparency
•! Manual Service Proxy creation
12
R-OSGi
•! Developed at the ETH Zurich
•! Facilitates distributed OSGi
•! Transparent usage of remote services
•! No changes to existing bundles needed
13
R-OSGi 2
•! Efficient RMI like data transmission
•! Automatic service proxy generation
•! Remote services are entered into local service
registry
•! Discovery through Service Location Protocol
(SLP)
•! Only available for OSGi (Java)
14
R-OSGi architecture
OSGi
R-OSGi
OSGi
R-OSGi
Consumer
Provider
Proxy
Export
Import
15
Idea
•! Porting R-OSGi to other platforms
•! Technical requirements
•! Similar data types
•! Object oriented
•! Reflection
!!.NET
16
OSGi vs. .NET
OSGi .NET
Supported Languages Java C++, C#, Visual Basic,
Java, Fortran, Pascal,
Perl, Python, many
more
Support for various platforms yes yes (by Mono)
Support for software components yes yes
Dynamic software unloading/
update
yes no
17
Example architecture
•! MS Outlook
•! Proprietary
•! Office API
•! .NET programmable !
Outlook Addin
R-OSGi
.NET
OSGi
R-OSGi
18
R-OSGi‘s needs
•! Discovery
•! SLP
•! several implementations available (OpenSLP)
•! can be ported to .NET
•! can be renounced
19
R-OSGi‘s needs 2
•! Proxy generation
•! Class description
•! Members
•! Methods
•! Can be obtained from .NET object using reflection
•! Class file for Service interface
•! Cannot be obtained from .NET "
•! Has to be provided by the developer
20
R-OSGi‘s needs 3
•! Method invocation
•! Java streaming I/O (JS I/O)
•! Serialization of parameters and return value
•! Method and member matching
•! Name is the only mapping mechanism
•! Type for additional validity check
21
JS I/O
•! No compatible counterpart in .NET
•! no serialization / deserialization of Java objects
under .NET
•! Available as open source
•! porting to .NET
•! currently no support for Arrays
•! currently suid has to be provided manually
22
JS I/O 2
•! Similar naming scheme
•! Hierarchical package names
•! Identify corresponding classes by package & name
•! Type handling
•! Simple types explicit
•! Classes recursive
23
R-OSGi.NET System architecture
OSGi
R-OSGi
Service
.NET
R-OSGi.NET
JSI/O.NET
socket connection
HDD Java interface
serialized objects
Service
Proxy
Service
Consumer
24
Sample code
•! Java interface •! C# class
package org.irf.interfaces;
public interface IContactInfo {
public String getContactName(int);
}
public class CIImpl : IContactInfo {
public String getContactName(int i)
{
return <NameFromAddressBook>;
}
}
25
Sample code 2
•! C# code for export
…
IRemoteOSGiService ROSGiService = new R_OSGi.NET.Impl.RemoteOSGiServiceImpl();
CIImpl contactInfoService = new CIImpl();
ROSGiService.RegisterService( „org.irf.interfaces.IContactInfo”,
“C:Temporg.irf.interfaces.jar”,
contactInfoService);
…
26
Conclusion
•! Simple import of services running under .NET into OSGi
•! Support for various languages
•! Transparency
•! Existing bundles can be used
•! Minimal effort to the developer
•! Currently only simple types and classes with simple
types supported
27
Perspective
•! Update to latest R-OSGi version
•! Support for
•! Arrays, hashtables, etc.
•! Eventing
•! For more information
•! http://www.it.irf.uni-dortmund.de/IT/Mitarbeiter/Wegner.php
•! Mail: tobias <dot> wegner <at> tu-dortmund <dot> de

More Related Content

Viewers also liked

Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...mfrancis
 
Osgi Devconeu 2009 Welcome Christer Larsson
Osgi Devconeu 2009 Welcome Christer LarssonOsgi Devconeu 2009 Welcome Christer Larsson
Osgi Devconeu 2009 Welcome Christer LarssonChrister Larsson
 
Platinum Keynote - The Expanding Role of the OSGi Alliance - C Hayman
Platinum Keynote - The Expanding Role of the OSGi Alliance - C HaymanPlatinum Keynote - The Expanding Role of the OSGi Alliance - C Hayman
Platinum Keynote - The Expanding Role of the OSGi Alliance - C Haymanmfrancis
 
Keynote - Internet Home Alliance - T Barra
Keynote - Internet Home Alliance - T BarraKeynote - Internet Home Alliance - T Barra
Keynote - Internet Home Alliance - T Barramfrancis
 
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiangmfrancis
 
Presentatie Duncan Rogers NMD2010 17 juni 2010
Presentatie Duncan Rogers NMD2010 17 juni 2010Presentatie Duncan Rogers NMD2010 17 juni 2010
Presentatie Duncan Rogers NMD2010 17 juni 2010OGZ
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Viewers also liked (8)

Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
 
Osgi Devconeu 2009 Welcome Christer Larsson
Osgi Devconeu 2009 Welcome Christer LarssonOsgi Devconeu 2009 Welcome Christer Larsson
Osgi Devconeu 2009 Welcome Christer Larsson
 
Platinum Keynote - The Expanding Role of the OSGi Alliance - C Hayman
Platinum Keynote - The Expanding Role of the OSGi Alliance - C HaymanPlatinum Keynote - The Expanding Role of the OSGi Alliance - C Hayman
Platinum Keynote - The Expanding Role of the OSGi Alliance - C Hayman
 
Keynote - Internet Home Alliance - T Barra
Keynote - Internet Home Alliance - T BarraKeynote - Internet Home Alliance - T Barra
Keynote - Internet Home Alliance - T Barra
 
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
 
Presentatie Duncan Rogers NMD2010 17 juni 2010
Presentatie Duncan Rogers NMD2010 17 juni 2010Presentatie Duncan Rogers NMD2010 17 juni 2010
Presentatie Duncan Rogers NMD2010 17 juni 2010
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to Opening OSGi to the world- Simple integration of services not written in Java - obias Wegner, TU Dortmund

OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...
OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...
OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...mfrancis
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixMarcel Offermans
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAmfrancis
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...Jean Vanderdonckt
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriensmfrancis
 
GDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsGDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsnhachicha
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseJKI
 
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...mfrancis
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPIAlways up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPIGOG.com dev team
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7Shekhar Gulati
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideTim Burks
 
LF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat17_OpenAPI and gRPC Side-by-SideLF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat17_OpenAPI and gRPC Side-by-SideLF_APIStrat
 
In the Services Network - HW Bitzer
In the Services Network - HW BitzerIn the Services Network - HW Bitzer
In the Services Network - HW Bitzermfrancis
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMmfrancis
 
Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017JoEllen Carter
 
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6ForgeRock
 
Present and Future of the Pharo VM: Headless and Beyond
 Present and Future of the Pharo VM: Headless and Beyond Present and Future of the Pharo VM: Headless and Beyond
Present and Future of the Pharo VM: Headless and BeyondESUG
 

Similar to Opening OSGi to the world- Simple integration of services not written in Java - obias Wegner, TU Dortmund (20)

OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...
OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...
OW2 JOnAS 5.0 Java EE AS- An OSGi Based Integration Platform - François Forna...
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache Felix
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEA
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 
GDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsGDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibs
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything Else
 
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...
Runtime Diagnosis of Stale References in the OSGi Services Platform - Kiev Ga...
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPIAlways up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
 
LF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat17_OpenAPI and gRPC Side-by-SideLF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat17_OpenAPI and gRPC Side-by-Side
 
In the Services Network - HW Bitzer
In the Services Network - HW BitzerIn the Services Network - HW Bitzer
In the Services Network - HW Bitzer
 
RDAP @ .at
RDAP @ .at RDAP @ .at
RDAP @ .at
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
 
Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017
 
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
 
Present and Future of the Pharo VM: Headless and Beyond
 Present and Future of the Pharo VM: Headless and Beyond Present and Future of the Pharo VM: Headless and Beyond
Present and Future of the Pharo VM: Headless and Beyond
 

More from 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 Lyaruumfrancis
 
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
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from 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...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Opening OSGi to the world- Simple integration of services not written in Java - obias Wegner, TU Dortmund

  • 1. June 10-11, 2008 Berlin, Germany Opening OSGi to the world Simple integration of services not written in Java Tobias Wegner 11.06.2008 4:00pm SESSION Track 2
  • 2. 2 Overview •! The Problem •! Existing solutions •! Our proposal •! Conclusion
  • 3. 3 •! OSGi •! Amazing technology •! Fast growing •! But: Whole platform based on Java !!Problem: Existing software, other prosperous platforms Introduction
  • 4. 4 Beside OSGi •! „Old“ software •! Enterprise / industry specific •! Historically grown over years •! High migration costs •! Proprietary software •! Only available as black box •! Dedicated API •! Migration might not even be possible
  • 5. 5 Example •! Contacts from Outlook •! User manages his/her address book with Outlook •! User has a home equipped with intelligent electronics !!E.g. inHaus in Duisburg !!When someone calls him on the phone, the caller’s name should be displayed on the TV !!The controlling OSGi service platform has to get information from the user’s address book
  • 6. 6 Requirements •! Easy to implement •! Transparent for existing bundles •! Code reusability •! Support for various languages
  • 7. 7 Possible solutions •! Java Native Interface (JNI) •! Webservices (WS) •! Universal Plug and Play (UPnP) •! R-OSGi
  • 8. 8 JNI •! Allows to call native code •! Using dynamic libraries (dll, so) •! Wrapper library •! Proxy class •! Security issues •! No garbage collection •! Caution with pointers (can change in java, locking) •! Explicit conversion of certain types
  • 9. 9 Webservices (WS) •! Based on standards like XML, HTTP •! Platform & vendor independent •! Service description •! No standard driver for import
  • 10. 10 UPnP •! Discovery •! Description •! Control •! Based on HTTP and SOAP •! Eventing •! Import as generic UPnPDevice
  • 11. 11 WS / UPnP Disadvantages •! XML •! Not suitable for bigger amounts of data •! No transparency •! Manual Service Proxy creation
  • 12. 12 R-OSGi •! Developed at the ETH Zurich •! Facilitates distributed OSGi •! Transparent usage of remote services •! No changes to existing bundles needed
  • 13. 13 R-OSGi 2 •! Efficient RMI like data transmission •! Automatic service proxy generation •! Remote services are entered into local service registry •! Discovery through Service Location Protocol (SLP) •! Only available for OSGi (Java)
  • 15. 15 Idea •! Porting R-OSGi to other platforms •! Technical requirements •! Similar data types •! Object oriented •! Reflection !!.NET
  • 16. 16 OSGi vs. .NET OSGi .NET Supported Languages Java C++, C#, Visual Basic, Java, Fortran, Pascal, Perl, Python, many more Support for various platforms yes yes (by Mono) Support for software components yes yes Dynamic software unloading/ update yes no
  • 17. 17 Example architecture •! MS Outlook •! Proprietary •! Office API •! .NET programmable ! Outlook Addin R-OSGi .NET OSGi R-OSGi
  • 18. 18 R-OSGi‘s needs •! Discovery •! SLP •! several implementations available (OpenSLP) •! can be ported to .NET •! can be renounced
  • 19. 19 R-OSGi‘s needs 2 •! Proxy generation •! Class description •! Members •! Methods •! Can be obtained from .NET object using reflection •! Class file for Service interface •! Cannot be obtained from .NET " •! Has to be provided by the developer
  • 20. 20 R-OSGi‘s needs 3 •! Method invocation •! Java streaming I/O (JS I/O) •! Serialization of parameters and return value •! Method and member matching •! Name is the only mapping mechanism •! Type for additional validity check
  • 21. 21 JS I/O •! No compatible counterpart in .NET •! no serialization / deserialization of Java objects under .NET •! Available as open source •! porting to .NET •! currently no support for Arrays •! currently suid has to be provided manually
  • 22. 22 JS I/O 2 •! Similar naming scheme •! Hierarchical package names •! Identify corresponding classes by package & name •! Type handling •! Simple types explicit •! Classes recursive
  • 23. 23 R-OSGi.NET System architecture OSGi R-OSGi Service .NET R-OSGi.NET JSI/O.NET socket connection HDD Java interface serialized objects Service Proxy Service Consumer
  • 24. 24 Sample code •! Java interface •! C# class package org.irf.interfaces; public interface IContactInfo { public String getContactName(int); } public class CIImpl : IContactInfo { public String getContactName(int i) { return <NameFromAddressBook>; } }
  • 25. 25 Sample code 2 •! C# code for export … IRemoteOSGiService ROSGiService = new R_OSGi.NET.Impl.RemoteOSGiServiceImpl(); CIImpl contactInfoService = new CIImpl(); ROSGiService.RegisterService( „org.irf.interfaces.IContactInfo”, “C:Temporg.irf.interfaces.jar”, contactInfoService); …
  • 26. 26 Conclusion •! Simple import of services running under .NET into OSGi •! Support for various languages •! Transparency •! Existing bundles can be used •! Minimal effort to the developer •! Currently only simple types and classes with simple types supported
  • 27. 27 Perspective •! Update to latest R-OSGi version •! Support for •! Arrays, hashtables, etc. •! Eventing •! For more information •! http://www.it.irf.uni-dortmund.de/IT/Mitarbeiter/Wegner.php •! Mail: tobias <dot> wegner <at> tu-dortmund <dot> de