SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
©2014 IBM Corporation
Building a right-sized,
do-anything runtime
using OSGi technologies
a case study 

(sort of)
Erin Schnabel
schnabel@us.ibm.com
@ebullientworks
©2014 IBM Corporation
<background>
©2014 IBM Corporation
Some notes on motivation
The full profile of WebSphere application server is awesome in
its capabilities
It is also well-known that the full profile is not well-suited
for development
We did and do listen… and were presented with a challenge: 

“Create a light-weight profile of WebSphere that starts in
under 2 seconds… [but] Don’t break any eggs” — Ian Robinson
©2014 IBM Corporation
History
WebSphere Application Server (the full profile) has been around
forever.
Big codebase
Big customer base
Big workloads
… Big inhibitors to massive change

©2014 IBM Corporation
History
WebSphere Application Server (the full profile) has been around
forever.
Big codebase
Big customer base
Big workloads
… Big inhibitors to massive change

This is not a complaint.
This is a problem we are

happy to have.
©2014 IBM Corporation
History
WebSphere Application Server (the full profile) has been around
forever.
Big codebase
Big customer base
Big workloads
… Big inhibitors to massive change

This is not a complaint.
This is a problem we are

happy to have.
But it is still a problem.
©2014 IBM Corporation
Code that has been around
forever…
Doesn’t matter how good you are, 

or how smart you are













©2014 IBM Corporation
Code that has been around
forever…
Doesn’t matter how good you are, 

or how smart you are
If your code lives long enough, 

and is used enough, 

it ends up looking like… 





©2014 IBM Corporation
Code that has been around
forever…
No matter how good you are, 

or how smart you are
If your code lives long enough, 

and is used enough, 

it ends up looking like… 




 dragons
?!
©2014 IBM Corporation
Code that has been around
forever…
No matter how good you are, 

or how smart you are
If your code lives long enough, 

and is used enough, 

it ends up looking like… 




 dragons
?!
Especially code that has roots 

going back to late ‘90s…
©2014 IBM Corporation
OSGi and WAS:
The first pass…
OSGi was included in WAS v6.1, in 2006
Went from lots of arbitrary jars to a few bundles
Achieved some modularity enforced by OSGi
We did not use or expose OSGi services
Compatibility constraints: WAS is the bottom of the stack
Assumptions about resource initialization and availability
Entrenched dependencies between some core elements
©2014 IBM Corporation
</background>
©2014 IBM Corporation
<cleanSlate>
This is the version of the story you won’t have
heard before…
©2014 IBM Corporation
What if…
If we could start over, what would we want?
Developer-friendly
Simple
Dynamic
Light-weight
Composable / Flexible
Extensible
©2014 IBM Corporation
What if…
If we could start over, what would we want?
Developer-friendly
Simple
Dynamic
Light-weight
Composable / Flexible
Extensible
selectable content
clear API/SPI
runtime/app isolation
human usable
configuration
©2014 IBM Corporation
runtime

only
some combination of

technologies

!
app-centered
everything
What if…
grokable
config
provisioning
©2014 IBM Corporation
What if…
grokable
config
provisioning
runtime

only
some combination of

technologies

!
app-centered
everything
How do we do this?
©2014 IBM Corporation
What if…
runtime

only
some combination of

technologies

!
app-centeredeverything
And yet allow this?
no restarts
©2014 IBM Corporation
What if…
And for crying out loud,
can we prevent THIS?!
runtime3rd party

bundle

B
system

bundle

A
Application
X
©2014 IBM Corporation
Building a kernel from scratch
OSGi-based for all the reasons
First-class use of OSGi services
Must react to configuration changes
Runtime composition on-the-fly





©2014 IBM Corporation
Configuration
Settled on XML for configuration format
Ubiquitous
Expressive
BUT, for simplicity:
single file
usable defaults
<server description=“simple”>
<featureManager>
<feature>jsp-2.2</feature>
</featureManager>
!
<httpEndpoint id=“defaultHttpEndpoint” 

httpPort=“9080” httpsPort=“9443” />
</server>
©2014 IBM Corporation
Configuration
Composable system requires composable configuration:
Individual components own their config

No centralized repository
No externally defined global config model
©2014 IBM Corporation
Configuration
Composable system requires composable configuration:
Individual components own their config

No centralized repository
No externally defined global config model
Configuration Admin and Metatype #FTW!
©2014 IBM Corporation
Configuration Admin
We rolled our own (sorry)
Parse and merge user configuration and bundle-provided
defaults
Resolve variables
Provide configuration to consumers as required by the spec
(mostly)











©2014 IBM Corporation
Metatype
Equinox impl + extensions
http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/
rwlp_extensions_osgi_metatype.html
Uniform validation of user input
Define configuration and constraints in one place, it gets used everywhere else.
We favor metatype.xml for this reason
Custom namespace for additional types and validators
ibm:type — duration, location, password
pid/reference
unique, final, variable, etc.
©2014 IBM Corporation
Uniform validation of user input
Define configuration and constraints in one place, it gets used everywhere else.
We favor metatype.xml for this reason
Custom namespace for additional types and validators
ibm:type — duration, location, password
pid/reference
unique, final, variable, etc.
Metatype
Equinox impl + extensions
http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/
rwlp_extensions_osgi_metatype.html
human readable:

1h30m converted to unit of choice used by developer tools to help
prompt for the right kind of path:
file vs. url
©2014 IBM Corporation
Uniform validation of user input
Define configuration and constraints in one place, it gets used everywhere else.
We favor metatype.xml for this reason
Custom namespace for additional types and validators
ibm:type — duration, location, password
pid/reference
unique, final, variable, etc.
Metatype
Equinox impl + extensions
http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/
rwlp_extensions_osgi_metatype.html
type=“String”

ibm:type=“password”



The value is a “SerializedProtectedString”, 

which is not a String.


Developer tools display encoding options: xor or aes, etc.
©2014 IBM Corporation
Uniform validation of user input
Define configuration and constraints in one place, it gets used everywhere else.
We favor metatype.xml for this reason
Custom namespace for additional types and validators
ibm:type — duration, location, password
pid/reference
unique, final, variable, etc.
Metatype
Equinox impl + extensions
http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/
rwlp_extensions_osgi_metatype.html
This is some crazy stuff.



ibm:type=“pid”

ibm:reference=“specific.service.pid” 



Allows nested configuration elements 

to define service relationships



#awesome
©2014 IBM Corporation
Provisioning
Two phases of provisioning:
Bootstrap the kernel to get configuration
Add or remove features based on configuration update
Features as in Subsystem features 

(*.esa files, metadata, etc.)
Adding or removing features 

installs or uninstalls bundles, which 

adds or removes configurations, which

triggers the creation or removal of services!
©2014 IBM Corporation
Provisioning
Two phases of provisioning:
Bootstrap the kernel to get configuration
Add or remove features based on configuration update
Features as in Subsystem features 

(*.esa files, metadata, etc.)
Adding or removing features 

installs or uninstalls bundles, which 

adds or removes configurations, which

triggers the creation or removal of services!
Dynamically respond to
configuration changes at any time
without requiring a restart.
!
#really
©2014 IBM Corporation
Using OSGi Services…
But who in their right mind wants to manage OSGi
services themselves??
©2014 IBM Corporation
Using OSGi Services…
But who in their right mind wants to manage OSGi
services themselves??
Exactly. NOBODY.
©2014 IBM Corporation
Using OSGi Services…
But who in their right mind wants to manage OSGi
services themselves??
Exactly. NOBODY.
?
BlueprintDeclarative Services
yes, there are others. 

We focused on these two.
©2014 IBM Corporation
Declarative Services
We chose DS for two main reasons:
Timing: Blueprint and Aries were just getting started
Integration with Configuration Admin and Metatype!
Config injected as one unit
activate/modified/updated methods
Service instance creation based on metatype-declared factory pid
DS target filters can be set via configuration
©2014 IBM Corporation
DS is AWESOME!
DS is a central part of the Liberty runtime
CA + M + DS = “magic”

We do insane things with config-derived target filters
Our runtime would not be what it is without DS in the
middle of it
BUT..
©2014 IBM Corporation
Service dynamics can hurt!
Service dynamics are a huge hurdle for “new” developers
DI and IoC can turn even experienced brains inside out if they
aren’t prepared.

Thankfully, they do seem to recover.
Utilities created to “help” can have unintended consequences. 

Especially if cut and paste are involved.
There is definitely a “better way” to do things with DS..
©2014 IBM Corporation
Let DS do it. Really.
DS is excellent at managing service dynamics.
DS is excellent at managing non-trivial service dependencies
It is very unlikely that you will be able to do better— just let
DS do it. That means:
Don’t register services inside a component
Don’t manage references inside a component
©2014 IBM Corporation
Isolation
We mean this in a good way.
Liberty runtime serves two masters:
Typical Application Server paradigm

(apps strictly separated from runtime) — API
Platform extender paradigm

(the “app” is the runtime) — SPI
Persistent problem:

how to allow apps or extensions to use their own versions of libraries that don't
conflict with the runtime!?
©2014 IBM Corporation
Subsystems, Resolver Hooks, and
Regions… (oh my!)
Features must explicitly declare API and SPI packages 

(IBM-* metadata in the feature manifest)
Isolation between API/SPI, apps/extensions/runtime is
enforced in a few ways:
Subsystems (the Aries impl) for OSGi Applications (API)
Resolver hooks and/or Eclipse Regions for isolation
between runtime, extensions (SPI), and containers (API).
©2014 IBM Corporation
</cleanSlate>
Of course, we didn’t really get a clean slate.

Application compatibility had to be preserved.
!
But that still gave us a LOT of room…
©2014 IBM Corporation
Dealing with our legacy
We did start over with our kernel
Used the new base to re-group…
Lots of code still common with full profile
Wrap/Shim: New face on old code
Patch: tweak and replace bits where necessary
©2014 IBM Corporation
Thank you!
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Workload Groups overview updates
Workload Groups overview updatesWorkload Groups overview updates
Workload Groups overview updatesCOMMON Europe
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...David Currie
 
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop FinalDavid Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop Finaldcoletta
 
AWS DevDay Berlin - Automating building blocks choices you will face with con...
AWS DevDay Berlin - Automating building blocks choices you will face with con...AWS DevDay Berlin - Automating building blocks choices you will face with con...
AWS DevDay Berlin - Automating building blocks choices you will face with con...Cobus Bernard
 
IBM Software Available In The Cloud With Amazon Web Services
IBM Software Available In The Cloud With Amazon Web ServicesIBM Software Available In The Cloud With Amazon Web Services
IBM Software Available In The Cloud With Amazon Web ServicesSteven Gerhardt
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)Graeme_IBM
 
Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)IBM Danmark
 
Session One Intro
Session One IntroSession One Intro
Session One Introrsnarayanan
 
Automating Oracle Database deployment with Amazon Web Services, fabric, and boto
Automating Oracle Database deployment with Amazon Web Services, fabric, and botoAutomating Oracle Database deployment with Amazon Web Services, fabric, and boto
Automating Oracle Database deployment with Amazon Web Services, fabric, and botomjbommar
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAOE
 
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信Amazon Web Services Japan
 
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012mfrancis
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxOpenStack Foundation
 
Delivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsDelivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsCloudPassage
 
De 03 Introduction To V Cloud Api V1
De 03 Introduction To V Cloud Api V1De 03 Introduction To V Cloud Api V1
De 03 Introduction To V Cloud Api V1ikewu83
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emcxKinAnx
 

Was ist angesagt? (19)

Workload Groups overview updates
Workload Groups overview updatesWorkload Groups overview updates
Workload Groups overview updates
 
Ibm webpshere
Ibm webpshereIbm webpshere
Ibm webpshere
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
 
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop FinalDavid Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
 
AWS DevDay Berlin - Automating building blocks choices you will face with con...
AWS DevDay Berlin - Automating building blocks choices you will face with con...AWS DevDay Berlin - Automating building blocks choices you will face with con...
AWS DevDay Berlin - Automating building blocks choices you will face with con...
 
IBM Software Available In The Cloud With Amazon Web Services
IBM Software Available In The Cloud With Amazon Web ServicesIBM Software Available In The Cloud With Amazon Web Services
IBM Software Available In The Cloud With Amazon Web Services
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)
 
Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)
 
Session One Intro
Session One IntroSession One Intro
Session One Intro
 
PHP in the Cloud
PHP in the CloudPHP in the Cloud
PHP in the Cloud
 
Orange is v cops
Orange is v copsOrange is v cops
Orange is v cops
 
Automating Oracle Database deployment with Amazon Web Services, fabric, and boto
Automating Oracle Database deployment with Amazon Web Services, fabric, and botoAutomating Oracle Database deployment with Amazon Web Services, fabric, and boto
Automating Oracle Database deployment with Amazon Web Services, fabric, and boto
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud Deployment
 
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信
20191112 AWS Black Belt Online Seminar AWS Media Services で始めるライブ動画配信
 
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012
Paremus Cloud and OSGi Beyond the VM - OSGi Cloud Workshop March 2012
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
 
Delivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsDelivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS Products
 
De 03 Introduction To V Cloud Api V1
De 03 Introduction To V Cloud Api V1De 03 Introduction To V Cloud Api V1
De 03 Introduction To V Cloud Api V1
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emc
 

Ähnlich wie Building a right sized, do-anything runtime using OSGi technologies: a case study - E Schnabel

Microprofile at IBM with Liberty
Microprofile at IBM with LibertyMicroprofile at IBM with Liberty
Microprofile at IBM with LibertyErin Schnabel
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001Vinayak Tavargeri
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterpriseTodd Kaplinger
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOSTim Ellison
 
Big SQL: Powerful SQL Optimization - Re-Imagined for open source
Big SQL: Powerful SQL Optimization - Re-Imagined for open sourceBig SQL: Powerful SQL Optimization - Re-Imagined for open source
Big SQL: Powerful SQL Optimization - Re-Imagined for open sourceDataWorks Summit
 
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudAWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudCobus Bernard
 
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the CloudCobus Bernard
 
AWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudAWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudCobus Bernard
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Phil Estes
 
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...Turning the Heat up on DevOps: Providing a web-based editing experience aroun...
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...Michael Elder
 
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14IBM Systems UKI
 
Platform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM BluemixPlatform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM BluemixDavid Currie
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeIBM UrbanCode Products
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksSanjeev Sharma
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusJarrod Overson
 
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017Amazon Web Services
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeRosalind Radcliffe
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2
 

Ähnlich wie Building a right sized, do-anything runtime using OSGi technologies: a case study - E Schnabel (20)

Microprofile at IBM with Liberty
Microprofile at IBM with LibertyMicroprofile at IBM with Liberty
Microprofile at IBM with Liberty
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterprise
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOS
 
Big SQL: Powerful SQL Optimization - Re-Imagined for open source
Big SQL: Powerful SQL Optimization - Re-Imagined for open sourceBig SQL: Powerful SQL Optimization - Re-Imagined for open source
Big SQL: Powerful SQL Optimization - Re-Imagined for open source
 
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudAWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the Cloud
 
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
 
AWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudAWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the Cloud
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
 
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...Turning the Heat up on DevOps: Providing a web-based editing experience aroun...
Turning the Heat up on DevOps: Providing a web-based editing experience aroun...
 
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
 
Meetup - Serverless
Meetup - ServerlessMeetup - Serverless
Meetup - Serverless
 
Platform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM BluemixPlatform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM Bluemix
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017
Move Your .NET Apps to AWS Without Betting the House - WIN303 - re:Invent 2017
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframe
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
 

Mehr von mfrancis

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

Mehr von mfrancis (20)

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

Kürzlich hochgeladen

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Kürzlich hochgeladen (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Building a right sized, do-anything runtime using OSGi technologies: a case study - E Schnabel

  • 1. ©2014 IBM Corporation Building a right-sized, do-anything runtime using OSGi technologies a case study 
 (sort of) Erin Schnabel schnabel@us.ibm.com @ebullientworks
  • 3. ©2014 IBM Corporation Some notes on motivation The full profile of WebSphere application server is awesome in its capabilities It is also well-known that the full profile is not well-suited for development We did and do listen… and were presented with a challenge: 
 “Create a light-weight profile of WebSphere that starts in under 2 seconds… [but] Don’t break any eggs” — Ian Robinson
  • 4. ©2014 IBM Corporation History WebSphere Application Server (the full profile) has been around forever. Big codebase Big customer base Big workloads … Big inhibitors to massive change

  • 5. ©2014 IBM Corporation History WebSphere Application Server (the full profile) has been around forever. Big codebase Big customer base Big workloads … Big inhibitors to massive change
 This is not a complaint. This is a problem we are
 happy to have.
  • 6. ©2014 IBM Corporation History WebSphere Application Server (the full profile) has been around forever. Big codebase Big customer base Big workloads … Big inhibitors to massive change
 This is not a complaint. This is a problem we are
 happy to have. But it is still a problem.
  • 7. ©2014 IBM Corporation Code that has been around forever… Doesn’t matter how good you are, 
 or how smart you are
 
 
 
 
 
 

  • 8. ©2014 IBM Corporation Code that has been around forever… Doesn’t matter how good you are, 
 or how smart you are If your code lives long enough, 
 and is used enough, 
 it ends up looking like… 
 
 

  • 9. ©2014 IBM Corporation Code that has been around forever… No matter how good you are, 
 or how smart you are If your code lives long enough, 
 and is used enough, 
 it ends up looking like… 
 
 
 dragons ?!
  • 10. ©2014 IBM Corporation Code that has been around forever… No matter how good you are, 
 or how smart you are If your code lives long enough, 
 and is used enough, 
 it ends up looking like… 
 
 
 dragons ?! Especially code that has roots 
 going back to late ‘90s…
  • 11. ©2014 IBM Corporation OSGi and WAS: The first pass… OSGi was included in WAS v6.1, in 2006 Went from lots of arbitrary jars to a few bundles Achieved some modularity enforced by OSGi We did not use or expose OSGi services Compatibility constraints: WAS is the bottom of the stack Assumptions about resource initialization and availability Entrenched dependencies between some core elements
  • 13. ©2014 IBM Corporation <cleanSlate> This is the version of the story you won’t have heard before…
  • 14. ©2014 IBM Corporation What if… If we could start over, what would we want? Developer-friendly Simple Dynamic Light-weight Composable / Flexible Extensible
  • 15. ©2014 IBM Corporation What if… If we could start over, what would we want? Developer-friendly Simple Dynamic Light-weight Composable / Flexible Extensible selectable content clear API/SPI runtime/app isolation human usable configuration
  • 16. ©2014 IBM Corporation runtime
 only some combination of
 technologies
 ! app-centered everything What if… grokable config provisioning
  • 17. ©2014 IBM Corporation What if… grokable config provisioning runtime
 only some combination of
 technologies
 ! app-centered everything How do we do this?
  • 18. ©2014 IBM Corporation What if… runtime
 only some combination of
 technologies
 ! app-centeredeverything And yet allow this? no restarts
  • 19. ©2014 IBM Corporation What if… And for crying out loud, can we prevent THIS?! runtime3rd party
 bundle
 B system
 bundle
 A Application X
  • 20. ©2014 IBM Corporation Building a kernel from scratch OSGi-based for all the reasons First-class use of OSGi services Must react to configuration changes Runtime composition on-the-fly
 
 

  • 21. ©2014 IBM Corporation Configuration Settled on XML for configuration format Ubiquitous Expressive BUT, for simplicity: single file usable defaults <server description=“simple”> <featureManager> <feature>jsp-2.2</feature> </featureManager> ! <httpEndpoint id=“defaultHttpEndpoint” 
 httpPort=“9080” httpsPort=“9443” /> </server>
  • 22. ©2014 IBM Corporation Configuration Composable system requires composable configuration: Individual components own their config
 No centralized repository No externally defined global config model
  • 23. ©2014 IBM Corporation Configuration Composable system requires composable configuration: Individual components own their config
 No centralized repository No externally defined global config model Configuration Admin and Metatype #FTW!
  • 24. ©2014 IBM Corporation Configuration Admin We rolled our own (sorry) Parse and merge user configuration and bundle-provided defaults Resolve variables Provide configuration to consumers as required by the spec (mostly)
 
 
 
 
 

  • 25. ©2014 IBM Corporation Metatype Equinox impl + extensions http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/ rwlp_extensions_osgi_metatype.html Uniform validation of user input Define configuration and constraints in one place, it gets used everywhere else. We favor metatype.xml for this reason Custom namespace for additional types and validators ibm:type — duration, location, password pid/reference unique, final, variable, etc.
  • 26. ©2014 IBM Corporation Uniform validation of user input Define configuration and constraints in one place, it gets used everywhere else. We favor metatype.xml for this reason Custom namespace for additional types and validators ibm:type — duration, location, password pid/reference unique, final, variable, etc. Metatype Equinox impl + extensions http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/ rwlp_extensions_osgi_metatype.html human readable:
 1h30m converted to unit of choice used by developer tools to help prompt for the right kind of path: file vs. url
  • 27. ©2014 IBM Corporation Uniform validation of user input Define configuration and constraints in one place, it gets used everywhere else. We favor metatype.xml for this reason Custom namespace for additional types and validators ibm:type — duration, location, password pid/reference unique, final, variable, etc. Metatype Equinox impl + extensions http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/ rwlp_extensions_osgi_metatype.html type=“String”
 ibm:type=“password”
 
 The value is a “SerializedProtectedString”, 
 which is not a String. 
 Developer tools display encoding options: xor or aes, etc.
  • 28. ©2014 IBM Corporation Uniform validation of user input Define configuration and constraints in one place, it gets used everywhere else. We favor metatype.xml for this reason Custom namespace for additional types and validators ibm:type — duration, location, password pid/reference unique, final, variable, etc. Metatype Equinox impl + extensions http://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/ rwlp_extensions_osgi_metatype.html This is some crazy stuff.
 
 ibm:type=“pid”
 ibm:reference=“specific.service.pid” 
 
 Allows nested configuration elements 
 to define service relationships
 
 #awesome
  • 29. ©2014 IBM Corporation Provisioning Two phases of provisioning: Bootstrap the kernel to get configuration Add or remove features based on configuration update Features as in Subsystem features 
 (*.esa files, metadata, etc.) Adding or removing features 
 installs or uninstalls bundles, which 
 adds or removes configurations, which
 triggers the creation or removal of services!
  • 30. ©2014 IBM Corporation Provisioning Two phases of provisioning: Bootstrap the kernel to get configuration Add or remove features based on configuration update Features as in Subsystem features 
 (*.esa files, metadata, etc.) Adding or removing features 
 installs or uninstalls bundles, which 
 adds or removes configurations, which
 triggers the creation or removal of services! Dynamically respond to configuration changes at any time without requiring a restart. ! #really
  • 31. ©2014 IBM Corporation Using OSGi Services… But who in their right mind wants to manage OSGi services themselves??
  • 32. ©2014 IBM Corporation Using OSGi Services… But who in their right mind wants to manage OSGi services themselves?? Exactly. NOBODY.
  • 33. ©2014 IBM Corporation Using OSGi Services… But who in their right mind wants to manage OSGi services themselves?? Exactly. NOBODY. ? BlueprintDeclarative Services yes, there are others. 
 We focused on these two.
  • 34. ©2014 IBM Corporation Declarative Services We chose DS for two main reasons: Timing: Blueprint and Aries were just getting started Integration with Configuration Admin and Metatype! Config injected as one unit activate/modified/updated methods Service instance creation based on metatype-declared factory pid DS target filters can be set via configuration
  • 35. ©2014 IBM Corporation DS is AWESOME! DS is a central part of the Liberty runtime CA + M + DS = “magic”
 We do insane things with config-derived target filters Our runtime would not be what it is without DS in the middle of it BUT..
  • 36. ©2014 IBM Corporation Service dynamics can hurt! Service dynamics are a huge hurdle for “new” developers DI and IoC can turn even experienced brains inside out if they aren’t prepared.
 Thankfully, they do seem to recover. Utilities created to “help” can have unintended consequences. 
 Especially if cut and paste are involved. There is definitely a “better way” to do things with DS..
  • 37. ©2014 IBM Corporation Let DS do it. Really. DS is excellent at managing service dynamics. DS is excellent at managing non-trivial service dependencies It is very unlikely that you will be able to do better— just let DS do it. That means: Don’t register services inside a component Don’t manage references inside a component
  • 38. ©2014 IBM Corporation Isolation We mean this in a good way. Liberty runtime serves two masters: Typical Application Server paradigm
 (apps strictly separated from runtime) — API Platform extender paradigm
 (the “app” is the runtime) — SPI Persistent problem:
 how to allow apps or extensions to use their own versions of libraries that don't conflict with the runtime!?
  • 39. ©2014 IBM Corporation Subsystems, Resolver Hooks, and Regions… (oh my!) Features must explicitly declare API and SPI packages 
 (IBM-* metadata in the feature manifest) Isolation between API/SPI, apps/extensions/runtime is enforced in a few ways: Subsystems (the Aries impl) for OSGi Applications (API) Resolver hooks and/or Eclipse Regions for isolation between runtime, extensions (SPI), and containers (API).
  • 40. ©2014 IBM Corporation </cleanSlate> Of course, we didn’t really get a clean slate.
 Application compatibility had to be preserved. ! But that still gave us a LOT of room…
  • 41. ©2014 IBM Corporation Dealing with our legacy We did start over with our kernel Used the new base to re-group… Lots of code still common with full profile Wrap/Shim: New face on old code Patch: tweak and replace bits where necessary
  • 42. ©2014 IBM Corporation Thank you! Questions?