The OSGi Subsystems specification is now published. Subsystems provide a way of structuring large systems comprising many OSGi bundles - a "no brainer" for architects who want to build a modular system. But what are the practical considerations when using Subsystems? We'll look at the trade-offs involved and indicate some patterns and anti-patterns.
Eclipse Virgo was one of the technologies that provided input to the Subsystem specification. We'll use Virgo as a source of examples in discussing the practical trade-offs in the use of Subsystems.
This presentation was given at the OSGi DevCon at EclipseCon Europe 2012.
Subsystems: For those occasions where bundles are just too small... - Graham ...mfrancis
Enterprise OSGi 4.2 standardized the use of a number of component models for developing Enterprise OSGi applications: Servlet, JSP, Blueprint, and JPA. Implementations of these specifications have since become available in many open source projects and products such as Apache Aries, Eclipse Gemini/Virgo, GlassFish, JBoss Application Server and WebSphere Application Server. Looking at a number of these environments, it's clear that when it comes to assembly and deployment there's still something missing, namely something to represent a collection of bundles (e.g. an Application). Eclipse Virgo has "PARs" and "Plans", Apache Aries has "Applications", and WebSphere Application Server has “Applications” and “Composites”. Looking further afield to kernel projects, other bundle collection concepts exist, such as Apache Karaf "Features". Each model has concepts in common, such as identity, versioning and content, but also differences like isolation and format. It is clear that this is an area of Enterprise OSGi that could benefit from standardization and hence the Subsystems specification is being created. Subsystems is currently a draft specification which is standardizing artefacts representing collections of bundles, such as an Application. This presentation will introduce the current Subsystems design. It will describe how Subsystems can be used for development and deployment of bundle collections with different isolation semantics, to address the application, composite and feature use cases seen in the OSGi community today.
Siebel Server Cloning available in 8.1.1.9 / 8.2.2.2Jeroen Burgers
Installation Cloning
Siebel server cloning
Enterprise cloning
Patch Deployment
Capture installation changes
Apply changes to target environments
Server Configuration Deployment
Extract server configuration settings
Migrate server configurations to target environments
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixDavid Bosschaert
This presentation takes a closer look at deploying OSGi-based applications using OSGi Subsystems and OSGi Repositories. You will see how you to package multi-bundle applications as a subsystem, deploy them and use repositories to handle dependencies. A large part of the presentation is a demo that shows it all in action using open source technology.
Note that in the screenshots Apache Aries Subsystems Core is using a pre-release version. This bundle is now released under 1.1.0.
See here in Maven Central: http://search.maven.org/#artifactdetails%7Corg.apache.aries.subsystem%7Corg.apache.aries.subsystem.core%7C1.1.0%7Cbundle
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
Subsystems: For those occasions where bundles are just too small... - Graham ...mfrancis
Enterprise OSGi 4.2 standardized the use of a number of component models for developing Enterprise OSGi applications: Servlet, JSP, Blueprint, and JPA. Implementations of these specifications have since become available in many open source projects and products such as Apache Aries, Eclipse Gemini/Virgo, GlassFish, JBoss Application Server and WebSphere Application Server. Looking at a number of these environments, it's clear that when it comes to assembly and deployment there's still something missing, namely something to represent a collection of bundles (e.g. an Application). Eclipse Virgo has "PARs" and "Plans", Apache Aries has "Applications", and WebSphere Application Server has “Applications” and “Composites”. Looking further afield to kernel projects, other bundle collection concepts exist, such as Apache Karaf "Features". Each model has concepts in common, such as identity, versioning and content, but also differences like isolation and format. It is clear that this is an area of Enterprise OSGi that could benefit from standardization and hence the Subsystems specification is being created. Subsystems is currently a draft specification which is standardizing artefacts representing collections of bundles, such as an Application. This presentation will introduce the current Subsystems design. It will describe how Subsystems can be used for development and deployment of bundle collections with different isolation semantics, to address the application, composite and feature use cases seen in the OSGi community today.
Siebel Server Cloning available in 8.1.1.9 / 8.2.2.2Jeroen Burgers
Installation Cloning
Siebel server cloning
Enterprise cloning
Patch Deployment
Capture installation changes
Apply changes to target environments
Server Configuration Deployment
Extract server configuration settings
Migrate server configurations to target environments
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixDavid Bosschaert
This presentation takes a closer look at deploying OSGi-based applications using OSGi Subsystems and OSGi Repositories. You will see how you to package multi-bundle applications as a subsystem, deploy them and use repositories to handle dependencies. A large part of the presentation is a demo that shows it all in action using open source technology.
Note that in the screenshots Apache Aries Subsystems Core is using a pre-release version. This bundle is now released under 1.1.0.
See here in Maven Central: http://search.maven.org/#artifactdetails%7Corg.apache.aries.subsystem%7Corg.apache.aries.subsystem.core%7C1.1.0%7Cbundle
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
si delineano per contro alcuni
elementi di criticità, legati innanzitutto alle procedure di autorizzazione per
l’allestimento degli impianti e per l’allacciamento alla rete elettrica
nazionale, che devono essere ovviati.
Il Divulgatore ( Bologna )
Tiberio Rabboni
Assessore Agricoltura
Regione Emilia-Romagna
si delineano per contro alcuni
elementi di criticità, legati innanzitutto alle procedure di autorizzazione per
l’allestimento degli impianti e per l’allacciamento alla rete elettrica
nazionale, che devono essere ovviati.
Il Divulgatore ( Bologna )
Tiberio Rabboni
Assessore Agricoltura
Regione Emilia-Romagna
The New Open Distributed Application ArchitectureGordon Haff
The platform for developing and running modern workloads has changed. This new platform brings together the open source innovation being driven in containers and container packaging, in distributed resource management and orchestration, and in DevOps toolchains and processes to deploy infrastructure and management optimized for the new class of distributed application that is becoming the norm.
In this session, Red Hat's Gordon Haff discusses the key trends coming together to change IT infrastructure and the applications that will run on it. These include:
Container-based platforms designed for modern application development and deployment
The ability to design microservices-based applications using modular and reusable parts
The orchestration of distributed components
Data integration with mobile and Internet-of-Things services
Iterative development, testing, and deployment using Platform-as-a-Service and integrated continuous delivery systems
As presented by Ralf Dossmann and Ajay Patel at OTN Architect Day in Pasadena, July 9, 2009.
Find an OTN Architect Day event near you: http://www.oracle.com/technology/architect/archday.html
Interact with Architect Day presenters and participants on Oracle Mix: https://mix.oracle.com/groups/15511
The presentation is related to the firm where I rebuilt an existing non-maven project to the maven-based project with the best willingness of a proper modularity designs.
The Demos in this presentation are related to source code which is not attached.
Code Reuse Made Easy: Uncovering the Hidden Gems of Corporate and Open Source...Perforce
Watch the webinar on-demand here: http://info.perforce.com/US_2013Q1_Webinar_BlackDuck_register.html
With 100’s of millions of lines of code running in most large companies and billions of lines of code available in the world of open source, a significant opportunity exists to reuse code written by others in your next application. Sounds easy, but finding the right code and evaluating it for reuse can be a daunting task – one that often causes people to start from scratch.
Join Dave Gruber and Randy DeFauw as they demonstrate how Black Duck and Perforce Version Management can help you discover, track and reuse software components from both your internal code bases and the world of open source.
Learn concrete steps for:
Managing open source and internal components
Consuming or forking these components in your projects
And coming to grips with open source libraries hosted in public Git repositories
Subsystems is an OSGi Alliance specification that standardizes the development and deployment of bundle collections. The specification was motivated by the need for bundle collections exhibited by many existing products & projects, including: Apache Karaf, Apache Aries, Eclipse Virgo, WebSphere Application Server, etc.
Three different types of collections are defined in the specification: feature, composite & application, each having different rules covering sharing of packages and services, and each being designed with different use cases in mind. Subsystems was first introduced in OSGi Enterprise R5 and since then work has continued on further enhancements. This talk will introduce the Subsystems specification, describe some practical use cases, provide demonstrations based on the Apache Aries Reference Implementation, and finally talk a bit about what's coming in the next version.
Bio:
Graham Charters is a Senior Technical Staff Member in the IBM WebSphere Application Server development organization. He is responsible for the OSGi Applications feature of the Application Server and a committer and PMC member of the Apache Aries OSGi programming model project. He is also the IBM technical lead in the OSGi Alliance Enterprise Expert Group.
Configure, Pack and Distribute: An RPM Creation WorkshopNovell
This session is for you if:
You are an ISV who wants to create appliances from your software
You are a customer with your own software development team who wants to package this software for deploying it in the data center—as a package or on your self-built appliance
You have trouble with your data center due to commercial software that is not packaged in a secure and maintainable way
In this workshop you will learn how to build Linux RPM packages. We will demonstrate packaging from source code, and for commercial software (existing as a tar-ball). You will learn best practices and get links to further information.
Gluster Webinar: Introduction to GlusterFS v3.3GlusterFS
Looking for a high performance, scale-out NAS file system? Or are you a new user of GlusterFS and want to learn more? This webinar includes an introduction and review of the GlusterFS architecture and key features. Learn how GlusterFS is deployed in the datacenter, in the cloud, or between the two. We’ll also cover a brief update on GlusterFS v3.3 which is currently in beta.
On the agenda:
*Brief intro to Gluster’s History
*Gluster Architecture Design Goals
*Key Technical Differentiators
*Gluster Elastic Hashing Algorithm
*Deployment scenarios
*Use Cases
3. Subsystems
• New in OSGi Enterprise 5.0 spec
• Implementation underway in Apache Aries
• Based on input from several projects
• Aries, Geronimo, Glassfish, Karaf,
Paremus Service Fabric,Virgo, WebSphere
• Best practices...
11. Feature Subsystems
• Useful for grouping dependencies
• More controlled than auto-detection
• Helps avoid uses constraint failures
• Useful for:
• Common infrastructure
Feature
bundle bundle
• Shared bundles
bundle bundle
12. Application Subsystems
• Useful for top layer of the system
• Application or independent parts of an app
• Avoid including infrastructure bundles
• Reduces sharing Application Application
• Makes update more difficult bundle bundle bundle bundle
• Can lead to resolution failures
Feature
bundle bundle
13. Composite Subsystems
• Essentially a systems programming feature
• Useful for kernels and special infrastructure
• Not recommended for general, widespread
application use
• Complex Composite
• Can duplicate infrastructure bundle bundle
• extenders
• management bundles bundle bundle
19. Use of Repositories
• Subsystem archive content
• Easy to deploy
• May limit sharing
• Harder to update
• Repository content
• Convenient during development
• Avoids bloated archives
• Generally preferable
21. Nested Subsystems
• So far all subsystems have been children of
the root subsystem
Root
Application Application
bundle bundle bundle bundle
Feature
bundle bundle
28. Trying it out
• Apache Aries support in development
• Some Virgo equivalents available
29. Aries Subsystems
• This example runs on Virgo Kernel
• (Live demo)
• You can run it yourself in 5 minutes
• https://github.com/glyn/aries-subsystems-
on-virgo-kernel
• README.md contains full instructions
30. Virgo Equivalents
Standard Function Virgo Equivalent
Feature Unscoped plan
Application - scoped using a PAR or scoped plan - scoped
region using metadata rewriting
Composite - scoped using a
User region
region
Nested plans
Nesting
PARs, plans, user region
Repository Repository
Deployment Contexts -