A close look at Apache Aries An Open Source project for Enterprise OSGi Rex Wang

Slides:



Advertisements
Similar presentations
Java EE - Introduction -
Advertisements

J2EE Architecture Overview
OpusCollege and Spring-DM. OSGi based web applications – three strategies OSGi container embedded in another container: OSGi Bridge Server (OBS)  e.g.
The Next Generation ESB
OSGi: Final summary and discussion. Outline Review: Origins of OSGi –Consortium –Goals Review: What is OSGi –Dynamic Modules for Java –Advanced Component.
OSGi Technology Hsin-Han Yang, Cheng-Yi Chien, Po-Cheng Huang.
Introduce OSGi BlueDavy
Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource November 2011.
Blueprint Advanced Features –Lin Sun –Apache Aries and Geronimo committer and PMC member –OSGi Enterprise Expert Group (EEG) member –Software Engineer.
Apache Aries An Open Source project for Enterprise OSGi Applications.
1 Dive into Apache Geronimo 3.0 Xu Haihong Apache Geronimo PMC
Scale Up Access to your 4GL Application using Web Services
OSGi as a Framework for Building a Product Line: Experience and Best Practices Ruwan Linton & Afkham Azeez
Why OSGi matters for Enterprise Java Infrastructures
Apache Axis2 - OSGi Integration in WSO2 Carbon Platform
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
Network Management with JMX Thu Nguyen Oliver Argente CS158B.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Apache Aries An Open Source project for Enterprise OSGi Applications OSGi Tooling Demo for EclipseDemoCamp.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
Agenda Introduction to the Guidewire platform
An Introduction to OSGi: Creating Highly Modular Java Systems Simon Archer, IBM 15 November 2010.
ESB Guidance 2.0 Kevin Gock
OSGi.
Gemini – Shaping the Future of Enterprise Java Mike Keith Glyn Normington
Eclipse and Oracle | © 2008 Oracle; made available under the EPL v1.0 Building Applications with Eclipse Frameworks and Tools for Oracle Shaun Smith EclipseLink,
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
Choon Oh Lee OSGi Service Platform. About OSGi Service Platform What it is, Where it is used, What features it provides are Today’s Content.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Tiny Components – a collection of initial ideas copyright © 2003 Tiny Components Tiny Components A Component Model for Small, Embedded or Mobile devices.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Introduction to J2EE Architecture Portions by Kunal Mehta.
TDDD05 EJB Lab (Part of slides reused from Mikhail’s) Lu Li
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
C O R P O R A T E T E C H N O L O G Y Siemens AG Software & Engineering Usage of Enterprise OSGi inside Siemens:  Siemens Communications, Enterprise Systems.
Spring Framework. Spring Overview Spring is an open source layered Java/J2EE application framework Created by Rod Johnson Based on book “Expert one-on-one.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
In Pieces Breaking down monolithic applications with Spring-DM and OSGi.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
Deployment with Karaf and ACE
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
1 Apache TomEE // JavaEE Web Profile on Tomcat Jonathan #TomEE.
Overview and update Pete Raymond. » Purpose of this presentation » Background » JSR Requirements » Key concepts » Relationship to other standards/approaches.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Impala A dynamic module framework for Java web development Phil Zoio Realsolve Solutions Devoxx 12 December, 2008.
Real-Time Systems Lab. OSGi overview January 23, 2002 Sung-ho Park.
© 2008 by Newcomer, Diekmann; made available under the EPL v1.0 | Date | Other Information, if necessary Enterprise Expert Group Status Report Eric Newcomer.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Apache Aries An Open Source project for Enterprise OSGi Applications.
GlassFish OSGi - A Modular Runtime for Hybrid Applications
Joe Bohn Apache Aries and IBM Original slides created by Graham Charters for OSGi DevCon US 2010, March 22, 2010 with minor updates by Joe Bohn for BarCampRDU.
Graham Charters Apache Aries and IBM Apache Aries An Open Source project for Enterprise OSGi Applications.
Overall Architecture and Component Model
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Presentation transcript:

A close look at Apache Aries An Open Source project for Enterprise OSGi Rex Wang

Apache Aries Project 2 Who am I ? 王磊 / Rex Wang / Apache Aries Committer Apache Geronimo Committer OSGi Alliance EEG Contributor Work for IBM Software Group Graduated from Shanghai Jiao Tong University. Got the Master Degree of Computer Science.

Apache Aries Project 3 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model Samples and Demo

Apache Aries Project 4 What is OSGi? OSGi - Open Services Gateway initiative OSGi technology is the dynamic module system for Java™. OSGi technology is Universal Middleware. OSGi technology provides a service-oriented, component- based environment for developers and offers standardized ways to manage the software lifecycle. OSGi Alliance

Apache Aries Project 5 Why OSGi? The Complexity & Scale of Software requires: 1. Service Oriented

Apache Aries Project 6 Why OSGi? 2. Modularity  Java Platform Modularity  Classes encapsulate data  Packages contain classes  Jars contain packages  Class visibility:  private, package private, protected,public  No “jar scoped” access modifiers.  No means for a jar to declare its dependencies.  No versioning.  Jars have no modularization characteristics  At runtime there is just a collection of classes on a global classpath

Apache Aries Project 7 Why OSGi?  A global, flat classpath to search

Apache Aries Project 8 Why OSGi? 3. Versioning  Enterprise Apps have isolated classpaths but…  Across apps - each archive typically contains all the libraries required by the application  Common libraries/frameworks get installed with each application  Multiple copies of libraries in memory  Within apps - 3rd party libraries consume other 3rd party libraries leading to version conflicts

Apache Aries Project 9 Who use OSGi? 2Wire, Inc. Alcatel-Lucent Aplix Corporation Deutsche Telekom Ericsson AB Hitachi, Ltd. IBM Corporation2Wire, Inc. Alcatel-Lucent Aplix Corporation Deutsche Telekom Ericsson AB Hitachi, Ltd. IBM Corporation -> WebSphere 7, Lotus Notes 8, Rational RAD/RSA (Eclipse Based) LinkedIn Makewave Mitsubishi Electric Corporation NEC Corporation NTT Oracle Corporation -> BEA WebLogic, Sun Glassfish 3 Paremus, Ltd. Progress Software ProSyst Software GmbH Qualcomm Red Hat -> JBoss 5 SAP AG Siemens AG Siemens Enterprise Communications Software AG Sonatype Inc. Telcordia Technologies, Inc. TIBCO Software Inc. VMWare, Inc. -> Spring DM Westell Inc. LinkedIn Makewave Mitsubishi Electric Corporation NEC Corporation NTT Oracle Corporation Paremus, Ltd. Progress Software ProSyst Software GmbH Qualcomm Red Hat SAP AG Siemens AG Siemens Enterprise Communications Software AG Sonatype Inc. Telcordia Technologies, Inc. TIBCO Software Inc. VMWare, Inc. Westell Inc.

Apache Aries Project 10 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model

Apache Aries Project 11 The OSGi Enterprise Spec V4.2 Release date – 22 March 2010 The product of the OSGi Enterprise Expert Group (EEG) Brings Enterprise technologies and OSGi together Using existing Java SE/EE specifications: JTA, JPA, JNDI, JMX, WebApps… Java EE provides the core enterprise application programming model Adds Spring-derived component model and dependency injection container – Blueprint Container Embeded DesktopEnterprise

Apache Aries Project 12 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model Samples and Demo

Apache Aries Project 13 Aries Background “Aries” created as a new Apache incubator project in Sep 2009 Implementations and extensions of enterprise application- focused specifications defined by the OSGi Alliance Enterprise Expert Group (EEG)  JTA, JMX, JPA, Blueprint, Web, JNDI… an assembly format for multi-bundle applications  EBA – Enterprise Bundle Application Available to use now 0.1 version released Independent of OSGi framework provider (Equinox / Felix) Integration / server runtime (Geronimo / Servicemix) 43 committers from a broad range of companies Ericsson, IBM, JBoss, LinkedIn, Progress, ProSyst, SAP… 

Apache Aries Project 14 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model Samples and Demo

Apache Aries Project 15 Aries Implementations Blueprint container JPA integration JTA integration JMX JNDI integration META-INF/services handler

Apache Aries Project 16 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 highly extensible: Namespace handlers supported to extend the Blueprint definitions Bean interceptors can be registered by handlers Other Aries components contribute handlers – “jpa” and “jta” handlers. Some other Aries components are implemented as Blueprint bundles themselves e.g. JPA container Managed beans publishes service consumes service A static assembly and configuration of components (POJOs)‏ Blueprint bundle OSGI-INF/blueprint/ blueprint.xml

Apache Aries Project 17 Aries JPA Container – Application Managed PUs Provides support for “Application managed” JPA. Each persistence bundle has its standard JPA metadata located through the Meta-Persistence bundle header. JPA Container locates a JPA Provider which can service the PU and registers a Provider-created EntityManagerFactory service for each PU in each persistence bundle EMF service lifecyce follows the persistence bundle lifecycle JPA Provider gets persistence bundle classloader from PUInfo. org.apache.aries.jpa.container Persistence bundle Bundle Manifest … Meta-Persistence: OSGI-INF/persistence.xml OSGI-INF/ persistence.xml Used to build the EntityManagerFactory Managed EntityManagerFactory Registered on behalf of the persistence bundle JPA Provider javax.persistence.spi. PersistenceProvider service createContainerEMF (PersistenceUnitInfo) Uses Registers EntityManagerFactory service per PU Entities Uses

Apache Aries Project 18 Aries JPA Container – Blueprint Integration The Aries JPA container context bundle provides a blueprint namespace for dependency injection of managed JPA resources. Managed persistence units (EntityManagerFactory objects) can be injected with or without a JTA Transaction Services implementation. Managed persistence contexts (EntityManager objects) are only available with a JTA Transaction Services implementation. Both managed persistence units and managed persistence contexts behave as per the JPA specification. Example blueprint with JPA resource injection and container-managed transactions: <blueprint xmlns=" xmlns:jta=" xmlns:jpa="

Apache Aries Project 19 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

Apache Aries Project 20 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. Framework MBeans Compendium MBeans Additional Aries MBeans

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

Apache Aries Project 22 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 Aries SPI-Fly project provides a generic solution org.apache.aries.spifly Registers service with property spi.provider.url = URL to the associated resource in OSGI-INF/services Bundle Manifest … SPI-Provider: OSGI-INF/services “org.acme.impl.class” Service Provider bundle reads

Apache Aries Project 23 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model Samples and Demo

Apache Aries Project 24 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. Application Manifest Enumerates constituent bundles Declares Application “externals” blog.eba blog-persistence.jar blog.jar blog-servlet.jar Bundle Repository json4j.jar

Apache Aries Project 25 Aries Application Assembly and Deploy org.apache.aries.application.management Aries Application = createApplication(eba) Pluggable ApplicationResolver - NoOpResolver - OBRAriesResolver Pluggable BundleConverters - WabConverterService Manifest-Version: 1.0 Application-ManifestVersion: 1.0 Application-Name: Blog Application Application-SymbolicName: aries.sample.blog Application-Version: 1.0 Application-Content: aries.sample.blog; version="[1.0.0,1.1.0)", aries.sample.blog-api; version="1.0.0", aries.sample.blog-persistence; version="1.0.0", aries.sample.blog-servlet; version="[1.0.0,1.0.0]” Manifest-Version: 1.0 Deployment-ManifestVersion: 1.0 Application-Name: Blog Application Application-SymbolicName: aries.sample.blog Application-Version: 1.0 Deployed-Content: aries.sample.blog; version=1.0.0, aries.sample.blog-api; version=1.0.0, aries.sample.blog-persistence; version=1.0.0, aries.sample.blog-servlet; version=1.0.0, com.ibm.json.java; version=1.0.0 Application Manifest (developer/assembler authored artefact) Enumerates constituent bundles and allowable version ranges Declares Application “externals” Deployment Manifest (generated during createApplication) Transitively closed description of all bundles resolved at specific versions to “freeze-dry” the application.

Apache Aries Project 26 Agenda OSGi Overview The OSGi Enterprise Spec Aries Background Spec Implementations in Aries Aries Application Programming Model Samples and Demo

Apache Aries Project 27 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).

Apache Aries Project 28 Example “Blog” Application Architecture Blogging Service Blog Persistence Service blog-servlet Web application bundle OSGI-INF/ persistence.xml WEB-INF/ web.xml OSGI-INF/blueprint/ blueprint.xml OSGI-INF/blueprint/ blueprint.xml JNDI EM blog.eba blog blog-persistence blog-api

Apache Aries Project 29 Demo Aries Application programming model has been integrated into WebSphere V7 Feature Pack for OSGi Applications

Apache Aries Project 30 Current Aries Consumers Aries components are currently used by: Apache Geronimo Apache Felix Karaf JBossOSGi WebSphere Application Server

Apache Aries Project 31 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: Interested in getting involved?

Apache Aries Project 32 Q & A