SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
TRESOR – the modular cloud
Building a domain specific cloud
platform with OSGi
OSGi Community Event
Ludwigsburg
Eclipsecon 2013
About myself
Alexander
Grzesik

Head of Development
medisite Systemhaus

Working 15 years in
software
development

alexander.grzesik@medisite.de
Java
Software Architecture
Medical Software
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Cloud – the future ?

By David Fletcher
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
TRESOR Partners
Trusted Ecosystem for Standardized and Open cloud-based
Resources

TRESOR is funded within the Trusted Cloud project by the Federal Ministry of
Economy on basis of a resolution passed by the German Bundestag

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
TRESOR Cloud Ecosystem
Search, Maintain, Match

Marketplace

Authentication

IDM
(i.e. Active Directory)

Authorization

TRESOR Proxy
(Client)

Service Profile Repository
SLA Monitoring

TRESOR User

Manage

TRESOR Proxy
(Client)

Client Profile Repository

Billing

TRESOR Broker

TRESOR
Ecosystem

TRESOR Billing
Service use

TRESOR Proxy
(Client)

Clients

TRESOR Proxy
(Trusted 3rd Party)

TRESOR PaaS

TRESOR
Service Provider

Service use

IaaS-Provider

MMV

PAI
TRESOR Proxy
(Service)

Eclipsecon 2013

...

Building a domain specific cloud
platform with OSGi

Dynamic
Services
TRESOR Goals
Extensible

Data Security

OSGi based

Encrypted Data

Use of Standards

Secure Communication

Development tools

Open

Secure

Flexible

Cloud
Scalable

Fast Time-to-Market

Reliable

No Vendor Lock-In

High Availability

Flexible deployment

Eclipsecon 2013

Certified

Powered by OpenShift
Building a domain specific cloud
platform with OSGi
TRESOR PaaS at a glance
Open
Platform

Strong
Encryption

Domain
specific
API
Eclipsecon 2013

6dfg4854
5454sff5
179hg45g
584551gh
2152fgh5
78dfd15d
98dfgh2d

fgf72548
44485ddf
658g54d1
11fghf15
14925fg1
7654fghd
874dfg6d

Polyglot
Persistence

151fd545
151538fd
15414gfg
154215jh
15325sgd
897fg21d
3544sdfg

Modular
Architecture

Building a domain specific cloud
platform with OSGi

Powered
by
OpenShift
Domain specific API
Application

Glassfish Application Server
TRESOR Proxy
Server

Healthcare Applications and Services
Applications & Services

Plugin Build Service

Vaadin Web Framework

UI Components

UI Module Management
Plugin repository

Laboratory
Diagnostic

Theraphy
Planning

Radiology
Diagnostic

Document
Management
Elastic Search

Management &
Monitoring
Patient
Adminstration

Patient Timeline

Clinical
Documentation

Order Entry
Encryption Engine

Terminology

Reporting

Encryption

Business Rules

Object Mapping

User
Management

Configuration

Search and Index

Security

Process Engine

Persistence

Notification

Apache Felix OSGi

Aries Blueprint

Enterprise OSGi

Java EE

JPA/Eclipse Link

3rd Party Bundles

OpenAM

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi

Integration Engine
Cooking in the Cloud with OSGi

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
The Challenges
Component
Management

Provisioning

Dependencies

Architecture

Java
Enterprise
Integration

Security

Configuration

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Bundle Structure
Application
Bundle

Service Bundle
Depends on
API

Impl

Straightforward
Tightly coupled API to Implementation
Replacing Implementation with high overhead

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Better: Bundle Separation
Application
Bundle

Depends on

Service API
Bundle

Depends on

API

Separate API from Implementation
Application only depends on API
Implementation may be changed transparently

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi

Service Impl
Bundle

Impl
Managing with Blueprint
• Spring-style dependency injection
<bean id=“bmiServiceBean"
class="medisite.eclipsecon.bmi.impl.BmiServiceImpl">
<property name=“calculatorBean" ref="bmiCalculatorBean"/>
</bean>

• Keeps code clean of OSGi dependencies
<service id=“bmiService" ref=“bmiServiceBean"
interface="medisite.eclipsecon.bmi.BmiService“ />

• Handles Service Lifecycle
<reference id=“importedService"
interface=" medisite.eclipsecon.bmi.BmiService"
availability="mandatory”/>

• Enterprise Extensions
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Managing Dependencies

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Manage Dependencies
• Maven allows managing dependencies
and versions
• Maven Bundle Plugin creates your
bundles
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Export-Package>medisite.eclipsecon.bmi.*</Export-Package>
<Import-Package>
org.slf4j;provider=paxlogging,
*
</Import-Package>
</instructions></configuration></plugin>
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Non OSGi dependencies
• Problem:
A dependency is not an OSGi Bundle
• Option 1: Wrap bundle
<goals>
<goal>wrap</goal>
</goals>
<configuration>
<wrapImportPackage>;</wrapImportPackage>
</configuration>

• Option 2: Embed dependency
<Embed-Dependency>
*;scope=compile|runtime;type=!pom;inline=false
</Embed-Dependency>
<Embed-Transitive>false</Embed-Transitive>
<Import-Package>*;resolution:=optional</Import-Package>
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Java Enterprise Integration

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Persistence
• JPA Persistence Units as OSGi Bundles
• Create Persistence.xml and include in bundle:
<Meta-Persistence>
META-INF/persistence.xml
</Meta-Persistence>
<Include-Resource>
META-INF/persistence.xml=src/main/resources/METAINF/persistence.xml
</Include-Resource>
<JPA-PersistenceUnits>
persistence-test
</JPA-PersistenceUnits>
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Embeded Persitence Unit
Application
Bundle

Depends on

Service API
Bundle

Depends on

API

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi

Service Impl
Bundle

Impl

Persist
ence
Persistence Service
Application
Bundle

Service API
Bundle
API

Service Impl
Bundle

Impl

Persistence
Bundle

DAO
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Persistence Service via Blueprint
• Managed by Blueprint container (Aries)
• Declarative Transaction Management
<bean id=“bmiDAO" class="medisite.eclipsecon.persistence.impl.BmiDAO"
init-method="init">
<jpa:context property="entityManager" unitname="persistence-test" />
<tx:transaction method="*" value="Requires" />
</bean>

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Web Application Bundle
• Deploy a war as OSGi bundle (wab)
<instructions>
<Web-ContextPath>/bmi</Web-ContextPath>
<_wab>src/main/resources</_wab>
</instructions>

• Interact with OSGi Services from Servlet
BundleContext ctxt = (BundleContext)
servletContext.getAttribute(“osgi-bundlecontext”);

• JNDI Integration
InitialContext ic = new InitialContext();
IBmiService calculator = (IBmiService)
ic.lookup("osgi:service/" + IBmiService.class.getName());
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Configuration

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Configuration Administration Service
• Blueprint integration from Apache Aries
<cm:property-placeholder id="property-placeholder" persistentid=“frameworkConfig" update-strategy="reload">
<cm:default-properties>
<cm:property name=“selfTest" value="false"/>
</cm:default-properties>
</cm:property-placeholder>
<bean id=“testerBean" class="medisite.eclipsecon.bmi.impl.BundleTest>
<property name="selfTest" value="${selfTest}"/>
</bean>

• Managed Properties
<bean id=“bmiService" class="medisite.eclipsecon.impl.BmiServiceImpl">
<cm:managed-properties persistent-id=“bmiServiceConfig"
update-strategy="container-managed"/>
</bean>
Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Security

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
ConditionalPermissionAdmin
• Control Permissions
ConditionalPermissionAdmin cpa = getConditionalPermissionAdmin(context);
ConditionalPermissionUpdate u = cpa.newConditionalPermissionUpdate();
List infos = u.getConditionalPermissionInfos();
infos.clear();
for (String encodedInfo : encodedInfos)
{
infos.add(cpa.newConditionalPermissionInfo(encodedInfo));
}
if (!u.commit())
throw new ConcurrentModificationException("Permissions changed during
update");

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Policy File Reader
ACCEPT {
[org.osgi.service.condpermadmin.BundleSignerCondition
"CN=tresor,O=medisite Systemhaus GmbH,C=de"]
( java.security.AllPermission "*" "*")
}
DENY
{
(org.osgi.framework.PackagePermission “medisite.eclipsecon.*" "IMPORT")
}
ALLOW
{
(org.osgi.framework.PackagePermission “*" "IMPORT")
}

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
More thoughts on Security
• Make sure PolicyManager starts before
custom bundles
• Restrict access to
ConditionalPermissionAdmin
• Application Permissions with blueprint
interceptor (Aries)

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Provisioning

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Cloud Provisioning
Repository Cloud Application Manager

Application

Application

Application

Application
Putting it all together
Blueprint
Configuration
Admin
Configure

Application
Bundle

Service API
Bundle

Service Impl
Bundle

API

Impl
Protect

Security
Manager

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi

Persistence
Bundle
DAO
Lessons learned
• Steep learning curve
• Detailed information is often missing
• From jar hell to bundle hell
– Managing dependencies is challenging
– Not all libraries support OSGi

• Difficult to migrate non-OSGi application to
OSGi

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Benefits of OSGi for Architecture
•
•
•
•
•
•

Separation of components
Loose coupling
Detect dependencies
Encapsulation
Versioning
Integrating Java EE

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Think about your architecture

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Useful Resources
• The OSGi Standard
• OSGi Books
– OSGi in Action
– OSGi in Depth
– Enterprise OSGi in Action

• IBM Websphere Documentation
• Pax OSGi Projects

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi
Questions ?

Eclipsecon 2013

Building a domain specific cloud
platform with OSGi

Contenu connexe

Tendances

.NetCampus Windows Azure Mobile
.NetCampus Windows Azure Mobile.NetCampus Windows Azure Mobile
.NetCampus Windows Azure Mobile
antimo musone
 
App fabric hybrid computing
App fabric   hybrid computingApp fabric   hybrid computing
App fabric hybrid computing
Hammad Rajjoub
 
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, ParisConpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
OW2
 
Vault の Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
Vault の  Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)Vault の  Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
Vault の Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
NorikoSato7
 

Tendances (20)

EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
 
.NetCampus Windows Azure Mobile
.NetCampus Windows Azure Mobile.NetCampus Windows Azure Mobile
.NetCampus Windows Azure Mobile
 
App fabric hybrid computing
App fabric   hybrid computingApp fabric   hybrid computing
App fabric hybrid computing
 
Cloud computing03
Cloud computing03Cloud computing03
Cloud computing03
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, ParisConpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
Conpaas Elastic Cloud, OW2con 2011, Nov 24-25, Paris
 
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
 
Hybrid Infrastructure Integration
Hybrid Infrastructure IntegrationHybrid Infrastructure Integration
Hybrid Infrastructure Integration
 
Azure serverless computing
Azure serverless computingAzure serverless computing
Azure serverless computing
 
Vault の Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
Vault の  Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)Vault の  Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
Vault の Google Cloud KMS Secrets Engine (HashiTalks:japan 2020/7/3)
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
 
오픈소스 네트워킹
오픈소스 네트워킹오픈소스 네트워킹
오픈소스 네트워킹
 
Azure Service Bus Queue API for Scala
Azure Service Bus Queue API for ScalaAzure Service Bus Queue API for Scala
Azure Service Bus Queue API for Scala
 
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
 
Azure Service Bus Queue Scala API
Azure Service Bus Queue Scala APIAzure Service Bus Queue Scala API
Azure Service Bus Queue Scala API
 
Quantum diablo summary
Quantum diablo summaryQuantum diablo summary
Quantum diablo summary
 
All things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystemAll things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystem
 
About YPCloud
About YPCloudAbout YPCloud
About YPCloud
 
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & ProvidersDEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
 

En vedette

Hybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShareHybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShare
Hewlett-Packard
 

En vedette (8)

Unlock the Cloud: Building a Vendor Independent Private Cloud
Unlock the Cloud: Building a Vendor Independent Private CloudUnlock the Cloud: Building a Vendor Independent Private Cloud
Unlock the Cloud: Building a Vendor Independent Private Cloud
 
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
WSO2Con ASIA 2016: WSO2 Cloud Strategy UpdateWSO2Con ASIA 2016: WSO2 Cloud Strategy Update
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
 
Hybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShareHybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShare
 
Using SFIA as a basis for defining Enterprise Architecture skills
Using SFIA as a basis for defining Enterprise Architecture skillsUsing SFIA as a basis for defining Enterprise Architecture skills
Using SFIA as a basis for defining Enterprise Architecture skills
 
Managed Cloud Services CIO Conference Oil Gas
Managed Cloud Services CIO Conference Oil GasManaged Cloud Services CIO Conference Oil Gas
Managed Cloud Services CIO Conference Oil Gas
 
Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.
 
Roadmap to Enterprise Cloud Computing
Roadmap to Enterprise Cloud ComputingRoadmap to Enterprise Cloud Computing
Roadmap to Enterprise Cloud Computing
 
Building Cloud Competencies
Building Cloud CompetenciesBuilding Cloud Competencies
Building Cloud Competencies
 

Similaire à TRESOR: The modular cloud - Building a domain specific cloud platform with OSGi - Alexander Grzesik

Similaire à TRESOR: The modular cloud - Building a domain specific cloud platform with OSGi - Alexander Grzesik (20)

AWS Cloud Computing workshop 30-31st May Bangalore
AWS Cloud Computing workshop 30-31st May BangaloreAWS Cloud Computing workshop 30-31st May Bangalore
AWS Cloud Computing workshop 30-31st May Bangalore
 
AWS Cloud Computing workshop 30-31 May Bangalore
AWS Cloud Computing workshop 30-31 May BangaloreAWS Cloud Computing workshop 30-31 May Bangalore
AWS Cloud Computing workshop 30-31 May Bangalore
 
AWS Cloud Computing workshop 30 31st May Bangalore
AWS Cloud Computing workshop 30 31st May BangaloreAWS Cloud Computing workshop 30 31st May Bangalore
AWS Cloud Computing workshop 30 31st May Bangalore
 
AWS Cloud Computing workshop 30-31 May Bangalore
AWS Cloud Computing workshop 30-31 May BangaloreAWS Cloud Computing workshop 30-31 May Bangalore
AWS Cloud Computing workshop 30-31 May Bangalore
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applications
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
CLOUD_COMPUTING_AWS_TRAINING.pptx
CLOUD_COMPUTING_AWS_TRAINING.pptxCLOUD_COMPUTING_AWS_TRAINING.pptx
CLOUD_COMPUTING_AWS_TRAINING.pptx
 
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
DEVNET-1120 Intercloud Fabric - AWS and Azure Account Setup and Utilization
DEVNET-1120	Intercloud Fabric - AWS and Azure Account Setup and UtilizationDEVNET-1120	Intercloud Fabric - AWS and Azure Account Setup and Utilization
DEVNET-1120 Intercloud Fabric - AWS and Azure Account Setup and Utilization
 
How do you deliver your applications to the cloud?
How do you deliver your applications to the cloud?How do you deliver your applications to the cloud?
How do you deliver your applications to the cloud?
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and Docker
 
Delivering Hybrid Cloud Solutions on Microsoft Azure
Delivering Hybrid Cloud Solutions on Microsoft AzureDelivering Hybrid Cloud Solutions on Microsoft Azure
Delivering Hybrid Cloud Solutions on Microsoft Azure
 
POST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTINGPOST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTING
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Wayin devops-2013
Wayin devops-2013Wayin devops-2013
Wayin devops-2013
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
 
Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
 

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

Plus de 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)
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

TRESOR: The modular cloud - Building a domain specific cloud platform with OSGi - Alexander Grzesik

  • 1. TRESOR – the modular cloud Building a domain specific cloud platform with OSGi OSGi Community Event Ludwigsburg Eclipsecon 2013
  • 2. About myself Alexander Grzesik Head of Development medisite Systemhaus Working 15 years in software development alexander.grzesik@medisite.de Java Software Architecture Medical Software Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 3. Cloud – the future ? By David Fletcher Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 4. TRESOR Partners Trusted Ecosystem for Standardized and Open cloud-based Resources TRESOR is funded within the Trusted Cloud project by the Federal Ministry of Economy on basis of a resolution passed by the German Bundestag Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 5. TRESOR Cloud Ecosystem Search, Maintain, Match Marketplace Authentication IDM (i.e. Active Directory) Authorization TRESOR Proxy (Client) Service Profile Repository SLA Monitoring TRESOR User Manage TRESOR Proxy (Client) Client Profile Repository Billing TRESOR Broker TRESOR Ecosystem TRESOR Billing Service use TRESOR Proxy (Client) Clients TRESOR Proxy (Trusted 3rd Party) TRESOR PaaS TRESOR Service Provider Service use IaaS-Provider MMV PAI TRESOR Proxy (Service) Eclipsecon 2013 ... Building a domain specific cloud platform with OSGi Dynamic Services
  • 6. TRESOR Goals Extensible Data Security OSGi based Encrypted Data Use of Standards Secure Communication Development tools Open Secure Flexible Cloud Scalable Fast Time-to-Market Reliable No Vendor Lock-In High Availability Flexible deployment Eclipsecon 2013 Certified Powered by OpenShift Building a domain specific cloud platform with OSGi
  • 7. TRESOR PaaS at a glance Open Platform Strong Encryption Domain specific API Eclipsecon 2013 6dfg4854 5454sff5 179hg45g 584551gh 2152fgh5 78dfd15d 98dfgh2d fgf72548 44485ddf 658g54d1 11fghf15 14925fg1 7654fghd 874dfg6d Polyglot Persistence 151fd545 151538fd 15414gfg 154215jh 15325sgd 897fg21d 3544sdfg Modular Architecture Building a domain specific cloud platform with OSGi Powered by OpenShift
  • 8. Domain specific API Application Glassfish Application Server TRESOR Proxy Server Healthcare Applications and Services Applications & Services Plugin Build Service Vaadin Web Framework UI Components UI Module Management Plugin repository Laboratory Diagnostic Theraphy Planning Radiology Diagnostic Document Management Elastic Search Management & Monitoring Patient Adminstration Patient Timeline Clinical Documentation Order Entry Encryption Engine Terminology Reporting Encryption Business Rules Object Mapping User Management Configuration Search and Index Security Process Engine Persistence Notification Apache Felix OSGi Aries Blueprint Enterprise OSGi Java EE JPA/Eclipse Link 3rd Party Bundles OpenAM Eclipsecon 2013 Building a domain specific cloud platform with OSGi Integration Engine
  • 9. Cooking in the Cloud with OSGi Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 11. Bundle Structure Application Bundle Service Bundle Depends on API Impl Straightforward Tightly coupled API to Implementation Replacing Implementation with high overhead Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 12. Better: Bundle Separation Application Bundle Depends on Service API Bundle Depends on API Separate API from Implementation Application only depends on API Implementation may be changed transparently Eclipsecon 2013 Building a domain specific cloud platform with OSGi Service Impl Bundle Impl
  • 13. Managing with Blueprint • Spring-style dependency injection <bean id=“bmiServiceBean" class="medisite.eclipsecon.bmi.impl.BmiServiceImpl"> <property name=“calculatorBean" ref="bmiCalculatorBean"/> </bean> • Keeps code clean of OSGi dependencies <service id=“bmiService" ref=“bmiServiceBean" interface="medisite.eclipsecon.bmi.BmiService“ /> • Handles Service Lifecycle <reference id=“importedService" interface=" medisite.eclipsecon.bmi.BmiService" availability="mandatory”/> • Enterprise Extensions Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 14. Managing Dependencies Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 15. Manage Dependencies • Maven allows managing dependencies and versions • Maven Bundle Plugin creates your bundles <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Export-Package>medisite.eclipsecon.bmi.*</Export-Package> <Import-Package> org.slf4j;provider=paxlogging, * </Import-Package> </instructions></configuration></plugin> Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 16. Non OSGi dependencies • Problem: A dependency is not an OSGi Bundle • Option 1: Wrap bundle <goals> <goal>wrap</goal> </goals> <configuration> <wrapImportPackage>;</wrapImportPackage> </configuration> • Option 2: Embed dependency <Embed-Dependency> *;scope=compile|runtime;type=!pom;inline=false </Embed-Dependency> <Embed-Transitive>false</Embed-Transitive> <Import-Package>*;resolution:=optional</Import-Package> Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 17. Java Enterprise Integration Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 18. Persistence • JPA Persistence Units as OSGi Bundles • Create Persistence.xml and include in bundle: <Meta-Persistence> META-INF/persistence.xml </Meta-Persistence> <Include-Resource> META-INF/persistence.xml=src/main/resources/METAINF/persistence.xml </Include-Resource> <JPA-PersistenceUnits> persistence-test </JPA-PersistenceUnits> Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 19. Embeded Persitence Unit Application Bundle Depends on Service API Bundle Depends on API Eclipsecon 2013 Building a domain specific cloud platform with OSGi Service Impl Bundle Impl Persist ence
  • 20. Persistence Service Application Bundle Service API Bundle API Service Impl Bundle Impl Persistence Bundle DAO Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 21. Persistence Service via Blueprint • Managed by Blueprint container (Aries) • Declarative Transaction Management <bean id=“bmiDAO" class="medisite.eclipsecon.persistence.impl.BmiDAO" init-method="init"> <jpa:context property="entityManager" unitname="persistence-test" /> <tx:transaction method="*" value="Requires" /> </bean> Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 22. Web Application Bundle • Deploy a war as OSGi bundle (wab) <instructions> <Web-ContextPath>/bmi</Web-ContextPath> <_wab>src/main/resources</_wab> </instructions> • Interact with OSGi Services from Servlet BundleContext ctxt = (BundleContext) servletContext.getAttribute(“osgi-bundlecontext”); • JNDI Integration InitialContext ic = new InitialContext(); IBmiService calculator = (IBmiService) ic.lookup("osgi:service/" + IBmiService.class.getName()); Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 23. Configuration Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 24. Configuration Administration Service • Blueprint integration from Apache Aries <cm:property-placeholder id="property-placeholder" persistentid=“frameworkConfig" update-strategy="reload"> <cm:default-properties> <cm:property name=“selfTest" value="false"/> </cm:default-properties> </cm:property-placeholder> <bean id=“testerBean" class="medisite.eclipsecon.bmi.impl.BundleTest> <property name="selfTest" value="${selfTest}"/> </bean> • Managed Properties <bean id=“bmiService" class="medisite.eclipsecon.impl.BmiServiceImpl"> <cm:managed-properties persistent-id=“bmiServiceConfig" update-strategy="container-managed"/> </bean> Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 25. Security Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 26. ConditionalPermissionAdmin • Control Permissions ConditionalPermissionAdmin cpa = getConditionalPermissionAdmin(context); ConditionalPermissionUpdate u = cpa.newConditionalPermissionUpdate(); List infos = u.getConditionalPermissionInfos(); infos.clear(); for (String encodedInfo : encodedInfos) { infos.add(cpa.newConditionalPermissionInfo(encodedInfo)); } if (!u.commit()) throw new ConcurrentModificationException("Permissions changed during update"); Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 27. Policy File Reader ACCEPT { [org.osgi.service.condpermadmin.BundleSignerCondition "CN=tresor,O=medisite Systemhaus GmbH,C=de"] ( java.security.AllPermission "*" "*") } DENY { (org.osgi.framework.PackagePermission “medisite.eclipsecon.*" "IMPORT") } ALLOW { (org.osgi.framework.PackagePermission “*" "IMPORT") } Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 28. More thoughts on Security • Make sure PolicyManager starts before custom bundles • Restrict access to ConditionalPermissionAdmin • Application Permissions with blueprint interceptor (Aries) Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 29. Provisioning Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 30. Cloud Provisioning Repository Cloud Application Manager Application Application Application Application
  • 31. Putting it all together Blueprint Configuration Admin Configure Application Bundle Service API Bundle Service Impl Bundle API Impl Protect Security Manager Eclipsecon 2013 Building a domain specific cloud platform with OSGi Persistence Bundle DAO
  • 32. Lessons learned • Steep learning curve • Detailed information is often missing • From jar hell to bundle hell – Managing dependencies is challenging – Not all libraries support OSGi • Difficult to migrate non-OSGi application to OSGi Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 33. Benefits of OSGi for Architecture • • • • • • Separation of components Loose coupling Detect dependencies Encapsulation Versioning Integrating Java EE Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 34. Think about your architecture Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 35. Useful Resources • The OSGi Standard • OSGi Books – OSGi in Action – OSGi in Depth – Enterprise OSGi in Action • IBM Websphere Documentation • Pax OSGi Projects Eclipsecon 2013 Building a domain specific cloud platform with OSGi
  • 36. Questions ? Eclipsecon 2013 Building a domain specific cloud platform with OSGi