<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Compulsory Attendance</title>
	<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/</link>
	<description></description>
	<pubDate>Sat, 05 Jul 2008 08:33:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Dan Creswell</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-461</link>
		<dc:creator>Dan Creswell</dc:creator>
		<pubDate>Tue, 27 Mar 2007 08:09:47 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-461</guid>
		<description>"Just inject on interfaces and then use proxies. The proxy’s delegate can be updated without having to notify any of its users."

The basic principle you outline is sound (and one that Jini provides out of the box).  However, there are many cases (especially around failure and concurrent in-flight operations) where one can't simply update the proxy and not have clients be aware - the clients must co-operate to make it work.

In the case where an agent has been suspended and moved or is started for the first time as you describe, there's no issue.</description>
		<content:encoded><![CDATA[<p>&#8220;Just inject on interfaces and then use proxies. The proxy’s delegate can be updated without having to notify any of its users.&#8221;</p>
<p>The basic principle you outline is sound (and one that Jini provides out of the box).  However, there are many cases (especially around failure and concurrent in-flight operations) where one can&#8217;t simply update the proxy and not have clients be aware - the clients must co-operate to make it work.</p>
<p>In the case where an agent has been suspended and moved or is started for the first time as you describe, there&#8217;s no issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Greer</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-459</link>
		<dc:creator>Kevin Greer</dc:creator>
		<pubDate>Mon, 26 Mar 2007 20:52:34 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-459</guid>
		<description>Just inject on interfaces and then use proxies.  The proxy's delegate can be updated without having to notify any of its users.  The proxy could lazily instantiate services as required or even be a network proxy.  This is how many mobile agent systems work.  They have essentially been doing "dependency injection" since before the term was coined.  This is required because when a mobile agent moves to a new node it needs a method of accessing its required services.  Another advantage of proxies is that it prevents the mobile code from casting implementations to suspected implementations and then calling methods not belonging to the interface.</description>
		<content:encoded><![CDATA[<p>Just inject on interfaces and then use proxies.  The proxy&#8217;s delegate can be updated without having to notify any of its users.  The proxy could lazily instantiate services as required or even be a network proxy.  This is how many mobile agent systems work.  They have essentially been doing &#8220;dependency injection&#8221; since before the term was coined.  This is required because when a mobile agent moves to a new node it needs a method of accessing its required services.  Another advantage of proxies is that it prevents the mobile code from casting implementations to suspected implementations and then calling methods not belonging to the interface.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bharath R</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-448</link>
		<dc:creator>Bharath R</dc:creator>
		<pubDate>Sat, 24 Mar 2007 07:47:57 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-448</guid>
		<description>":) Indeed we (Jini/Apache River) do but there’s a deeper design philosophy issue at work….."
My bad. I see you were trying to explain a larger design problem while I was pointing out a particular technological solution. 

"...see similar tensions around methods for handling/performing configuration, deployment and so on" - you hit the nail on the head.  Configuration, deployment and serviceability of a distributed system probably receive the least amount of thought/attention and end up being the most hairy of problems in production.</description>
		<content:encoded><![CDATA[<p>&#8220;:) Indeed we (Jini/Apache River) do but there’s a deeper design philosophy issue at work…..&#8221;<br />
My bad. I see you were trying to explain a larger design problem while I was pointing out a particular technological solution. </p>
<p>&#8220;&#8230;see similar tensions around methods for handling/performing configuration, deployment and so on&#8221; - you hit the nail on the head.  Configuration, deployment and serviceability of a distributed system probably receive the least amount of thought/attention and end up being the most hairy of problems in production.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kerr</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-438</link>
		<dc:creator>Kerr</dc:creator>
		<pubDate>Fri, 23 Mar 2007 14:12:42 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-438</guid>
		<description>Isn't an invitation with compulsory acceptance called a summons? ;)</description>
		<content:encoded><![CDATA[<p>Isn&#8217;t an invitation with compulsory acceptance called a summons? <img src='http://www.dancres.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Creswell</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-431</link>
		<dc:creator>Dan Creswell</dc:creator>
		<pubDate>Thu, 22 Mar 2007 09:07:15 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-431</guid>
		<description>"Don’t we already have such a facility (albeit indirectly) Dan? Wouldn’t a lease expiry notification serve the purpose?"

:)

Indeed we (Jini/Apache River) do but there's a deeper design philosophy issue at work.....

A lease is a mechanism that forms part of a solution to the problem.  ServiceDiscoveryManager (a Jini API helper class) is also a component mechanism.  The reason these mechanisms exist is driven by the distributed systems design philosophy that drives the core behaviours embodied in the Jini APIs.

Many of the technologies and design approaches we use to build distributed systems aren't born of the same philosophy. Instead they are often subtly oriented towards single machine use so that when we build our network systems on top of them brittleness is inherent.

If one looks a little further one will see similar tensions around methods for handling/performing configuration, deployment and so on.</description>
		<content:encoded><![CDATA[<p>&#8220;Don’t we already have such a facility (albeit indirectly) Dan? Wouldn’t a lease expiry notification serve the purpose?&#8221;</p>
<p> <img src='http://www.dancres.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Indeed we (Jini/Apache River) do but there&#8217;s a deeper design philosophy issue at work&#8230;..</p>
<p>A lease is a mechanism that forms part of a solution to the problem.  ServiceDiscoveryManager (a Jini API helper class) is also a component mechanism.  The reason these mechanisms exist is driven by the distributed systems design philosophy that drives the core behaviours embodied in the Jini APIs.</p>
<p>Many of the technologies and design approaches we use to build distributed systems aren&#8217;t born of the same philosophy. Instead they are often subtly oriented towards single machine use so that when we build our network systems on top of them brittleness is inherent.</p>
<p>If one looks a little further one will see similar tensions around methods for handling/performing configuration, deployment and so on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bharath R</title>
		<link>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-419</link>
		<dc:creator>Bharath R</dc:creator>
		<pubDate>Thu, 22 Mar 2007 04:51:51 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2007/03/22/compulsory-attendance/#comment-419</guid>
		<description>"...probably require some kind of event-based solution such that systems can get liveness information about the systems they rely upon". 
 Don't we already have such a facility (albeit indirectly)  Dan? Wouldn't a lease expiry notification serve the purpose?</description>
		<content:encoded><![CDATA[<p>&#8220;&#8230;probably require some kind of event-based solution such that systems can get liveness information about the systems they rely upon&#8221;.<br />
 Don&#8217;t we already have such a facility (albeit indirectly)  Dan? Wouldn&#8217;t a lease expiry notification serve the purpose?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
