<?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.org/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.springsource.org/2008/09/17/springsource-and-other-top-vendors-leading-the-osgi-charge/</link>
	<description>The voice of SpringSource</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:31:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
	<item>
		<title>By: Adrian Colyer</title>
		<link>http://blog.springsource.org/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=&quot;368&quot;]So what is so different for customers and not just vendors with &quot;large existing code bases&quot; 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 &quot;is there any benefit in retrospectively refactoring it?&quot;. For example, if the application &quot;just works&quot; 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. 

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 &quot;shared services&quot;. 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&#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.

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 &#8211; for example to add significant new features &#8211; 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 &#8211; 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 &#8211; 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 &#8211; 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.org/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>&quot;.....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).....&quot;

Exactly. 

So what is so different for customers and not just vendors with &quot;large existing code bases&quot; 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>

