InfoQ

News

Interview: OSGi & Spring In-depth with Adrian Colyer

Posted by Floyd Marinescu on Jun 07, 2007 02:00 PM

Community
Java
Topics
Application Servers ,
Deployment / Datacenter
Tags
OSGi
OSGi is going to change the deployment and run time model for enterprise applications, according to Adrian Colyer in an InfoQ video interview.  Adrian goes in-depth on OSGi, its uses, future impact on the industry, and how Spring will make development with OSGi easier (Spring OSGi m1 was recently released). Adrian talks about how OSGi may change the definition of an application server and JSR 277 vs. OSGi.

Watch OSGi & Spring with Adrian Colyer (29 min)

Adrian starts off explaining the origins of OSGi as a dynamic component model in the embedded space, "Over the years it has evolved and got picked up and now it’s basically the leading state of the art micro kernel".   Today OSGi is used by most developers transparently as it is the plugin-model for Eclipse, it is being used as the basis for Websphere, WebLogic and other major appservers, but one emerging area of interest is OSGi's use for application development.  Adrian explained:
First you get proper modularity then you get versioning concurrent deployment, and then the next thing you get is a level of operational control over that environment that you never had before....[with Spring OSGi] with anyone of those application contexts we can install it, uninstall it, start it, stop it, refresh it, all at run time, keeping the rest of the applications up and running, without impacting it. OSGi had its foundations in, a light weight and dynamic environment, and it’s been built to address the issues of that in a way that no other framework really has.

Adrian went on to suggest a possible best practice for how very large web apps could be partitioned using OSGi:
What a large web application will look like in the OSGI world probably 1, 2, 3, how many MVC bundles, so take each layer and partition it vertically, so that you got the side by side partitions of the system. Then in your service layer, again divide that by major service root; each of those would become a bundle, exposing its services. The same for your repositories; the domain main model might be split across one or more bundles. The supporting libraries you need - they are also bundles. And Spring OSGI is going to wire that together for you, using the OSGI service registry to do the cross bundle bean things. When you got these larger complex web applications, suddenly you get a way of getting a lot more structure and control around it. When you’ve got those big large web applications, you probably got a big large team working on it. And it’s going to be much easier to update and extend parts of it separately, in parallel, and it wouldn’t have been previously when it was one big lump.


Adrian concludes that OSGi is going to "change the deployment and run time model for enterprise applications". See also InfoQ's indepth coverage of OSGi.

What do you think about OSGi's impact on enterprise app development?
java needs a standard kenrel by Bill Burke Posted Jun 11, 2007 8:12 AM
  1. Back to top

    java needs a standard kenrel

    Jun 11, 2007 8:12 AM by Bill Burke

    The Java community really needs a standardized kernel. The kludges and hacks that projects like Seam and Spring have to do to bootstrap themselves in different app server environments is just unacceptable. Although I think OSGi is a great place to define this standardized kernel, there is still a lot that needs to be done though. Specifically, we need an abstraction around defining custom packaging formats, a real deployment API, rather than having to create an RFP specification for each package format. A file/archive abstraction that can deal with exploded, unexploded archives and different archive formats like virtual archives. We also need an aspectized approach to deployment so value-add frameworks can augment existing subsystems like Java EE. I talked a little bit about why these abstractions are important in my blog. The JBoss 5 Deployment Framework is where JBoss is heading and where we want to push OSGi. Bill

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.