Apache Aries An Open Source project for Enterprise OSGi Applications OSGi Tooling Demo for EclipseDemoCamp.

Slides:



Advertisements
Similar presentations
The Next Generation ESB
Advertisements

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
© 2006 by IBM and Oracle; made available under the EPL v1.0 | Santa Clara | Mar. 23, 2006 Arthur Ryman, WTP PMC, IBM Rational Software Raghu Srinivasan,
Content provided under the terms and conditions of the Eclipse Public License Version Eclipse Foundation - Kathy Chan.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
Why OSGi matters for Enterprise Java Infrastructures
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
2006 JavaOne SM Conference | Session TS-4160 | © 2006 by IBM Create, Test, and Consume Web Services with the Eclipse Web Tools Platform Jeffrey Liu, Release.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Network Management with JMX Thu Nguyen Oliver Argente CS158B.
Hello Vaadin! CS 3130 Summer 2015.
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.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
WebSphere Studio Portal Toolkit Overview April/2003 Reginaldo Barosa.
ESB Guidance 2.0 Kevin Gock
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,
INTRODUCING SCA Byungwook Cho Nov.2007.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Developing Web Services with the Eclipse Web Tools Platform Boris Minkin.
THE GITB TESTING FRAMEWORK Jacques Durand, Fujitsu America | December 1, 2011 GITB |
Entity Java Beans Jorg Janke Open Source ERP & CRM.
Introduction to J2EE Architecture Portions by Kunal Mehta.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
Web Applications - Basics. Introduction to Web Web features Clent/Server HyperText Transfer Protocol HyperText Markup Language URL addresses Web server.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Modeling Tools for Healthcare Technical Overview April 8, 2009.
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
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.
OSGi Enablement for Tuscany Raymond Feng. Overview.
Deployment with Karaf and ACE
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.
SCA Bindings Simon Holdsworth Piotr Przybylski. Agenda n SCA Bindings Overview l Bindings TC Charter n Bindings l Web Services Binding l JMS Binding l.
Content provided under the terms and conditions of the Eclipse Public License Version 1.0 OOPSLA, San Diego Oct , Eclipse Foundation -
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
Spring and DWR Frameworks for Rich Web Enterprise Application Thomas Wiradikusuma Presentation to the 20 th.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
Copyright © 2010 Obeo, Made available under the Eclipse Public License v SCA Tools (Helios) Release Review Planned Review Date: June 11, 2010.
EJB Enterprise Java Beans JAVA Enterprise Edition
Apache Geronimo Open Source J2EE Application Server Getting up to speed with Apache Geronimo - Copyright 2005 Tom McQueeney 1 Getting up to speed with.
Copyright © 2012 Obeo and Petals Link, Made available under the Eclipse Public License v SCA Tools (Juno) Release Review Planned Review Date:
Apache TomEE Tomcat with a kick. Apache TomEE: Overview ● Java EE 6 Web Profile certification in progress ● Apache TomEE Includes support for: ● Servlet.
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
JavaServer Faces: The Fundamentals
The JSF Tools Project – WTP (internal) release review
SDMX IT Tools SDMX Registry
Presentation transcript:

Apache Aries An Open Source project for Enterprise OSGi Applications OSGi Tooling Demo for EclipseDemoCamp

Apache Aries – Project Overview 2 Who am I? Ted Kirby - IBM Software Developer Demo Reference Slide deck adapted from: che%20Aries%20-%20Overview.ppt

Apache Aries – Project Overview 3 What is it? Aries is a set of JEE components that have been fit into the OSGi model according to the Blueprint container specification. The OSGi framework that Aries runs in could be Equinox or Felix.

Apache Aries – Project Overview 4 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

Apache Aries – Project Overview 5 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. Managed beans publishes service consumes service A static assembly and configuration of components (POJOs)‏ Blueprint bundle OSGI-INF/blueprint/ blueprint.xml

Apache Aries – Project Overview 6 RAD V8 OSGi App Devt Tool WAS v7 OSGi FeP Test Environment Eclipse WTP 3.6 PDE Graphical Application Editor Developer Productivity (e.g. content assist, validation, re-factoring) Developer Productivity (e.g. content assist, validation, re-factoring) Graphical Creation Wizards Creation / Import / Export Tools Tutorials and Documentation Publish and Run WAS v7 Server Support Free Eclipse Plugin for OSGi Applications  Graphical tools to develop OSGi applications and bundles  Includes features that increase developer productivity  Creates OSGi Applications for any Aries-based server runtime.  Eclipse WTP 3.6 (Helios) required development-tools-osgi-applications OSGi Application Development Tools Blueprint Graphical Editor Bundle Explorer SCA / OSGi Integration OSGi Application Support in RAD V8  Provide integrated development and test of OSGi Applications on the WebSphere platform  Integrated with Web Tools, JEE productivity tools, and other capabilities in RAD  Supports deployment to WAS v7 OSGi FeP and includes the FeP in the WAS Test Environment  SCA support for OSGi Applications  Additional OSGi tools:  Graphical and wiring editor for Blueprint  Bundle Explorer  Tools for WAS OSGi extensions / Value-add /application/index.html

Apache Aries – Project Overview 7 Backup

Apache Aries – Project Overview 8 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 Overview 9 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 Overview 10 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 Overview 11 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 Overview 12 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 Overview 13 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 14 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 Overview 15 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 Overview 16 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 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 Overview 17 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 18 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 Overview 19 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

Apache Aries – Project Overview 20 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?