SlideShare a Scribd company logo
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Just-in-Time Java EE:
Provisioning Runtimes for Enterprise Applications
Tim Ward
http://www.paremus.com
info@paremus.com
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
•Senior Consulting Engineer and Architect at Paremus

•5 years at IBM developing WebSphere Application Server

• Container Implementation experience with Java EE and OSGi, including Blueprint, JPA, EJB
and JTA

•OSGi Specification lead for JPA and Bytecode Weaving

•PMC member of the Apache Aries project

•Previous speaker at EclipseCon, Devoxx, Jazoon, JAX London, OSGi
Community Event...

•Author of Manning’s Enterprise OSGi in Action

•http://www.manning.com/cummins
Who is Tim Ward?
@TimothyWard
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
What we’re going to cover
•Why we need more Modularity

!
•Using OSGi to provision applications

!
•Deploying external processes using Packager

!
•Building Dynamically wired distributed systems with OSGi remote services
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Building Maintainable Systems Using
Modularity
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
The True Cost of Software
!
Anne Thomas Manes (Gartner)

SOA Symposium: Berlin, October 2010
•To reduce cost we need to focus on making maintenance cheaper, not on
better Hardware Utilization!
Hardware is cheap
Maintenance is not!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Modular Systems are Maintainable Systems
!
Modularization serves three purposes, any of which may
justify an investment:

!
• Modularity makes complexity manageable;

• Modularity enables parallel work; and

• Modularity is tolerant of uncertainty.

!
!
!
“tolerant of uncertainty” means that particular elements of a modular
design may be changed after the fact and in unforeseen ways as long
as the design rules are obeyed.

Design Rules, Volume 1: The Power
of Modularity (MIT Press, 2000)!
http://www.amazon.com/Design-
Rules-Vol-Power-Modularity/dp/
0262024667!
!
Carliss Y. Baldwin !
Kim B. Clark!
Harvard Business School
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Modularity in the Cloud
•Cloud platforms can benefit from all of these things!

!
•Enterprise Cloud applications are inherently complex

•Huge Data/Request volumes

!
•Clouds only really work for scalable applications

!
•Cloud platforms are very unstable places

•DataCentres go down

•VMs get moved
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
VMs as the unit of modular Cloud
Deployment
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
VMs as the unit of Cloud Deployment
•Deployment and management is a huge part of life in the Cloud

•VMs are a standard unit of deployment

!
•Devops automation is necessary for managing VMs

!
•VMs are BIG, usually tens of GB, sometimes hundreds



•A one byte “update” costs a whole new VM
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
VM Word association
BIG small
fast slow
dynamic static
Modular?
?
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
VMs as Monoliths
•Platform VMs are classic monoliths

•They contain everything that you have

!
•Devops try to reduce maintenance costs

• Often a base VM is a template for multiple services

!
•A single change to any component requires a whole new VM, and could
break every user of that VM!

•Our maintainance problem just got even worse!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
A Clever New Solution!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Haven’t we solved this before?
•Cloud applications are huge

•Size is relative - Clouds are huge too!

•Java Application Servers contain hundreds of JARs

•Hundreds of thousands of Classes!

•Duplicates and missing classes are horrible to diagnose

!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Haven’t we solved this before (2)?
•Java EE vendors also borrowed an existing solution!

!
•JSR 8 - Open Services Gateway

•An embedded server running Java

•Designed for resource constrained systems

•Pluggable and extensible

!
•This became the OSGi framework you know and love!

•So how does OSGi manage complexity?
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
How OSGi works
•OSGi modules are called “bundles”

•Bundles are JARs - with a twist

•The manifest has modularity metadata
•Bundles list the things that they depend on, and the things they expose

•If it isn’t exported it can’t be imported!

•Your bundle can only “start” when all its dependencies are satisfied

•Exports and Imports have versions for compatibility

•Semantic Versioning is crucial for managing change
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Resolution and Provisioning using OSGi
metadata
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Deploying to an OSGi framework
•Deployment in OSGi framework is similar to in a cloud

•An OSGi framework is like a cloud in a JVM

•A collection of dependencies must be installed

!
•Unlike most things OSGi bundles are self-describing
•You can look at an OSGi bundle and know whether it will run in your
system!

!
•The OSGi resolver uses this information at runtime to determine whether your
bundle can be run or not

•Until your bundle resolves it is totally inert!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Provisioning and Resolution
•The OSGi resolver works in the context of the existing resources in the
framework

•But you can add Repositories!
•When the resolver finds an unsatisfied
requirement it asks the repository for
candidates
•By providing a suitable repository you can ensure only “approved”
dependencies are used

•The eventual solution is then “pulled” into the framework so the application
can run
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Generic Requirements and Capabilities
•Historically there were no repositories, and the resolver was an
implementation detail...

•No provisioning, only package/bundle dependencies

•Generic Resources and the Resolver API since OSGi R5
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Generic Requirements and Capabilities (2)
•OSGi Requirements and Capabilities can express any type of dependency
using namespaces

•OSGi itself has been extended with new types!

!
•Indirect dependencies on runtime services can now be expressed, building a
whole stack around your bundle!

•Attributes can be used to communicate specifics about an implementation
(just like normal OSGi)

•Directives can affect cardinality, and “effectiveness”
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Demo (1)
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
But what about my existing code?
•Existing software is our biggest cost!

•We can’t afford to rewrite it

•What if we don’t want to write OSGi
bundles and Java?
•Polyglot OSGi is a reality

•Scala Modules, C/C++ and JavaScript are all active

•These still require your code to be run in OSGi

!
•We could use OSGi as a provisioning and lifecycle layer without running in
the same process...
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Packaging Applications with Packager
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Packager Aims and advantages
•Packaged programs are self-describing OSGi Bundles

•Allows Dynamic Resolution and Assembly

•Can be semantically versioned

!
•Leverage OSGi Alliance Specifications

•Common Lifecycle and API

•Dynamic Configuration, 

•Easy acess to Local and Remote Services 

•Allow existing code to be packaged without change

•Open Source API for reusable packaged components

•Also allows competing Packager implementations
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Approach
!
<system name="BackEnd:MongoDB" boundary="fibre">!
<!-- MongoDB package -->!
<system.part category="msf" name="com.paremus.packager.demos.mongo.guard">!
<property name="port" value="27017" />!
</system.part> !
</system>!
•Wrap Native Artifacts in OSGi Bundles

•Link the Artifact Lifecycle to OSGi. 

• Bundle Install/Resolve/Start => Artifact “install” 

• Service registration/unregistration => Artifact “run/stop” 

• Bundle Uninstall => Artifact “uninstall”

•Link to Standard OSGi Services: Configuration Admin, Metatype, Log
Service...
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Separation of Concerns
•What are we running, and how do we configure/run it?

•Package Type Service
!
•When should we start it, and what configuration properties should we use?

•Process Guard Service
!
•Actually invoke the start/stop scripts, and monitor the state of the external
process

•Watchdog Process
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Package Type
•Usually contains the native parts

•Installs the Native Program

•Configures the program based on the supplied config

•Returns scripts to the Packager for: start, stop, ping...

•Is (usually) platform specific
Provide-Capability: packager.type;!
packager.type=mongodb;!
version:Version=2.2.0!
!
Require-Capability: osgi.native;!
filter:=”(&!
(osgi.native.osname=Linux)!
(osgi.native.processor=x86-64)!
)”
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Process Guard Service
•Gathers Process Config Properties

•Existence signals When to Start/Stop

•Receives State Change Events (started, crashed...)

•Advertises the Running Package (Optional)

•Usually platform independent
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Packager Interactions
Packager
Manager
MongoDB
Mac OSX
MongoDB
Guard
PackageType
type=mongodb
ProcessGuard
type=mongodb
scripts
config
config
state events
Endpoint
uri=mongodb://10.0.0.1:27017/
service.exported.interfaces=*
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Packager Runtime Flow
1. Process Guard plus Package Type Means “Start”

2. Process Guard queried for config properties

3. Package Type creates config, start and stop scripts
4. Watchdog launches external process

5. Process Guard notified of success/failure/restart

6. If either service is unpublished then “Stop”
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Publishing an Endpoint
•Endpoint Services have a Marker
Interface and a URI Property

!
•This may not seem very useful, but
it can be used to establish the
location of the process

•It can also trigger other things...

!
•OSGi Remote Services mean that
you can even notify other
frameworks of your location
Mongo
Client
mongodb://10.0.0.1/
mongodb://10.0.0.2/
mongodb://10.0.0.3/
OSGiRemoteServices(RSA)Discovery
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Extending Packager with the OSGi
Extender pattern
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Adding Requirements and Capabilities
Provide-Capability: packager.type;!
packager.type=mongodb;!
version:Version=2.2.0!
!
Require-Capability: osgi.native;!
filter:=”(&!
(osgi.native.osname=Linux)!
(osgi.native.processor=x86-64)!
)”
•Earlier we saw the following:
•Uses the default osgi.native for platform dependency

•Exposes the new packager.type capability
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Adding Requirements and Capabilities (2)
•Automatic runtime provisioning of packaged artefacts is easy

•Process Guard has requirements for

•Packager Manager

•A “matching” package.type
•Application bundles that need to be co-located with the external process can
depend on the Process Guard

•Another options is to reference the guard directly

•But what if you need more configuration?
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
The OSGi Extender pattern
•The Extender Bundle Pattern is a powerful tool in OSGi

•An Extender Bundle searches for other bundles that can be extended in
some way

•Usually marked by a Requirement or a Manifest header

!
•What if we use the extender pattern to configure our Process Guard services? 

•The bundles we extend should be self-describing

•We know what we need to configure!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Applying Packager to Java EE
•Java EE applications need a Java EE runtime

•Use Packager to install/run the server

•Use the extender pattern to infer the configuration!

•This requirement can fully configure a JPA app!
Require-Capability: com.paremus.javaee;!
filter:="(javaee.version>=6)";!
context.roots="jboss-as-kitchensink-ear-web";!
database.jta.name=kitchensink;!
database.jta.jndi.name="jdbc/kitchensink";!
database.jta.xa="false";!
database.nojta.name=kitchensink;!
database.nojta.jndi.name="jdbc/noJTAkitchensink";!
database.nojta.xa="false";!
database.nojta.jta="false"
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Waiting for dependencies...
•Earlier I said that Endpoints could be used as triggers

•This Java EE application needs a database endpoint!

•The Extender gathers the necessary configuration and dependency
information from the Java EE bundle

•When a database endpoint is available the extender completes the
configuration and registers the Process Guard

•The implementation and location of the database is automatically
determined at runtime!

•The system can rewire itself if the database moves!
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Demo (2)
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
Things Change over time, and no two systems are the same

!
Tight coupling in complex environments is the root cause of catastrophic
cascading failure, or Black Swan events. 

(see https://blogs.paremus.com/2012/08/complex-systems-and-failure/).

!
A Deployment mechanism that fails to acknowledge change,
that fails to manage runtime dependencies, drives increasing
environmental complexity and OPEX.

!
Platforms must be Modular & Adaptive
Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.
Just in Time Java EE Sep 2013
•For more about OSGi...

•Specifications at http://www.osgi.org

•Enterprise OSGi in Action

•http://www.manning.com/cummins

!
•For more about Packager...

•https://docs.paremus.com/display/SF19/Packager

!
Questions?
Thanks!
45% off using
code mljo13cf
at manning.com
http://www.paremus.com
info@paremus.com

More Related Content

What's hot

KnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCKnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVC
LearnNowOnline
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
Reza Rahman
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
Kile Niklawski
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.
Geertjan Wielenga
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
Josh Juneau
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Reza Rahman
 
Cloud Native Java:GraalVM
Cloud Native Java:GraalVMCloud Native Java:GraalVM
Cloud Native Java:GraalVM
Taewan alvin Kim
 
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir SemerdzhievOSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
mfrancis
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
ifnu bima
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
 
Making everything better with OSGi - a happy case study in building a really ...
Making everything better with OSGi - a happy case study in building a really ...Making everything better with OSGi - a happy case study in building a really ...
Making everything better with OSGi - a happy case study in building a really ...
mfrancis
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
PT.JUG
 
Java Master Class
Java Master ClassJava Master Class
Java Master Class
Geertjan Wielenga
 
Why Java
Why JavaWhy Java
Why Java
ifnu bima
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
Bob Paulin
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 Roadmap
ESUG
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
Bruno Borges
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Irfan Maulana
 

What's hot (20)

KnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCKnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVC
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
Cloud Native Java:GraalVM
Cloud Native Java:GraalVMCloud Native Java:GraalVM
Cloud Native Java:GraalVM
 
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir SemerdzhievOSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
OSGi in Java EE Servers - Sneak Peek Under the Hood - Krasimir Semerdzhiev
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
 
Making everything better with OSGi - a happy case study in building a really ...
Making everything better with OSGi - a happy case study in building a really ...Making everything better with OSGi - a happy case study in building a really ...
Making everything better with OSGi - a happy case study in building a really ...
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 
Java Master Class
Java Master ClassJava Master Class
Java Master Class
 
Why Java
Why JavaWhy Java
Why Java
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 Roadmap
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
 

Similar to Just-in-time Java EE - provisioning runtimes for enterprise applications - JavaOne 2013

Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
mfrancis
 
Asynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T WardAsynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T Ward
mfrancis
 
Asynchronous Services – A promising future for OSGi - T Ward
Asynchronous Services – A promising future for OSGi - T WardAsynchronous Services – A promising future for OSGi - T Ward
Asynchronous Services – A promising future for OSGi - T Ward
mfrancis
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeople
SpringPeople
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegi
mfrancis
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
Rob Davies
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with Spring
Eberhard Wolff
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Bruno Borges
 
Curious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks ComparisonCurious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks Comparison
Hamed Hatami
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
markghiasy
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)
Carsten Ziegeler
 
Building Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C ZiegelerBuilding Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C Ziegeler
mfrancis
 
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
David Buck
 
OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)
David Bosschaert
 
What's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim WardWhat's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim Ward
mfrancis
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Roland Tritsch
 
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
Joel Dickson
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Chris Muir
 

Similar to Just-in-time Java EE - provisioning runtimes for enterprise applications - JavaOne 2013 (20)

Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
 
Asynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T WardAsynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T Ward
 
Asynchronous Services – A promising future for OSGi - T Ward
Asynchronous Services – A promising future for OSGi - T WardAsynchronous Services – A promising future for OSGi - T Ward
Asynchronous Services – A promising future for OSGi - T Ward
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeople
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegi
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with Spring
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Curious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks ComparisonCurious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks Comparison
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)
 
Building Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C ZiegelerBuilding Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C Ziegeler
 
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
 
OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)
 
What's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim WardWhat's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim Ward
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
 
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
 

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

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 

Recently uploaded (20)

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 

Just-in-time Java EE - provisioning runtimes for enterprise applications - JavaOne 2013

  • 1. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Just-in-Time Java EE: Provisioning Runtimes for Enterprise Applications Tim Ward http://www.paremus.com info@paremus.com
  • 2. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 •Senior Consulting Engineer and Architect at Paremus •5 years at IBM developing WebSphere Application Server • Container Implementation experience with Java EE and OSGi, including Blueprint, JPA, EJB and JTA •OSGi Specification lead for JPA and Bytecode Weaving •PMC member of the Apache Aries project •Previous speaker at EclipseCon, Devoxx, Jazoon, JAX London, OSGi Community Event... •Author of Manning’s Enterprise OSGi in Action •http://www.manning.com/cummins Who is Tim Ward? @TimothyWard
  • 3. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 What we’re going to cover •Why we need more Modularity ! •Using OSGi to provision applications ! •Deploying external processes using Packager ! •Building Dynamically wired distributed systems with OSGi remote services
  • 4. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Building Maintainable Systems Using Modularity
  • 5. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 The True Cost of Software ! Anne Thomas Manes (Gartner) SOA Symposium: Berlin, October 2010 •To reduce cost we need to focus on making maintenance cheaper, not on better Hardware Utilization! Hardware is cheap Maintenance is not!
  • 6. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Modular Systems are Maintainable Systems ! Modularization serves three purposes, any of which may justify an investment: ! • Modularity makes complexity manageable; • Modularity enables parallel work; and • Modularity is tolerant of uncertainty. ! ! ! “tolerant of uncertainty” means that particular elements of a modular design may be changed after the fact and in unforeseen ways as long as the design rules are obeyed. Design Rules, Volume 1: The Power of Modularity (MIT Press, 2000)! http://www.amazon.com/Design- Rules-Vol-Power-Modularity/dp/ 0262024667! ! Carliss Y. Baldwin ! Kim B. Clark! Harvard Business School
  • 7. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Modularity in the Cloud •Cloud platforms can benefit from all of these things! ! •Enterprise Cloud applications are inherently complex •Huge Data/Request volumes ! •Clouds only really work for scalable applications ! •Cloud platforms are very unstable places •DataCentres go down •VMs get moved
  • 8. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 VMs as the unit of modular Cloud Deployment
  • 9. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 VMs as the unit of Cloud Deployment •Deployment and management is a huge part of life in the Cloud •VMs are a standard unit of deployment ! •Devops automation is necessary for managing VMs ! •VMs are BIG, usually tens of GB, sometimes hundreds •A one byte “update” costs a whole new VM
  • 10. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 VM Word association BIG small fast slow dynamic static Modular? ?
  • 11. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 VMs as Monoliths •Platform VMs are classic monoliths •They contain everything that you have ! •Devops try to reduce maintenance costs • Often a base VM is a template for multiple services ! •A single change to any component requires a whole new VM, and could break every user of that VM! •Our maintainance problem just got even worse!
  • 12. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 A Clever New Solution!
  • 13. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Haven’t we solved this before? •Cloud applications are huge •Size is relative - Clouds are huge too! •Java Application Servers contain hundreds of JARs •Hundreds of thousands of Classes! •Duplicates and missing classes are horrible to diagnose !
  • 14. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Haven’t we solved this before (2)? •Java EE vendors also borrowed an existing solution! ! •JSR 8 - Open Services Gateway •An embedded server running Java •Designed for resource constrained systems •Pluggable and extensible ! •This became the OSGi framework you know and love! •So how does OSGi manage complexity?
  • 15. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 How OSGi works •OSGi modules are called “bundles” •Bundles are JARs - with a twist •The manifest has modularity metadata •Bundles list the things that they depend on, and the things they expose •If it isn’t exported it can’t be imported! •Your bundle can only “start” when all its dependencies are satisfied •Exports and Imports have versions for compatibility •Semantic Versioning is crucial for managing change
  • 16. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Resolution and Provisioning using OSGi metadata
  • 17. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Deploying to an OSGi framework •Deployment in OSGi framework is similar to in a cloud •An OSGi framework is like a cloud in a JVM •A collection of dependencies must be installed ! •Unlike most things OSGi bundles are self-describing •You can look at an OSGi bundle and know whether it will run in your system! ! •The OSGi resolver uses this information at runtime to determine whether your bundle can be run or not •Until your bundle resolves it is totally inert!
  • 18. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Provisioning and Resolution •The OSGi resolver works in the context of the existing resources in the framework •But you can add Repositories! •When the resolver finds an unsatisfied requirement it asks the repository for candidates •By providing a suitable repository you can ensure only “approved” dependencies are used •The eventual solution is then “pulled” into the framework so the application can run
  • 19. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Generic Requirements and Capabilities •Historically there were no repositories, and the resolver was an implementation detail... •No provisioning, only package/bundle dependencies •Generic Resources and the Resolver API since OSGi R5
  • 20. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Generic Requirements and Capabilities (2) •OSGi Requirements and Capabilities can express any type of dependency using namespaces •OSGi itself has been extended with new types! ! •Indirect dependencies on runtime services can now be expressed, building a whole stack around your bundle! •Attributes can be used to communicate specifics about an implementation (just like normal OSGi) •Directives can affect cardinality, and “effectiveness”
  • 21. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Demo (1)
  • 22. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 But what about my existing code? •Existing software is our biggest cost! •We can’t afford to rewrite it •What if we don’t want to write OSGi bundles and Java? •Polyglot OSGi is a reality •Scala Modules, C/C++ and JavaScript are all active •These still require your code to be run in OSGi ! •We could use OSGi as a provisioning and lifecycle layer without running in the same process...
  • 23. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Packaging Applications with Packager
  • 24. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Packager Aims and advantages •Packaged programs are self-describing OSGi Bundles •Allows Dynamic Resolution and Assembly •Can be semantically versioned ! •Leverage OSGi Alliance Specifications •Common Lifecycle and API •Dynamic Configuration, •Easy acess to Local and Remote Services •Allow existing code to be packaged without change •Open Source API for reusable packaged components •Also allows competing Packager implementations
  • 25. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Approach ! <system name="BackEnd:MongoDB" boundary="fibre">! <!-- MongoDB package -->! <system.part category="msf" name="com.paremus.packager.demos.mongo.guard">! <property name="port" value="27017" />! </system.part> ! </system>! •Wrap Native Artifacts in OSGi Bundles •Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start => Artifact “install” • Service registration/unregistration => Artifact “run/stop” • Bundle Uninstall => Artifact “uninstall” •Link to Standard OSGi Services: Configuration Admin, Metatype, Log Service...
  • 26. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Separation of Concerns •What are we running, and how do we configure/run it? •Package Type Service ! •When should we start it, and what configuration properties should we use? •Process Guard Service ! •Actually invoke the start/stop scripts, and monitor the state of the external process •Watchdog Process
  • 27. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Package Type •Usually contains the native parts •Installs the Native Program •Configures the program based on the supplied config •Returns scripts to the Packager for: start, stop, ping... •Is (usually) platform specific Provide-Capability: packager.type;! packager.type=mongodb;! version:Version=2.2.0! ! Require-Capability: osgi.native;! filter:=”(&! (osgi.native.osname=Linux)! (osgi.native.processor=x86-64)! )”
  • 28. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Process Guard Service •Gathers Process Config Properties •Existence signals When to Start/Stop •Receives State Change Events (started, crashed...) •Advertises the Running Package (Optional) •Usually platform independent
  • 29. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Packager Interactions Packager Manager MongoDB Mac OSX MongoDB Guard PackageType type=mongodb ProcessGuard type=mongodb scripts config config state events Endpoint uri=mongodb://10.0.0.1:27017/ service.exported.interfaces=*
  • 30. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Packager Runtime Flow 1. Process Guard plus Package Type Means “Start” 2. Process Guard queried for config properties 3. Package Type creates config, start and stop scripts 4. Watchdog launches external process 5. Process Guard notified of success/failure/restart 6. If either service is unpublished then “Stop”
  • 31. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Publishing an Endpoint •Endpoint Services have a Marker Interface and a URI Property ! •This may not seem very useful, but it can be used to establish the location of the process •It can also trigger other things... ! •OSGi Remote Services mean that you can even notify other frameworks of your location Mongo Client mongodb://10.0.0.1/ mongodb://10.0.0.2/ mongodb://10.0.0.3/ OSGiRemoteServices(RSA)Discovery
  • 32. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Extending Packager with the OSGi Extender pattern
  • 33. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Adding Requirements and Capabilities Provide-Capability: packager.type;! packager.type=mongodb;! version:Version=2.2.0! ! Require-Capability: osgi.native;! filter:=”(&! (osgi.native.osname=Linux)! (osgi.native.processor=x86-64)! )” •Earlier we saw the following: •Uses the default osgi.native for platform dependency •Exposes the new packager.type capability
  • 34. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Adding Requirements and Capabilities (2) •Automatic runtime provisioning of packaged artefacts is easy •Process Guard has requirements for •Packager Manager •A “matching” package.type •Application bundles that need to be co-located with the external process can depend on the Process Guard •Another options is to reference the guard directly •But what if you need more configuration?
  • 35. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 The OSGi Extender pattern •The Extender Bundle Pattern is a powerful tool in OSGi •An Extender Bundle searches for other bundles that can be extended in some way •Usually marked by a Requirement or a Manifest header ! •What if we use the extender pattern to configure our Process Guard services? •The bundles we extend should be self-describing •We know what we need to configure!
  • 36. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Applying Packager to Java EE •Java EE applications need a Java EE runtime •Use Packager to install/run the server •Use the extender pattern to infer the configuration! •This requirement can fully configure a JPA app! Require-Capability: com.paremus.javaee;! filter:="(javaee.version>=6)";! context.roots="jboss-as-kitchensink-ear-web";! database.jta.name=kitchensink;! database.jta.jndi.name="jdbc/kitchensink";! database.jta.xa="false";! database.nojta.name=kitchensink;! database.nojta.jndi.name="jdbc/noJTAkitchensink";! database.nojta.xa="false";! database.nojta.jta="false"
  • 37. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Waiting for dependencies... •Earlier I said that Endpoints could be used as triggers •This Java EE application needs a database endpoint! •The Extender gathers the necessary configuration and dependency information from the Java EE bundle •When a database endpoint is available the extender completes the configuration and registers the Process Guard •The implementation and location of the database is automatically determined at runtime! •The system can rewire itself if the database moves!
  • 38. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Demo (2)
  • 39. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 Things Change over time, and no two systems are the same ! Tight coupling in complex environments is the root cause of catastrophic cascading failure, or Black Swan events. (see https://blogs.paremus.com/2012/08/complex-systems-and-failure/). ! A Deployment mechanism that fails to acknowledge change, that fails to manage runtime dependencies, drives increasing environmental complexity and OPEX. ! Platforms must be Modular & Adaptive
  • 40. Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Just in Time Java EE Sep 2013 •For more about OSGi... •Specifications at http://www.osgi.org •Enterprise OSGi in Action •http://www.manning.com/cummins ! •For more about Packager... •https://docs.paremus.com/display/SF19/Packager ! Questions? Thanks! 45% off using code mljo13cf at manning.com http://www.paremus.com info@paremus.com