SlideShare a Scribd company logo
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

More Related Content

What's hot

EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
EnablingPowerfulAndPersonalizedSearchExperienceUsingElastic7.15
Shotaro Suzuki
 
.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
 
Cloud computing03
Cloud computing03Cloud computing03
Cloud computing03
Piyush Sharma
 
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...
Tomasz Kopacz
 
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
 
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...
Amazon Web Services Korea
 
Hybrid Infrastructure Integration
Hybrid Infrastructure IntegrationHybrid Infrastructure Integration
Hybrid Infrastructure Integration
Amazon Web Services
 
Azure serverless computing
Azure serverless computingAzure serverless computing
Azure serverless computing
Udaiappa Ramachandran
 
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
 
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...
Ed Burns
 
오픈소스 네트워킹
오픈소스 네트워킹오픈소스 네트워킹
오픈소스 네트워킹
James Ahn
 
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
Braja Krishna Das
 
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
Miho Yamamoto
 
Azure Service Bus Queue Scala API
Azure Service Bus Queue Scala APIAzure Service Bus Queue Scala API
Azure Service Bus Queue Scala API
Braja Krishna Das
 
Quantum diablo summary
Quantum diablo summaryQuantum diablo summary
Quantum diablo summary
Dan Wendlandt
 
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
Lin Sun
 
About YPCloud
About YPCloudAbout YPCloud
About YPCloud
YPCloud Inc.
 
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
Cisco DevNet
 
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
Lin Sun
 

What's hot (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
 

Viewers also liked

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
Abiquo, Inc.
 
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
WSO2
 
Hybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShareHybrid Cloud example for SlideShare
Hybrid Cloud example for SlideShare
Hewlett-Packard
 
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
Louw Labuschagne
 
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
Jeff Holden
 
Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.
Mark O'Loughlin
 
Roadmap to Enterprise Cloud Computing
Roadmap to Enterprise Cloud ComputingRoadmap to Enterprise Cloud Computing
Roadmap to Enterprise Cloud Computing
Rex Wang
 
Building Cloud Competencies
Building Cloud CompetenciesBuilding Cloud Competencies
Building Cloud Competencies
it-workforce.com
 

Viewers also liked (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
 

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

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
Sudhir Nair
 
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
BOOSTurSKILLS
 
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
Sudhir Nair
 
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
Sudhir Nair
 
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
Jack-Junjie Cai
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
Amazon Web Services
 
CLOUD_COMPUTING_AWS_TRAINING.pptx
CLOUD_COMPUTING_AWS_TRAINING.pptxCLOUD_COMPUTING_AWS_TRAINING.pptx
CLOUD_COMPUTING_AWS_TRAINING.pptx
MohammadSamiuddin10
 
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
Michael O'Sullivan
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
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
Cisco DevNet
 
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?
Michael Elder
 
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
IBM
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and Docker
Kristana Kane
 
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
Kemp
 
POST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTINGPOST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTING
MamathaSharma4
 
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
Amazon Web Services
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
Ron Favali
 
Wayin devops-2013
Wayin devops-2013Wayin devops-2013
Wayin devops-2013
David M. Johnson
 
.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
Jeff Chu
 
Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
Emily Jiang
 

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

More from mfrancis

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

More from mfrancis (20)

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

Recently uploaded

Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 

Recently uploaded (20)

Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 

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