Overall Architecture and Component Model

Slides:



Advertisements
Similar presentations
CollectionSpace Service Behind the scenes June 2009 Face-to-face Sanjay Dalal U.C. Berkeley IST/Data Services.
Advertisements

©2003 aQute, All Rights Reserved Tokyo, August 2003 : 1 OSGi Service Platform Tokyo August 28, 2003 Peter Kriens CEO aQute, OSGi Fellow
CTS2 DEVELOPMENT FRAMEWORK CTS2 Overview. Schedule What is it? Why a framework? What does this do for me? Plugins Implementations available now CTS2 Compliance.
1 Integration Made Easy Agile Integration: Connecting Salesforce With Your Enterprise.
Introduce OSGi BlueDavy
1 CENTER FOR PARALLEL COMPUTERS An Introduction to Globus Toolkit® 3 -Developing Interoperable Grid 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
Next Generation Node (NGN) Technical Overview April 2007.
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
SOA, EDA, ECM and more Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect.
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
CHAPTER 4 SPRING FRAMEWORK Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
ESB Guidance 2.0 Kevin Gock
OSGi.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
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.
THE GITB TESTING FRAMEWORK Jacques Durand, Fujitsu America | December 1, 2011 GITB |
SharePoint 2007 Overview and Solution Examples Inetium.
Introduction to J2EE Architecture Portions by Kunal Mehta.
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.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
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.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Kuali Enterprise Workflow Kuali Days – November 2008 Scott Gibson, University of Maryland Bryan Hutchinson, Cornell University James Smith, University.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
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.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
BOF-1147, JavaTM Technology and WebDAV: Standardizing Content Management Java and WebDAV Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
The Holmes Platform and Applications
Java Web Services Orca Knowledge Center – Web Service key concepts.
Deployment Diagram.
Introduction to Oracle Forms Developer and Oracle Forms Services
Deployment Diagram.
Shared Services with Spotfire
(on behalf of the POOL team)
Sabri Kızanlık Ural Emekçi
Introduction to Oracle Forms Developer and Oracle Forms Services
Automate Custom Solutions Deployment on Office 365 and Azure
Mobility for Real Estate – Extending JDE Core Data to User Fingertips
Introduction to Oracle Forms Developer and Oracle Forms Services
AVOIR -African virtual
Overview: Fedora Architecture and Software Features
Introduction to J2EE Architecture
Advanced Integration and Deployment Techniques
Deployment Diagram.
Presented by Jinpeng Zhou
Intro to Spring CJUG - January 2013.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Distributed System Using Java 2 Enterprise Edition (J2EE)
Lecture 1: Multi-tier Architecture Overview
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Module 01 ETICS Overview ETICS Online Tutorials
Introduction to Web Services
The JSF Tools Project – WTP (internal) release review
Mark Quirk Head of Technology Developer & Platform Group
Integrated Statistical Production System WITH GSBPM
Presentation transcript:

Overall Architecture and Component Model Nuxeo Platform Overall Architecture and Component Model

Nuxeo Platform A highly customizable and extensible content management platform for building business applications Bundled Architecture Deploy only the required bundles Develop and add custom plug-ins Deploy on multiple servers Deploy on multiple infrastructures As a standalone Within Junit System On Tomcat Server Connect to various persistence stores SQL Database LDAP and NoSQL Databases Filesystem Storage

Architecture Content Repository Content Automation REST API Persistence, query, versioning and access control of documents Handles Documents: Files, meta-data and any structured data Integrated with Elastic Search and MangoDB Content Automation Exposes common Nuxeo actions as atomic operations Can be assembled to orchestrate complex business rules and logic REST API Exposes common Nuxeo resources Workflow Engine Built on repository and automation, as a graph Typically developed using Nuxeo Studio Support for UI Frameworks JSF/SEAM, HTML5/JavaScript, Portal Technologies and etc.,

Bundle Based Component Model Nuxeo Bundle A pluggable JAR with an OSGI dependency manifest Everything in Nuxeo is packaged as a bundle May contain one or more components, services and extension points Component A software object declared via XML Primarily to expose a service Service A software object that can be registered, discovered, listed and accessed Extension Point Entry-point for services to inject customization To configure or extend a service or a component

OSGi Bundle Concepts A OSGi Bundle is a JAR with META-INF/MANIFEST.MF with OSGi headers Some of the important headers Bundle-SymbolicName Bundle-Version: mahor.minor.patch-<TAG> Export-Package: List of packages whose classes are made visible to others Import-Package: List of packages to be discovered from exporting bundles Verions Selection: Example: [1.2.0, 1.3.0) JDK Classes are always visible for every-one Bundle-Activator: Bootstrap class that do housekeeping for the bundle Bundle-ActivationPolicy: Activates the bundle only when a class is loaded from it Require-Bundle: For split-bundles Fragment-Host: For optional features/resources/etc., Bundle-RequiredExecutionEnvironment: JRE Bundle-Classpath: Internal classpath of the bundle Service-Component: For declaring components via declarative services

OSGi Bundle Concepts Bundles are stateful objects The State Life-cycle Installed: Bundle is deployed in the OSGi Container Resolved: Bundle dependencies are successfully resolved Delegates to JRE class-loader for java.* or javax.* classes. Stops on fail. Delegates to exporting class-loader. Stops on fail. Delegates to requiring-bundle class-loader. Continues on fail. Delegates to host & fragment-bundle class-loader. Stops on fail. Searches the own classpath Starting: Bundle is running Activator to start the bundle Stopping: Bundle is now ready for exposing/using other bundles/services/components Active: Bundle is running the Activator to shutdown the bundle Uninstalled: Bundle is un-deployed from the container

OSGi Bundle Concepts OSGI Compendium Services Declarative Services Service Registry Builds an SOA within JVM Services register them selves (typically in the activators) Service Locator publishes the services Clients discover the services EventAdmin Services A system service for asynchronous communication among components Config Management Services A system service to reconfigure the components without restart Declarative Services An approach to build services using POJOs, normally using Spring IoC Nuxeo offers API for service discovery Framework.getService(<T>)

Contributing to Extension You have a maven project Develop the contribution Locate the folder src/main/resources/OSGI-INF Create a contribution file Probably named as myproject-target-service-contribution.xml Declare a component in the contribution file <component name=“unique.name”> <extension target=“existing.service.name”> <!– extensions -- > </extension> </component> Declare the contribution in the bundle Locate the file src/main/resources/META-INF/MANIFEST.MF Add/update the header Nuxeo-Component by providing the contribution xml file name

Bundle Deployment Process Nuxeo Deployment Process is incremental involving phases Template Processing Reads templates and generates configurations Configuration may include data source settings, SMTP settings and etc., Profile system for quick configuration Deployment Fragment Preprocessor The target WEB application acts as a host for several fragment bundles Typically used for mutually exclusive resource bundles Fragments may provide i18n, WAR resources and etc., Bundle Deployment Actual OSGI deployment Activates bundles WAR Deployment Web Resource Declaration

Adding a New Feature A new feature addition usually comprises of several bundles Core Contrib Bundle With direct contributions to the repository Document Types, Listeners, Security Policies Core Bundle POJO implementations of components and services Façade Bundle With JEE Bindings JTA, Remoting, JAAS, Transactions API Bundle Service API Interfaces and remotable DTO objects Client Bundles Views and Actions