SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Modular Enterprise Applications
  Mark Nuttall, mnuttall@uk.ibm.com
  IBM WebSphere OSGi Applications
         development lead
Overview
• Modularity and OSGi: what they are and
  why Java needs them
• Enterprise OSGi
• What’s new in the OSGi Service
  Platform Release 4 Early Draft 2011.09,
  and why it’s important
• Demonstration
Modularity
So what is Modularity?
“(Desirable) property of a system, such
that individual components can be
examined, modified and maintained
                                                            PCIe x16
independently of the remainder of the
system. Objective is that changes in
one part of a system should not lead to
unexpected behavior in other parts.”            VGA
                                                      DVI




www.cs.bath.ac.uk/~jap/MATH0015/glossary.html
Complexity and System Rot
         Traditional
            system
                                               Modular
                                               system


                   Modular
                   system

                                            Traditional
                                               system



               Time                     Time


In a software system, entanglement is the
primary cause of decay.
Java needs help: enforcing modularity
             makes entanglement less likely
•    Java unit of modularity = JAR
•    Enterprise apps are collections of
     JARs
•    But a JAR lacks the primary
     characteristics of modularity:
    People do
    this to software
    all the time!
•    It does NOT hide its internals
•    It does NOT declare its externals
•    The global Java classpath does
     NOT support versioning
What is OSGi?
• “The dynamic module system for Java”
   – Mature 10-year old technology
   – Governed by OSGi Alliance: http://www.osgi.org
   – Used inside just about all Java-based middleware
       • IBM WebSphere, Oracle WebLogic, Red Hat JBoss, Sun GlassFish, Paremus
         Service Fabric, Eclipse Platform, Apache Geronimo, …



             Jar                                             Jar
            Package               Explicit exports           Package

            Class                                            Class
               Class                                            Class
                  Class                                            Class

            Package                                          Package

            Class                                            Class
               Class                                            Class
                  Class                                            Class
                            Explicit dependencies




                                                                                 6
How does OSGi help reduce cost?
 •   Enforces architecture and simplifies maintenance
 •   Enables modular deployment
 •   Enables co-existence of multiple versions of libraries
      – Simplifies independent evolution of applications
      – Better separation of concern between application and middleware
 •   Enables truly dynamic update of modules within applications


           Bundle                                              Bundle
            Package                 Explicit exports            Package

            Class                                               Class
               Class                                               Class
                  Class                                               Class

            Package                                             Package

            Class                                               Class
               Class                                               Class
                  Class                                               Class
                              Explicit dependencies




                                                                              7
OSGi Modules (aka Bundles)
                                                                                                                             Classloader


                                                                                                        Bundle
• A Jar plus OSGi Manifest, includes:                                                             Manifes t-Ver sion : 1.0
                                                                                                  Bundle- Manif estV ersi




   – Bundle Identity                                                              Classloader


                                                             Bundle
   – Exported Packages
                                                       Manifes t-Ver sion : 1.0
                                                       Bundle- Manif estV ersi
                                                                                                                                                               Classloader


                                                                                                                                          Bundle
   – Imported Packages
                                                                                                                                    Manifes t-Ver sion : 1.0
                                                                                                                                    Bundle- Manif estV ersi




• Dependency resolution                                                                         Classloader
  “wires” bundles into
                                                                                           Bundle
  a dependency graph
                                                                 Manifest-Version: 1.0


• Each gets its own
                                                                 Bundle-ManifestVersion: 2




  class loader
• Classloading
  delegates via graph
                          Manifest-Version: 1.0
                          Bundle-ManifestVersion: 2
                          Bundle-Name: My Example Bundle
                          Bundle-SymbolicName: com.my.bundle
                          Bundle-Version: 1.0.0
                          Export-Package: com.something.i.provide;version="1.0.0"
                          Import-Package: com.something.i.need;version="[1.1,2.0)"
Dynamic Lifecycle

                           Bundle
• Bundles have a dynamic
  lifecycle
• Can come and go
  independently
• APIs enable graceful
  reaction to changes
OSGi Services
                                         service
                     Consumer     get          register   Provider
                      Bundle                              Bundle
                                listen




• Publish/find/bind service model
   – Fully dynamic
   – Local
   – Non-durable
• Primary mechanism for bundle collaboration
• POJO advertised with properties and/or interface and/or
  class
OSGi Enterprise Specification
• Enterprise 4.2: Released 22 March 2010
    – OSGi Enterprise Expert Group (EEG)
• Brings Enterprise technologies and OSGi together
• Using existing Java SE/EE specifications:
    – JTA, JPA, JNDI, JMX, WebApps…
• Adds Spring-derived Blueprint component model and DI container
• New in the OSGi Service Platform release 4 early draft 2011.09:
    – Standard application model
    – Bundle repository
• Java EE provides the core enterprise application programming
  model
• OSGi encourages modular design, simplifies reuse, and enables
  dynamic module updates
OSGi Bundle Repository
• Standardizes the entities required to resolve requirements
    – Used by the Subsystems specification for deployment
•   Environment – enables context and policy
•   Resolver – similar to runtime framework resolver
•   Repository – provides candidate solutions to requirements
•   Repository XML – interchange XML
                                                            Repository1



       Resolver                Environment                  Repository2
                                                                      XML


                   Subsystem                                Repository3
Subsystems: Disclaimer

• Subsystems is an in-progress RFC.
  What follows is a snapshot in time of the
  expert group thinking and is subject to
  change.
Subsystems: Motivation
• Enterprise Java platforms are awash with bundle
  collections
   – Apache Aries – Applications
   – Apache Geronimo - Applications
   – Apache Karaf – Features
   – Eclipse Virgo – Plans, PARs
   – IBM WebSphere Application Server –
     Applications, Composites, Liberty Features
   – Oracle GlassFish – Applications
   – Paremus Service Fabric – Systems
• Crying out for standardization
   – Portability
   – Tools
   – Ecosystem
Subsystems Model: Hierarchy
• Most common model is                            subsystem
  hierarchy and so
  Subsystems are no                             subsystem
  different
   – Each has 1 parent                          subsystem
   – Each can have many children
                                   subsystem   subsystem
   – Children of the same parent
     are siblings
• Visually represented by          subsystem   subsystem

  containment
Feature Subsystems
• Collection of Resources (e.g.   feature
  Bundles)                        bundle
• Shared life-cycle
• Can be nested                                      feature

• No isolation or affinity        bundle

• Repository-based
                                              bundle
  provisioning
                                  bundle
• Examples: Karaf Features,
  Virgo unscoped Plans


                                  bundle    bundle
Composite Subsystems
  • Coarse-grained sub-assembly           bundle
    module
  • Isolated
                                                       composite
  • Explicit share in/out
                                      bundle
  • Affinity
  • Repository-based                               bundle
    provisioning
                                      bundle
  • Examples: RFC 138
    Composite Bundles*,
    WebSphere Composite
    Bundles                           bundle       bundle


*old design prior to resolver hooks
Application Subsystems
• Model for hosted
  applications                            application
                              bundle
• Isolated
• No sharing out, implicit             bundle
  sharing in
                              bundle
• Affinity
• Repository-based
  provisioning
                              bundle   bundle
• Examples: Aries
  Application, Virgo Scoped
  Plans, Virgo PARs
Example Combination
• Subsystem Types can be                         framework
  mixed and matched
                                 application   application
• Example shows:
  – Features used to assemble
    a Composite                                 composite

  – Composite providing a        feature       feature
    ‘platform’ to Applications
                                 feature
Portability
• Subsystem Manifests are
  portable to a point                             Subsystem Definition
   – Target Environment + Transitive
     Dependencies must support the
     required resource implementation           Transitive
     types (e.g. Blueprint, WAB, DS,          Dependencies
     etc)
• Transitive dependencies                          Target Environment
  may be portable
   – Different Target Environments
     likely to require different Transitive
     Dependencies
Packaging
• Packaged in a Subsystem             my.first.subsystem.ssa
  Archive
                                      OSGI-INF/SUBSYSTEM.MF
• A zip file with .ssa
  extension:                         OSGI-INF/DEPLOYMENT.MF
  – Subsystem Manifest (optional)
  – Deployment Manifest (optional)
                                     an.osgi.bundle-1.0.0.jar
  – Resources
    (optional)
                                     an.osgi.bundle2-1.0.0.jar
Start with an empty
Example         Composite

Composite                         ACTIVE
Application Subsystem
Example                                installed and resolved

Composite                                                       ACTIVE


    Application             RESOLVED


            bundle
                     RESOLVED




                  transitive bundle
                           RESOLVED
Second Application
                                       Subsystem installed and
Example                                        started


Composite                                                                  ACTIVE


    Application             RESOLVED        Application                  ACTIVE


            bundle                                 bundle
                     RESOLVED                                   ACTIVE




                  transitive bundle         transitive bundle
                            ACTIVE                   ACTIVE
Second Application
Example                                Subsystem uninstalled


Composite                                                              ACTIVE


    Application             RESOLVED       Application         UNINSTALLED


            bundle                                bundle
                     RESOLVED                            UNINSTALLED




                  transitive bundle        transitive bundle
                           RESOLVED             UNINSTALLED
First Application Subsystem
Example                                         uninstalled


Composite                                                                 ACTIVE


    Application          UNINSTALLED          Application         UNINSTALLED


            bundle                                   bundle
                  UNINSTALLED                               UNINSTALLED




                  transitive bundle           transitive bundle
                        UNINSTALLED                UNINSTALLED
Subsystems: Summary
• With the publication of the next OSGi Service
  Platform specification, subsystems will be the
  standard way to manage groups of resources
• Version ranges allow flexibility in resource selection
• Subsystem types define sharing semantics
• Deployment definition
   – locks down versions and sharing
   – Identifies transitive dependencies
• API enables management of Subsystem life-cycle
Demo Time: Colors by WebSphere
Colors by WebSphere:
             Bundles and Services
                                            colors.provider.red


colors.web   colors.blender


                                           colors.provider.green




                                           colors.provider.blue




                              colors.api
Colors by WebSphere: Color
               services
                                  Color services    colors.provider.red


colors.web   colors.blender


                                                   colors.provider.green




                                                   colors.provider.blue




                              colors.api
Colors by WebSphere: Color
               services
                               Adjustment Service
                                                     colors.provider.red
                               (Extension Point)
colors.web   colors.blender


                                                    colors.provider.green




                                                    colors.provider.blue




                              colors.api
Summary

• Modularity and OSGi: what they are and
  why Java needs them
• Enterprise OSGi
• What’s new in the OSGi Service
  Platform Release 4 Early Draft 2011.09,
  and why it’s important
• Demonstration
Thank you! Any questions?

Mais conteúdo relacionado

Mais procurados

OSGi and Java 9+
OSGi and Java 9+OSGi and Java 9+
OSGi and Java 9+bjhargrave
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java Hitesh-Java
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
 
OSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worldsOSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worldsArun Gupta
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Frameworkmparth
 
Java Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingJava Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingAnton Keks
 
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
 
Basics of java programming language
Basics of java programming languageBasics of java programming language
Basics of java programming languagemasud33bd
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel Fomitescu
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introductionjyoti_lakhani
 
Java Course 7: Text processing, Charsets & Encodings
Java Course 7: Text processing, Charsets & EncodingsJava Course 7: Text processing, Charsets & Encodings
Java Course 7: Text processing, Charsets & EncodingsAnton Keks
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaAjay Sharma
 
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...mfrancis
 

Mais procurados (20)

OSGI Modularity
OSGI ModularityOSGI Modularity
OSGI Modularity
 
OSGi and Java 9+
OSGi and Java 9+OSGi and Java 9+
OSGi and Java 9+
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
.NET Vs J2EE
.NET Vs J2EE.NET Vs J2EE
.NET Vs J2EE
 
Oracle History #5
Oracle History #5Oracle History #5
Oracle History #5
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
Osgi Sun 20080820
Osgi Sun 20080820Osgi Sun 20080820
Osgi Sun 20080820
 
OSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worldsOSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worlds
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 
Java Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingJava Course 13: JDBC & Logging
Java Course 13: JDBC & Logging
 
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! ...
 
What is-java
What is-javaWhat is-java
What is-java
 
Basics of java programming language
Basics of java programming languageBasics of java programming language
Basics of java programming language
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 
Learn Java Part 1
Learn Java Part 1Learn Java Part 1
Learn Java Part 1
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Java Course 7: Text processing, Charsets & Encodings
Java Course 7: Text processing, Charsets & EncodingsJava Course 7: Text processing, Charsets & Encodings
Java Course 7: Text processing, Charsets & Encodings
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
 

Destaque

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
 
Weld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiWeld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiMathieu Ancelin
 
Praktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGiPraktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGiJacek Laskowski
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in PractiseDavid Bosschaert
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applicationsJulien Dubois
 
2011 State of the Safety Net Report
2011 State of the Safety Net Report2011 State of the Safety Net Report
2011 State of the Safety Net ReportDirect Relief
 
Hum2310 fa2015 proust questionnaire
Hum2310 fa2015 proust questionnaireHum2310 fa2015 proust questionnaire
Hum2310 fa2015 proust questionnaireProfWillAdams
 
ART1204 Art of the Ancient Near East
ART1204 Art of the Ancient Near EastART1204 Art of the Ancient Near East
ART1204 Art of the Ancient Near EastProfWillAdams
 
Using Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemUsing Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemOpenFest team
 
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...kdlaplac
 
Presentazione cantinando per aziende
Presentazione cantinando per aziendePresentazione cantinando per aziende
Presentazione cantinando per aziendeDaniel Romano
 
Android | Busy Java Developers Guide to Android: Persistence | Ted Neward
Android | Busy Java Developers Guide to Android: Persistence | Ted NewardAndroid | Busy Java Developers Guide to Android: Persistence | Ted Neward
Android | Busy Java Developers Guide to Android: Persistence | Ted NewardJAX London
 
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel WinderJava Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel WinderJAX London
 
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam  Terhadap Produktivi...Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam  Terhadap Produktivi...
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...21 Memento
 
Christmas 2011
Christmas 2011Christmas 2011
Christmas 2011cjling
 

Destaque (20)

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
 
JavaEE + OSGi
JavaEE + OSGiJavaEE + OSGi
JavaEE + OSGi
 
Weld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiWeld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGi
 
Praktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGiPraktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGi
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applications
 
2011 State of the Safety Net Report
2011 State of the Safety Net Report2011 State of the Safety Net Report
2011 State of the Safety Net Report
 
Hum2310 fa2015 proust questionnaire
Hum2310 fa2015 proust questionnaireHum2310 fa2015 proust questionnaire
Hum2310 fa2015 proust questionnaire
 
ART1204 Art of the Ancient Near East
ART1204 Art of the Ancient Near EastART1204 Art of the Ancient Near East
ART1204 Art of the Ancient Near East
 
Using Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemUsing Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud System
 
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
 
Presentazione cantinando per aziende
Presentazione cantinando per aziendePresentazione cantinando per aziende
Presentazione cantinando per aziende
 
Android | Busy Java Developers Guide to Android: Persistence | Ted Neward
Android | Busy Java Developers Guide to Android: Persistence | Ted NewardAndroid | Busy Java Developers Guide to Android: Persistence | Ted Neward
Android | Busy Java Developers Guide to Android: Persistence | Ted Neward
 
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel WinderJava Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
 
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam  Terhadap Produktivi...Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam  Terhadap Produktivi...
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...
 
initLab
initLabinitLab
initLab
 
Tsahim 1
Tsahim 1Tsahim 1
Tsahim 1
 
Tsahim 1
Tsahim 1Tsahim 1
Tsahim 1
 
Christmas 2011
Christmas 2011Christmas 2011
Christmas 2011
 
Aesaes
AesaesAesaes
Aesaes
 

Semelhante a Architecture | Modular Enterprise Applications | Mark Nuttall

Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The FactLuciano Resende
 
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...mfrancis
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
 
OSGi Best Practices - Tim Ward
OSGi Best Practices - Tim WardOSGi Best Practices - Tim Ward
OSGi Best Practices - Tim Wardmfrancis
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishArun Gupta
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishArun Gupta
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
Introduction to OSGi - Part-1
Introduction to OSGi - Part-1Introduction to OSGi - Part-1
Introduction to OSGi - Part-1kshanth2101
 
An Empirical Evaluation of OSGi Dependencies Best Practices
An Empirical Evaluation of OSGi Dependencies Best PracticesAn Empirical Evaluation of OSGi Dependencies Best Practices
An Empirical Evaluation of OSGi Dependencies Best PracticesLina Ochoa
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Atlassian
 
VIB - Very Important Bundles
VIB - Very Important BundlesVIB - Very Important Bundles
VIB - Very Important BundlesRoman Roelofsen
 
A toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundlesA toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundlesOSGi User Group France
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC MetropjhInovex
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1pjhInovex
 

Semelhante a Architecture | Modular Enterprise Applications | Mark Nuttall (20)

Warum OSGi?
Warum OSGi?Warum OSGi?
Warum OSGi?
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The Fact
 
Uml2
Uml2Uml2
Uml2
 
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...
OSGi Service Platform Release 4 Overview - BJ Hargrave, IBM & Peter Kriens, a...
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint
 
OSGi Best Practices - Tim Ward
OSGi Best Practices - Tim WardOSGi Best Practices - Tim Ward
OSGi Best Practices - Tim Ward
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Introduction to OSGi - Part-1
Introduction to OSGi - Part-1Introduction to OSGi - Part-1
Introduction to OSGi - Part-1
 
An Empirical Evaluation of OSGi Dependencies Best Practices
An Empirical Evaluation of OSGi Dependencies Best PracticesAn Empirical Evaluation of OSGi Dependencies Best Practices
An Empirical Evaluation of OSGi Dependencies Best Practices
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
 
VIB - Very Important Bundles
VIB - Very Important BundlesVIB - Very Important Bundles
VIB - Very Important Bundles
 
A toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundlesA toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundles
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
 

Mais de JAX London

Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...JAX London
 
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...JAX London
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleJAX London
 
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...JAX London
 
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave SyerSpring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave SyerJAX London
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenJAX London
 
Spring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave SyerSpring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave SyerJAX London
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffJAX London
 
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeSpring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeJAX London
 
Keynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorKeynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorJAX London
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJAX London
 
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...JAX London
 
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...JAX London
 
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao KandJava Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao KandJAX London
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJAX London
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...JAX London
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJAX London
 
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...JAX London
 
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJAX London
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJAX London
 

Mais de JAX London (20)

Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
 
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
 
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
 
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave SyerSpring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
 
Spring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave SyerSpring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave Syer
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
 
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeSpring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
 
Keynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorKeynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James Governor
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily Jiang
 
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and...
 
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
 
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao KandJava Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
 
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
 
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
 

Último

20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?SANGHEE SHIN
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 

Último (20)

20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 

Architecture | Modular Enterprise Applications | Mark Nuttall

  • 1. Modular Enterprise Applications Mark Nuttall, mnuttall@uk.ibm.com IBM WebSphere OSGi Applications development lead
  • 2. Overview • Modularity and OSGi: what they are and why Java needs them • Enterprise OSGi • What’s new in the OSGi Service Platform Release 4 Early Draft 2011.09, and why it’s important • Demonstration
  • 3. Modularity So what is Modularity? “(Desirable) property of a system, such that individual components can be examined, modified and maintained PCIe x16 independently of the remainder of the system. Objective is that changes in one part of a system should not lead to unexpected behavior in other parts.” VGA DVI www.cs.bath.ac.uk/~jap/MATH0015/glossary.html
  • 4. Complexity and System Rot Traditional system Modular system Modular system Traditional system Time Time In a software system, entanglement is the primary cause of decay.
  • 5. Java needs help: enforcing modularity makes entanglement less likely • Java unit of modularity = JAR • Enterprise apps are collections of JARs • But a JAR lacks the primary characteristics of modularity: People do this to software all the time! • It does NOT hide its internals • It does NOT declare its externals • The global Java classpath does NOT support versioning
  • 6. What is OSGi? • “The dynamic module system for Java” – Mature 10-year old technology – Governed by OSGi Alliance: http://www.osgi.org – Used inside just about all Java-based middleware • IBM WebSphere, Oracle WebLogic, Red Hat JBoss, Sun GlassFish, Paremus Service Fabric, Eclipse Platform, Apache Geronimo, … Jar Jar Package Explicit exports Package Class Class Class Class Class Class Package Package Class Class Class Class Class Class Explicit dependencies 6
  • 7. How does OSGi help reduce cost? • Enforces architecture and simplifies maintenance • Enables modular deployment • Enables co-existence of multiple versions of libraries – Simplifies independent evolution of applications – Better separation of concern between application and middleware • Enables truly dynamic update of modules within applications Bundle Bundle Package Explicit exports Package Class Class Class Class Class Class Package Package Class Class Class Class Class Class Explicit dependencies 7
  • 8. OSGi Modules (aka Bundles) Classloader Bundle • A Jar plus OSGi Manifest, includes: Manifes t-Ver sion : 1.0 Bundle- Manif estV ersi – Bundle Identity Classloader Bundle – Exported Packages Manifes t-Ver sion : 1.0 Bundle- Manif estV ersi Classloader Bundle – Imported Packages Manifes t-Ver sion : 1.0 Bundle- Manif estV ersi • Dependency resolution Classloader “wires” bundles into Bundle a dependency graph Manifest-Version: 1.0 • Each gets its own Bundle-ManifestVersion: 2 class loader • Classloading delegates via graph Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: My Example Bundle Bundle-SymbolicName: com.my.bundle Bundle-Version: 1.0.0 Export-Package: com.something.i.provide;version="1.0.0" Import-Package: com.something.i.need;version="[1.1,2.0)"
  • 9. Dynamic Lifecycle Bundle • Bundles have a dynamic lifecycle • Can come and go independently • APIs enable graceful reaction to changes
  • 10. OSGi Services service Consumer get register Provider Bundle Bundle listen • Publish/find/bind service model – Fully dynamic – Local – Non-durable • Primary mechanism for bundle collaboration • POJO advertised with properties and/or interface and/or class
  • 11. OSGi Enterprise Specification • Enterprise 4.2: Released 22 March 2010 – OSGi Enterprise Expert Group (EEG) • Brings Enterprise technologies and OSGi together • Using existing Java SE/EE specifications: – JTA, JPA, JNDI, JMX, WebApps… • Adds Spring-derived Blueprint component model and DI container • New in the OSGi Service Platform release 4 early draft 2011.09: – Standard application model – Bundle repository • Java EE provides the core enterprise application programming model • OSGi encourages modular design, simplifies reuse, and enables dynamic module updates
  • 12. OSGi Bundle Repository • Standardizes the entities required to resolve requirements – Used by the Subsystems specification for deployment • Environment – enables context and policy • Resolver – similar to runtime framework resolver • Repository – provides candidate solutions to requirements • Repository XML – interchange XML Repository1 Resolver Environment Repository2 XML Subsystem Repository3
  • 13. Subsystems: Disclaimer • Subsystems is an in-progress RFC. What follows is a snapshot in time of the expert group thinking and is subject to change.
  • 14. Subsystems: Motivation • Enterprise Java platforms are awash with bundle collections – Apache Aries – Applications – Apache Geronimo - Applications – Apache Karaf – Features – Eclipse Virgo – Plans, PARs – IBM WebSphere Application Server – Applications, Composites, Liberty Features – Oracle GlassFish – Applications – Paremus Service Fabric – Systems • Crying out for standardization – Portability – Tools – Ecosystem
  • 15. Subsystems Model: Hierarchy • Most common model is subsystem hierarchy and so Subsystems are no subsystem different – Each has 1 parent subsystem – Each can have many children subsystem subsystem – Children of the same parent are siblings • Visually represented by subsystem subsystem containment
  • 16. Feature Subsystems • Collection of Resources (e.g. feature Bundles) bundle • Shared life-cycle • Can be nested feature • No isolation or affinity bundle • Repository-based bundle provisioning bundle • Examples: Karaf Features, Virgo unscoped Plans bundle bundle
  • 17. Composite Subsystems • Coarse-grained sub-assembly bundle module • Isolated composite • Explicit share in/out bundle • Affinity • Repository-based bundle provisioning bundle • Examples: RFC 138 Composite Bundles*, WebSphere Composite Bundles bundle bundle *old design prior to resolver hooks
  • 18. Application Subsystems • Model for hosted applications application bundle • Isolated • No sharing out, implicit bundle sharing in bundle • Affinity • Repository-based provisioning bundle bundle • Examples: Aries Application, Virgo Scoped Plans, Virgo PARs
  • 19. Example Combination • Subsystem Types can be framework mixed and matched application application • Example shows: – Features used to assemble a Composite composite – Composite providing a feature feature ‘platform’ to Applications feature
  • 20. Portability • Subsystem Manifests are portable to a point Subsystem Definition – Target Environment + Transitive Dependencies must support the required resource implementation Transitive types (e.g. Blueprint, WAB, DS, Dependencies etc) • Transitive dependencies Target Environment may be portable – Different Target Environments likely to require different Transitive Dependencies
  • 21. Packaging • Packaged in a Subsystem my.first.subsystem.ssa Archive OSGI-INF/SUBSYSTEM.MF • A zip file with .ssa extension: OSGI-INF/DEPLOYMENT.MF – Subsystem Manifest (optional) – Deployment Manifest (optional) an.osgi.bundle-1.0.0.jar – Resources (optional) an.osgi.bundle2-1.0.0.jar
  • 22. Start with an empty Example Composite Composite ACTIVE
  • 23. Application Subsystem Example installed and resolved Composite ACTIVE Application RESOLVED bundle RESOLVED transitive bundle RESOLVED
  • 24. Second Application Subsystem installed and Example started Composite ACTIVE Application RESOLVED Application ACTIVE bundle bundle RESOLVED ACTIVE transitive bundle transitive bundle ACTIVE ACTIVE
  • 25. Second Application Example Subsystem uninstalled Composite ACTIVE Application RESOLVED Application UNINSTALLED bundle bundle RESOLVED UNINSTALLED transitive bundle transitive bundle RESOLVED UNINSTALLED
  • 26. First Application Subsystem Example uninstalled Composite ACTIVE Application UNINSTALLED Application UNINSTALLED bundle bundle UNINSTALLED UNINSTALLED transitive bundle transitive bundle UNINSTALLED UNINSTALLED
  • 27. Subsystems: Summary • With the publication of the next OSGi Service Platform specification, subsystems will be the standard way to manage groups of resources • Version ranges allow flexibility in resource selection • Subsystem types define sharing semantics • Deployment definition – locks down versions and sharing – Identifies transitive dependencies • API enables management of Subsystem life-cycle
  • 28. Demo Time: Colors by WebSphere
  • 29. Colors by WebSphere: Bundles and Services colors.provider.red colors.web colors.blender colors.provider.green colors.provider.blue colors.api
  • 30. Colors by WebSphere: Color services Color services colors.provider.red colors.web colors.blender colors.provider.green colors.provider.blue colors.api
  • 31. Colors by WebSphere: Color services Adjustment Service colors.provider.red (Extension Point) colors.web colors.blender colors.provider.green colors.provider.blue colors.api
  • 32. Summary • Modularity and OSGi: what they are and why Java needs them • Enterprise OSGi • What’s new in the OSGi Service Platform Release 4 Early Draft 2011.09, and why it’s important • Demonstration
  • 33. Thank you! Any questions?