SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Apache Aries
An Open Source project for
Enterprise OSGi Applications
Apache Aries – Project Overview


Agenda

  History


  Community


  Content


  Consumers


  Future



                                              2
Apache Aries – Project Overview


History

 “Aries” created as a new Apache incubator project in Sep 2009
 focused on:
  • the programming model aspects of OSGi applications in an
      enterprise environment
  • building a broad development community to encourage
      implementation and adoption of EEG specs
  • providing an environment to collaborate and experiment with
      new technologies to inform further EEG standards.
 Independent of
  • OSGi framework provider and integration/server runtime
 Initial contribution included the Blueprint container implementation
 developed originally by the Apache Geronimo community.
 Web Site for all resources and documentation:
 http://incubator.apache.org/aries/



                                                                        3
Apache Aries – Project Overview


Community

 In a short space of time a community of 43 committers
 has been formed involving contributors from
 Ericsson, IBM, JBoss, LinkedIn, Progress, ProSyst, SAP
 and individuals
  • http://incubator.apache.org/aries/people.html
 Creation of community is one of the primary goals of the
 Apache Incubator:
  • To demonstrate that there is a broad community of interest
  • To help newcomers to Apache learn the ropes.




                                                                 4
Apache Aries – Project Overview


Aries Content includes…

  Blueprint container
  JPA integration
  JTA integration
  JMX
  JNDI integration
  Application assembly and deployment
  META-INF/services handler
  Samples, documentation, integrator’s guide

http://svn.apache.org/repos/asf/incubator/aries/trunk/


                                                         5
Apache Aries – Project Overview


      Aries Blueprint Container
       A DI container standardizing established Spring conventions
       XML Blueprint definition describes component configuration and scope
          •        Optionally publish and consume components to/from OSGi service registry.
       Simplifies unit test outside either Java EE or OSGi r/t.


                                                              The Aries BP container implementation is
                        Managed beans
                                                              highly extensible:
                                                                • Namespace handlers supported to extend
   publishes                                       consumes
                                                    service       the Blueprint definitions
    service
                                                                • Bean interceptors can be registered by
                             OSGI-INF/blueprint/                  handlers
     A static                  blueprint.xml
 assembly and
configuration of
                                                              Other Aries components contribute handlers –
  components
    (POJOs)
                         Blueprint bundle                     “jpa” and “jta” handlers.
                                                              Some other Aries components are
                                                              implemented as Blueprint bundles themselves
                                                                • e.g. JPA container

                                                                                                        6
Apache Aries – Project Overview


Aries JPA Container – Application Managed PUs
                                         Persistence bundle                  Managed EntityManagerFactory
  Provides support for “Application                                          Registered on behalf of the
                                         Bundle Manifest
  managed” JPA.                          …
                                                                             persistence bundle

  Each persistence bundle has its        Meta-Persistence:
                                         OSGI-INF/persistence.xml
  standard JPA metadata located
  through the Meta-Persistence                             OSGI-INF/
                                         Entities
  bundle header.                                       persistence.xml                  Registers
                                                                                        EntityManagerFactory
  JPA Container locates a JPA                                                           service per PU
  Provider which can service the PU                          Uses

  and registers a Provider-created                                  org.apache.aries.jpa.container
  EntityManagerFactory service for
  each PU in each persistence                       Uses                 Used to build the
  bundle                                                                 EntityManagerFactory

   • EMF service lifecyce follows
      the persistence bundle                                               createContainerEMF
                                                                           (PersistenceUnitInfo)
      lifecycle                               JPA Provider
  JPA Provider gets persistence
                                                                         javax.persistence.spi.
  bundle classloader from PUInfo.                                        PersistenceProvider
                                                                         service



                                                                                                               7
Apache Aries – Project Overview



Aries JPA Container – Blueprint Integration
  The Aries JPA container context                 Example blueprint with JPA resource
  bundle provides a blueprint                     injection and container-managed
  namespace for dependency injection              transactions:
  of managed JPA resources.
  Managed persistence units                  <blueprint
  (EntityManagerFactory objects) can         xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
                                             xmlns:jta="http://aries.apache.org/xmlns/transactions/v1.0.0"
  be injected with or without a JTA          xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0">
  Transaction Services
                                              <bean id=“appMgd“ class=“com.acme.AppManaged”>
  implementation.                              <jpa:unit property="emf" unitname="myUnit" />
                                              </bean>
  Managed persistence contexts
  (EntityManager objects) are only            <bean id="containerMgd“ class=“com.acme.Container”>
                                               <jpa:context property="em" unitname=“myUnit“/>
  available with a JTA Transaction             <jta:transaction method=“*" value=“Required" />
  Services implementation.                    </bean>

  Both managed persistence units and         </blueprint>
  managed persistence contexts
  behave as per the JPA specification.


                                                                                                        8
Apache Aries – Project Overview


Aries JTA integration

  Apache Aries integrates the OSGi Transaction Service
  Reference Implementation (Apache Geronimo
  Transaction Manager).
 Also: transaction-
 blueprint bundle
 registers a “jta”
 Blueprint namespace
 handler to provide
 container-managed
 transactions for BP
 components


                                                         9
Apache Aries – Project Overview


Aries JMX Integration

 Implementation of OSGi JMX specification.
 Aries JMX bundle automatically registers the JMX
 MBeans into any javax.management.MBeanServer
 service in the OSGi Service Registry.
                                          <<MBean>>        <<MBean>>        <<MBean>>
                                          Fram ework       Bund le State    Blue print
                                          MB ean           MB ean           MB ean
 Framework MBeans
                                                                                  <<MBean>>         PermissionAdmin
                                                                                  Permis sion
 Compendium MBeans                                                                Ad min MB ean
                           MBean Server
                                                           JMX OSGi               <<MBean>>         Configur ation Admin
 Additional Aries MBeans                                   Manager                Co nfiguratio n
                                                                                  Ad min MB ean

                                                                                  <<MBean>>         Provisioning Service
                                                                                  Provisi onin g
                                                                                  ServiceMBean

                                          <<MBean>>        <<MBean>>              <<MBean>>         User Admin
                                          Service St ate   Package St ate         User Adm in
                                          MB ean           MB ean                 MB ean




                                                                                                                           10
Apache Aries – Project Overview


   Aries JNDI integration
      Provides JNDI-based access to OSGi Service Registry

<blueprint xmlns=...>
   <bean id="bloggingServiceComponent"
        class="org.apache.aries.BloggingServiceImpl">
   </bean>
   <service ref="bloggingServiceComponent"
       interface="org.apache.aries.samples.blog.api.BloggingService"/>
   ...
</blueprint>


     registerService
                                A way for a Web component to access a
     OSGi                       Blueprint component
Service Registry
     getService
                                 InitialContext ic = new InitialContext();
                                 BloggingService blog= ic.lookup("osgi:services/"
   JNDI Context                                  + BloggingService.class.getName());




                                                                                       11
Apache Aries – Project Overview

   Aries Application Assembly and Deploy
     The “application” project provides pluggable infrastructure to support
     deployment of an application consisting of a collection of bundles as a
     logical unit from an enterprise bundle archive (archive with .eba extn).
      • An “Enterprise OSGi Application”.
     Constituent bundles may be contained (“by-value”) in the .eba archive
     or referenced in APPLICATION.MF
     Only explicitly declared Services are exposed from the application.
     Config by exception - absence of APPLICATION.MF means:
      • application content is the set of bundles contained by-value plus any
        repository-hosted dependencies identified during deployment.

 Bundle Repository
Bundle Repository
                                           Application Manifest
                                           Enumerates constituent bundles
                                                                              blog-persistence.jar
     json4j.jar                            Declares Application “externals”
                                                                                    blog.jar

                                          blog.eba                              blog-servlet.jar



                                                                                                     12
Apache Aries – Project Overview


     Aries Application Assembly and Deploy
                                                                                           Pluggable
                                                                                           ApplicationResolver
                                                                                           - NoOpResolver
     Aries Application =                                                                   - OBRAriesResolver
     createApplication(eba)
                                    org.apache.aries.application.management


                                                                                           Pluggable BundleConverters
                                                                                           - WabConverterService


                                                                      Manifest-Version: 1.0
Manifest-Version: 1.0                                                 Deployment-ManifestVersion: 1.0
Application-ManifestVersion: 1.0                                      Application-Name: Blog Application
Application-Name: Blog Application                                    Application-SymbolicName: aries.sample.blog
Application-SymbolicName: aries.sample.blog                           Application-Version: 1.0
Application-Version: 1.0                                              Deployed-Content:
Application-Content:                                                    aries.sample.blog; version=1.0.0,
  aries.sample.blog; version="[1.0.0,1.1.0)",                           aries.sample.blog-api; version=1.0.0,
  aries.sample.blog-api; version="1.0.0",                               aries.sample.blog-persistence; version=1.0.0,
  aries.sample.blog-persistence; version="1.0.0",                       aries.sample.blog-servlet; version=1.0.0,
  aries.sample.blog-servlet; version="[1.0.0,1.0.0]”                    com.ibm.json.java; version=1.0.0

Application Manifest (developer/assembler authored artefact)          Deployment Manifest (generated during createApplication)
Enumerates constituent bundles and allowable version ranges           Transitively closed description of all bundles resolved at
Declares Application “externals”                                      specific versions to “freeze-dry” the application.



                                                                                                                                   13
Apache Aries – Project Overview


Aries META-INF/services SPI handler

Common Java SE pattern for loading service provider interfaces:
config file in META-INF/services containing class name of provider
implementation. For example JPA defines:
META-INF/services/javax.persistence.spi.PersistenceProvider
 • Problematic pattern for OSGi where a client import of
    META-INF/services gets resolved to one provider.
Aries SPI-Fly project provides a generic solution


                                                                   Service Provider bundle
                  org.apache.aries.spifly                  reads
                                                                    Bundle Manifest
                                                                    …
                                                                    SPI-Provider:
                         Registers service with property
                spi.provider.url = URL to the associated
                         resource in OSGI-INF/services
                                                                                     OSGI-INF/services
                                                                                    “org.acme.impl.class”




                                                                                                            14
Apache Aries – Project Overview


Aries Samples
 AriesTrader – Apache Geronimo DayTrader Java EE
 benchmark application converted to OSGi Application
 using web and blueprint components
  • Objective is to demonstrate best practices
  • Performance benchmarking
 Blog Sample – New application to demonstrate Aries
 features
 The Samples illustrate how to run Aries applications on a
 standard OSGi f/w (e.g. Equinox) + Aries +
 dependencies (Derby DB, PaxWeb servlet container).
 http://incubator.apache.org/aries/samples.html



                                                             15
Apache Aries – Project Overview


Example “Blog” Application Architecture



              blog.eba
                                                         blog-api




   Web application bundle

                            JNDI                                                                EM
        WEB-INF/                       Blogging                                           OSGI-INF/
                                                                            Blog
         web.xml                       Service     OSGI-INF/blueprint/                  persistence.xml
                                                     blueprint.xml       Persistence
                                                                          Service
      blog-servlet                                                                     OSGI-INF/blueprint/
                                                         blog                            blueprint.xml

                                                                                       blog-persistence




                                                                                                             16
Apache Aries – Project Overview


Current Aries Consumers

 Aries SNAPSHOT builds available right now
 Aries 0.1 Release content under discussion and will be
 available soon.
 Aries components are currently used by:
  •   Apache Geronimo
  •   Apache Felix Karaf
  •   JBossOSGi
  •   WebSphere Application Server




                                                          17
Apache Aries – Project Overview


Futures

 There are many new application-centric features that
 Aries may develop including:
  •   message-driven blueprint components and services
  •   declarative role-based security for blueprint components
  •   annotation-based alternative to XML configuration
  •   resource-reference metadata and bindings
  (Original Proposal: http://wiki.apache.org/incubator/AriesProposal)


 Interested in getting involved?
  • http://incubator.apache.org/aries/gettinginvolved.html




                                                                        18

Contenu connexe

Tendances

Java(ee) mongo db applications in the cloud
Java(ee) mongo db applications in the cloud Java(ee) mongo db applications in the cloud
Java(ee) mongo db applications in the cloud Shekhar Gulati
 
In the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleIn the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleSkills Matter
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5IndicThreads
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Haim Yadid
 
Commons Pool and DBCP
Commons Pool and DBCPCommons Pool and DBCP
Commons Pool and DBCPPhil Steitz
 
Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadWASdev Community
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RSFahad Golra
 
50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutesAntonio Goncalves
 
Spring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationSpring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationsourabh aggarwal
 
the Spring 4 update
the Spring 4 updatethe Spring 4 update
the Spring 4 updateJoshua Long
 
A tour of (advanced) Akka features in 40 minutes
A tour of (advanced) Akka features in 40 minutesA tour of (advanced) Akka features in 40 minutes
A tour of (advanced) Akka features in 40 minutesJohan Janssen
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nationArun Gupta
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with SpringJoshua Long
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom Joshua Long
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Ryan Cuprak
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play frameworkFelipe
 
Java Play Restful JPA
Java Play Restful JPAJava Play Restful JPA
Java Play Restful JPAFaren faren
 

Tendances (20)

Java(ee) mongo db applications in the cloud
Java(ee) mongo db applications in the cloud Java(ee) mongo db applications in the cloud
Java(ee) mongo db applications in the cloud
 
In the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: GradleIn the Brain of Hans Dockter: Gradle
In the Brain of Hans Dockter: Gradle
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions
 
Commons Pool and DBCP
Commons Pool and DBCPCommons Pool and DBCP
Commons Pool and DBCP
 
Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 Instead
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RS
 
50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes50 new features of Java EE 7 in 50 minutes
50 new features of Java EE 7 in 50 minutes
 
Spring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationSpring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentation
 
Declarative Services
Declarative ServicesDeclarative Services
Declarative Services
 
the Spring 4 update
the Spring 4 updatethe Spring 4 update
the Spring 4 update
 
A tour of (advanced) Akka features in 40 minutes
A tour of (advanced) Akka features in 40 minutesA tour of (advanced) Akka features in 40 minutes
A tour of (advanced) Akka features in 40 minutes
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nation
 
Spring 4 - A&BP CC
Spring 4 - A&BP CCSpring 4 - A&BP CC
Spring 4 - A&BP CC
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom
 
Dropwizard
DropwizardDropwizard
Dropwizard
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play framework
 
Java Play Restful JPA
Java Play Restful JPAJava Play Restful JPA
Java Play Restful JPA
 

Similaire à Apache Aries Overview

Enterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, OracleEnterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, Oraclemfrancis
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book SupplementChuong Nguyen
 
OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2Ilya Katsov
 
Spring MVC framework
Spring MVC frameworkSpring MVC framework
Spring MVC frameworkMohit Gupta
 
Gemini WEB and Virgo
Gemini WEB and VirgoGemini WEB and Virgo
Gemini WEB and VirgoHristo Iliev
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpagesddrschiw
 
Managing your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with AmbariManaging your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with AmbariDataWorks Summit
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfishwwtyler
 
Configuring jpa in a Spring application
Configuring jpa in a  Spring applicationConfiguring jpa in a  Spring application
Configuring jpa in a Spring applicationJayasree Perilakkalam
 
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXFApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXFAdrian Trenaman
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.suranisaunak
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsGordon Dickens
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcaresetstanford
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A GlanceStefan Christoph
 

Similaire à Apache Aries Overview (20)

Enterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, OracleEnterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, Oracle
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement
 
OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
 
Spring MVC framework
Spring MVC frameworkSpring MVC framework
Spring MVC framework
 
Gemini WEB and Virgo
Gemini WEB and VirgoGemini WEB and Virgo
Gemini WEB and Virgo
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
 
Managing your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with AmbariManaging your Hadoop Clusters with Ambari
Managing your Hadoop Clusters with Ambari
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfish
 
Configuring jpa in a Spring application
Configuring jpa in a  Spring applicationConfiguring jpa in a  Spring application
Configuring jpa in a Spring application
 
Beyond OSGi Software Architecture
Beyond OSGi Software ArchitectureBeyond OSGi Software Architecture
Beyond OSGi Software Architecture
 
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXFApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable Applications
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcare
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A Glance
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 

Plus de Ian Robinson

MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?Ian Robinson
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsIan Robinson
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Ian Robinson
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haulIan Robinson
 

Plus de Ian Robinson (6)

MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Was liberty
Was libertyWas liberty
Was liberty
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Apache Aries Overview

  • 1. Apache Aries An Open Source project for Enterprise OSGi Applications
  • 2. Apache Aries – Project Overview Agenda History Community Content Consumers Future 2
  • 3. Apache Aries – Project Overview History “Aries” created as a new Apache incubator project in Sep 2009 focused on: • the programming model aspects of OSGi applications in an enterprise environment • building a broad development community to encourage implementation and adoption of EEG specs • providing an environment to collaborate and experiment with new technologies to inform further EEG standards. Independent of • OSGi framework provider and integration/server runtime Initial contribution included the Blueprint container implementation developed originally by the Apache Geronimo community. Web Site for all resources and documentation: http://incubator.apache.org/aries/ 3
  • 4. Apache Aries – Project Overview Community In a short space of time a community of 43 committers has been formed involving contributors from Ericsson, IBM, JBoss, LinkedIn, Progress, ProSyst, SAP and individuals • http://incubator.apache.org/aries/people.html Creation of community is one of the primary goals of the Apache Incubator: • To demonstrate that there is a broad community of interest • To help newcomers to Apache learn the ropes. 4
  • 5. Apache Aries – Project Overview Aries Content includes… Blueprint container JPA integration JTA integration JMX JNDI integration Application assembly and deployment META-INF/services handler Samples, documentation, integrator’s guide http://svn.apache.org/repos/asf/incubator/aries/trunk/ 5
  • 6. Apache Aries – Project Overview Aries Blueprint Container A DI container standardizing established Spring conventions XML Blueprint definition describes component configuration and scope • Optionally publish and consume components to/from OSGi service registry. Simplifies unit test outside either Java EE or OSGi r/t. The Aries BP container implementation is Managed beans highly extensible: • Namespace handlers supported to extend publishes consumes service the Blueprint definitions service • Bean interceptors can be registered by OSGI-INF/blueprint/ handlers A static blueprint.xml assembly and configuration of Other Aries components contribute handlers – components (POJOs) Blueprint bundle “jpa” and “jta” handlers. Some other Aries components are implemented as Blueprint bundles themselves • e.g. JPA container 6
  • 7. Apache Aries – Project Overview Aries JPA Container – Application Managed PUs Persistence bundle Managed EntityManagerFactory Provides support for “Application Registered on behalf of the Bundle Manifest managed” JPA. … persistence bundle Each persistence bundle has its Meta-Persistence: OSGI-INF/persistence.xml standard JPA metadata located through the Meta-Persistence OSGI-INF/ Entities bundle header. persistence.xml Registers EntityManagerFactory JPA Container locates a JPA service per PU Provider which can service the PU Uses and registers a Provider-created org.apache.aries.jpa.container EntityManagerFactory service for each PU in each persistence Uses Used to build the bundle EntityManagerFactory • EMF service lifecyce follows the persistence bundle createContainerEMF (PersistenceUnitInfo) lifecycle JPA Provider JPA Provider gets persistence javax.persistence.spi. bundle classloader from PUInfo. PersistenceProvider service 7
  • 8. Apache Aries – Project Overview Aries JPA Container – Blueprint Integration The Aries JPA container context Example blueprint with JPA resource bundle provides a blueprint injection and container-managed namespace for dependency injection transactions: of managed JPA resources. Managed persistence units <blueprint (EntityManagerFactory objects) can xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:jta="http://aries.apache.org/xmlns/transactions/v1.0.0" be injected with or without a JTA xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0"> Transaction Services <bean id=“appMgd“ class=“com.acme.AppManaged”> implementation. <jpa:unit property="emf" unitname="myUnit" /> </bean> Managed persistence contexts (EntityManager objects) are only <bean id="containerMgd“ class=“com.acme.Container”> <jpa:context property="em" unitname=“myUnit“/> available with a JTA Transaction <jta:transaction method=“*" value=“Required" /> Services implementation. </bean> Both managed persistence units and </blueprint> managed persistence contexts behave as per the JPA specification. 8
  • 9. Apache Aries – Project Overview Aries JTA integration Apache Aries integrates the OSGi Transaction Service Reference Implementation (Apache Geronimo Transaction Manager). Also: transaction- blueprint bundle registers a “jta” Blueprint namespace handler to provide container-managed transactions for BP components 9
  • 10. Apache Aries – Project Overview Aries JMX Integration Implementation of OSGi JMX specification. Aries JMX bundle automatically registers the JMX MBeans into any javax.management.MBeanServer service in the OSGi Service Registry. <<MBean>> <<MBean>> <<MBean>> Fram ework Bund le State Blue print MB ean MB ean MB ean Framework MBeans <<MBean>> PermissionAdmin Permis sion Compendium MBeans Ad min MB ean MBean Server JMX OSGi <<MBean>> Configur ation Admin Additional Aries MBeans Manager Co nfiguratio n Ad min MB ean <<MBean>> Provisioning Service Provisi onin g ServiceMBean <<MBean>> <<MBean>> <<MBean>> User Admin Service St ate Package St ate User Adm in MB ean MB ean MB ean 10
  • 11. Apache Aries – Project Overview Aries JNDI integration Provides JNDI-based access to OSGi Service Registry <blueprint xmlns=...> <bean id="bloggingServiceComponent" class="org.apache.aries.BloggingServiceImpl"> </bean> <service ref="bloggingServiceComponent" interface="org.apache.aries.samples.blog.api.BloggingService"/> ... </blueprint> registerService A way for a Web component to access a OSGi Blueprint component Service Registry getService InitialContext ic = new InitialContext(); BloggingService blog= ic.lookup("osgi:services/" JNDI Context + BloggingService.class.getName()); 11
  • 12. Apache Aries – Project Overview Aries Application Assembly and Deploy The “application” project provides pluggable infrastructure to support deployment of an application consisting of a collection of bundles as a logical unit from an enterprise bundle archive (archive with .eba extn). • An “Enterprise OSGi Application”. Constituent bundles may be contained (“by-value”) in the .eba archive or referenced in APPLICATION.MF Only explicitly declared Services are exposed from the application. Config by exception - absence of APPLICATION.MF means: • application content is the set of bundles contained by-value plus any repository-hosted dependencies identified during deployment. Bundle Repository Bundle Repository Application Manifest Enumerates constituent bundles blog-persistence.jar json4j.jar Declares Application “externals” blog.jar blog.eba blog-servlet.jar 12
  • 13. Apache Aries – Project Overview Aries Application Assembly and Deploy Pluggable ApplicationResolver - NoOpResolver Aries Application = - OBRAriesResolver createApplication(eba) org.apache.aries.application.management Pluggable BundleConverters - WabConverterService Manifest-Version: 1.0 Manifest-Version: 1.0 Deployment-ManifestVersion: 1.0 Application-ManifestVersion: 1.0 Application-Name: Blog Application Application-Name: Blog Application Application-SymbolicName: aries.sample.blog Application-SymbolicName: aries.sample.blog Application-Version: 1.0 Application-Version: 1.0 Deployed-Content: Application-Content: aries.sample.blog; version=1.0.0, aries.sample.blog; version="[1.0.0,1.1.0)", aries.sample.blog-api; version=1.0.0, aries.sample.blog-api; version="1.0.0", aries.sample.blog-persistence; version=1.0.0, aries.sample.blog-persistence; version="1.0.0", aries.sample.blog-servlet; version=1.0.0, aries.sample.blog-servlet; version="[1.0.0,1.0.0]” com.ibm.json.java; version=1.0.0 Application Manifest (developer/assembler authored artefact) Deployment Manifest (generated during createApplication) Enumerates constituent bundles and allowable version ranges Transitively closed description of all bundles resolved at Declares Application “externals” specific versions to “freeze-dry” the application. 13
  • 14. Apache Aries – Project Overview Aries META-INF/services SPI handler Common Java SE pattern for loading service provider interfaces: config file in META-INF/services containing class name of provider implementation. For example JPA defines: META-INF/services/javax.persistence.spi.PersistenceProvider • Problematic pattern for OSGi where a client import of META-INF/services gets resolved to one provider. Aries SPI-Fly project provides a generic solution Service Provider bundle org.apache.aries.spifly reads Bundle Manifest … SPI-Provider: Registers service with property spi.provider.url = URL to the associated resource in OSGI-INF/services OSGI-INF/services “org.acme.impl.class” 14
  • 15. Apache Aries – Project Overview Aries Samples AriesTrader – Apache Geronimo DayTrader Java EE benchmark application converted to OSGi Application using web and blueprint components • Objective is to demonstrate best practices • Performance benchmarking Blog Sample – New application to demonstrate Aries features The Samples illustrate how to run Aries applications on a standard OSGi f/w (e.g. Equinox) + Aries + dependencies (Derby DB, PaxWeb servlet container). http://incubator.apache.org/aries/samples.html 15
  • 16. Apache Aries – Project Overview Example “Blog” Application Architecture blog.eba blog-api Web application bundle JNDI EM WEB-INF/ Blogging OSGI-INF/ Blog web.xml Service OSGI-INF/blueprint/ persistence.xml blueprint.xml Persistence Service blog-servlet OSGI-INF/blueprint/ blog blueprint.xml blog-persistence 16
  • 17. Apache Aries – Project Overview Current Aries Consumers Aries SNAPSHOT builds available right now Aries 0.1 Release content under discussion and will be available soon. Aries components are currently used by: • Apache Geronimo • Apache Felix Karaf • JBossOSGi • WebSphere Application Server 17
  • 18. Apache Aries – Project Overview Futures There are many new application-centric features that Aries may develop including: • message-driven blueprint components and services • declarative role-based security for blueprint components • annotation-based alternative to XML configuration • resource-reference metadata and bindings (Original Proposal: http://wiki.apache.org/incubator/AriesProposal) Interested in getting involved? • http://incubator.apache.org/aries/gettinginvolved.html 18