<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: SpringSource (and other top vendors) leading the OSGi charge</title>
	<atom:link href="http://blog.springsource.com/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.springsource.com/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/</link>
	<description>The voice of SpringSource</description>
	<pubDate>Wed, 17 Mar 2010 05:22:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Adrian Colyer</title>
		<link>http://blog.springsource.com/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/comment-page-1/#comment-121788</link>
		<dc:creator>Adrian Colyer</dc:creator>
		<pubDate>Thu, 18 Sep 2008 15:09:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.springsource.com/main/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/#comment-121788</guid>
		<description>[quote post="368"]So what is so different for customers and not just vendors with "large existing code bases" trying to benefit from this newness? Your statement implies that OSGi is not difficult for new greenfield projects but difficult for existing applications. [/quote]

If you have an existing large enterprise application packaged as e.g. a war file, the first question to ask is "is there any benefit in retrospectively refactoring it?". For example, if the application "just works" and there is little or no maintenance overhead then continuing to deploy it as a war may well be the right choice as there wouldn't be any obvious way to get an ROI on the investment. 

If you do need to continue building on that code base - for example to add significant new features - then a payback from investing in increased modularity may make sense. For example an easy first step would be to pull out the third-party dependencies packaged inside the web app and instead using Import-Library or equivalent to manage those dependencies. The second step in moving such a code base would be to go to "shared services". If the application has been built using Spring, the first version of this step (horizontal decomposition) is generally easy too - simply split at the application services layer, pull this into a separate bundle, and expose the relevant services in the service registry. Depending on the features you need to add, this *could* enable them to be developed in a modular manner in their own bundle(s). Much more difficult (typically) would be introducing vertical decomposition after the fact - teasing out different vertical slices of the application functionality. The decision on whether it is worth doing this has to be made on a case-by-case basis.

When starting a new application it is of course much easier to design in modularity from the start. This doesn't mean that you can't take advantage of existing code in building those apps - a simple strategy of wrapping existing code in fairly coarse-grained bundles and using it as either a type library (Import-Package style) or services library (service references) will work. You haven't improved the modularity of the existing code, but you do enable new code to be written in a more modular manner.

Unfortunately for server vendors, most of the user value from a modular server architecture comes from the vertical decomposition (e.g. by system features/capabilities) not the (easier to do) horizontal decomposition!</description>
		<content:encoded><![CDATA[<p>[quote post="368"]So what is so different for customers and not just vendors with &#034;large existing code bases&#034; trying to benefit from this newness? Your statement implies that OSGi is not difficult for new greenfield projects but difficult for existing applications. [/quote]</p>
<p>If you have an existing large enterprise application packaged as e.g. a war file, the first question to ask is &#034;is there any benefit in retrospectively refactoring it?&#034;. For example, if the application &#034;just works&#034; and there is little or no maintenance overhead then continuing to deploy it as a war may well be the right choice as there wouldn&#039;t be any obvious way to get an ROI on the investment. </p>
<p>If you do need to continue building on that code base - for example to add significant new features - then a payback from investing in increased modularity may make sense. For example an easy first step would be to pull out the third-party dependencies packaged inside the web app and instead using Import-Library or equivalent to manage those dependencies. The second step in moving such a code base would be to go to &#034;shared services&#034;. If the application has been built using Spring, the first version of this step (horizontal decomposition) is generally easy too - simply split at the application services layer, pull this into a separate bundle, and expose the relevant services in the service registry. Depending on the features you need to add, this *could* enable them to be developed in a modular manner in their own bundle(s). Much more difficult (typically) would be introducing vertical decomposition after the fact - teasing out different vertical slices of the application functionality. The decision on whether it is worth doing this has to be made on a case-by-case basis.</p>
<p>When starting a new application it is of course much easier to design in modularity from the start. This doesn&#039;t mean that you can&#039;t take advantage of existing code in building those apps - a simple strategy of wrapping existing code in fairly coarse-grained bundles and using it as either a type library (Import-Package style) or services library (service references) will work. You haven&#039;t improved the modularity of the existing code, but you do enable new code to be written in a more modular manner.</p>
<p>Unfortunately for server vendors, most of the user value from a modular server architecture comes from the vertical decomposition (e.g. by system features/capabilities) not the (easier to do) horizontal decomposition!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://blog.springsource.com/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/comment-page-1/#comment-121598</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Wed, 17 Sep 2008 11:51:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.springsource.com/main/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/#comment-121598</guid>
		<description>".....This has enabled us to exploit OSGi to the full. Other vendors have had to retrofit OSGi into large existing code bases. I know from first hand experience how difficult it is to retrospectively try and modularize a large existing code base If you do manage to modularize it, making it behave well in a dynamic environment is even harder (even Eclipse struggles to pull off that latter requirement, often requiring restarts after updates)....."

Exactly. 

So what is so different for customers and not just vendors with "large existing code bases" trying to benefit from this newness? Your statement implies that OSGi is not difficult for new greenfield projects but difficult for existing applications.</description>
		<content:encoded><![CDATA[<p>&#034;&#8230;..This has enabled us to exploit OSGi to the full. Other vendors have had to retrofit OSGi into large existing code bases. I know from first hand experience how difficult it is to retrospectively try and modularize a large existing code base If you do manage to modularize it, making it behave well in a dynamic environment is even harder (even Eclipse struggles to pull off that latter requirement, often requiring restarts after updates)&#8230;..&#034;</p>
<p>Exactly. </p>
<p>So what is so different for customers and not just vendors with &#034;large existing code bases&#034; trying to benefit from this newness? Your statement implies that OSGi is not difficult for new greenfield projects but difficult for existing applications.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
