SUBSYSTEMS IN THE WILD

Similar documents
Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

Understanding class paths in Java EE projects with Rational Application Developer Version 8.0

Operations and Monitoring with Spring

Introduction to OSGi and Modularity. InfoSphere MDM, Version 11.x Dany Drouin, Senior Software Engineer MDM

Equinox Framework: A Happier OSGi R6 Implementation

OSGi Technology for System and Network Architects DECEMBER 2013

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Apache Karaf in real life ApacheCon NA 2014

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Converting Java EE Applications into OSGi Applications

Developing Service-Oriented Architecture Applications with OSGi

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

TIBCO Silver Fabric Continuity User s Guide

BIRT Application and BIRT Report Deployment Functional Specification

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Glassfish, JAVA EE, Servlets, JSP, EJB

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

The webmethods ESB. The Foundation of your SOA. Jean-Michel Ghyoot, Principal Solution Architect, March 28, 2013

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

Enterprise Service Bus

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

ITG Software Engineering

Exam Name: IBM InfoSphere MDM Server v9.0

ebay : How is it a hit

Talend Open Studio for ESB. Release Notes 5.2.1

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

JBoss Portal 2.4. Quickstart User Guide

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Chapter 2 SYSTEM MANAGEMENT. SYS-ED/ Computer Education Techniques, Inc.

Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID

OSGi Service Platform Release 4

SCA & SDO Implementations Open Source and Vendor Products

The Evolution of PaaS QCon London 2012

The Essentials of File Management with LabVIEW

TIBCO ActiveMatrix BPM SOA Concepts

Build management & Continuous integration. with Maven & Hudson

IBM WebSphere Application Server V8.5 lab Basic Liberty profile administration using the job manager

The Java EE 6 Platform. Alexis Moussine-Pouchkine GlassFish Team

SCA support in PEtALS with Tinfi / Frascati

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014

WebSphere v5 Administration, Network Deployment Edition

Tutorial: setting up a web application

IBM WebSphere Application Server V8.5

Using OSGi as a Cloud Platform

Developing modular Java applications

The Virtualization Practice

A standards-based approach to application integration

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

SDK Code Examples Version 2.4.2

Swordfish SOA Runtime Framework

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

AN APPROACH TO DEVELOPING BUSINESS PROCESSES WITH WEB SERVICES IN GRID

Android Developer Fundamental 1

Integration in the cloud - IPaaS with Fuse technology. Charles Moulliard Apache Committer

TOSCA Interoperability Demonstration

Eclipse Open Healthcare Framework

docs.hortonworks.com

Introducing IBM WebSphere Application Server v8.5 The Future Is Now

Maven or how to automate java builds, tests and version management with open source tools

Service Component Architecture, Apache Tuscany & WebSphere SOA Feature Pack Beta

Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Aspect Weaving for OSGi. Martin Lippert (akquinet it-agile GmbH)

Best Practices for Programming Eclipse and OSGi

Asset Based Development

Web Applications. Originals of Slides and Source Code for Examples:

<Insert Picture Here> Java EE 7: the New Cloud Platform

Managing the Services Lifecycle SOA & BPM

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

Meister Going Beyond Maven

In this chapter, we lay the foundation for all our further discussions. We start

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Deploying Oracle Business Intelligence Publisher in J2EE Application Servers Release

An Oracle White Paper May Ready for Business: Oracle GlassFish Server

How To Develop An Open Play Context Framework For Android (For Android)

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

What means extensibility?

OSGi Technology for Developers DECEMBER 2013

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

INTEGRATION BETWEEN WEB STORE AND WEB SERVICE USING APACHE CAMEL INTEGRATION FRAMEWORK

PTC Integrity Eclipse and IBM Rational Development Platform Guide

SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface

D5.4.4 Integrated SemaGrow Stack API components

Building native mobile apps for Digital Factory

General Introduction to IBM (R) Rational (R) Asset Manager

Eclipse Summit Europe 2008

Oracle Application Development Framework Overview

APACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER APACHE SLING & SCALA Jochen Fliedner

JAVA WEB START OVERVIEW

Migrating Applications From IBM WebSphere to Apache Tomcat

BMC Software Cloud Service Lifecycle

CrownPeak Java Web Hosting. Version 0.20

Embedded Device Solution Life Cycle Support with Eclipse

Realizing business flexibility through integrated SOA policy management.

Android Development. Marc Mc Loughlin

Transcription:

Wednesday, June 11, 2014 1 SUBSYSTEMS IN THE WILD Graham Charters Senior Technical Staff Member IBM

2 Contents Motivation Subsystems Overview Use case In the Wild with a demo or two along the way

3 Motivation Many Enterprise Java platforms offer bundle collections Apache Aries Applications Apache Karaf Features Eclipse Virgo Plans, PARs WebSphere OSGi Applications, Composite, Features Oracle GlassFish Applications Paremus Service Fabric System Parts Standardization enables Portability Tools Ecosystem

4 Subsystem Concepts A Grouping Resources (Bundles) An Identity Scoping for visibility Group Management Documentation (coming in 1.1)

5 Subsystem Types Subsystem types aligned with common sharing policies Type Feature Application Composite Sharing Policy Share everything Share everything in, share nothing out Explicit selective sharing

6 Feature Subsystems A grouping of related artefacts Simplifies re-use & provisioning Raw resources in the runtime Useful for frameworks & libraries Feature A Bundle A Feature B Bundle B Bundle C Bundle D

7 Application Subsystems Isolated group of related artefacts Share nothing out Application A Application B Implicitly share all in Useful for independent applications in same process Bundle A Bundle B cheap/weak multi-tenancy Can share common infrastructure Bundle C Bundle D e.g. frameworks or libraries Feature A

8 Composite Subsystems Isolated group of related artefacts Explicitly share in Composite A Composite B Explicitly share out Useful for controlling coupling of subsytems (hide internals) Bundle A Bundle B Bundle C Bundle D Feature A

9 Nesting Subsystems can be nested All subsystems are descendants of the Root Subsystem Enables runtime subsystem sharing Enables logical groupings Root Application Feature Bundle C Bundle A Bundle B Bundle D

10 Definition Subsystem manifest format Jar manifest without the annoying restrictions Familiar to bundle programmers Configuration by exception Can be left out altogether Version ranges enabled deployment flexibility Subsystem-ManifestVersion: 1.0 Subsystem-Name: HttpService Subsystem-Description: This feature enables the http service Subsystem-SymbolicName: com.acme.httpservice Subsystem-Version: 1.0.0 Subsystem-Type: osgi.subsystem.feature Subsystem-Content: httpservicewab;version="1.0.0", org.eclipse.equinox.http.servlet;version="1.1.200", org.eclipse.osgi.services;version="3.3.0"

11 Packaging Zip file with.esa extension Optionally contains resources (bundles) for provisioning duplicates binaries bloats deployment inhibits update does not influence runtime sharing uses repositories if not Optionally contains Subsystem manifest defaulted if not Subsystem.esa Subsystem.MF Bundle A Bundle B Bundle C Bundle D

12 Management Subsystem service Introspection of subsystem Lifecycle management of subsystem Management of child subsystems (e.g. install) Roots subsystem solves the bootstrap problem Really only for systems programmers runtimes should simplify management capabilities Root Application A Application B Bundle A Bundle B Bundle C Bundle D Feature A

13 Repositories Subsystem.esa Subsystem.MF Repositories represent collections of resources considered during provisioning The Subsystem archive contents Simplifies operations, bloats deployment The visible set of installed things Configured repository services Enables single binary for install and service Fits well with continuous delivery Bundle A Bundle C Bundle B Bundle D Application Bundle A Feature Bundle C Bundle B Bundle D Bundle A Bundle B Bundle C Bundle D

14 Dependency Management Installs missing dependencies Removes redundant dependencies Dependency installation maximises runtime sharing Application Bundle A Composite Bundle B Feature Bundle C Dependency types Package Services via declarative models (optional) Bundle D Require-Capability

15 From Test to Production Product deployment resolution uncertainty Deployment manifests lock down deployment Repository and install governance necessary for guarantees Subsystem.esa Subsystem.MF Deployment.MF Bundle A Bundle B Bundle C Bundle D

16 Extenders and whiteboards Extender & whiteboard patterns commonplace Rely on visibility of bundle & service lifecycle events Subsystem scoping can hide these events from extenders The System Bundle is your friend Sees all events Can be found by any bundle using its location string Use this to register trackers Service Bundle Bundle systembundle = bc.getbundle(org.osgi.framework.constants.system_bundle_location);

17 Demo httpservice: http service whiteboard greenweb greenwab redweb redwab greenweb, redweb: register http services wab-1.0: web container httpservice httpservicewab osgi.services http.servlet User WebContainer Impl wab-1.0 WebContainer API Root (kernel)

18 In the Wild Confession time

19 Reuse/release equivalence principle The unit of reuse is the unit of release A matter of perspective; jar, library, framework, product Higher levels take on product qualities Licensing Documentation Install Subsystems 1.1 adds many headers for product qualities Icons, Docs, License, Localization

20 Use Case Decomposition of a product into re-usable capabilities Independent release of product capabilities Users care about capabilities, not implementation Users want to consume capabilities piecemeal Stack products re-use subset of capabilities Stack products add their own capabilities

21 Subsystem Asset Life-cycle Dev, build, test Doc, license, icon, etc X.esa Release Repository X.esa Y.esa Z.esa Root Repository & Resolver Services Install Repository & Resolver Services Application A Application B Bundle A Bundle C Bundle B Bundle D Provision W.esa Y.esa X.esa Z.esa Feature A

22 Demo

23 Summary The standard way to manage groups of resources Subsystem types defines sharing for most common use cases Deployment resolution enables sharing of runtime resources Repositories-based resolution enables sharing of binaries New 1.1 features enable more product and marketplacelike qualities

24 Find out more Reference Implementation: Subsystems 1.0 https://svn.apache.org/repos/asf/aries/trunk/subsystem/ Subsystems 1.1 https://svn.apache.org/repos/asf/aries/branches/subsystemsr6/subsystem/ New Early Draft Specification of OSGi Enterprise Release 6 http://www.osgi.org/specifications/drafts New OSGi Core Release 6 Specification http://www.osgi.org/specifications/homepage OSGi Alliance Design Documents https://github.com/osgi/design