<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30677740</id><updated>2011-07-30T17:33:14.241-07:00</updated><category term='SpringDM'/><category term='virtualization'/><category term='VMWare'/><category term='OSGi'/><category term='qi4j'/><category term='mysql'/><category term='PaaS'/><category term='distributed OSGi'/><category term='Cloud Computing'/><category term='osgi sca enterprise middleware'/><category term='SCA'/><category term='&quot;JavaOne 2007&quot; Paremus OSGi SCA'/><category term='Newton'/><category term='complexity'/><category term='Infiniflow'/><category term='oracle'/><category term='Complex Adaptive Systems'/><category term='BEA'/><category term='Complexity Crisis OSGi SCA Paremus'/><category term='Jini'/><category term='Emporer&apos;s New Clothes'/><category term='Nimble'/><category term='dependency management'/><category term='spring'/><category term='Cloud OS'/><category term='JEE6'/><category term='Paremus'/><category term='sun'/><category term='eclipsecon osgi jini sca autonomic Paremus Newton'/><category term='Service Fabric'/><category term='SpringSource'/><category term='Citix'/><category term='OSGi EclipseZone JSIG Paremus JSR291 JSR277 JSR294'/><title type='text'>Adapt and Evolve</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30677740.post-137840504060149651</id><published>2010-01-10T08:28:00.000-08:00</published><updated>2010-01-10T08:32:06.091-08:00</updated><title type='text'></title><content type='html'>For those of you that are interested. My corporate blog now resides at http://adaptevolve.paremus.com/&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I intend to keep this version of 'Adapt and Evolve' for  non work related posts - assuming I ever get time &amp;amp; the inclination ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Best Wishes &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Richard&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-137840504060149651?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/137840504060149651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=137840504060149651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/137840504060149651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/137840504060149651'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2010/01/for-those-of-you-that-are-interested.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-6030330010970855204</id><published>2009-12-01T11:55:00.000-08:00</published><updated>2009-12-01T12:29:16.436-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Nimble'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><title type='text'></title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Helvetica;font-size:medium;"&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;“Making Modularity Manageable™”. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Or should that be "OSGi Mmm...." ;)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I am very pleased to announce the release of &lt;/span&gt;&lt;a href="http://paremus.com/products/products_nimble.html"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Paremus Nimble&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; today. Nimble combines a feature rich OSGi shell with the industries most powerful dependency resolver. The Nimble release is not only a software release,  but a landmark in our ongoing mission to making adaptive OSGi based systems simpler to develop and manage than the legacy they replace.  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The most productive way to manage and interact with OSGi Frameworks that's currently available, you may  &lt;/span&gt;&lt;a href="http://http://paremus.com/products/products_pricing.html#prodplnimble"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;download&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and use Nimble for free on a 30 day renewable license.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So whether you're new to OSGi, an experienced OSGi developer, or an administrator charged with deploying and managing sophisticated OSGi based composite applications, we suspect you'll find Paremus Nimble invaluable.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText"   style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family:Consolas;font-size:10.5pt;"&gt;&lt;span class="Apple-style-span"  style="font-family:Calibri, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText"   style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family:Consolas;font-size:10.5pt;"&gt;&lt;span class="Apple-style-span"  style="font-family:Calibri, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Given that you've read this far, you may also be interest in a couple of posts from the Paremus team including:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText"   style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family:Consolas;font-size:10.5pt;"&gt;&lt;b&gt;&lt;span style="font-family:Calibri, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;'&lt;/span&gt;&lt;a href="http://bit.ly/5LaNN6"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;55k download and 85 chars to run spring simple web app&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;' &amp;amp; &lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;'&lt;/span&gt;&lt;a href="http://bit.ly/7PVttJ"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;osgi file install nimble style&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Its also been well received in the twittersphere including comments such as&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; “&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;very impressive &lt;/span&gt;&lt;a href="http://bit.ly/7lzv3w" style="color: blue; text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://bit.ly/7lzv3w&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; Nimble by paremus #osgi #in&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;” by @yanpujante. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Thanks Yan!&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Please feel free to feedback experiences and comments to the &lt;/span&gt;&lt;a href="http://nimbleblog.paremus.com/"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Nimble Blog&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, or tweet us @paremus.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Merry Xmas (almost)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: Calibri, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Richard.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-6030330010970855204?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/6030330010970855204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=6030330010970855204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6030330010970855204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6030330010970855204'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/12/making-modularity-manageable.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-3830276232402612714</id><published>2009-10-22T10:14:00.000-07:00</published><updated>2009-11-02T14:58:05.638-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Nimble'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Fabric'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><title type='text'></title><content type='html'>&lt;div  style="color: rgb(102, 102, 102);font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" class="Apple-style-span"&gt;&lt;b&gt;OSGi: The Value Proposition?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;In a recent blog &lt;a href="http://www.tensegrity.hellblazer.com/2009/10/all-we-need-to-do-is-take-these-lies-and-make-them-true-somehow.html"&gt;Hal Hildebrand &lt;/a&gt;argues&lt;/span&gt;&lt;span class="Apple-style-span"&gt; OSGi's value proposition in terms of its ability to reduce long term '&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"&gt;complexity'&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"&gt;. Hal argues that whilst it may be harder to start with OSGi as it initially appears more complex, for large applications and large teams it is ultimately simpler because the architecture is 'modular'. A diagram along the lines of the following is used to emphasis the point.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bmHWDz_8K_4/SuCfhTiN-oI/AAAAAAAAABc/qYj9AkAEfaI/s1600-h/Complex1.png"&gt;&lt;span class="Apple-style-span"&gt;&lt;img style="cursor: pointer; width: 320px; height: 266px;" src="http://1.bp.blogspot.com/_bmHWDz_8K_4/SuCfhTiN-oI/AAAAAAAAABc/qYj9AkAEfaI/s320/Complex1.png" alt="" id="BLOGGER_PHOTO_ID_5395487748118149762" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;                     &lt;span class="Apple-style-span"&gt;Complexity over time?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;As an ex-Physicists&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;, I'm naturally interested in concepts such as 'Complexity', &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;'Information' and 'Entropy'; and while I agree with Hal's sentiments, I feel uneasy when the 'complexity' word is used within such broad brush general arguments. Indeed; I find myself asking, in what way is a modular system 'simpler'? Surely a modular system exposes previously hidden internal structure, and while this is '&lt;/span&gt;&lt;i&gt;necessary&lt;/i&gt;&lt;span class="Apple-style-span"&gt; complexity' (i.e information describing the dependencies in the composite system), the system is never-the-less visibly more complex!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:78%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;For those interested, the following &lt;/span&gt;&lt;/span&gt;&lt;a href="http://streamer.perimeterinstitute.ca/mp3/885c534d-2140-496a-8f73-6db23b011504.mp3"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;discussion&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt; between physicists at a &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"&gt;Perimeter Institute&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"&gt; seminar concerning 'information' is amusing, illuminating and demonstrates just how difficult such concepts can be.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;Before attempting to phrase my response, I visited &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://techdistrict.kirkk.com/2009/08/05/modularity-patterns/"&gt;Kirk Knoernschild's blog&lt;/a&gt; - &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;IMO one of the industries leading experts in modularisation - to see what he had to say on the subject.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;Sure enough Kirk states the following:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;"&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;As we refactor a coarse-grained and heavyweight module to something finer-grained and lighter weight, we’re faced with a set of tradeoffs. In addition to increased reusability, our understanding of the system architecture increases! We have the ability to visualize subsytems and identify the impact of change at a higher level of abstraction beyond just classes.  In the example, grouping all classes into a single module may isolate change to only a single module, but understanding the impact of change is more difficult. With modules, we not only can assess the impact of change among classes, but modules, as well.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;Hence, Kirk would seem to agree. As one modularises an application, complexity increases in the form of exposed structural dependencies. Note that one must be careful not to confuse this '&lt;span style="font-style: italic;"&gt;necessary'&lt;/span&gt; complexity with &lt;span style="font-style: italic;"&gt;accidental&lt;/span&gt; complexity; a subject of previous blog entries of mine - see Complexity &lt;a href="http://adaptevolve.blogspot.com/2007/09/complexity-part-i-what-would-it.html"&gt;Part I&lt;/a&gt; &amp;amp; &lt;a href="http://adaptevolve.blogspot.com/2008/01/complexity-part-ii-it-all-depends-on.html"&gt;Part II&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;b&gt;OSGi - Preventing  'System Rot'?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;Those who have worked in a large enterprise environment will know that systems tend to 'rot' over time. Contributing factors are many and varied but usually include:&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(102, 102, 102); text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;Structural knowledge is lost as key developers and architects leave the organisation.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;Documentation missing and / or inadequate.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;The inability to effectively re-factor the system in response to changing business requirements.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;The third issue is really a 'derivative' of the others: As application structure is poorly understood, accidental complexity is introduced over time as non-optimal changes are made.&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Hence, rather than trying to frame OSGi's value proposition arguments  in terms of 'complexity' - OSGi's value is perhaps more apparent when framed in terms of '&lt;i&gt;necessary information' &lt;/i&gt;required to manage and change systems over time?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bmHWDz_8K_4/SuCfg58zZeI/AAAAAAAAABU/BNFd4jIaX_4/s1600-h/Cmp2.png"&gt;&lt;span class="Apple-style-span"&gt;&lt;img src="http://1.bp.blogspot.com/_bmHWDz_8K_4/SuCfg58zZeI/AAAAAAAAABU/BNFd4jIaX_4/s320/Cmp2.png" alt="" id="BLOGGER_PHOTO_ID_5395487741250332130" style="cursor: pointer; width: 320px; height: 256px;" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;                                     Structural information loss over time for modular and non-modular System.&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(102, 102, 102);font-family:arial;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Unlike a traditional system, the structure of a modular System is &lt;b&gt;always&lt;/b&gt; defined: The structural information exposed by a correctly modularised system being the&lt;b&gt; necessary &lt;/b&gt;&lt;b&gt;information&lt;/b&gt; (necessary complexity) required for the long term maintenance of that System. &lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;In principle, at each point in time:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;The components used within the System are known&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;The dependencies between these components are known&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;The impact of changing a component is understood&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;However, the value of this additional information is a function of the tooling available to the developer and the sophistication of the target runtime environment.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"&gt;The Challenge: Simplifying while preserving Flexibility&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Effectively dealing with both module and context dependencies is key to realizing OSGi's true value in the enterprise.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;To quote Kirk yet again:&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;"&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(32, 32, 32); line-height: 18px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;Unfortunately, if modules become too lightweight and fine-grained we’re faced with the dilemma of an explosion in module and context dependencies. Modules depend on other modules and require extensive configuration to deal with context dependencies! Overall, as the number of dependencies increase, modules become more complex and difficult to use, leading us to the corollary we presented in &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;&lt;a href="http://techdistrict.kirkk.com/2009/07/08/reuse-is-the-dream-dead/"&gt;Reuse: Is the Dream Dead&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;&lt;a href="http://techdistrict.kirkk.com/2009/07/08/reuse-is-the-dream-dead/"&gt;:&lt;/a&gt;&lt;span class="Apple-style-span"&gt;"&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;The issue of module dependency management is well understood. Development tooling initiatives are underway to ease module dependency management during the development process; an example of which being the  &lt;a href="http://felix.apache.org/site/sigil-contributing.html"&gt;SIGIL&lt;/a&gt; project recently donated by Paremus to the Apache Felix.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;However, Kirk's comment with respect to '&lt;span style="font-style: italic;"&gt;context dependencies&lt;/span&gt;' remain mostly unheard. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From a run time perspective vendors and early adopters currently adopt one of the following two strategies:&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;Explicit management of all components: Dependency resolution is 'frozen in' at development time. All required bundles, or a list of required bundles, are deployed to each runtime node in the target runtime environment; i.e. operations are fully exposed to the structural dependencies / complexities of the application&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;Use of an opaque deployment artifact: Dependency resolution is again 'frozen in' at development time. Here the application is 'assembled' at development time and released as a static opaque blob into the production environment. Operations interact with this release artifact, much like today's legacy applications. While the dependencies are masked, as the unit of deployment is the whole application, this decreases flexibility, and if one considers the '&lt;a href="http://stackoverflow.com/questions/63142/the-reuse-release-equivalence-principle-rep"&gt;Re-use Release Equivalence Principle&lt;/a&gt;' partly negates OSGi's value proposition with respect to code re-use.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Both of these approaches fail with respect to &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Kirk's 'context dependencies'. As dependencies are 'frozen in' at development time there is no ability to manage 'context' dependencies at runtime. Should conditions in the runtime environment for whatever reason require a structural change; a complete manual re-release process must be triggered. With these approaches, operational day to day management will at best remain painful.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;In contrast,  leveraging our Nimble resolver technology Paremus pursue a different approach:&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The runtime environment - a 'Service Fabric' - is model driven. Operations release and interact with a running Service via its model representation;  this an SCA description of the System. Amongst other advantages, this shields the operations staff from unnecessary structural information.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Service Fabric dynamically assembles each System resolving all modules AND context dependencies.&lt;/li&gt;&lt;li&gt;Resolution policies may be used to control various aspects of the dynamic resolution process for each System; this providing a higher level policy based hook into runtime dependency management.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The release artifacts are OSGi bundles and SCA System descriptions - conforming with the 're-use / release equivalence principle'.&lt;/li&gt;&lt;li&gt;The inter-relationship between all OSGi bundles and all Systems with the Service Fabric may be easily deduced.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;The result is a run time which is extremely flexible,  promotes code-reuse, whilst is significantly easier to manage than traditional environments. OSGi is an important element, but the use of a high level structural description&lt;/span&gt; &lt;span style="font-size:85%;"&gt;used in conjunction&lt;/span&gt; &lt;span style="font-size:85%;"&gt;with &lt;span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;the model driven runtime &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;are also essential elements of this story.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div  style="color: rgb(0, 0, 0); font-weight: bold; text-align: justify;font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;OSGi: The Value Proposition?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;The short answer really is - "it depends on how you use it"!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Without a doubt, many will naively engage with OSGi, and will unwittingly increase operational management complexity beyond any benefits achieved by application modularization; see &lt;/span&gt;&lt;a href="http://www.paremus.com/news/newsletter/e-news-200806-article1.html"&gt;'OSGi here, there and everywhere'&lt;/a&gt;&lt;span class="Apple-style-span"&gt;. However, for those that implement solutions that maximize flexibility and code-reuse, while minimizing management, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;OSGi's value proposition is substantial; and the runtime used is a &lt;/span&gt;&lt;b&gt;critical factor&lt;/b&gt;&lt;span class="Apple-style-span"&gt; in realising these benefits. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;How Substantial?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;To date my only benchmark is provided by an informal analysis made by a group of architects at a tier 1 Investment Bank in 2008. They estimated the potential OPEX cost saving per production application, assuming that it were replaced with a Service Fabric equivalent; for the purpose of this blog one may equate Service Fabric to adaptive, distributed OSGi runtime.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Cost savings in terms of&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul  style="color: rgb(102, 102, 102); text-align: justify;font-family:arial;"&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;application release efficiency.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;ongoing change management,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;fault diagnostics and resolution,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;efficiency savings through code re-use &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;were estimated. The final figure suggested a year on year OPEX saving of 60% per application.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;font-size:85%;"&gt; Somewhat surprised at the size of the estimate I've challenge the group on several occasions, each time the response was that the estimates were conservative.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;"&gt;To turn this into some real numbers - consider the following. A tier 1 investment bank may have as many as ~1000 applications; each application typically costing $1m per annum. Lets assume that only 30% of the applications are suitable for migrating to the new world - we're still looking at a year on year saving of $200m. Migration costs are not included in this, but these are short term expenses. Likewise neither are the cost savings realized by replacing legacy JEE Application Server and middleware with the Service Fabric solution.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:arial;"&gt;As always - 'mileage may vary' -  but never the less, quite a value proposition for OSGi!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-3830276232402612714?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/3830276232402612714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=3830276232402612714' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3830276232402612714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3830276232402612714'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/10/osgi-value-proposition-in-recent-blog.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bmHWDz_8K_4/SuCfhTiN-oI/AAAAAAAAABc/qYj9AkAEfaI/s72-c/Complex1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-6143387489863136184</id><published>2009-10-12T05:01:00.000-07:00</published><updated>2009-10-12T05:07:33.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SpringDM'/><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Fabric'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='PaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud OS'/><title type='text'></title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;How do you scale your Spring DM or POJO applications without development framework lock-in?&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&lt;i&gt;Cloud centric composite applications promise to be more disruptive and more rewarding than either the move to client-server architectures in the early 1990’s, or web-services in the late 1990’s. A successful Private Cloud / Platform as a Service (PaaS) solution will provide the robust and agile foundations for an organization’s next generation of IT services.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;These Cloud / PaaS runtimes will be in use for many years to come. During their lifetime they must therefore be able to host a changing ecosystem of software services, frameworks and languages. &lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;Hence they &lt;/i&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;must&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;:&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span style="font: 10.0px Symbol"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;•&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;be able to seamlessly, and incrementally, evolve in response to changing business demands &lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span style="font: 10.0px Symbol"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;•&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;at all cost, avoid locking an organization into any one specific development framework,&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;programming language or middleware messaging product.&lt;/i&gt;"&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Want to know more? Read the new Paremus Service Fabric architecture paper which may be found &lt;a href="http://www.paremus.com/resources/resources_documents.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-6143387489863136184?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/6143387489863136184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=6143387489863136184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6143387489863136184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6143387489863136184'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/10/how-do-you-scale-your-spring-dm-or-pojo.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-3412005721718285120</id><published>2009-09-30T12:07:00.000-07:00</published><updated>2009-10-01T06:07:55.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Fabric'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringSource'/><category scheme='http://www.blogger.com/atom/ns#' term='PaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='Citix'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'></title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Cloud Computing - finally, FINALLY, someone gets it! &lt;/b&gt;&lt;/span&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I've been really busy these last few months. So not had the time or inclination to post. Yet after reading Simon Crosby's recent article &lt;a href="http://community.citrix.com/pages/viewpage.action?pageId=84149034"&gt;Whither the Venerable OS?&lt;/a&gt; I felt compelled to put &lt;i&gt;pen to paper &lt;/i&gt;- or rather should that be &lt;i&gt;fingers to keyboard&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whilst a good read, the magic paragraph for me appears towards the end of Crosby's article.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(53, 56, 61); line-height: 17px; font-family:arial, sans-serif;font-size:13px;"&gt;"If IaaS clouds are the new server vendors, then the OS meets the server when the user runs an app in the cloud. That radically changes the business model for the OS vendor. But is the OS then simply a runtime for an application? The OS vendors would rightly quibble with that. The OS is today the locus of innovation in applications, and its rich primitives for the development and support of multi-tiered apps that span multiple servers on virtualized infrastructure is an indication of the future of the OS itself: Just as the abstraction of hardware has extended over multiple servers, so will the abstraction of the application support and runtime layers. Unlike my friends at VMware who view virtualization as the "New OS" I view the New OS as the trend toward an app isolation abstraction that is independent of hardware: the emergence of Platform as a Service."&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yes! Finally someone understands!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is IMO exactly right, and the motivation behind the Paremus &lt;i&gt;&lt;a href="http://www.paremus.com/products/products.html"&gt;Service Fabric&lt;/a&gt;; &lt;/i&gt;a path we started down in 2004! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OK, so we were a bit ahead of the industry innovation curve.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, related  &lt;a href="http://www.virtualization.info/2009/09/citrix-cto-validates-vmware.html"&gt;commentary&lt;/a&gt; on the internet suggests that Simon's article validates VMwares acquisition of SpringSource. Well, I'd actually argue quite the opposite. Normal operating systems have been designed to run upon a fixed, unchanging resource landscapes; in contrast a "Cloud" operating system must be able to adapt, and must allow hosted applications to adjust, to a continuously churning set of IaaS resources. Quite simply, SpringSource do not have these capabilities in any shape or form.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;However, I would disagree with the last point in Simon's article. Having reviewed Microsoft's Azure architecture, it seems to me no different from the plethora of Cloud/distributed ISV solutions. Microsoft's Azure platform has a management/provisioning framework that fundamentally appears to be based on a Paxos like consensus algorithm; this no different from a variety of ISV's that are using Apache Zookeeper as a registry / repository: All connection oriented architectures, all suffering  with the same old problems!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whilst such solutions are robust in a static environment, such approaches fail to account for the realities of complex system failures. Specifically, rather than isolated un-correlated failure events, failures in complex systems tend to be correlated and cascade! Cloud operating systems must address this fundamental reality and Microsoft are no further ahead than VMware or Google; indeed the race hasn't even started yet! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the best defence against cascading failure in complex systems? Well that would be dynamic re-assembly driven by 'eventual' structural and data consistency.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-3412005721718285120?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/3412005721718285120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=3412005721718285120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3412005721718285120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3412005721718285120'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/09/cloud-computing-finally-finally-someone.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-202589110206882630</id><published>2009-07-11T03:29:00.000-07:00</published><updated>2009-07-14T01:11:58.409-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='dependency management'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><title type='text'></title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"  style="font-family:Georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;How &lt;/span&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://nimble.codeCauldron.org/"&gt;Nimble&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; is your OSGi runtime?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hands up all of you managing OSGi dependencies via an editable list of bundles. Easy isn't it! It just works right!?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Well actually - it '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;just works&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;' for a single application running in a small number of containers. From an enterprise perspective you are unintentionally contributing to an impending complexity meltdown; an explosion of dependency and configuration management issues. And if you are unfortunate enough to end up supporting your own composite creations, you may well end up envying the fate of Prometheus and rueing the day you learnt to code.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Possible harsh? But I'm not alone voicing this concern!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;In his recent article "&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://techdistrict.kirkk.com/2009/07/08/reuse-is-the-dream-dead/"&gt;Reuse: Is the Dream Dead?&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;", Kirk Knoernschild continues his efforts to educate the industry on the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;tensions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; between code '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;re-use'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; and '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;simplicity of&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;use'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. Kirk argues that as you increase potential &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;re-use&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; via lightweight fine-grained components, the complexity of dependencies and necessary environmental configurations corresponding increase, so making these same components harder to &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;use.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A simple concept, yet if unaddressed, an issue that will make your life as an enterprise developer increasing uncomfortable and help edge OSGi closer to that seemingly inevitable &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;'trough of disillusionment'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Yet, from a development perspective the issue of dependency management is well understood.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://docs.codeCauldron.org/download/attachments/2267/sigil.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 331px; height: 100px;" src="http://docs.codeCauldron.org/download/attachments/2267/sigil.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Whilst initially found wanting, a number of projects now exist to address this; including the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://sigil.codecauldron.org/"&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;SIGIL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; eclipse plug-in which Paremus recently contributed to the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apache Felix&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; project, &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;SIGIL leveraging Peter Krien's &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.aqute.biz/Code/Bnd"&gt;&lt;span style="text-decoration:none;text-underline:nonecolor:#4D2286;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;BND tool&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="font-family:Georgia;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;In contrast, the issue of dependency management in &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Production&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; is less immediately obvious, its impact more profound and generally ignored.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Will aspects of the runtime environment affect the runtime dependencies within the application?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Will applications be isolated from each other, or might they run within the same JVM?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* How are the released artifacts subsequently managed in the production environment with respect to ongoing bundle dependency and version management?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Echoing Kirk's concerns, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Robert Dunne &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;started his presentation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;at &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.osgi.org/DevConEurope2009/Schedule"&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;OSGi DevCon Europe&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; with the observation that;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; 'whilst modularity was good, its benefits are often undermined by dependency and configuration complexity'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;. The subject of Robert's presentation? The &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.slideshare.net/rsdunne/a-nimble-approact-to-dependency-management"&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Paremus Nimble Resolver&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;, which is our response to the concerns posed by Kirk.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; is a high performance runtime dependency resolver. To deploy a composite application to a &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;enabled runtime (i.e. the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.paremus.com/products/products.html"&gt;&lt;span style="color:#4D2286;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Paremus Service Fabric&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;) one specifies:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* The root component of the artifact.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* And a set of associated policies and constraints.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;then does the rest.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Presented with the '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;root&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;', &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; dynamical constructs the target &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;composite;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; ensuring that the structural dependencies are resolved in a manner consistent with both organizational policies and the runtime environment within which it finds itself.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble's OSGi &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;capabilities include:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Fragment attachment policies.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Optional import policies.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Import version range narrowing.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* The ability to resolve dependencies on extender bundles (DS, 'classic' Spring, Spring DM, iPOJO).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;With &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; policies allowing:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* The configuration of selected extensions.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Flexible constraint requirement -&gt; capability matching.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* The ability to configure optional dependency resolution behaviors.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Not just OSGi&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;, Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; is a generic artifact resolver with a plug-able architecture. Any artifact type &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;may be supported, with support currently available for:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* OSGi Bundles&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* POJO's, 'classic' Spring &amp;amp; Spring DM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* WAR&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;* Configurations.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;A &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; enable runtime quite literally dynamically assembles all required runtime application and infrastructure service dependencies around the deployed business components! Specify a WAR artifact and &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;will instantiate the appropriate Servlet engine dictated by runtime policy attached to the WAR; i.e. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Tomcat or Jetty Sir&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;? Specify a '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Configuration'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;, and &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; responds by installing the target of the configuration, and of-course its dependencies.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; not only directly addresses Kirk's concerns, but goes on to radically transforms our understanding of the responsibilities and capabilities of next generation composite aware Service Platforms. But most importantly, &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Nimble&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; was created to enable effect &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;re-use&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; whilst making life simpler for you and the organizations you work for.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-202589110206882630?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/202589110206882630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=202589110206882630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/202589110206882630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/202589110206882630'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/07/how-nimble-is-your-osgi-runtime-hands.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-9049985117590249187</id><published>2009-04-09T11:43:00.000-07:00</published><updated>2009-04-09T12:35:56.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='Jini'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><category scheme='http://www.blogger.com/atom/ns#' term='Infiniflow'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed OSGi'/><title type='text'></title><content type='html'>&lt;div style="text-align: justify;"&gt;Whilst recently writing up a white paper, I idly spent sometime looking through my usual archive - the Internet (anything to avoid writing). :-/&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When did we (Paremus) first announce distributed OSGi again? Answer, not 2009 as one believe if you listened to all the IT vendor noise about RFC119 - but in &lt;a href="http://www.hoise.com/primeur/06/articles/monthly/AE-PR-01-06-48.html"&gt;December 16th 2005&lt;/a&gt;.  &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;OK - we were a little early :) &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This press release even had a quote from Jon Bostrom. Jon, six years early in 1998 actually visited Salomon Brothers UK to provide a &lt;a href="http://findarticles.com/p/articles/mi_m0CGN/is_1999_Jan_20/ai_53612852/"&gt;Jini train course&lt;/a&gt; too, what turned out to be, a proto-Paremus team.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This morning I was alerted to a blog concerning &lt;a href="http://www.jroller.com/dmdevito/entry/7_good_reasons_to_have"&gt;Jini and OSGi&lt;/a&gt; which I dually half-read, then responded. Then realized that the blogger had actually reference a short 5 minute talk I gave at the Brussels JCM 10 Jini event September 2006. As the message from this presentation had been ignored by the community since that point - I has somewhat surprised / pleased to see it referenced.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;My message at the time was simple and quite unpopular...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;To survive and flourish Jini must embrace OSGi&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The other thing that sprang to mind was &lt;a href="http://blogs.sun.com/warren/entry/summary_jim_waldo_s_keynote"&gt;Jim Waldo's presentation&lt;/a&gt; at the same conference. Unlike mine, this widely report with great enthusiasm; I really don't mind Jim:)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The interesting thing was - at least to my mind - one of Jim's most profound comments seemed to be missed by most.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Program v.s. Deploy - we'll put the management in later&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This struck particular resonance with the Paremus engineering team - as our dynamic target state provisioning sub-system for Infiniflow had been released earlier that very year. This leveraging those very ideas!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Its now 2009 - we have the industry has defined the relevant required standards for distributed OSGi based frameworks. Now the industry is wondering how to develop, deploy and manage runtimes that consist of 1000's of dynamical deployed bundles running on a Cloud of Compute resource. No problem! Paremus have been doing that for half a decade ;)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Conclusions? Nothing profound. Perhaps the slow pace of the IT industry? But isn't the Internet a great communal memory!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-9049985117590249187?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/9049985117590249187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=9049985117590249187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/9049985117590249187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/9049985117590249187'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/04/whilst-recently-writing-up-white-paper.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-2211752575459358948</id><published>2009-03-11T09:55:00.000-07:00</published><updated>2009-03-11T13:07:19.741-07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Teleport or Telegraph?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If this blog entry were chiseled in stone, no currently existing technology would be capable of near instantaneous transportation of that stone. Perhaps quantum entanglement might one day provide the basis for Teleportation - yet much serious physics and engineering would be required to make this more than Science Fiction.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Yet the same information - in an binary format (&lt;i&gt;Morse&lt;/i&gt;) - could have be transmitted across a continent at near the speed of light over a hundred years ago.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Both approaches achieve the same result - transmission of information. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Sometimes identifying the correct approach, the correct perspective, is far more important than the amount of engineering effort you throw at a problem.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Which brings me to the following &lt;a href="http://www.theregister.co.uk/2009/03/10/emc_vmware_vsphere/"&gt;article&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So VMware need 2,000 people to build a resource orchestration layer? Certainly, trying to manage a resource landscape so that it appears unchanging to a population of legacy applications is extremely difficult!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The alternative?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Take a different perspective. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Build dynamic / agile applications that adapt to the changing characteristics of their operational environments.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-2211752575459358948?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/2211752575459358948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=2211752575459358948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/2211752575459358948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/2211752575459358948'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/03/teleport-or-telegraph-if-this-blog.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-4842441552603847997</id><published>2009-02-27T04:56:00.000-08:00</published><updated>2009-02-27T05:48:12.391-08:00</updated><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Global Financial Meltdown and Google Mail Service Outage&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whilst the current global economic meltdown and the recent &lt;a href="http://news.bbc.co.uk/1/hi/technology/7907583.stm"&gt;Google e-mail&lt;/a&gt; service outage may seem entirely different types of event, there is some degree of commonality. Both represent catastrophic cascading failure within large complex distributed systems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The analogy unfortunately finishes there. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google were up and running again in a couple of hours whilst the worlds economies may take a decade to recover. However the central theme -  &lt;span class="Apple-style-span" style="font-style: italic;"&gt;how to avoid systemic catastrophic failure within complex systems&lt;/span&gt; - remains of deep concern to system architects and economists alike. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where does that leave "Cloud Computing". Quite simply don't believe the hype. Public Cloud infrastructures will continue to fail, hopefully infrequently, but almost certainly in a spectacular manner. The next generation for Public Cloud will need to be built upon a more modular resources landscape (swarms of geographically dispersed meshed data centre nodes) - with a suitably advanced distributed &amp;amp; partition-able Cloud Operating System. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately the same is true of the current generation of Grid Provisioning and Virtualization Management Software solutions increasingly used by large corporations. Use of this technology will end in tears for a number of large IT departments. To much visible complexity, too little automation. Like the economic meltdown, these solutions fail to account for outlier risks which cause systemic failure within complex systems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The answer? Well its not a programming language (sorry Erlang!), nor a specific piece of middleware, nor specific replication technology, nor classic clustering.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;To start the journey one must first realize that... &lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Agility and Robustness are simply two faces of the same coin&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-4842441552603847997?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/4842441552603847997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=4842441552603847997' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4842441552603847997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4842441552603847997'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/02/global-financial-meltdown-and-google.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-3180115548568532283</id><published>2009-02-12T11:54:00.000-08:00</published><updated>2009-02-12T15:40:27.026-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jini'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><category scheme='http://www.blogger.com/atom/ns#' term='Infiniflow'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed OSGi'/><title type='text'></title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Forget Cloud - OSGi is the new Cool Thing!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or so an Industry Analyst recently informed me. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet the flurry of &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Twittering&lt;/span&gt; &amp;amp; &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Blogging &lt;/span&gt;concerning the distributed OSGi section of the new &lt;a href="http://www.osgi.org/download/osgi-4.2-early-draft.pdf"&gt;OSGi 4.2&lt;/a&gt; specification is certainly interesting. Is OSGi approaching some sort of enterprise adoption tipping point? These along with other commercial indications imply this is likely.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is good news. OSGi deserves to be wildly successful, OSGi is one of the key enablers for the next generation of enterprise. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet a danger lurks in the shadows. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The use of OSGi does not in itself guarantee any sort of coherent architecture, nor is capable of addressing the current complexity crisis with the enterprise. OSGi is simply a tool - and in the wrong hands OSGi runtime systems will seem orders of magnitude more complex than the systems they replaced.  Meanwhile, the distributed OSGi section of the 4.2 specification is simply an acknowledgment that "things" exist outside the local JVM - no more - no less. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Distributed OSGi has little to say about how to address &lt;a href="http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing"&gt;Deutsch's 8 Fallacies&lt;/a&gt; ( actually if you follow the link you'll notice that Wikipedia now have a 9th :)  ). How these distributed entities discover each other, interact with each other, and which protocols are used is left as an exercise to the software vendor. This is not a criticism of the standard - this is a good thing. OSGi doesn't constrain distributed architectures. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet this allows business as usual for the Software Vendors. And so we see the same old tired SOA rhetoric.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"ESB's &amp;amp; WS-*, would you like OSGi with that sir?"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But joking aside - the real danger is that OSGi's fate may become hopelessly entangled with the current disillusionment surrounding the web of vendor &lt;a href="http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html"&gt;SOA Market-ectures&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Paremus have always argued that OSGi deserves to be complemented by a network SOA framework that is as adaptable and dynamic as OSGi is locally within the JVM. A Self-Similar Architecture!&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;It was for this reason that Paremus fused OSGi (the new Cool technology) with Jini (was Jini ever Cool?) within the &lt;a href="http://newton.codecauldron.org/site/index.html"&gt;Newton project&lt;/a&gt; in 2006. A solution, in its commercial &lt;a href="http://www.paremus.com/products/products.html"&gt;Infiniflow&lt;/a&gt; guise, which has been in customer production for over 2 years. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As for Cloud Computing - that story has only just started ;-)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-3180115548568532283?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/3180115548568532283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=3180115548568532283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3180115548568532283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3180115548568532283'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2009/02/forget-cloud-osgi-is-new-cool-thing-or.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-7282412781497964409</id><published>2008-05-15T02:51:00.000-07:00</published><updated>2008-05-15T02:53:19.253-07:00</updated><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats&lt;/span&gt;"&lt;div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;Howard Aiken 1900-1973&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-7282412781497964409?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/7282412781497964409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=7282412781497964409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7282412781497964409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7282412781497964409'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/05/dont-worry-about-people-stealing-your.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-8392683844869454052</id><published>2008-05-08T10:27:00.000-07:00</published><updated>2008-05-08T10:28:22.003-07:00</updated><title type='text'></title><content type='html'>&lt;span style="font-style: italic;"&gt;"All truth passes through three stages. First, it is ridiculed. Second, it is violently opposed. Third, it is accepted as being self-evident." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;Arthur Schopenhauer&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-8392683844869454052?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/8392683844869454052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=8392683844869454052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8392683844869454052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8392683844869454052'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/05/all-truth-passes-through-three-stages.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-409069874789938467</id><published>2008-04-05T07:28:00.000-07:00</published><updated>2008-04-05T09:58:16.151-07:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;If only Newton were Apache....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whilst I'm on a roll...&lt;br /&gt;&lt;br /&gt;I continue to get asked by all sorts of parities, "Why is Newton using a GPL (actually AGPL) open source license? Why isn't it Apache?" Less frequently, the same question in another guise - "Why did Paremus set up &lt;a href="http://www.codecauldron.org/"&gt;codeCauldron&lt;/a&gt; rather than join Apache or Eclipse?"&lt;br /&gt;&lt;br /&gt;This question usual emanates from one of three sources:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Individual Developer:&lt;/span&gt; Usually very excited about &lt;a href="http://newton.codecauldron.org/ite/index.html"&gt;Newton&lt;/a&gt; and its capabilities; typically a &lt;span style="font-style: italic;"&gt;Samurai &lt;/span&gt;-  (Paremus like Samurai!). The conversation goes - "&lt;span style="font-style: italic;"&gt;If only Newton were Apache,&lt;/span&gt; I could deploy it in production without sign-off". The Samurai sees the value in the product, sees the vision  - and believes (but cannot ensure) the organization will do the right thing; the right thing being to pay for support and consultancy services from the company that developed the product. Unfortunately I've seen exactly the opposite behavior from a number of Organisations! Many VC's believe without questioning - &lt;span style="font-style: italic;"&gt;the diffusion model&lt;/span&gt;; i.e. "&lt;span style="font-style: italic;"&gt;Give it away and the revenue will roll in&lt;/span&gt;" - yes, those very words have been used. My response - I continue to watch SpringSource and MuleSource with much interest! But I predict that the VC's in question are in for a shock!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;The Small SI: &lt;/span&gt;Usually want Newton capabilities upon which they can build business specific services - but do not want to pay for the privilege. Newton is unique in its capabilities at present - so either the SI must make their own derivative code GPL, or develop the equivalent of Newton capabilities themselves, or enter a commercial relationship with Paremus. &lt;span style="font-style: italic;"&gt;If only Newton were Apache!&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Tier 1 Technology Vendors: &lt;/span&gt;Complain - "We (who shall remain nameless) cannot &lt;span style="font-weight: bold;"&gt;officially&lt;/span&gt; look at Newton code because it's GPL. Implication being: We are not interested in a commercial relationship with you, rather we want to see what you Paremus folks have, try and guess where you are going, and then do it ourselves. &lt;span style="font-style: italic;"&gt;If only Newton were Apache!&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;So whilst capable of generating a large footprint, the Apache license model is, I believe, a significant barrier for small innovative companies wanting to build a financial successful business, as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Its easy to give something away. Trying to charge for usage a-priori - much more difficult! Again, I continue to watch SpringSource and MuleSource with much interest!&lt;/li&gt;&lt;li&gt;The giants of the Software Industry, after the Linux/JBOSS experience have become quite effective at controlling open source communities, and neutralizing potential threats to the status quo; just my paranoid observations.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.news.com/2100-1001-252681.html"&gt;Perhaps Microsoft were correct all along?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That said, companies with closed source / proprietary software products seem to make the same mistake. The market is tough, developers opt for "free open source" solutions, our ROI isn't obvious? So give away the product based on some criteria -  to customers with revenue below a certain level, or limited functionality / scale of the free product. Later - when the customer exceeds this boundary - we have them by the balls! (queue evil laugh).  A viable long-term business strategy?&lt;br /&gt;&lt;br /&gt;Again, I have my doubts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-409069874789938467?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/409069874789938467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=409069874789938467' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/409069874789938467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/409069874789938467'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/04/what-value-in-free-whilst-im-on-roll.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-4751906340542511594</id><published>2008-04-05T03:52:00.000-07:00</published><updated>2008-04-05T10:13:32.861-07:00</updated><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Impaled on the Horns of an OPEX Dilemma&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The finance industry are clearly having a tough time at present. As losses mount, CEO's &amp;amp; CIO's are increasingly scrutinizing the costs of doing business. One interesting metric, the cost of running a single production application; $1,000,000 per annum! Take the many thousands of applications typically used in a large finance house, and operational costs rapidly exceeds the billion dollar per annum mark.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is this?&lt;br /&gt;&lt;br /&gt;Surely, over the last few years the Finance industry has increasingly driven down the price of enterprise software, to the point that an application server may now be charged at a few hundred dollars per node. Likewise, basic networking, server and storage are cheaper than at any time in the past.&lt;br /&gt;&lt;br /&gt;The problem isn't the cost of the raw materials, rather the fact that these organizations have built increasingly complex environments which must be maintained by an army of IT staff.&lt;br /&gt;&lt;br /&gt;I'm probably not far off the mark suggesting 80% of the annual cost for each application relates to support and development staff that are required to maintain and keep the application running.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the choices available to the CxO? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Use Cheaper Resource:&lt;/span&gt; Ship operations out to China, India or Mexico! While on-paper attractive as a quick fix; there is a catch. Wages tend to normalize as time progress, with the cost of initially cost effective workforces rising to the point that the Market will bear. Indeed - it has a name; "Free Market Dynamics". Hence within a reasonable timeframe (~5 yrs) - the cost advantage will evaporated; meanwhile the company is still left with a complex manually intensive operational environment. Traditional - third party outsourcing - of which there are several failed examples exist in the late 1999 / early 2000 period - fall into this category. This approach does nothing to address the the root cause of the spiraling operational costs – complexity! In short - a strategy guaranteed to fail in the medium / long term.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Reduce the Number of Applications:&lt;/span&gt; If the cost relates to the number of applications - simply forcing down the number of applications in use will initially reduce OPEX costs. Whilst a reasonable strategy for some, the Financial Service industry is highly adaptive and constantly needing the evolve applications and services. Hence, a "no new" applications policy merely results in bolt-ons of additional functionality to existing systems - increasing complexity and associated costs of the remaining applications.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Use Technology to Reduce headcount:&lt;/span&gt; The IT industry have collectively failed to provide real solutions to this! Despite a flood of &lt;span style="font-style: italic;"&gt;Automated Run-Book&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Monitoring&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Configuration Management&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Package / OS Deployment and Virtualization Management &lt;/span&gt;products&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;humans are still very much still "in-the-loop"; directly concerned with all aspects of every software service in the runtime environment. Environments are more complex than ever!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;So what is stopping the IT industry developing the right products? Simply, industry continues to fail to realize that automation of the &lt;span style="font-style: italic;"&gt;existing&lt;/span&gt; is not sufficient. A fundamental/radical change in perspective with respect to how distributed systems are built and maintained is needed to address the Complexity Crisis organizations now face. Funnily enough, this is what&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://www.paremus.com/products/products.html"&gt;Infiniflow&lt;/a&gt; has been developed to address.&lt;br /&gt;&lt;br /&gt;And the users of the technology?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The fear of change!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The linear relationship between status and managed headcount.&lt;/li&gt;&lt;li&gt;And most importantly, a severe shortage of sufficiently talented engineers and architects  that have the vision and determination to drive such changes through their organizations - (Paremus referring to these rather special individuals as Samurai).&lt;/li&gt;&lt;/ul&gt;So if you are a frustrated Samurai, contact us at Paremus, we can introduce you to many like minded individuals :)&lt;br /&gt;&lt;br /&gt;Meanwhile, if you are a CEO / CIO with the desire to tackle the root causes of your organizations IT complexity - why not drop me an &lt;a href="http://www.paremus.com/contact_us/contact_us.html"&gt;e-mail&lt;/a&gt;, and we'll explain how we might be able to help; specifically you may find the dramatic impact that Infiniflow has on operational cost of great interest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-4751906340542511594?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/4751906340542511594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=4751906340542511594' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4751906340542511594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4751906340542511594'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/04/impaled-on-horns-of-opex-dilemma.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-7704404998451788401</id><published>2008-02-04T07:07:00.000-08:00</published><updated>2008-02-07T07:19:41.732-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='SCA'/><category scheme='http://www.blogger.com/atom/ns#' term='qi4j'/><category scheme='http://www.blogger.com/atom/ns#' term='Infiniflow'/><title type='text'></title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Henry Ford and Software Assembly&lt;/span&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Having used the &lt;a href="http://en.wiipedia.org/wiki/Henry_Ford"&gt;Henry Ford&lt;/a&gt; analogy on numerous occasions; it was interesting to read a recent &lt;a href="http://java.sys-con.com/read/494742.htm"&gt;JDJ article&lt;/a&gt; by Eric Newcomer.&lt;br /&gt;&lt;br /&gt;The Henry Ford analogy to software goes something like this (quoting Eric)...&lt;/div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;"The application of the Ford analogy to software is that if you can standardize application programming APIs and communications protocols, you can meet requirements for application portability and interoperability. If all applications could work on any operating system, and easily share data with all other applications, IT costs (which are still mainly labor) would be significantly reduced and mass production achievable."&lt;br /&gt;&lt;br /&gt;Eric suggests that despite the software industry having attempted the pursuit of software re-usability, these activities have failed. Whilst the Web Services initiative has, to some degree, increased interoperability, it has failed to deliver code re-use. Eric concludes that the whole analogy is wrong, and that rather than trying to achieve code re-use, the industry needs to focus of sophisticated tools to import code, check for conformance and ready it for deployment within the context of a particular production environment.&lt;br /&gt;&lt;br /&gt;This article triggered a number of thoughts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Did the industry seriously expect WS-* to usher in a new era of code re-use? Surely Web Services are a way to achieve loose coupling between existing, and so by definition, stove-piped monolithic applications? I guess the answer here partly depends on the granularity of re-use intended?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Perhaps JEE should have faired better? Generic or re-usable  business  logic  that could be deployed to a general purpose application server seems like just the thing! However, expensive bloated JEE runtimes, and the associated complexity and restrictions, prompted the developer migration to Spring.&lt;/li&gt;&lt;/ul&gt;Do these experiences really point to a fundamental issue with the idea of code re-use, or are they an indication that the standards developed by the IT industry were simply not up to the job?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;If the latter, then what is actually needed? Clearly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It must be &lt;span style="font-weight: bold;"&gt;significantly simpler&lt;/span&gt; for developers to re-use existing code relative to the effort required to cut new code for the task in hand -  thus implying:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;The ability to rapidly search for existing components with the desired characteristics.&lt;/li&gt;&lt;li&gt;The ability to rapidly access and include the desired components into new composite applications.&lt;/li&gt;&lt;li&gt;Component dependency management must be robust and intuitive both during the development cycle and during the life-time of the application in production.&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;The runtime environment must be sufficiently flexible and simple that it offers little or no resistance to developers and their use of composite applications.&lt;/li&gt;&lt;li&gt;In addition to the runtime environment insulating applications from resource failure, and providing horizontal scale, the runtime must also track all components that are in use, and the context (the composite system) in which they are used.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I'd argue that, unlike previous IT attempts, current industry initiatives are  clearly moving in the right direction:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The OSGi service platform gives us a vendor neutral industry standard for fine-grained component deployment and life-cycle management. Several excellent OSGi open source projects are available; namely &lt;a href="http://www.knopflerfish.org/"&gt;Knopflerfish&lt;/a&gt; , &lt;a href="http://felix.apache.org/site/index.html"&gt;Apache Felix&lt;/a&gt; and &lt;a href="http://www.eclipse.org/equinox/"&gt;Eclipse Equinox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Service Component Architecture (SCA) provides a vendor neutral industry standard for service composition.&lt;/li&gt;&lt;li&gt;Next generation runtime environments like Infiniflow (itself built from the ground up using OSGi and SCA) replace static stove-piped Grids, Application Servers and ESB's with cohesive, distributed, adaptive &amp;amp; dynamic runtime environments.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;But are these trends sufficient to usher in the new era of code re-use?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Possibly - possibly not.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Rather than viewing code re-use simply in terms of "find - compose - deploy" activities, we perhaps need one more trigger; the development framework itself should implicitly support the concept of code re-use! This message was convincingly delivered by Rickard Oberg in his presentation concerning the &lt;a href="http://www.qi4j.org/"&gt;qi4j project&lt;/a&gt; at this years &lt;a href="http://www.jfokus.se/jfokus/speakers.jsp#Rickard%20Oberg"&gt;JFokus conference&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But what would be the impact if these trends succeed? Will the majority organizations build their applications from a common set of tried and tested shrink wrapped components? To what extent will third party components be common across organizations, or in house developed components be common across systems within organizations?&lt;br /&gt;&lt;br /&gt;The result will almost certainly be &lt;a href="http://en.wikipedia.org/wiki/Adaptive_radiation"&gt;adaptive radiation&lt;/a&gt;; an explosion in re-usable software components from external software companies and internal development groups. As with any such population, a power-law can be expected in terms of use, and so re-use; a few components being used by the vast majority of systems, whilst many components occupying unique niches, perhaps adapted or built to address the specific needs within a single specialist application in a single organization.&lt;br /&gt;&lt;br /&gt;Going back to the &lt;a href="http://en.wiipedia.org/wiki/Henry_Ford"&gt;Henry Ford&lt;/a&gt; analogy, whilst standardization of car components enabled the move to mass production, this was not, at least ultimately at the expense of diversity. Indeed, the process of component standardization, whilst initially concerned with the production of Ford Model Ts (black only) resulted in cars available for every lifestyle, for every budget and in any colour!&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-7704404998451788401?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/7704404998451788401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=7704404998451788401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7704404998451788401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7704404998451788401'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/02/henry-ford-and-software-assembly-having.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-5190565619011228033</id><published>2008-01-17T07:34:00.000-08:00</published><updated>2008-01-17T08:57:02.264-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BEA'/><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='SCA'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;LiquidFusion - Any Takers?&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Just after I found out about the Sun's purchase of MySQL, the news about Oracle's acquisition of BEA filtered through.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Can this be anything other than consolidation within an aging market sector. An indication that the "one size fits all" monolithic messaging middleware /  application server era is in its twilight years?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps OSGi and SCA will, in due course, be seen as key technology enablers allowing the shift away from costly monolith middleware?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-5190565619011228033?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/5190565619011228033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=5190565619011228033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/5190565619011228033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/5190565619011228033'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/01/liquidfusion-any-takers-just-after-i.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-2390052650754210350</id><published>2008-01-16T06:49:00.000-08:00</published><updated>2008-01-16T08:04:48.007-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sun no Longer Afraid?&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've just been contacted by an old friend asking for my thoughts w.r.t Sun's MySQL announcement. Certainly news to me! Yet, a quick check of Sun's front page and &lt;a href="http://blogs.sun.com/jonathan"&gt;Jonathan's blog&lt;/a&gt;, just to be sure, confirms the story.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So initial response was surprise. Sun had previously purchased an excellent database technology and then proceeded to silently kill it by burying it behind medico middleware. Anyone remember Clustra? True Clustra was a new market entrant whereas MySQL has massive market adoption. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My interpretation was always that Sun were to concerned about the Oracle relationship - and specifically the Oracle on Sparc business line - to risk having any in-house product that remotely looked like a relational database. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If true - that would imply the  revenue stream is no longer as important as it use to be? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whatever, it seems to me like a bold and interesting move. Far more so than the StorageTek acquisition (still don't understand that one). This also follows on from Lustre; to my mind an interesting technology motivated acquisition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-2390052650754210350?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/2390052650754210350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=2390052650754210350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/2390052650754210350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/2390052650754210350'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/01/sun-no-longer-afraid-ive-just-been.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-5052850979973672998</id><published>2008-01-07T01:16:00.000-08:00</published><updated>2008-01-10T02:46:57.012-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><title type='text'></title><content type='html'>Complexity - Part II: It all depends on the Question you ask!&lt;br /&gt;&lt;br /&gt;I previously argued that the &lt;span style="font-style: italic;"&gt;apparent&lt;/span&gt; complexity of a system varies dramatically with respect to the type of question you ask. The answer to one question may make a given system seem inordinately complex, yet ask another similar question, from a slightly different perspective, and the same system appears very simple.&lt;br /&gt;&lt;br /&gt;Hence, it is the &lt;span style="font-style: italic;"&gt;question&lt;/span&gt; that dictates where the line is drawn separating hidden and exposed system complexity.&lt;br /&gt;&lt;br /&gt;Assume I want to deploy a set of services to an Enterprise. These services have specific runtime requirements and interdependencies. The usual question asked is...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"&lt;span style="font-style: italic;"&gt;What compute resources do I have, what are their individual configurations and capabilities?"&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The response to which, an extensive list of resources and associated configurations/capabilities  are presented, that now need analyzing. Like the positions of nodes in a lattice, the initial question, and subsequent answer, expose too much &lt;span style="font-style: italic;"&gt;unnecessary&lt;/span&gt; information!&lt;br /&gt;&lt;br /&gt;In contrast, if I ask,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;"Out of the cloud of potential resource which may or may not exist, what sub-set resources currently satisfies the following conditions?"&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The response requires no further thought. Whilst I may never know the configuration of everything, I'll always know whether there are resources capable of servicing my stated requirements. As the response to the question is simple, and requires no effort on my part, I have no issue in re-asking the question as may times as required; this is essential, as the one thing I do know is that the environment WILL change!!&lt;br /&gt;&lt;br /&gt;Re-visiting the lattice analogy.&lt;br /&gt;&lt;br /&gt;Because it is simple to measure emergent &lt;span style="font-style: italic;"&gt;macroscopic&lt;/span&gt; properties such a pressure, temperature and volume, it is easy to re-measure these and so deduce the relationship between them over time - e.g. Boyles Law. This would have been a significant challenge if the &lt;span style="font-style: italic;"&gt;microscopic&lt;/span&gt; quantities of position, mass and velocity for each particle had been used instead!&lt;br /&gt;&lt;br /&gt;Abstraction versus Virtualization?&lt;br /&gt;&lt;br /&gt;Resource abstraction is different from resource virtualization. Whilst the latter attempts to represent a physical resource with a “virtual” equivalent, this equivalent emulating the attributes as the underlying entity, resource abstraction masks the complexity of the entity (physical or virtual), representing this resource via a simplified description. Resource abstraction and resource virtualization are orthogonal / complementary and interdependent.&lt;br /&gt;&lt;br /&gt;To Conclude&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As systems become increasingly distributed and composed of an ever increasing number of moving parts - we need to step back from attempting a microscope description of the environment, and rather describe it in terms of its emergent macroscopic characteristics.&lt;/li&gt;&lt;li&gt;We need to intelligently define the boundaries - the point at which microscopic behavior gives  way to a more  appropriate macroscopic view. Also don't be surprised if several  boundaries exist.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dynamic service discovery / dynamic service provisioning / re-provisioning are fundamental - they are &lt;span style="font-weight: bold;"&gt;MUST HAVE&lt;/span&gt; core behaviors.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So avoid all architectures and solutions that assume a static world, comprising of fixed immutable resources at known addresses; NB including wiring systems together via &lt;span style="font-weight: bold;"&gt;static immutable middleware&lt;/span&gt; services! Unfortunately the vast percentage of current software solutions, and the mindsets of the engineers that built them.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Build dynamic systems, manage them with respect to their macroscopic properties and the management / complexity issue vanishes. Conversely, if runtime complexity is a serious issue - it's about time you redesign / rebuilt your systems as no amount of traditional management software will save you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-5052850979973672998?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/5052850979973672998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=5052850979973672998' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/5052850979973672998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/5052850979973672998'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2008/01/complexity-part-ii-it-all-depends-on.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-7349809635641438947</id><published>2007-11-06T14:55:00.000-08:00</published><updated>2008-01-16T07:13:39.896-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><title type='text'></title><content type='html'>Paremus colleagues continuing to flag articles to me, and partially restored vigor (New Year and all that) - have conspired to overcome my Q4-07 Blogger's Block.&lt;br /&gt;&lt;br /&gt;I'll start by briefly para-phrasing the recent crop of virualization articles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Virtualization is great because...&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;You can increase data centre resource utilization.&lt;/li&gt;&lt;li&gt;You can simply restart a service on a new physically platform, should the current physical platform fail.&lt;/li&gt;&lt;/ul&gt;  &lt;span style="font-style: italic;"&gt;However there may be some dark clouds on the horizon    because...&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;Resource / Dependency Management and Security are problematic&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Operational Risk may adversely affected&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Well, &lt;a href="http://www.phrases.org.uk/meanings/193400.html"&gt;I'll go to the foot of our stairs!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Isn't it obvious that, "visible" runtime complexity is increased by current forms of virtualization. Given this, it is surely no surprise that virtualization can negatively impact manageability, OPEX and, ironically, service availability?&lt;br /&gt;&lt;br /&gt;Increasing server utilization at the expense of increased runtime complexity seems like a poor trade; especially if you remember that complexity is proportional to the number of skilled personnel required - and so OPEX. From a recent survey by Sun Microsystems ( &lt;a href="http://www.virtual-strategy.com/articleview/2413/1/2/"&gt;Sun Survey&lt;/a&gt; ) it would appear that many CIO's would agree.&lt;br /&gt;&lt;br /&gt;Meanwhile, we're told that&lt;span style="font-style: italic;"&gt;:&lt;br /&gt;&lt;br /&gt;"the IT industry will develop a new generation of management tools to address manageability and security issues created by virtualization. A great opportunity for start-ups and large IT companies alike". &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Doubt this? Then check the current datacentre virtualization hype, and the number of VC funded companies in this market sector. Clearly the adage -&lt;span style="font-style: italic;"&gt; "Identify the Pain - and sell them the Aspirin" &lt;/span&gt;is still in vogue with our VC friends. Unfortunately such strategies are at best simplistic; at worse, they demonstrate both the level of  stupidity only achievable via a fully qualified MBA, and also the lemming behavior of the IT industry.&lt;br /&gt;&lt;br /&gt;This time, the patient (Enterprise IT), really does need more than yet another, in a long sequence, of expensive Aspirins.&lt;br /&gt;&lt;br /&gt;But perhaps the established IT vendors will address the problem?&lt;br /&gt;&lt;br /&gt;Let's see. How many established vendors after 15 years of client server computing have enterprise management frameworks that are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple to Use&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cost Effective&lt;/li&gt;&lt;li&gt;Simple to deploy&lt;/li&gt;&lt;li&gt;Address simple requirements like configuration management for software, server, storage and networks.&lt;/li&gt;&lt;/ul&gt;Its been a while since I've been involved in this area (i.e. HP Openview, Tivoli and the like), but I suspect the answer is still the same.&lt;br /&gt;&lt;br /&gt;So what real hope is there for extending such solutions to address the new complications posed by the service virtualization?&lt;br /&gt;&lt;br /&gt;I'll let the reader come to their own conclusions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-7349809635641438947?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/7349809635641438947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=7349809635641438947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7349809635641438947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/7349809635641438947'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/11/paremus-colleagues-continuing-to-flag.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-8582018640680434488</id><published>2007-09-19T07:41:00.000-07:00</published><updated>2007-10-07T06:20:32.131-07:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Complexity - Part I: What would IT Marketing do without it? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For all its press coverage, little effort has been made in defining "Complexity" in a manner that is relevant to the modern enterprise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So here goes...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We'll start by imagining two abstract distributed "systems"; each system an infinite 3 dimensional lattice, each in a 3 dimensional space -- we'll avoid distractions caused by none-euclidean geometry :).&lt;br /&gt;&lt;br /&gt;However, whereas the first lattice comprises of regularly spaced identical nodes, the second lattice has randomly spaced identical nodes.&lt;br /&gt;&lt;br /&gt;Here is the crunch.&lt;br /&gt;&lt;br /&gt;Whereas the first &lt;span style="font-style: italic;"&gt;regular&lt;/span&gt; lattices may be simply, and completely, described in-terms of,&lt;br /&gt;&lt;br /&gt;* A description of a node&lt;br /&gt;* A description of the offset of a selected node from your chosen co-ordinate system, and&lt;br /&gt;* The 3 parameters that describe the spacing between the nodes.&lt;br /&gt;&lt;br /&gt;In contrast, the second &lt;span style="font-style: italic;"&gt;random&lt;/span&gt; lattice needs an&lt;span style="font-weight: bold;"&gt; infinite &lt;/span&gt;number of spacing parameters to describe the system to the same level of accuracy.&lt;br /&gt;&lt;br /&gt;By choosing to model each system in this manner, the first system is seen as trivial, whereas the second is infinitely complex!&lt;br /&gt;&lt;br /&gt;Now, let us assume that relative node position is not important, and that instead we use an &lt;span style="font-style: italic;"&gt;emergent property&lt;/span&gt;; in this case the &lt;span style="font-style: italic;"&gt;density&lt;/span&gt; ( the number of nodes within a given volume of space).&lt;br /&gt;&lt;br /&gt;Now the amount of information required to describe each system, is identical, and reduces to&lt;br /&gt;&lt;br /&gt;* Composition of a node&lt;br /&gt;* Density of nodes in a given volume of space.&lt;br /&gt;&lt;br /&gt;Whilst "density" is only an abstract concept, it never the less captures important characteristics of each system with minimal information, so hiding in the case of the random lattice an infinite amount of structural complexity.&lt;br /&gt;&lt;br /&gt;I'll now define  &lt;span style="font-weight: bold;"&gt;System Complexity&lt;/span&gt; as,  a measure of the amount of information required to describe a System; but crucially, with respect to the &lt;span style="font-weight: bold;"&gt;System Properties&lt;/span&gt; that are of interest to us. Furthermore, by defining/modeling a system w.r.t relevant &lt;span style="font-style: italic;"&gt;Emergent&lt;/span&gt; properties, we can dramatically reduce the amount of information required to usefully describe the system. The model, representing the System and it's&lt;span style="font-style: italic;"&gt; emergent properties&lt;/span&gt;, isolates us from potentially vast amounts of internal structure / complexity.&lt;br /&gt;&lt;br /&gt;Also, for a given System, the abstraction / model that optimally describes the relevant emergent properties, with the least information; provides the least complex representation of that system.&lt;br /&gt;&lt;a href="javascript:void(0)" tabindex="11" onclick="return false;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Back to IT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whilst IT provisionals are no longer required to understand:&lt;br /&gt;* The arrangement of silicon atoms required to produce semi-conductors&lt;br /&gt;* The detailed architecture of the processor or memory chip in use&lt;br /&gt;* The firmware used&lt;br /&gt;* The specific considerations in an OS kernel design&lt;br /&gt;&lt;br /&gt;The resultant distributed systems are still "complex"; complicated by the fact that they consist of many inter-dependent components and services, each of which must continue to function within a volatile runtime environment.&lt;br /&gt;&lt;br /&gt;The response to this "complexity" can be seen in every FT/Fortune 1000 company.&lt;br /&gt;&lt;br /&gt;* Attempts are made to lock down the runtime infrastructure, to completely describe it, and prevent changes to it. More recently, attempts are made to virtualize / abstract to runtime infrastructure in a manner that presents an unchanging persona to the static business systems.&lt;br /&gt;* Meanwhile, software middleware is treated as strategic investment - with physical silos of grid computing, ESB's and data caching introduced into these environments, the mandated then made that these infrastructure services must be used.&lt;br /&gt;&lt;br /&gt;What is wrong with this consensus approach? Quite simply, as with the &lt;span style="font-style: italic;"&gt;random&lt;/span&gt; lattice example, organizations are viewing their systems and so associated system complexity in the wrong frame of reference! And then attempt to address perceived complexity issues with a series of measures that actual drive up operational costs whilst impacting service agility and availability.&lt;br /&gt;&lt;br /&gt;Enough for today - next blogging session I'll provide, what I believe to be, the answer ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-8582018640680434488?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/8582018640680434488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=8582018640680434488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8582018640680434488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8582018640680434488'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/09/complexity-part-i-what-would-it.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-1428987600338384703</id><published>2007-07-19T12:38:00.000-07:00</published><updated>2007-07-20T00:30:37.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi sca enterprise middleware'/><title type='text'></title><content type='html'>&lt;div style="text-align: justify;"&gt;The Death of Middleware??&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recent attempts - no I'm not saying who :) -  to justify centralized approaches to enterprise middleware, in the light of current application modularization trends, triggered a fond memory of driving from San Francisco to Palo Alto, probably sometime 2004.&lt;br /&gt;&lt;br /&gt;In between the usual process of struggling with US road signs, the in-car navigation system, and for us Brits, being on the wrong side of the road, I noticed two advertisements. The first, "&lt;a href="http://www.dmreview.com/article_sub.cfm?articleID=1066759"&gt;Middleware Everywhere&lt;/a&gt;" was courtesy of IBM, this seemingly in response to a billboard a mile or so further down the road (or visa versa) "&lt;a href="http://www2.sys-con.com/itsg/virtualcd/java/archives/0902/schwartz/index.html"&gt;The End of Middleware&lt;/a&gt;" courtesy of Sun Microsystems.&lt;br /&gt;&lt;br /&gt;Ironically, counter to what tradition middleware companies may have you believe,  both marketing messages may now be rapidly realized by application modularization, fueled by &lt;a href="http://www.osgi.org/"&gt;OSGi&lt;/a&gt; and dynamic composition, exemplified by &lt;a href="http://www.osoa.org/display/Main/Home"&gt;SCA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Whilst SCA allows Service bindings to be defined at application composition time, OSGi allows these bindings to be dynamically loaded and used by dynamically assembled runtime applications. In principle, the relevant infrastructure messaging / caching components may also be dynamically deployed alongside business logic; see the &lt;a href="http://newton.codecauldron.org/"&gt;Newton&lt;/a&gt; open source project, and its commercial big brother - &lt;a href="http://www.paremus.com/products.products.html"&gt;Infiniflow&lt;/a&gt; - for examples of this approach to dynamic "Business System" assembly.&lt;br /&gt;&lt;br /&gt;So - no longer &lt;span style="font-style: italic;"&gt;strategic&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;high cost&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;high risk&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;monolithic&lt;/span&gt; frameworks that constrain application agility and scalability - "middleware" will simply be the &lt;span style="font-style: italic;"&gt;ensemble&lt;/span&gt;, or aggregate, of all applications bindings and associated infrastructure components - in use - at each point in time!&lt;br /&gt;&lt;br /&gt;The impact on the industry should be significant. Enterprise Service Buses, Space Based Architectures, Message Centric, direct synchronous / asynchronous communication, Web Services?? Ultimately why should we care? Rather than purchasing that strategic "all-purpose" &lt;span style="font-weight: bold;"&gt;Hammer&lt;/span&gt;, and treating all Enterprise inter-service interaction as &lt;span style="font-weight: bold;"&gt;Nails&lt;/span&gt;, lets start using the right tool for the right job; dynamically deploy the appropriate infrastructure service alongside the applications they serve!! And whilst we're at it, lets do this in a manner that increases overall resilience and rips OPEX costs out of the operational environment.&lt;br /&gt;&lt;br /&gt;So perhaps IBM's "Middleware is Everywhere" was nearer the mark  - that said perhaps Sun's response should now be "Yes But - &lt;span style="font-style: italic;"&gt;Enterprise Middleware&lt;/span&gt; is rapidly becoming Irrelevant".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-1428987600338384703?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/1428987600338384703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=1428987600338384703' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1428987600338384703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1428987600338384703'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/07/death-of-middleware-recent-attempts-no.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-372539652365597961</id><published>2007-07-06T02:02:00.000-07:00</published><updated>2007-07-10T04:26:51.524-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='SCA'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><category scheme='http://www.blogger.com/atom/ns#' term='JEE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Infiniflow'/><title type='text'></title><content type='html'>We live in exciting times!&lt;br /&gt;&lt;br /&gt;Java EE 6 is announced. The Interface21 folks think its finally "right", and the daggers are drawn as the old JBoss boys feel the need to defend their position as popular open source JEE appserver vendor (see &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=46065"&gt;theserverside&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Extensibility&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Profiling&lt;/span&gt; are a couple of key features in Java EE 6.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Mmmm.&lt;/span&gt; So I can take my &lt;span style="font-style:italic;"&gt;very&lt;/span&gt; bloated Java EE infrastructure and reduce it to merely bloated. &lt;br /&gt;&lt;br /&gt;I'm almost sold on the idea ;-)&lt;br /&gt;&lt;br /&gt;But hang on? What about OSGi and SCA. Can I not already dynamically build very sophisticated distributed composite applications that adapt and evolve to their resource landscapes? Such distributed application services only running loading and running what is required at each specific point in time. These solutions self-managing, self-configuring and self healing?&lt;br /&gt;&lt;br /&gt;Well actually, yes I can - and Java EE - in any form - doesn't figure!&lt;br /&gt;&lt;br /&gt;On a finishing note - &lt;a href="http://rmh.blogs.com/weblog/2007/06/ws_vs_rest_inte.html"&gt;a nice article&lt;/a&gt; (concerning Web Services) whose underlying message is, I'd suggest, as equally applicable to the monolith  Java EE v.s. composite OSGi / SCA debate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-372539652365597961?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/372539652365597961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=372539652365597961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/372539652365597961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/372539652365597961'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/07/we-live-in-exiting-times-java-ee-6-is.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-8781128540497883034</id><published>2007-05-30T16:00:00.000-07:00</published><updated>2007-06-01T06:32:00.761-07:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Venture Capitalists embrace Command Economy in preference to Free Market!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;A recent article &lt;a href="http://www.gridtoday.com/grid/1556523.html"&gt;Interesting Times for Distributed DataCentres&lt;/a&gt; by Paul Strong (Ebay  - Distinguished Research Scientist ) makes a number of interesting points:&lt;br /&gt;&lt;ul&gt; &lt;li&gt;For Web2.0 Services to scale, you MUST back-end these onto massively horizontally scaled processing environments.&lt;/li&gt;&lt;li&gt;Most Enterprise datacentre environments are moving towards, or could be considered as,  &lt;span style="font-style: italic;"&gt;priomordial&lt;/span&gt; Grid type architectures.&lt;/li&gt;&lt;li&gt;What is really missing is the Data Centre &lt;span style="font-style: italic;"&gt;MetaOperating&lt;/span&gt; System - to provide the resource scheduling and management functions required.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  Whilst these arguments are correct, and highlight a real need, Industry &amp; VC response seems entirely inappropriate.&lt;br /&gt;&lt;br /&gt;Whilst VC and major Systems Vendors are happly throwing money into expounding the virtues of loosely coupled business models enabled by Web2.0 and all things WS-SOA; somewhat perplexingly, they also continue to invest in managment / virtualization / infrastructure solutions which &lt;span style="font-weight: bold;"&gt;drive&lt;/span&gt; tight couplings through the infrastructure stack. Examples include data centre "virtualization" or, as per my previous blog entry on the Complexity Crisis, configuration / deployment management tools.&lt;br /&gt;&lt;br /&gt;Hence, industry investment seems to continue to favor the technology equivalent of the &lt;a href="http://en.wikipedia.org/wiki/Command_economy"&gt;"command economy"&lt;/a&gt; in which the next generation of distributed Grid data centre is really just one more iteration on today's; central IT organisation control/manage and allocate IT resource in a rigid hierarchical/control command structure. The whole environment is viewed as rigid system which one centrally controls at each layer of the ISO stack; approaches that continue  the futile attempt to make distributed environments behave like MainFrames!&lt;br /&gt;&lt;br /&gt;What is actually needed is a good dose of Free Market Economics!&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Business Services dynamically compete for available resources at each point in time,&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Resources may come and go - as they feel fit!&lt;/li&gt;   &lt;li&gt;Infrastructure and Systems look after their own interests, and optimise their behaviors to ensure overall efficency within the Business Ecosystem.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; Successful next generation &lt;span style="font-style: italic;"&gt;MetaOperating Systems&lt;/span&gt;, will heavily leverage such principles at the core of their architectures!&lt;br /&gt;&lt;br /&gt;You simply cannot beat an efficient Market!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-8781128540497883034?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/8781128540497883034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=8781128540497883034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8781128540497883034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8781128540497883034'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/05/venture-capitalists-embrace-command.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-8605732732704286825</id><published>2007-05-30T11:43:00.000-07:00</published><updated>2007-05-31T03:11:20.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Complexity Crisis OSGi SCA Paremus'/><title type='text'></title><content type='html'>A new survey posted on &lt;a href="http://www.gridtoday.com/grid/1587106.html"&gt;GRID today&lt;/a&gt; highlights the Risks associated with Infrastructure Complexity. Interesting highlights include:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Each hour of downtime costs Fortune 1000 companies in excess of $300,000 according to 1/3 of the survey responses.&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-style: italic;"&gt;Of course, dependent on the specific Industry, these figures could be so much larger! &lt;/span&gt; Everyone tends to focus on availability/scaling issues for the new Internet based companies (Google, Yahoo, Amazon, Ebay). However, if you want to see real risk - consider the impact on some of the core systems that support global Banking / Financial systems.&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Trouble shooting the problem can take more than a day. According to 1/3 of survey responses.&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-style: italic;"&gt;So if these are the same guys that have the $300,000 an hour loss - the figures are starting to mount up. &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Change Management for Fortune/FT 1000 companies occupies 11 full time people!&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;Installation and configuration of core applications is a major resource sink; taking 4 days to configure a complete application infrastructure stack.&lt;/li&gt; &lt;/ul&gt; The report then goes on to justify change management / configuration management products. The implication being that to address the complexity issues, these Fortune/FT 1000 companies need to purchase and configure yet more enterprise software?&lt;br /&gt;&lt;br /&gt;So Layering Complexity upon Complexity!!&lt;br /&gt;&lt;br /&gt;I wonder, just what is the Production impact, if after all this automation, you loose the systems that are doing the automation and configuration?? I suspect recovery would be significantly longer than 1 working day!&lt;br /&gt;&lt;br /&gt;The truth of the matter is that Enterprise Systems including those based upon the latest ESB, Grid, WS-SOA &lt;span style="font-style: italic;"&gt;Marketectures&lt;/span&gt; are the root cause of the explosive increase in Complexity.&lt;br /&gt;&lt;br /&gt;Each of these approaches implicitly assume that:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;The compute resource landscape is static, &lt;/li&gt;   &lt;li&gt;Software functionality is static&lt;/li&gt;   &lt;li&gt;Provisioning is thought of as a one time event, and &lt;/li&gt;   &lt;li&gt;Failure is treated as an exception. &lt;/li&gt; &lt;/ul&gt; Whereas in reality:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Compute resource landscape is dynamic&lt;/li&gt;   &lt;li&gt;Software functionality needs to evolve and adapt&lt;/li&gt;   &lt;li&gt;Provisioning is an on-going process - caused by&lt;/li&gt;   &lt;li&gt;Continual - re-optimisation against the shfting compute landscape and recovery from failure.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; So how do these Fortune/FT 1000 companies dig themselves out of their current &lt;span style="font-weight: bold; font-style: italic;"&gt;Complexity Crisis?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By building the correct IT foundations for their businesses! Fortune 1000 companies need to implement Enterprise wide solutions where configuration, adaption and recovery are core design features. Systems configure, deploy and maintain themselves, as part of what they do (by way of an example - see &lt;a href="http://www.paremus.com/"&gt;Infiniflow&lt;/a&gt;)! Such solutions will also heavily leverage industry trends towards modularization via OSGi &amp;amp; SCA.&lt;br /&gt;&lt;br /&gt;Whether you are the CIO of a Global Bank, a Gaming Company or a Telcoms company, once the correct technology foundations have been put in place - no easy task - significant OPEX savings WILL follow. However, take the easy route - fail with the foundations, avoid necessary change - and no amount of management, configuration or deployment software bandaid will save you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-8605732732704286825?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/8605732732704286825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=8605732732704286825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8605732732704286825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8605732732704286825'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/05/new-survey-posted-on-grid-today.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-3710925488419920837</id><published>2007-05-12T14:40:00.000-07:00</published><updated>2007-05-12T15:46:31.308-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;JavaOne 2007&quot; Paremus OSGi SCA'/><title type='text'></title><content type='html'>Its been a hectic month, with Paremus working on a number of projects including the SSOA demonstrator for DODIIS, our product release, and getting ready for JavaOne!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_bmHWDz_8K_4/RkY05fap41I/AAAAAAAAAAM/TLxCH1vKtDg/s1600-h/jim+demo.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_bmHWDz_8K_4/RkY05fap41I/AAAAAAAAAAM/TLxCH1vKtDg/s320/jim+demo.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5063792993315185490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As can be seen to the far right in the above photo - Paremus shipped some 16 Mac Mini's to JavaOne to provide real time demonstrations of multiple distributed SCA / OSGi based Systems running across an Infiniflow Enterprise Service Fabric! Each SCA system was dynamical instantiated, and we demonstrated the isolation and recovery capabilities of the Service Fabric by failing compute resources (well actually visitors to the stand insisted on pulling the cables) - without impact to the running Systems!&lt;br /&gt;&lt;br /&gt;I was on stand duty for much of the time, so didn't get first hand experience of the presentations. However, feedback indicated that the usual keynote presentations were, well, as expected; but that both the OSGi and SCA standards are at the "tipping point" - with a significant increase in delegate interest and vendor activity relative to last year.&lt;br /&gt;&lt;br /&gt;In addition to the usual conversations about OSGi, SCA, WS &amp; Jini, those passing the Paremus stand may have overheard conversations concerning genetic algorithms, the importance of CAS and even the apparent failure of string theory -  the latter, I hasten to add, having nothing to do with the Infiniflow's architecture :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm almost looking forward to JavaOne 2008!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-3710925488419920837?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/3710925488419920837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=3710925488419920837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3710925488419920837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/3710925488419920837'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/05/its-been-hectic-month-with-paremus.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bmHWDz_8K_4/RkY05fap41I/AAAAAAAAAAM/TLxCH1vKtDg/s72-c/jim+demo.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-8569686629519132552</id><published>2007-04-11T02:47:00.000-07:00</published><updated>2007-04-11T03:36:31.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='SCA'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Jini'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><title type='text'></title><content type='html'>An new white paper concerning the synergies between OSGi, SCA and Spring can be found on the &lt;a href="http://www.osoa.org/display/Main/News+about+SCA+and+SDO"&gt;OSOA site&lt;/a&gt;, well worth reading for those you want and introduction to this field of activity.&lt;br /&gt;&lt;br /&gt;The white paper concludes that &lt;span style="font-style: italic;"&gt;"SCA, OSGi and Spring &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;together&lt;/span&gt;&lt;span style="font-style: italic;"&gt; provide powerful capabilities for building service implementations from simple sets of simple Java Beans using a few simple API's".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The one interesting omission is any real discussion about the challenges of building &lt;span style="font-weight: bold;"&gt;distributed&lt;/span&gt; OSGi, SCA, Spring based distributed systems. Whilst the white paper explains the virtues of dynamic dependency resolution, this is only within the context of a static resource landscape, and so fails to acknowledge the additional changes presented by &lt;a href="http://www.rgoarchitects.com/Files/fallacies.pdf"&gt;Peter Deutsch's 8 Fallacies of Distributed Computing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For those interest in dynamic distributed systems based on OSGi and SCA that support Spring, check out the  &lt;a href="http://newton.codecauldron.org/"&gt;Newton project&lt;/a&gt;. Newton is itself built from the ground up to be a robust distributed runtime environment using OSGi, SCA and Jini as foundation technologies, providing a "robust" - &lt;span style="font-style: italic;"&gt;in the true non-marketing sense of the word&lt;/span&gt; - enterprise runtime platform for Java Pojo based applications including Spring.&lt;br /&gt;&lt;br /&gt;A final thought - there still seems to be a real lack of understanding within the industry w.r.t. the fundamental relationship between agility, distributed systems, complexity and OPEX &lt;span style="font-style: italic;"&gt;(operational expenditure&lt;/span&gt;). A subject I suspect I'll post more on, once I've caught up with my day job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-8569686629519132552?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/8569686629519132552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=8569686629519132552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8569686629519132552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/8569686629519132552'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/04/new-white-paper-concerning-synergies.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-155232220862213462</id><published>2007-02-17T03:20:00.000-08:00</published><updated>2007-02-19T04:30:48.153-08:00</updated><title type='text'></title><content type='html'>The "&lt;span style="font-style: italic;"&gt;Hidden Costs of Virtualization&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;An interesting &lt;a href="http://www.virtual-strategy.com/article/articleview/1864/1/2/"&gt;article&lt;/a&gt;  arguing that whereas OS virtualisation is sold on the costs savings achieved by higher CPU utilisation of existing resource, several cost factors seem to be overlooked. The most important of these being that operational costs scale with number of OS instances ; it immaterial whether these instances are OS's real or virtual. The article also points out that commercial OS virtualization software is not cheap; around $20,000 for VMware ESX for a 4 way Intel box, though open source solutions should in due course pull this pricing down.&lt;br /&gt;&lt;br /&gt;However, I'd suggest that there are a number of additional considerations.&lt;br /&gt;&lt;br /&gt;OS virtualisation, in itself, does nothing to address inherent complexity issue within modern enterprise environments. Instead of sprawl of physical machines with poorly managed applications and configurations, one can now extend these complexity and management issues into a virtualized resource space! Obviously, &lt;span style="font-style: italic;"&gt;OS virtualization management&lt;/span&gt; is needed, and indeed provided, as commercial products, by virtualization vendors.&lt;br /&gt;&lt;br /&gt;In many respects are we not back to where we started? Sure, we can now drive up CPU utilisation, but the runtime infrastructure is more complex than ever. Meanwhile business applications are still as brittle, as tightly coupled, as change resistent as they ever were!&lt;br /&gt;&lt;br /&gt;Also, is increased CPU untilisation, at the cost of increased complexity, a good trade?&lt;br /&gt;&lt;br /&gt;Driving up CPU utilization has got to be good, right? Indeed, many CIO's want to make &lt;span style="font-weight: bold;"&gt;dramatic&lt;/span&gt; OPEX cost savings by driving CPU utilisation to ~100%.&lt;br /&gt;&lt;br /&gt;Yet, whilst running a large datacentre's CPU resource at single figure utilisation levels is an obvious cost issue, what seems to be overlooked are the issues associated with running resources at near maximum utilisation.&lt;br /&gt;&lt;br /&gt;Load volatility is an obvious concern. If you achieve, on average 80% utilization across your resource population, just how do you cope with peaks that require say 50% more resource? The standard response may be to outsource the extra resource requirement to a third party utility compute supplier. Yet whilst frequently discussed by the industry, I'm not aware of many &lt;span style="font-style: italic;"&gt;over-capacity &lt;/span&gt;deals. Quite the contrary, early entants into the Utility Compute Market have recently dismanled facilities due to lack of commerical interest.&lt;br /&gt;&lt;br /&gt;Yet, there is a more important issue; namely operational risk. Evidence suggests that compute resource under excessive load is statistically more likely to experience software failure (&lt;a href="http://stinet.dtic.mil/oai/oai?&amp;verb=getRecrod&amp;amp;metadataPrefix=html&amp;identifier=ADA118289"&gt;reference&lt;/a&gt;). Moreover, any complex tightly coupled system may suffer &lt;a href="http://www.hq.nasa.gov/office/codeq/accident/accident.pdf"&gt;cascading failures&lt;/a&gt; ; i.e. an initial component failure cascading into a major system outage.&lt;br /&gt;&lt;br /&gt;Hopefully, such cascading failures are the exception, however component failure within a heavily loaded environment will always be more intrusive than an for a lightly loaded equivalent, as dependent upon priority of lost service/component, other running services may need to be terminated to free sufficient resource.&lt;br /&gt;&lt;br /&gt;Hence, Operational Risk and Data Centre Resource Utilization are issues that are fundamentally linked; linked by the sizes of the potential failure domains within the system.&lt;br /&gt;&lt;br /&gt;Failure domains may be defined by / mapped to:&lt;br /&gt;&lt;ul&gt;    &lt;li&gt;Physical locality / Physically shared resource.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hardware type&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Software type / version&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Management / Security domains&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; Considering "physical" failure domains. The following domains usual exist:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;A data centre facility - (complete power failure, halon release, collapse of network infrastructure)&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;    &lt;li&gt;A shared PDU - ( possibly affecting 25% of data centre resource - assuming critical systems like San storage and IP Newtorking - a wired into at least two PDU's)&lt;/li&gt;   &lt;li&gt;A network switch failure - perhaps impacting 50 servers if each is single homed.&lt;/li&gt;   &lt;li&gt;A cabinet failure -  perhaps affecting the 100 processors in that cabinet.&lt;/li&gt;&lt;li&gt;Single, physical machine.&lt;/li&gt;   &lt;/ul&gt;&lt;br /&gt;Without spare usable capacity, re-provisioning OS instances caused by a single cabinet or even machine failure may prove challenging.&lt;br /&gt;&lt;br /&gt;Perhaps we're need to think about things in a slightly different way?&lt;br /&gt;&lt;br /&gt;Conventional Wisdom:&lt;br /&gt;&lt;br /&gt;Large datacentres are running out of space and / or limitied by environmental conciderations (power, air-conditioning requirements). Usually, there is little possibility of building a secondary large datacentre facility within the Metro area, because cost can by substantial, and suitable real-estate is not available. Hence, virtualize compute instances and maximally use what resource is already there.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Alternative:&lt;br /&gt;&lt;br /&gt;Instead of a single large datacentre facility, adopt a modular datacentre; these distributed over a larger geographic region. The largest failure domain that we care about is a datacentre module instance, so for 'N' active modular datacentres, we need 'N+1' to allow for complete failure of any instance. So by modularizing and &lt;span style="font-style: italic;"&gt;virtualizing&lt;/span&gt; the datacentre, we actually increase the ability to use spare CPU resource per datacentre instance, without impacting operational risk.&lt;br /&gt;&lt;br /&gt;In this respect Sun's &lt;a href="http://blogs.sun.com/jonathan/entry/a_logical_end_point"&gt;Black Box strategy&lt;/a&gt; was an interesting marketing move. I say "marketing" as in reality the hardware required to realise a modular datacentre centre is the easy bit! The difficultly lies in the unstated, but very real requirement, for a distributed/extremely robust composite application resource broker that seemlessly knits these modular resource together into one robust distributed Enterprise/Utility Service Fabric.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-155232220862213462?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/155232220862213462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=155232220862213462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/155232220862213462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/155232220862213462'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/02/hidden-costs-of-virtualization.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-4771387895536940478</id><published>2007-02-17T02:49:00.000-08:00</published><updated>2007-02-17T03:18:12.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi EclipseZone JSIG Paremus JSR291 JSR277 JSR294'/><title type='text'></title><content type='html'>Along with some of the &lt;a href="http://www.paremus.com/"&gt;Paremus&lt;/a&gt; team, I attend the London&lt;a href="http://www.jsig.com/"&gt; JSIG&lt;/a&gt; meeting hosted by &lt;a href="http://www2.blogger.com/profile/06362201865553416948"&gt;Alex Blewitt&lt;/a&gt; , the &lt;a href="http://eclipsezone.com/"&gt;EclipseZone&lt;/a&gt; editor and Neil Bartlett. In summary - a really good session!&lt;br /&gt;&lt;br /&gt;Alex and Neil gave an excellent introductory presentation and demonstration of OSGi usage. Some of OSGi's key differentiators in the areas of versioning behaviour / management were communicated in a clear and compelling fashion. Well worth looking through the slides, which are now available on the &lt;a href="http://www.jsig.com/"&gt;JSIG&lt;/a&gt; site.&lt;br /&gt;&lt;br /&gt;Prior to the meeting also had the pleasure of meeting Glyn Normington from IBM. Glyn, who had travelled up to London for the JSIG, is spec lead for JSR 291 and contributor to both JSR 277 and JSR 294. Those interested in development in these areas should certainly keep an eye on &lt;a href="http://underlap.blogspot.com/"&gt;Glyn's&lt;/a&gt; blog.&lt;br /&gt;&lt;br /&gt;Finally, a question to Alex - clearly a master of Apple's Keynote presentation software :) I have keynote 3.02, but I cannot find any of the transitions you used. So what is the secret?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-4771387895536940478?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/4771387895536940478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=4771387895536940478' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4771387895536940478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/4771387895536940478'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/02/along-with-some-of-paremus-team-i.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-1739148750806708087</id><published>2007-02-06T01:23:00.000-08:00</published><updated>2007-02-06T01:41:11.530-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon osgi jini sca autonomic Paremus Newton'/><title type='text'></title><content type='html'>EclipseCon 2007&lt;br /&gt;&lt;br /&gt;For those of you attending this years EclipseCon conference in Santa Clara, &lt;span style="font-style: italic;"&gt;Robert Dunne&lt;/span&gt; - one of our lead &lt;a href="http://www.paremus.com"&gt;Infiniflow&lt;/a&gt; / &lt;a href="http://newton.codecauldron.org"&gt;Newton&lt;/a&gt; developers - will be &lt;a href="http://www.eclipsecon.org/2007/index.php?page=sub/&amp;id=3987"&gt;presenting&lt;/a&gt; a short piece on the classloader consideration when attempting to integrate OSGi with Java RMI.&lt;br /&gt;&lt;br /&gt;Paremus will also have a stand in the exhibition centre, so feel free to drop by and quizz us on our approach to OSGi, Jini, SCA, or any aspect of distributed pervasive autonomic computing ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-1739148750806708087?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/1739148750806708087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=1739148750806708087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1739148750806708087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1739148750806708087'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/02/eclipsecon-2007-for-those-of-you.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-1495505468999222696</id><published>2007-01-20T09:44:00.000-08:00</published><updated>2007-01-21T20:00:38.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Complex Adaptive Systems'/><category scheme='http://www.blogger.com/atom/ns#' term='Paremus'/><category scheme='http://www.blogger.com/atom/ns#' term='SCA'/><category scheme='http://www.blogger.com/atom/ns#' term='Jini'/><category scheme='http://www.blogger.com/atom/ns#' term='Newton'/><title type='text'></title><content type='html'>&lt;span style="font-style: italic;"&gt;cognito ergo sum? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, '&lt;span style="font-style: italic;"&gt;I blog, therefore I am&lt;/span&gt;' seems to have greater resonance these days.&lt;br /&gt;&lt;br /&gt;So, dragged kicking and screaming by my &lt;a href="http://www.paremus.com/"&gt;Paremus&lt;/a&gt; colleagues, I've agreed to start, what feels to be the somewhat unnatural behavior, that of 'blogging'.&lt;br /&gt;&lt;br /&gt;The Usual Disclaimer:&lt;br /&gt;&lt;br /&gt;Being the founder and CEO for a enterprise software company based in the UK (yes - I did say the UK!), my views hopefully influence my colleagues, and company direction ;) That said, my views are my own, and do not formally represent those of my colleagues and company.&lt;br /&gt;&lt;br /&gt;In summary, my career initially started as an Astrophysicist, but a family and mortgage finally convinced me that I need to earn a living, and so I became an economic migrant, moving into an IT career with a major Investment Bank with offices based in London. After 7 very interesting years, I made the difficult decision to leave the Bank, and set-up &lt;a href="http://www.paremus.com/"&gt;Paremus&lt;/a&gt; in 2001.&lt;br /&gt;&lt;br /&gt;"Great timing!", I hear from those of you whom started ventures around the same time ;)&lt;br /&gt;&lt;br /&gt;I've always been more interested in the underlying principles, concepts and fundamental "truths", rather than the specifics of a system implementation. With the creation of Paremus, I found these interests translated into a deep curiosity concerning Complex Adaptive Systems (CAS), Recovery Oriented Computing ROC and how these concepts might finally address some of the fundamental issues faced by modern distributed enterprise systems.&lt;br /&gt;&lt;br /&gt;Whilst these interests have ongoing influence in our internal research and product development programs, they were also a key driver for the formation of the codeCauldron community. The Cauldron community, founded by Paremus in 2006, has the simple intention of fostering the development of next generation of distributed autonomic system. For our part, Paremus engineers, have successfully leverage some of the CAS / RoC design principles to which I refer to create &lt;a href="http://newton.codecauldron.org/"&gt;&lt;span style="font-style: italic;"&gt;Newton&lt;/span&gt;&lt;/a&gt;; a distributed OSGi / Jini / SCA based service framework, again hosted by the &lt;a href="http://www.codecauldron.org/"&gt;codeCauldron&lt;/a&gt; open-source community.&lt;br /&gt;&lt;br /&gt;So, if you find my subsequent ramblings of interest, you may find a visit to &lt;a href="http://www.codecauldron.org/"&gt;Cauldron&lt;/a&gt; worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-1495505468999222696?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/1495505468999222696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=1495505468999222696' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1495505468999222696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/1495505468999222696'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/01/cognito-ergo-sum.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30677740.post-6383403820009716729</id><published>2007-01-11T05:21:00.000-08:00</published><updated>2007-01-28T06:47:46.453-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emporer&apos;s New Clothes'/><title type='text'></title><content type='html'>A not so recent report on end-user adoption of SOA  by &lt;a href="http://www.saugatech.com/305order.htm"&gt;Saugatuck Technology&lt;/a&gt; makes interesting reading; especially if one shares my misgivings about the Industries' ongoing Web Services &lt;span style="font-style: italic;"&gt;mantra&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I found the following extracts particulary enlightening:&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;... it became clear that many ( early SOA adopters) are &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;merely&lt;/span&gt; managing a collection of Web services&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, and have yet to make a strong commitment to SOA as a management discipline — as opposed to an integration technology&lt;/span&gt;."&lt;br /&gt;&lt;br /&gt;additional;&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;... ironically whilst 57% of end users cited cost reduction as the primary driver for the adoption of SOA, no evidence was found for short-term operational cost savings, though longer term cost savings were expected&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;and finally&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;only 23% of adopters expected to increase business agility from their SOA any time soon."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So wrapping an existing business service to create a Web Service has no immediate effect on either operational costs or system agility?&lt;br /&gt;&lt;br /&gt;Well, I'll be damned!&lt;br /&gt;&lt;br /&gt;But why the suprise?&lt;br /&gt;&lt;br /&gt;In reality, the Web Services revolution had little to do with making enterprise business systems more agile or robust. Rather Web Services enable existing monolithic, and operationally &lt;span style="font-style: italic;"&gt;brittle and  expensive &lt;/span&gt;services, to be delivered through corporate firewall infrastructure. This allowing for the potential of service outsourcing or the use of alternative &lt;span style="font-style: italic;"&gt;White Labled&lt;/span&gt; or ASP type services; these service delivery models of great interest to the giants in the IT industry.&lt;br /&gt;&lt;br /&gt;Hence, for those that rely on a &lt;span style="font-style: italic;"&gt;"wrap it, and make it a Web Service" - &lt;/span&gt;cost reduction, resilience and agility benefits will most like remain elusive/unobtainable goals.&lt;br /&gt;&lt;br /&gt;To achieve these objectives, one needs to radically re-think one's approach to enterprise IT ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30677740-6383403820009716729?l=adaptevolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adaptevolve.blogspot.com/feeds/6383403820009716729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30677740&amp;postID=6383403820009716729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6383403820009716729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30677740/posts/default/6383403820009716729'/><link rel='alternate' type='text/html' href='http://adaptevolve.blogspot.com/2007/01/now-not-quite-so-recent-report-on-end.html' title=''/><author><name>Richard Nicholson</name><uri>http://www.blogger.com/profile/00742964822004119760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
