Apache Aries An Open Source project for Enterprise OSGi Applications.

Slides:



Advertisements
Similar presentations
JSP and web applications
Advertisements

J2EE Architecture Overview
The Next Generation ESB
Introduce OSGi BlueDavy
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
A close look at Apache Aries An Open Source project for Enterprise OSGi Rex Wang
Why OSGi matters for Enterprise Java Infrastructures
The J2EE Framework 1 Introduction to Java 2 Enterprise Edition Presented by Communication & Collaboration Technologies Division of the Chief Information.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
Apache Aries An Open Source project for Enterprise OSGi Applications OSGi Tooling Demo for EclipseDemoCamp.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
1 Lecture 18 George Koutsogiannakis/Spring 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
Creation of hybrid portlet application for file download using IBM Worklight and IBM Rational Application Developer v9 Gaurav Bhattacharjee Lakshmi Priya.
2007 JavaOne SM Conference | Session BOF-4181 | BOF-4181 Migrating a Spring/Hibernate Application to Java Platform, Enterprise Edition (Java EE) 5 Adrian.
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,
1/151/15 ENT Metamodel Implementation & Applications ENT metamodel, prototype implementation Component substitutability checking, ENT based component comparison.
J2EE Part 2: Enterprise JavaBeans CSCI 4300 Images and code samples from jGuru EJB tutorial,
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Chemical Toxicity and Safety Information System Shuanghui Luo Ying Li Jin Xu.
Entity Java Beans Jorg Janke Open Source ERP & CRM.
COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.
EJB Framework.  As we know, EJB is the center of the J2EE architecture that provides a sturdy framework for building enterprise applications. The major.
TDDD05 EJB Lab (Part of slides reused from Mikhail’s) Lu Li
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
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.
Topic : JPA Kaster Nurmukan. Overview of JPA EntityManager.
In Pieces Breaking down monolithic applications with Spring-DM and OSGi.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
1 Apache TomEE // JavaEE Web Profile on Tomcat Jonathan #TomEE.
JBoss at Work Databases and JBoss Chapter 4 Jeff Schmitt October 26, 2006.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
CliServ. J2EE/141 Client/Server Distributed Systems v Objectives –introduce the J2EE specification, and the J2EE SDK –other approaches: Struts,
Text 16 de mayo de 2009 Spring Framework Part III. Portable Service Abstractions Buenos Aires, June 2009.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
v110912Java Persistence: EntityManager2 Overview Earlier versions of EJB Specification defined the persistence layer –javax.ejb.EntityBean Java EE 5 moved.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Text 16 de mayo de 2009 Spring Framework Part III. Portable Service Abstractions Buenos Aires, June 2009.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
BlueDragon Editions and Advantages Lori Pacheco New Atlanta.
BOF-1147, JavaTM Technology and WebDAV: Standardizing Content Management Java and WebDAV Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer.
Apache TomEE Tomcat with a kick. Apache TomEE: Overview ● Java EE 6 Web Profile certification in progress ● Apache TomEE Includes support for: ● Servlet.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Enterprise OSGi Applications with Apache Aries Zoe Slattery, Jeremy Hughes ApacheCon Atlanta November 2010.
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.
Updatecenter Module 3 Application Server SE/EE 8.1 Installation
Updatecenter Snjezana Sevo-Zenzerovic
Las Vegas, NV September 15 – September 18, 2003
Overall Architecture and Component Model
Web-Services-based Systems Architecture, Design and Implementation
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Distributed System using Web Services
Presentation transcript:

Apache Aries An Open Source project for Enterprise OSGi Applications

Apache Aries – Project Overview 3 Agenda History Community Content Consumers Future

Apache Aries – Project Overview 4 History “Aries” created as a new Apache incubator project in Sep 2009 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:

Apache Aries – Project Overview 5 Community Currently 43 committers, contributors from Ericsson, IBM, JBoss, LinkedIn, Progress, ProSyst, SAP and individuals Creation of community is one of the primary goals of the Apache Incubator

Apache Aries – Project Overview 6 Aries Content includes… Blueprint container JPA integration JTA integration JMX JNDI integration Application assembly and deployment META-INF/services handler Samples

Apache Aries – Project Overview 7 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 Overview 8 Example “Blog” Application Architecture Blogging Service Blog Persistence Service blog-web Web application bundle MetaPersitstence WEB-INF/ web.xml OSGI-INF/blueprint/ blueprint.xml OSGI-INF/blueprint/ blueprint.xml JNDI META-INF/ persistence.xml blog.eba blog-biz blog-persistence blog-api

Apache Aries – Project Overview 9 Run the Blog Sample EBA

Apache Aries – Project Overview 10 Aries Application Assembly and Deploy org.apache.aries.application.management 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-biz; 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-web; 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-biz; version=1.0.0, aries.sample.blog-api; version=1.0.0, aries.sample.blog-persistence; version=1.0.0, aries.sample.blog-web; 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. Felix File Install

Apache Aries – Project Overview 11 Example “Blog” Application Architecture Blogging Service Blog Persistence Service blog-web Web application bundle MetaPersitstence WEB-INF/ web.xml OSGI-INF/blueprint/ blueprint.xml OSGI-INF/blueprint/ blueprint.xml META-INF/ persistence.xml JNDI blog.eba blog-biz blog-persistence blog-api

Apache Aries – Project Overview 12 Blog-biz - blueprint.xml.....

Apache Aries – Project Overview 13 Aries Blueprint Container Managed beans publishes service consumes service Blueprint bundle OSGI-INF/blueprint/ blueprint.xml A static assembly and configuration of components (POJOs)‏

Apache Aries – Project Overview 14 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 Overview 15 Example “Blog” Application Architecture Blogging Service Blog Persistence Service blog-web Web application bundle MetaPersitstence WEB-INF/ web.xml OSGI-INF/blueprint/ blueprint.xml OSGI-INF/blueprint/ blueprint.xml META-INF/ persistence.xml JNDI blog.eba blog-biz blog-persistence blog-api

Apache Aries – Project Overview 16 Blog Sample - persistence.xml Persistence unit for the example blogging application org.apache.openjpa.persistence.PersistenceProviderImpl osgi:services/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdb) osgi:services/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdbnojta) org.apache.aries.samples.blog.persistence.jpa.entity.AuthorImpl org.apache.aries.samples.blog.persistence.jpa.entity.EntryImpl true OpenJP A

Apache Aries – Project Overview 17 Aries JPA Container – Blueprint Integration <bean id="persistenceImpl" class="org.apache.aries.samples.blog.persistence.jpa.BlogPersistenceServiceImpl"> <service ref="persistenceImpl" interface="org.apache.aries.samples.blog.api.persistence.BlogPersistenceService"> Example blueprint with JPA resource injection and container-managed transactions

Apache Aries – Project Overview 18 Example “Blog” JPA persistence bundle MetaPersistence OSGI-INF/blueprint/ blueprint.xml META-INF/ persistence.xml blog-persistence Blog Persistence Service Entity Manager Factory Service The Aries JPA container uses the MetaPersistence and the persistence.xml to register the EM Factory service The JPA container finds jpa:context and injects a managed persistence context. The declarative transactions runtime locates the transaction metadata and enforces the defined transaction behaviour

Apache Aries – Project Overview 19 Example “Blog” JPA persistence bundle Blog Persistence Service MetaPersistence OSGI-INF/blueprint/ blueprint.xml META-INF/ persistence.xml blog-persistence Entity Manager Factory Service Queue

Apache Aries – Project Overview 20 JDBC vs JPA comparison

Apache Aries – Project Overview 21 public void createAuthor(String , Date dob, String name, String displayName, String bio) { try { Connection connection = dataSource.getConnection(); String sql = "INSERT INTO AUTHOR VALUES (?,?,?,?,?)"; PreparedStatement ppsm = connection.prepareStatement(sql); ppsm.setString(1, ); ppsm.setString(2, bio); ppsm.setString(3, displayName); if (dob != null) ppsm.setDate(4, new java.sql.Date(dob.getTime())); else ppsm.setDate(4, null); ppsm.setString(5, name); int insertRows = ppsm.executeUpdate(); ppsm.close(); connection.close(); if (insertRows != 1) throw new IllegalArgumentException("The Author " + + " cannot be inserted."); } catch (SQLException e) { e.printStackTrace(); throw new IllegalArgumentException(e.getMessage()); } } createAuthor() method in JDBC persistence service implementation

Apache Aries – Project Overview 22 public void createAuthor(String , Date dob, String name, String displayName, String bio) { AuthorImpl a = new AuthorImpl(); a.set ( ); a.setName(name); a.setDisplayName(displayName); a.setBio(bio); a.setDob(dob); em.persist(a); } Example: createAuthor() method in JPA persistence service implementation

Apache Aries – Project Overview 23 Current Aries Consumers Aries SNAPSHOT builds available right now Aries 0.1 Release will be available soon. Aries components are currently used by: Apache Geronimo Apache Felix Karaf JBossOSGi WebSphere Application Server

Apache Aries – Project Overview 24 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 Overview 25 The end

Apache Aries – Project Overview 26 Aries JPA Container – Application Managed PUs Persistence bundle Bundle Manifest … Meta-Persistence: META-INF/persistence.xml META-INF/ persistence.xml OSGI-INF/blueprint/ blueprint.xml JPA container looks for MetaData persistence Headers. Locates descriptions and registers an EM Factory Service using data from - persistence.xml - JPA provider - DataSource JPA provider (Open JPA) org.apache.aries.jpa.container DataSource (blogDB) JND I Implementation of PersistenceProvider

Apache Aries – Project Overview 27 Aries JPA Container – Container Managed PUs Persistence bundle Bundle Manifest … Meta-Persistence: OSGI-INF/persistence.xml META-INF/ persistence.xml OSGI-INF/blueprint/ blueprint.xml BP container calls service if it encounters a jpa namespace element Calls the container service to let It know there is a new client Registers EM factory shadow Against the persistence service org.apache.aries.jpa.blueprint.aries org.apache.aries.jpa.container.context

Apache Aries – Project Overview 28 Aries JTA transactions Persistence bundle Bundle Manifest … Meta-Persistence: OSGI-INF/persistence.xml META-INF/ persistence.xml OSGI-INF/blueprint/ blueprint.xml BP container calls Namespace Manager service if it encounters a jta namespace element Transaction Manager service called by interceptor to start and end transactions. org.apache.aries.transaction.blueprint JTA provider (Geronimo) org.apache.aries.transaction.manager