SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
© 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
HOW DENSE IS THE CLOUD OF OSGI?
Tom Watson
IBM
June 11th 2014
OSGi Alliance Marketing © 2008-2010 . All Rights ReservedPage 1
Page 2 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Agenda
• Applications and OSGi
• Cost of deploying an application
• Sharing resources, density and multi-tenant VMs
• Equinox enhancements to increase density
• Limitations
Page 3 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Applications
• What is Required to Run
• JVM
JVM
Page 4 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications
• What is Required to Run
• JVM
• OSGi Framework
Framework
Page 5 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications
• What is Required to Run
• JVM
• OSGi Framework
• A set of bundles
Framework
Bundles
Page 6 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Applications – Cost
• Each OSGi application instance pays the overhead cost
• JVM
• Framework
• A set of bundles
JVM
Framework
A B
Bundles
X Y Z
JVM
Framework
A B
Bundles
JVM
Framework
A B
Bundles
Page 7 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenancy vs. Multi-instance
• Multitenancy refers to a principle in software architecture where a single instance of the software runs on a
server, serving multiple client organizations (tenants).
• Multitenancy is contrasted with a multi-instance architecture where separate software instances (or
hardware systems) are set up for different client organizations.
• With a multitenant architecture, a software application is designed to virtually partition its data and
configuration, and each client organization works with a customized virtual application instance.
Page 8 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Applications - Subsystems
• OSGi Subsystems can help
• Single JVM
JVM
Page 9 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications - Subsystems
• OSGi Subsystems can help
• Single JVM
• Single OSGi Framework
Framework
Page 10 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications - Subsystems
• OSGi Subsystems can help
• Single JVM
• Single OSGi Framework
• Applications are isolated with a subsystem (tenant?)
Framework
Bundles Bundles
X Y
A B A B
Page 11 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications - Subsystems
• OSGi Subsystems can help
• Single JVM
• Single OSGi Framework
• Applications are isolated with a subsystem (tenant?)
• Packages and services can be shared directly
Framework
Bundles Bundles
X Y
Root
A B
Shared Bundles
Page 12 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
JVM
OSGi Applications - Subsystems
• Advantages
• Maximize sharing
• Directly share OSGi Services and other shared objects.
• Disadvantages
• Applications must play nicely with shared resources
• Unable to monitor resource consumption
• Requires modifications to component models to understand
subsystems
• DS, Blueprint, Config ...
Framework
Bundles Bundles
X Y
Root
A B
Shared Bundles
Page 13 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenant JVM
• A standard java invocation creates a dedicated (non-shared) JVM in
each processes
JVM
java1
JVM
java2
JVM
java3
Page 14 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenant JVM
• A standard java invocation creates a dedicated (non-shared) JVM in
each processes
• IBM's Multitenant JVM puts a lightweight 'proxy' JVM in each java
invocation. The 'proxy' knows how to communicate with the shared
JVM deamon called javad
• javad is launched and shuts down automatically
• No changes required to applications
• javad process is where aggressive sharing of runtime artifacts happen
JVM
java1
JVM
java2
JVM
java3
proxy
java1
proxy
java2
proxy
java3
JVM
javad
Page 15 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenant JVM – Tenant Isolation
• Each tenant behaves like a dedicated JVM
• Static APIs only effect the tenant they are being called from: System.exit, System.getProperty
• No visibility to other tenant threads
• Sharing occurs at the class loader
• Eliminates loading of duplicate classes that are shared across applications
• Allows the sharing of compiled (JIT) code
• A single GC instead of one for each JVM instance
Page 16 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenant JVM – Class Loaders
global scope (shared)
Bootstrap loader
Ext loader
App loader App loader
tenant scope #1 (private) tenant scope #2 (private)
Sharing only the
classes available
from boot and ext
All other classes are
NOT shared
Page 17 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Multi-tenant JVM – OSGi Applications
X
JVM
javad
• Each OSGi application instance pays the overhead cost
• JVM – now sharing the JVM, boot and ext class loaders
• Framework – Loaded above the JVM, not shared
• Bundles – Loaded above the framework, not shared
proxy
java1
Yproxy
java2
Zproxy
java3
Boot CP
Framework
A B
Bundles
Framework
A B
Bundles
Framework
A B
Bundles
TenantXTenantYTenantZ
Page 18 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Increasing Density
• Multi-tenant JVM increases density by loading more classes with class
loaders in the shared scope
• Boot and ext class loaders can be shared because they are consistent
across tenants
• OSGi is dynamic!
• Bundles are resolved at runtime and may get different wirings depending on what is installed
• Dynamic imports allow the wiring for a particular bundle to change over time
• OSGi weaving hooks may weave bytes differently across tenants
Page 19 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
What Can We Share?
• The launcher and the framework implementation
• Adding the launcher and framework implementation to the boot or ext loader allows the framework
implementation classes to be shared
• But most OSGi applications (hopefully) have more code than the framework
implementation has
• What rules are required to allow OSGi application classes to be shared?
• What limitations do these rules impose on the bundles that can be shared?
Page 20 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders
• A subset of declared requirement types effect the OSGi class loader
• The package, bundle and host requirements all have an effect on the overall OSGi class loader graph.
• Resolved bundles form a directed graph between the requirers and the
providers
• Connections are referred to as wires
• A wiring for a bundle is the complete list of required wires
• If the wiring for a bundle is identical between multiple tenants then it has potential for sharing
Page 21 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
Bundles
Page 22 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
SHA: A
SHA: C SHA: D
SHA: B
SHA: E SHA: F
Bundles
Page 23 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
SHA: A
SHA: C SHA: D
SHA: B
SHA: E SHA: F
Bundles
SHA: ?
Page 24 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
SHA: A
SHA: C SHA: D
SHA: B
SHA: E SHA: F
Bundles
SHA: ?
Page 25 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
SHA: A
SHA: C SHA: D
SHA: B
P B
SHA: E SHA: F
Bundles
SHA: ?
A
Page 26 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
• Merge in SHA of attached fragments
SHA: A
SHA: C SHA: D
SHA: B
H
P B
SHA: E SHA: F
Bundles
SHA: ?
A + B
Page 27 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
• Merge in SHA of attached fragments
• Merge in SHA of resources providing package and bundle wires
SHA: A
SHA: C SHA: D
SHA: B
H
P B
SHA: E SHA: F
Bundles
SHA: ?
A + B + C
Page 28 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
• Merge in SHA of attached fragments
• Merge in SHA of resources providing package and bundle wires
SHA: A
SHA: C SHA: D
SHA: B
H
P B
SHA: E SHA: F
Bundles
SHA: ?
A + B + C + D
Page 29 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
• Merge in SHA of attached fragments
• Merge in SHA of resources providing package and bundle wires
• Perform transitive closure for package and bundle requirements
SHA: A
SHA: C SHA: D
SHA: B
H
P B
SHA: E SHA: F
P B
Bundles
SHA: ?
A + B + C + D + E + F = Unique CL ID
Page 30 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loaders – Unique Wirings
• Identify bundle resources
• Calculate the SHA of the content
• Only support jar'ed because it is easy to compute the SHA
• Dynamic imports cause unknown SHA
• Identify bundle wiring
• Build a SHA based on bundle content SHA values
• Seed with the SHA of the wiring's resource
• Merge in SHA of attached fragments
• Merge in SHA of resources providing package and bundle wires
• Perform transitive closure for package and bundle requirements
• If an unknown content SHA is encountered then the wiring SHA is unknown (not
shared)
SHA: A
SHA: C SHA: D
SHA: B
H
P B
SHA: E SHA: F
P B
Bundles
SHA: ?
P
A + B + C + D + E + F + ? = ?
Page 31 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
New java process X is started and a
Framework instance is created in for
tenant X in javad. Framework classes
are shared.
X
javad
proxy
java1
Framework
TenantX
JVM
Boot CP
Framework
Page 32 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
X
javad
proxy
java1
Framework
Bundles
TenantX
A B
C D
JVM
Boot CP
A B C
Framework
Bundles A, B, C & D are installed. Wiring unique ID
(SHA) is successfully computed for A, B and C.
Shared loaders A, B & C are created. A tenant
specific loader D is created.
Page 33 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
X
javad
proxy
java1
Yproxy
java2
Framework
Bundles
Framework
TenantXTenantY
A B
C D
JVM
Boot CP
A B C
Framework
New java process Y is started and a
Framework instance is created in for
tenant Y in javad. Framework classes
are shared.
Page 34 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
X
JVM
javad
proxy
java1
Yproxy
java2
Boot CP
Framework
Bundles
Framework
Bundles
TenantXTenantY
A B C
A B
C D
A B
EFramework C
Bundles A, B, C & E are installed. Wiring unique ID
(SHA) is successfully computed for A, B and C.
Shared loaders A, B & C are found. A tenant
specific loader E is created.
Page 35 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
Even though each tenant does not
have identical bundles installed they
are able to share classes that are
common
X
javad
proxy
java1
Yproxy
java2
Zproxy
java3
Framework
Bundles
Framework
Bundles
Framework
Bundles
TenantXTenantYTenantZ
A B
C D
A B
A B
F
EC
C
JVM
Boot CP
A B C
Framework
Page 36 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Discovering Shared OSGi Loaders
In order to provide proper isolation objects are not shared, only classes
and loaders
This is not as dense as using subsystems, but it provides much better
isolation
X
javad
proxy
java1
Yproxy
java2
Zproxy
java3
Framework
Bundles
Framework
Bundles
Framework
Bundles
TenantXTenantYTenantZ
A B
C D
A B
A B
F
EC
C
JVM
Boot CP
A B C
Framework
Page 37 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Multiplexing
• OSGi loaders must implement the BundleReference interface
• ProtectionDomain must provide the correct answers for each tenant
• Resource URLs must be tenant specific
javad
Framework
Bundles
TenantX
A
A
Page 38 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Multiplexing
• OSGi loaders must implement the BundleReference interface
• ProtectionDomain must provide the correct answers for each tenant
• Resource URLs must be tenant specific
javad
Framework
Bundles
TenantX
A{ } Registers
A
tenantMap
tenantID_X → clTenant_X
Page 39 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Multiplexing
• OSGi loaders must implement the BundleReference interface
• ProtectionDomain must provide the correct answers for each tenant
• Resource URLs must be tenant specific
javad
Framework
Bundles
TenantX
A
Framework
Bundles
TenantY
A
Registers
A
tenantMap
tenantID_X → clTenant_X
tenantID_Y → clTenant_Y{ }
Page 40 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Multiplexing
• OSGi loaders must implement the BundleReference interface
• ProtectionDomain must provide the correct answers for each tenant
• Resource URLs must be tenant specific
javad
Framework
Bundles
TenantX
A
Framework
Bundles
TenantY
A
tenantID_X → clTenant_X
tenantID_Y → clTenant_Y
A
((BundleReference) loaderA).getBundle();
tenantMap
getBundle()
{ }
Page 41 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Multiplexing
• OSGi loaders must implement the BundleReference interface
• ProtectionDomain must provide the correct answers for each tenant
• Resource URLs must be tenant specific
javad
Framework
Bundles
TenantX
A
Framework
Bundles
TenantY
A
tenantID_X → clTenant_X
tenantID_Y → clTenant_Y
A
((BundleReference) loaderA).getBundle();
tenantMap
tenantMap.get(tenantID_X).getBundle();
getBundle()
{ }
Page 42 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
IBM JVM Multitenant - Notes
• Available in Java 7 (64-bit)
• Multitenant support is available as a tech preview
https://www.ibm.com/developerworks/java/jdk/linux/download.html
• Additional patches to the VM are necessary
• Create and discovery of shared class loaders with unique IDs
• Equinox enhancements are implemented as an equinox extension on top of Luna.
Page 43 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
Results?
Memory (megabytes)
0
50
100
150
200
250
300
350
400
450
500
Startup Time (seconds)
0
5
10
15
20
25
30
35
40
45
Standard MT
MT + Framework MT + Framework + Bundles
• Starting 10 Liberty Servers
• Minimal server configuration
• Servlet support only + OSGi console
• About 75 bundles, most all shareable
• MT javad fully initialized
• Shared class loaders already created
• Classes loaded for startup
• JIT cache populated
Page 44 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
OSGi Loader - Limitations
• Dynamic imports kill ability to share
• Must not share class loaders for bundles that need weaving
• Native code may be able to be shared if no global state is stored in native
code
• Lazy activated bundles are not supported
Page 45 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
New OSGi Specifications
• Last week (week of June 2nd
) the OSGi Core Release 6 Specification received its final
approval and will be available this week to the public for downloading.
– http://www.osgi.org/Specifications/HomePage
• Also happening last week, the OSGi Board of Directors approved the publication of an Early
Draft Specification of OSGi Enterprise Release 6 for downloading.
– http://www.osgi.org/Specifications/Drafts
Page 46 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license
IBM and WebSphere are trademarks or registered trademarks of International Business Machines Corp.,
registered in many jurisdictions worldwide.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
Other product and service names might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the Web at “Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml.
Trademarks

Weitere ähnliche Inhalte

Andere mochten auch

OSGi and Private Clouds
OSGi and Private CloudsOSGi and Private Clouds
OSGi and Private Cloudsmfrancis
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyermfrancis
 
Better WebApp Development using OSGi - Raymond Auge
Better WebApp Development using OSGi - Raymond AugeBetter WebApp Development using OSGi - Raymond Auge
Better WebApp Development using OSGi - Raymond Augemfrancis
 
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesik
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A GrzesikOSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesik
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesikmfrancis
 
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012mfrancis
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the CloudBert Ertman
 
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...mfrancis
 
Complexity, Components & Clouds (Paremus)
Complexity, Components & Clouds (Paremus)Complexity, Components & Clouds (Paremus)
Complexity, Components & Clouds (Paremus)mfrancis
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Makmfrancis
 
Building Secure OSGi Applications
Building Secure OSGi ApplicationsBuilding Secure OSGi Applications
Building Secure OSGi ApplicationsMarcel Offermans
 
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil BartlettDeploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlettmfrancis
 
RESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with DockerRESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with DockerBertrand Delacretaz
 
A Microservices Architecture That Emphasizes Rapid Development (That Conference)
A Microservices Architecture That Emphasizes Rapid Development (That Conference)A Microservices Architecture That Emphasizes Rapid Development (That Conference)
A Microservices Architecture That Emphasizes Rapid Development (That Conference)Rob Hruska
 
Osgi based cloud system architecture - Open Cloud Engine
Osgi based cloud system architecture - Open Cloud EngineOsgi based cloud system architecture - Open Cloud Engine
Osgi based cloud system architecture - Open Cloud EngineuEngine Solutions
 
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt BowersHow to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowersmfrancis
 
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...mfrancis
 

Andere mochten auch (18)

OSGi Cloud Ecosystems
OSGi Cloud EcosystemsOSGi Cloud Ecosystems
OSGi Cloud Ecosystems
 
OSGi and Private Clouds
OSGi and Private CloudsOSGi and Private Clouds
OSGi and Private Clouds
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyer
 
Better WebApp Development using OSGi - Raymond Auge
Better WebApp Development using OSGi - Raymond AugeBetter WebApp Development using OSGi - Raymond Auge
Better WebApp Development using OSGi - Raymond Auge
 
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesik
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A GrzesikOSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesik
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesik
 
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
 
Complexity, Components & Clouds (Paremus)
Complexity, Components & Clouds (Paremus)Complexity, Components & Clouds (Paremus)
Complexity, Components & Clouds (Paremus)
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Mak
 
Building Secure OSGi Applications
Building Secure OSGi ApplicationsBuilding Secure OSGi Applications
Building Secure OSGi Applications
 
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil BartlettDeploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
 
RESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with DockerRESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with Docker
 
A Microservices Architecture That Emphasizes Rapid Development (That Conference)
A Microservices Architecture That Emphasizes Rapid Development (That Conference)A Microservices Architecture That Emphasizes Rapid Development (That Conference)
A Microservices Architecture That Emphasizes Rapid Development (That Conference)
 
Osgi based cloud system architecture - Open Cloud Engine
Osgi based cloud system architecture - Open Cloud EngineOsgi based cloud system architecture - Open Cloud Engine
Osgi based cloud system architecture - Open Cloud Engine
 
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt BowersHow to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
 
2015 oce garuda
2015 oce garuda2015 oce garuda
2015 oce garuda
 
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
 

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

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...
 
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)
 

Kürzlich hochgeladen

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Kürzlich hochgeladen (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

How dense is the Cloud of OSGi - T Watson

  • 1. © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license HOW DENSE IS THE CLOUD OF OSGI? Tom Watson IBM June 11th 2014 OSGi Alliance Marketing © 2008-2010 . All Rights ReservedPage 1
  • 2. Page 2 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Agenda • Applications and OSGi • Cost of deploying an application • Sharing resources, density and multi-tenant VMs • Equinox enhancements to increase density • Limitations
  • 3. Page 3 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Applications • What is Required to Run • JVM JVM
  • 4. Page 4 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications • What is Required to Run • JVM • OSGi Framework Framework
  • 5. Page 5 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications • What is Required to Run • JVM • OSGi Framework • A set of bundles Framework Bundles
  • 6. Page 6 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Applications – Cost • Each OSGi application instance pays the overhead cost • JVM • Framework • A set of bundles JVM Framework A B Bundles X Y Z JVM Framework A B Bundles JVM Framework A B Bundles
  • 7. Page 7 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenancy vs. Multi-instance • Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). • Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. • With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance.
  • 8. Page 8 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Applications - Subsystems • OSGi Subsystems can help • Single JVM JVM
  • 9. Page 9 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications - Subsystems • OSGi Subsystems can help • Single JVM • Single OSGi Framework Framework
  • 10. Page 10 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications - Subsystems • OSGi Subsystems can help • Single JVM • Single OSGi Framework • Applications are isolated with a subsystem (tenant?) Framework Bundles Bundles X Y A B A B
  • 11. Page 11 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications - Subsystems • OSGi Subsystems can help • Single JVM • Single OSGi Framework • Applications are isolated with a subsystem (tenant?) • Packages and services can be shared directly Framework Bundles Bundles X Y Root A B Shared Bundles
  • 12. Page 12 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license JVM OSGi Applications - Subsystems • Advantages • Maximize sharing • Directly share OSGi Services and other shared objects. • Disadvantages • Applications must play nicely with shared resources • Unable to monitor resource consumption • Requires modifications to component models to understand subsystems • DS, Blueprint, Config ... Framework Bundles Bundles X Y Root A B Shared Bundles
  • 13. Page 13 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenant JVM • A standard java invocation creates a dedicated (non-shared) JVM in each processes JVM java1 JVM java2 JVM java3
  • 14. Page 14 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenant JVM • A standard java invocation creates a dedicated (non-shared) JVM in each processes • IBM's Multitenant JVM puts a lightweight 'proxy' JVM in each java invocation. The 'proxy' knows how to communicate with the shared JVM deamon called javad • javad is launched and shuts down automatically • No changes required to applications • javad process is where aggressive sharing of runtime artifacts happen JVM java1 JVM java2 JVM java3 proxy java1 proxy java2 proxy java3 JVM javad
  • 15. Page 15 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenant JVM – Tenant Isolation • Each tenant behaves like a dedicated JVM • Static APIs only effect the tenant they are being called from: System.exit, System.getProperty • No visibility to other tenant threads • Sharing occurs at the class loader • Eliminates loading of duplicate classes that are shared across applications • Allows the sharing of compiled (JIT) code • A single GC instead of one for each JVM instance
  • 16. Page 16 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenant JVM – Class Loaders global scope (shared) Bootstrap loader Ext loader App loader App loader tenant scope #1 (private) tenant scope #2 (private) Sharing only the classes available from boot and ext All other classes are NOT shared
  • 17. Page 17 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Multi-tenant JVM – OSGi Applications X JVM javad • Each OSGi application instance pays the overhead cost • JVM – now sharing the JVM, boot and ext class loaders • Framework – Loaded above the JVM, not shared • Bundles – Loaded above the framework, not shared proxy java1 Yproxy java2 Zproxy java3 Boot CP Framework A B Bundles Framework A B Bundles Framework A B Bundles TenantXTenantYTenantZ
  • 18. Page 18 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Increasing Density • Multi-tenant JVM increases density by loading more classes with class loaders in the shared scope • Boot and ext class loaders can be shared because they are consistent across tenants • OSGi is dynamic! • Bundles are resolved at runtime and may get different wirings depending on what is installed • Dynamic imports allow the wiring for a particular bundle to change over time • OSGi weaving hooks may weave bytes differently across tenants
  • 19. Page 19 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license What Can We Share? • The launcher and the framework implementation • Adding the launcher and framework implementation to the boot or ext loader allows the framework implementation classes to be shared • But most OSGi applications (hopefully) have more code than the framework implementation has • What rules are required to allow OSGi application classes to be shared? • What limitations do these rules impose on the bundles that can be shared?
  • 20. Page 20 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders • A subset of declared requirement types effect the OSGi class loader • The package, bundle and host requirements all have an effect on the overall OSGi class loader graph. • Resolved bundles form a directed graph between the requirers and the providers • Connections are referred to as wires • A wiring for a bundle is the complete list of required wires • If the wiring for a bundle is identical between multiple tenants then it has potential for sharing
  • 21. Page 21 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content Bundles
  • 22. Page 22 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA SHA: A SHA: C SHA: D SHA: B SHA: E SHA: F Bundles
  • 23. Page 23 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA SHA: A SHA: C SHA: D SHA: B SHA: E SHA: F Bundles SHA: ?
  • 24. Page 24 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values SHA: A SHA: C SHA: D SHA: B SHA: E SHA: F Bundles SHA: ?
  • 25. Page 25 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource SHA: A SHA: C SHA: D SHA: B P B SHA: E SHA: F Bundles SHA: ? A
  • 26. Page 26 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource • Merge in SHA of attached fragments SHA: A SHA: C SHA: D SHA: B H P B SHA: E SHA: F Bundles SHA: ? A + B
  • 27. Page 27 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource • Merge in SHA of attached fragments • Merge in SHA of resources providing package and bundle wires SHA: A SHA: C SHA: D SHA: B H P B SHA: E SHA: F Bundles SHA: ? A + B + C
  • 28. Page 28 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource • Merge in SHA of attached fragments • Merge in SHA of resources providing package and bundle wires SHA: A SHA: C SHA: D SHA: B H P B SHA: E SHA: F Bundles SHA: ? A + B + C + D
  • 29. Page 29 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource • Merge in SHA of attached fragments • Merge in SHA of resources providing package and bundle wires • Perform transitive closure for package and bundle requirements SHA: A SHA: C SHA: D SHA: B H P B SHA: E SHA: F P B Bundles SHA: ? A + B + C + D + E + F = Unique CL ID
  • 30. Page 30 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loaders – Unique Wirings • Identify bundle resources • Calculate the SHA of the content • Only support jar'ed because it is easy to compute the SHA • Dynamic imports cause unknown SHA • Identify bundle wiring • Build a SHA based on bundle content SHA values • Seed with the SHA of the wiring's resource • Merge in SHA of attached fragments • Merge in SHA of resources providing package and bundle wires • Perform transitive closure for package and bundle requirements • If an unknown content SHA is encountered then the wiring SHA is unknown (not shared) SHA: A SHA: C SHA: D SHA: B H P B SHA: E SHA: F P B Bundles SHA: ? P A + B + C + D + E + F + ? = ?
  • 31. Page 31 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders New java process X is started and a Framework instance is created in for tenant X in javad. Framework classes are shared. X javad proxy java1 Framework TenantX JVM Boot CP Framework
  • 32. Page 32 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders X javad proxy java1 Framework Bundles TenantX A B C D JVM Boot CP A B C Framework Bundles A, B, C & D are installed. Wiring unique ID (SHA) is successfully computed for A, B and C. Shared loaders A, B & C are created. A tenant specific loader D is created.
  • 33. Page 33 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders X javad proxy java1 Yproxy java2 Framework Bundles Framework TenantXTenantY A B C D JVM Boot CP A B C Framework New java process Y is started and a Framework instance is created in for tenant Y in javad. Framework classes are shared.
  • 34. Page 34 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders X JVM javad proxy java1 Yproxy java2 Boot CP Framework Bundles Framework Bundles TenantXTenantY A B C A B C D A B EFramework C Bundles A, B, C & E are installed. Wiring unique ID (SHA) is successfully computed for A, B and C. Shared loaders A, B & C are found. A tenant specific loader E is created.
  • 35. Page 35 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders Even though each tenant does not have identical bundles installed they are able to share classes that are common X javad proxy java1 Yproxy java2 Zproxy java3 Framework Bundles Framework Bundles Framework Bundles TenantXTenantYTenantZ A B C D A B A B F EC C JVM Boot CP A B C Framework
  • 36. Page 36 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Discovering Shared OSGi Loaders In order to provide proper isolation objects are not shared, only classes and loaders This is not as dense as using subsystems, but it provides much better isolation X javad proxy java1 Yproxy java2 Zproxy java3 Framework Bundles Framework Bundles Framework Bundles TenantXTenantYTenantZ A B C D A B A B F EC C JVM Boot CP A B C Framework
  • 37. Page 37 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Multiplexing • OSGi loaders must implement the BundleReference interface • ProtectionDomain must provide the correct answers for each tenant • Resource URLs must be tenant specific javad Framework Bundles TenantX A A
  • 38. Page 38 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Multiplexing • OSGi loaders must implement the BundleReference interface • ProtectionDomain must provide the correct answers for each tenant • Resource URLs must be tenant specific javad Framework Bundles TenantX A{ } Registers A tenantMap tenantID_X → clTenant_X
  • 39. Page 39 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Multiplexing • OSGi loaders must implement the BundleReference interface • ProtectionDomain must provide the correct answers for each tenant • Resource URLs must be tenant specific javad Framework Bundles TenantX A Framework Bundles TenantY A Registers A tenantMap tenantID_X → clTenant_X tenantID_Y → clTenant_Y{ }
  • 40. Page 40 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Multiplexing • OSGi loaders must implement the BundleReference interface • ProtectionDomain must provide the correct answers for each tenant • Resource URLs must be tenant specific javad Framework Bundles TenantX A Framework Bundles TenantY A tenantID_X → clTenant_X tenantID_Y → clTenant_Y A ((BundleReference) loaderA).getBundle(); tenantMap getBundle() { }
  • 41. Page 41 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Multiplexing • OSGi loaders must implement the BundleReference interface • ProtectionDomain must provide the correct answers for each tenant • Resource URLs must be tenant specific javad Framework Bundles TenantX A Framework Bundles TenantY A tenantID_X → clTenant_X tenantID_Y → clTenant_Y A ((BundleReference) loaderA).getBundle(); tenantMap tenantMap.get(tenantID_X).getBundle(); getBundle() { }
  • 42. Page 42 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license IBM JVM Multitenant - Notes • Available in Java 7 (64-bit) • Multitenant support is available as a tech preview https://www.ibm.com/developerworks/java/jdk/linux/download.html • Additional patches to the VM are necessary • Create and discovery of shared class loaders with unique IDs • Equinox enhancements are implemented as an equinox extension on top of Luna.
  • 43. Page 43 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license Results? Memory (megabytes) 0 50 100 150 200 250 300 350 400 450 500 Startup Time (seconds) 0 5 10 15 20 25 30 35 40 45 Standard MT MT + Framework MT + Framework + Bundles • Starting 10 Liberty Servers • Minimal server configuration • Servlet support only + OSGi console • About 75 bundles, most all shareable • MT javad fully initialized • Shared class loaders already created • Classes loaded for startup • JIT cache populated
  • 44. Page 44 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license OSGi Loader - Limitations • Dynamic imports kill ability to share • Must not share class loaders for bundles that need weaving • Native code may be able to be shared if no global state is stored in native code • Lazy activated bundles are not supported
  • 45. Page 45 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license New OSGi Specifications • Last week (week of June 2nd ) the OSGi Core Release 6 Specification received its final approval and will be available this week to the public for downloading. – http://www.osgi.org/Specifications/HomePage • Also happening last week, the OSGi Board of Directors approved the publication of an Early Draft Specification of OSGi Enterprise Release 6 for downloading. – http://www.osgi.org/Specifications/Drafts
  • 46. Page 46 © 2014 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license IBM and WebSphere are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml. Trademarks