SlideShare a Scribd company logo
1 of 20
Download to read offline
OSGi in Java EE servers: sneak peek inside

Krasimir Semerdzhiev (SAP AG)
EclipseCon Europe 2012




                                   Pictures: Woodland Park Zoo
Why care at all?


Most common application scenarios:
 Reuse open-source components:
    more than 80% percent of enterprises embed open source components in software /Source: SonaType/
     Eclipse ones are (typically) OSGIfied
     Apache/GitHub/GoogleCode/SourceForge/etc mostly have no OSGi packaging

 Modularize/”OSGIfy” Java EE applications
 Getting rid of proprietary module systems in favor of standard one(s). Anyone?
 Software refactoring and evolution




© 2011 SAP AG. All rights reserved.                                                                    2
General approach – That’s our starting point!




© 2011 SAP AG. All rights reserved.             3
General approach – How to eat an elephant?




      Java EE monolithic app

              Libraries in:
              lib
              META-INFlib
              WEB-INFlib




               Java EE container




© 2011 SAP AG. All rights reserved.          4
General approach – Peter Kriens: One piece at a time!




      Java EE monolithic app              Java Web Bundle


              Libraries in:
              lib                            Shared libraries
              WEB-INFlib




               Java EE container
                                      OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                    5
General approach – Peter Kriens: One piece at a time!




      Java EE monolithic app                   Java Web Bundle


              Libraries in:                       Shared libraries
              lib
              WEB-INFlib


                                      OSGi       OSGi          OSGi     OSGi
                                      bundle     bundle        bundle   bundle

               Java EE container
                                        OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                              6
General approach – Peter Kriens: One piece at a time!




      Java EE monolithic app              Java Web
                                           Bundle
                                                                  OSGi bundle
              Libraries in:               Shared Libraries
              lib
              WEB-INFlib
                                                                  OSGi bundle

                                      OSGi        OSGi       OSGi       OSGi
                                      bundle      bundle     bundle     bundle

               Java EE container
                                        OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                              7
General approach – Peter Kriens: One piece at a time!


                                      Projects typically
                                        stop at that
                                           state…


      Java EE monolithic app                               Web Bundle
                                                            Shared Libraries




                                                                                OSGi bundle
                                                                                              OSGi bundle
              Libraries in:
              lib
              WEB-INFlib                                    OSGi bundle
                                                                                              OSGi bundle

                                                           OSGi        OSGi              OSGi       OSGi
                                                           bundle      bundle            bundle     bundle

               Java EE container
                                                             OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                                                          8
General approach – Peter Kriens: One piece at a time!

                                      Very unlikely to
                                      reach this state!
                                        Don’t worry!
                                        That’s OK!
                                                                    Java Web Bundle
      Java EE monolithic app
                                                          OSGi       OSGi




                                                                              OSGi bundle
                                                          bundle     bundle
                                                                                            OSGi bundle
              Libraries in:
              lib
              WEB-INFlib                                   OSGi bundle
                                                                                            OSGi bundle

                                                          OSGi       OSGi              OSGi       OSGi
                                                          bundle     bundle            bundle     bundle

               Java EE container
                                                            OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                                                        9
General approach – Keep the goal in sight!


It’s not for those reasons:
 Single bundle can’t be reliably stopped!                Java Web Bundle

 Single bundle can’t be reliably updated!      OSGi       OSGi




                                                                    OSGi bundle
                                                bundle     bundle
 Reference caching further spoils the party!                                     OSGi bundle


 Random startup order as a surprise for non-      OSGi bundle
                                                                                  OSGi bundle
  aware modules.
                                                OSGi       OSGi              OSGi       OSGi
 Reference resolution for naïve package        bundle     bundle            bundle     bundle

  imports without a version might become
  tricky.                                         OSGi-enabled Java EE container




© 2011 SAP AG. All rights reserved.                                                              10
We go for OSGi - which server to run on?

Java EE 6 compatibility page (23.Oct.2012)
Java EE 6 Web                          Java EE 6 Full profile
profile




 © 2011 SAP AG. All rights reserved.                            11
Tested scenario: Granny’s address book


                                          Spring
                                         Spring
       Granny’s                       Spring (14)
       address
        book                             slf4j        dom4j

                                         log4j        Guava

                                       javassist    Tomcat jdbc

                                      hibernate     Apache juli

                                         cglib         asm

                                      aopalliance      antlr


      Source: Original sources + packaging on GitHub




© 2011 SAP AG. All rights reserved.                               12
Apache TomEE 1.0


OSGi support
 None whatsoever
     Neither uses, nor provides any

   Modularity: none – stick to Tomcat webapps
     Libs can be put in [tomeelib] folder
     No activators/resolution. Works like classpath.

Overall experience
 Feels very lightweight even with a bigger WAR file.
 TomEE doesn’t currently support web.xml <resource-ref> definitions in web.xml.
  To be fixed soon.
 Doing partial application update is not supported by the server. Requires 3-rd
  party tools like LiveRebel for example.

© 2011 SAP AG. All rights reserved.                                                13
Caucho Resin 4.0.32 free


OSGi support
 None whatsoever (but Why OSGi is cool, but not for enterprise apps blog)
   Modularity: Own “pomegranate” module system, dependencies in pom.xml
     Additional JARs can be put in [resinext-lib] folder
     No activators/resolution. Works like classpath.

Overall experience
 Easy to handle
 No default datasource is bound in JNDI. Therefore app startup fails if not created
  manually.




© 2011 SAP AG. All rights reserved.                                               14
JBoss Application Server 7(web)


OSGi support
 JBoss own OSGI impl.
     Tutorial available over here

   Additional bundles handling
     Transform the WAR as a Web Bundle Archive (WAB) JAR.
     Add the WAB + all related bundles in standalonedeployment “auto-deploy” folder

Overall experience
 Easy to use! A bit hard to find the application web alias…
 Both web console + CLI admin deploy only single archives. No batching.
 Deployment passes successfully although bundles can’t be resolved at that time.
 Startup fails silently afterwards.

© 2011 SAP AG. All rights reserved.                                                     15
Glassfish 3.1.2.2 (web + full)


OSGi support
 HK2 is based on Apache Felix
   Additional bundles handling
     Deploy bundles one by one via asadmin CLI tool.

Overall experience
 Deploy fails correctly on failed resolution. Have to handy-pick all dependencies
  one by one.
 Web console seems to cautiously ignore OSGi :-)




© 2011 SAP AG. All rights reserved.                                                  16
Apache Geronimo 3.0


OSGi support
 Based on Apache Felix
   Additional bundles handling
     Deployment via the Eclipse development tools

Overall experience
 Build as both Web Profile and Full Profile, but never cared to certify against the
  Web Profile




© 2011 SAP AG. All rights reserved.                                                    17
Other projects to watch out for




WebSphere Application Server V8.5 Liberty Profile

Eclipse Virgo




© 2011 SAP AG. All rights reserved.                 18
You still want to take the journey?


Take a look at @glynnormington “Is OSGi modularity always worth it?”
session.

Management is very susceptive to “costs” and “ROI” arguments.

Make the cost calculations carefully and use the numbers wisely!




© 2011 SAP AG. All rights reserved.                                    19
Thank You!
krasimir.semerdzhiev@sap.com




                               Pictures: Woo

More Related Content

What's hot

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
 
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...OGF Cloud Standards: Current status and ongoing interoperability efforts wi...
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...Florian Feldhaus
 
Embrace Change - Embrace OSGi
Embrace Change - Embrace OSGiEmbrace Change - Embrace OSGi
Embrace Change - Embrace OSGiCarsten Ziegeler
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriensmfrancis
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in PractiseDavid Bosschaert
 
Lessons learned from a large scale OSGii web app - P Bakker & J de Vreede
Lessons learned from a large scale OSGii web app - P Bakker & J de VreedeLessons learned from a large scale OSGii web app - P Bakker & J de Vreede
Lessons learned from a large scale OSGii web app - P Bakker & J de Vreedemfrancis
 
CDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily JiangCDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily Jiangmfrancis
 

What's hot (7)

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)
 
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...OGF Cloud Standards: Current status and ongoing interoperability efforts wi...
OGF Cloud Standards: Current status and ongoing interoperability efforts wi...
 
Embrace Change - Embrace OSGi
Embrace Change - Embrace OSGiEmbrace Change - Embrace OSGi
Embrace Change - Embrace OSGi
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
Lessons learned from a large scale OSGii web app - P Bakker & J de Vreede
Lessons learned from a large scale OSGii web app - P Bakker & J de VreedeLessons learned from a large scale OSGii web app - P Bakker & J de Vreede
Lessons learned from a large scale OSGii web app - P Bakker & J de Vreede
 
CDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily JiangCDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily Jiang
 

Similar to OSGI in Java EE servers:Sneak peak

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 Semerdzhievmfrancis
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the CloudBert Ertman
 
modular-ejbs-for-enterprise-osgi developers
modular-ejbs-for-enterprise-osgi developersmodular-ejbs-for-enterprise-osgi developers
modular-ejbs-for-enterprise-osgi developersGabrielBran5
 
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJAX London
 
Nuxeo World Session: Nuxeo & OSGi
Nuxeo World Session: Nuxeo & OSGiNuxeo World Session: Nuxeo & OSGi
Nuxeo World Session: Nuxeo & OSGiNuxeo
 
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...mfrancis
 
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Jacek Laskowski
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework MultiplicationClément Escoffier
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Jax london 2011
Jax london 2011Jax london 2011
Jax london 2011njbartlett
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJAX London
 
Libra - New Tools at Eclipse for OSGi Enterprise Development
 Libra - New Tools at Eclipse for OSGi Enterprise Development  Libra - New Tools at Eclipse for OSGi Enterprise Development
Libra - New Tools at Eclipse for OSGi Enterprise Development Kaloyan Raev
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
 
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysia
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway MalaysiaMaven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysia
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysiamfrancis
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesJan S. Rellermeyer
 

Similar to OSGI in Java EE servers:Sneak peak (20)

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
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
modular-ejbs-for-enterprise-osgi developers
modular-ejbs-for-enterprise-osgi developersmodular-ejbs-for-enterprise-osgi developers
modular-ejbs-for-enterprise-osgi developers
 
OSGi Community Updates 2012
OSGi Community Updates 2012OSGi Community Updates 2012
OSGi Community Updates 2012
 
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
 
Nuxeo World Session: Nuxeo & OSGi
Nuxeo World Session: Nuxeo & OSGiNuxeo World Session: Nuxeo & OSGi
Nuxeo World Session: Nuxeo & OSGi
 
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
 
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework Multiplication
 
OSGi summary
OSGi summaryOSGi summary
OSGi summary
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Jax london 2011
Jax london 2011Jax london 2011
Jax london 2011
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
 
Libra - New Tools at Eclipse for OSGi Enterprise Development
 Libra - New Tools at Eclipse for OSGi Enterprise Development  Libra - New Tools at Eclipse for OSGi Enterprise Development
Libra - New Tools at Eclipse for OSGi Enterprise Development
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
 
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysia
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway MalaysiaMaven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysia
Maven tools - Stuart McCulloch, V.P. OSGi, Jayway Malaysia
 
OSGi for mere mortals
OSGi for mere mortalsOSGi for mere mortals
OSGi for mere mortals
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded Devices
 

More from SAP HANA Cloud Platform

SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtime
SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtimeSAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtime
SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtimeSAP HANA Cloud Platform
 
Gardener: Managed Kubernetes on Your Terms
Gardener: Managed Kubernetes on Your TermsGardener: Managed Kubernetes on Your Terms
Gardener: Managed Kubernetes on Your TermsSAP HANA Cloud Platform
 
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.SAP HANA Cloud Platform
 
Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software SAP HANA Cloud Platform
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceSAP HANA Cloud Platform
 
Options for running Kubernetes at scale across multiple cloud providers
Options for running Kubernetes at scale across multiple cloud providersOptions for running Kubernetes at scale across multiple cloud providers
Options for running Kubernetes at scale across multiple cloud providersSAP HANA Cloud Platform
 
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions Intro
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions IntroSAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions Intro
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions IntroSAP HANA Cloud Platform
 
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...SAP HANA Cloud Platform
 
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...SAP HANA Cloud Platform
 
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...SAP HANA Cloud Platform
 
SAP HANA Cloud Platform Community BOF @ Devoxx 2013
SAP HANA Cloud Platform Community BOF @ Devoxx 2013SAP HANA Cloud Platform Community BOF @ Devoxx 2013
SAP HANA Cloud Platform Community BOF @ Devoxx 2013SAP HANA Cloud Platform
 
SAP HANA Cloud Platform: The void between your Datacenter and the Cloud
SAP HANA Cloud Platform: The void between your Datacenter and the CloudSAP HANA Cloud Platform: The void between your Datacenter and the Cloud
SAP HANA Cloud Platform: The void between your Datacenter and the CloudSAP HANA Cloud Platform
 
SAP HANA Cloud: From Your Datacenter to the Cloud and Back
SAP HANA Cloud: From Your Datacenter to the Cloud and Back  SAP HANA Cloud: From Your Datacenter to the Cloud and Back
SAP HANA Cloud: From Your Datacenter to the Cloud and Back SAP HANA Cloud Platform
 

More from SAP HANA Cloud Platform (17)

SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtime
SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtimeSAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtime
SAP Hack2Build hackathon - SAP Commerce Cloud & Kyma runtime
 
Gardener: Managed Kubernetes on Your Terms
Gardener: Managed Kubernetes on Your TermsGardener: Managed Kubernetes on Your Terms
Gardener: Managed Kubernetes on Your Terms
 
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.
Kyma: Extending Business systems with Kubernetes, Istio and <fill the blank>.
 
Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experience
 
Options for running Kubernetes at scale across multiple cloud providers
Options for running Kubernetes at scale across multiple cloud providersOptions for running Kubernetes at scale across multiple cloud providers
Options for running Kubernetes at scale across multiple cloud providers
 
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions Intro
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions IntroSAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions Intro
SAP DKOM 2016 | 30154 | SAP HCP Cloud Extensions Intro
 
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...
SAP TechEd 2015 | DEV109 | Extending Cloud Solutions from SAP using SAP HANA ...
 
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...
SAP D-Code/TechEd 2014|DEV203|Extending SuccessFactors using SAP HANA Cloud P...
 
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...
SAP TechEd 2013: CD105: Extending SuccessFactors EmployeeCentral with apps on...
 
SAP HANA Cloud Platform Community BOF @ Devoxx 2013
SAP HANA Cloud Platform Community BOF @ Devoxx 2013SAP HANA Cloud Platform Community BOF @ Devoxx 2013
SAP HANA Cloud Platform Community BOF @ Devoxx 2013
 
SAP HANA Cloud Platform: The void between your Datacenter and the Cloud
SAP HANA Cloud Platform: The void between your Datacenter and the CloudSAP HANA Cloud Platform: The void between your Datacenter and the Cloud
SAP HANA Cloud Platform: The void between your Datacenter and the Cloud
 
SAP HANA Cloud: From Your Datacenter to the Cloud and Back
SAP HANA Cloud: From Your Datacenter to the Cloud and Back  SAP HANA Cloud: From Your Datacenter to the Cloud and Back
SAP HANA Cloud: From Your Datacenter to the Cloud and Back
 
[BGOUG] Memory analyzer
[BGOUG] Memory analyzer[BGOUG] Memory analyzer
[BGOUG] Memory analyzer
 
[BGOUG] Java GC - Friend or Foe
[BGOUG] Java GC - Friend or Foe[BGOUG] Java GC - Friend or Foe
[BGOUG] Java GC - Friend or Foe
 
JavaOne 2010: OSGI Migrat
JavaOne 2010: OSGI MigratJavaOne 2010: OSGI Migrat
JavaOne 2010: OSGI Migrat
 
Eclipse Open Source @ SAP
Eclipse Open Source @ SAPEclipse Open Source @ SAP
Eclipse Open Source @ SAP
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

OSGI in Java EE servers:Sneak peak

  • 1. OSGi in Java EE servers: sneak peek inside Krasimir Semerdzhiev (SAP AG) EclipseCon Europe 2012 Pictures: Woodland Park Zoo
  • 2. Why care at all? Most common application scenarios:  Reuse open-source components: more than 80% percent of enterprises embed open source components in software /Source: SonaType/  Eclipse ones are (typically) OSGIfied  Apache/GitHub/GoogleCode/SourceForge/etc mostly have no OSGi packaging  Modularize/”OSGIfy” Java EE applications  Getting rid of proprietary module systems in favor of standard one(s). Anyone?  Software refactoring and evolution © 2011 SAP AG. All rights reserved. 2
  • 3. General approach – That’s our starting point! © 2011 SAP AG. All rights reserved. 3
  • 4. General approach – How to eat an elephant? Java EE monolithic app Libraries in: lib META-INFlib WEB-INFlib Java EE container © 2011 SAP AG. All rights reserved. 4
  • 5. General approach – Peter Kriens: One piece at a time! Java EE monolithic app Java Web Bundle Libraries in: lib Shared libraries WEB-INFlib Java EE container OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 5
  • 6. General approach – Peter Kriens: One piece at a time! Java EE monolithic app Java Web Bundle Libraries in: Shared libraries lib WEB-INFlib OSGi OSGi OSGi OSGi bundle bundle bundle bundle Java EE container OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 6
  • 7. General approach – Peter Kriens: One piece at a time! Java EE monolithic app Java Web Bundle OSGi bundle Libraries in: Shared Libraries lib WEB-INFlib OSGi bundle OSGi OSGi OSGi OSGi bundle bundle bundle bundle Java EE container OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 7
  • 8. General approach – Peter Kriens: One piece at a time! Projects typically stop at that state… Java EE monolithic app Web Bundle Shared Libraries OSGi bundle OSGi bundle Libraries in: lib WEB-INFlib OSGi bundle OSGi bundle OSGi OSGi OSGi OSGi bundle bundle bundle bundle Java EE container OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 8
  • 9. General approach – Peter Kriens: One piece at a time! Very unlikely to reach this state! Don’t worry! That’s OK! Java Web Bundle Java EE monolithic app OSGi OSGi OSGi bundle bundle bundle OSGi bundle Libraries in: lib WEB-INFlib OSGi bundle OSGi bundle OSGi OSGi OSGi OSGi bundle bundle bundle bundle Java EE container OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 9
  • 10. General approach – Keep the goal in sight! It’s not for those reasons:  Single bundle can’t be reliably stopped! Java Web Bundle  Single bundle can’t be reliably updated! OSGi OSGi OSGi bundle bundle bundle  Reference caching further spoils the party! OSGi bundle  Random startup order as a surprise for non- OSGi bundle OSGi bundle aware modules. OSGi OSGi OSGi OSGi  Reference resolution for naïve package bundle bundle bundle bundle imports without a version might become tricky. OSGi-enabled Java EE container © 2011 SAP AG. All rights reserved. 10
  • 11. We go for OSGi - which server to run on? Java EE 6 compatibility page (23.Oct.2012) Java EE 6 Web Java EE 6 Full profile profile © 2011 SAP AG. All rights reserved. 11
  • 12. Tested scenario: Granny’s address book Spring Spring Granny’s Spring (14) address book slf4j dom4j log4j Guava javassist Tomcat jdbc hibernate Apache juli cglib asm aopalliance antlr Source: Original sources + packaging on GitHub © 2011 SAP AG. All rights reserved. 12
  • 13. Apache TomEE 1.0 OSGi support  None whatsoever  Neither uses, nor provides any  Modularity: none – stick to Tomcat webapps  Libs can be put in [tomeelib] folder  No activators/resolution. Works like classpath. Overall experience  Feels very lightweight even with a bigger WAR file.  TomEE doesn’t currently support web.xml <resource-ref> definitions in web.xml. To be fixed soon.  Doing partial application update is not supported by the server. Requires 3-rd party tools like LiveRebel for example. © 2011 SAP AG. All rights reserved. 13
  • 14. Caucho Resin 4.0.32 free OSGi support  None whatsoever (but Why OSGi is cool, but not for enterprise apps blog)  Modularity: Own “pomegranate” module system, dependencies in pom.xml  Additional JARs can be put in [resinext-lib] folder  No activators/resolution. Works like classpath. Overall experience  Easy to handle  No default datasource is bound in JNDI. Therefore app startup fails if not created manually. © 2011 SAP AG. All rights reserved. 14
  • 15. JBoss Application Server 7(web) OSGi support  JBoss own OSGI impl.  Tutorial available over here  Additional bundles handling  Transform the WAR as a Web Bundle Archive (WAB) JAR.  Add the WAB + all related bundles in standalonedeployment “auto-deploy” folder Overall experience  Easy to use! A bit hard to find the application web alias…  Both web console + CLI admin deploy only single archives. No batching.  Deployment passes successfully although bundles can’t be resolved at that time.  Startup fails silently afterwards. © 2011 SAP AG. All rights reserved. 15
  • 16. Glassfish 3.1.2.2 (web + full) OSGi support  HK2 is based on Apache Felix  Additional bundles handling  Deploy bundles one by one via asadmin CLI tool. Overall experience  Deploy fails correctly on failed resolution. Have to handy-pick all dependencies one by one.  Web console seems to cautiously ignore OSGi :-) © 2011 SAP AG. All rights reserved. 16
  • 17. Apache Geronimo 3.0 OSGi support  Based on Apache Felix  Additional bundles handling  Deployment via the Eclipse development tools Overall experience  Build as both Web Profile and Full Profile, but never cared to certify against the Web Profile © 2011 SAP AG. All rights reserved. 17
  • 18. Other projects to watch out for WebSphere Application Server V8.5 Liberty Profile Eclipse Virgo © 2011 SAP AG. All rights reserved. 18
  • 19. You still want to take the journey? Take a look at @glynnormington “Is OSGi modularity always worth it?” session. Management is very susceptive to “costs” and “ROI” arguments. Make the cost calculations carefully and use the numbers wisely! © 2011 SAP AG. All rights reserved. 19