<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Space-Based Architectural Thinking</title>
	<atom:link href="http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sun, 14 Mar 2010 06:27:00 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Space-Based Architecture – scalable, but not much to do with SOA</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-2438</link>
		<dc:creator>Space-Based Architecture – scalable, but not much to do with SOA</dc:creator>
		<pubDate>Wed, 20 Jun 2007 21:31:37 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-2438</guid>
		<description>[...] going too far ahead, you might want to take a look at my previous post &#8220;Space-Based Architectural Thinking, or listen to my podcast Space-Based Architecture for the Web. There&#8217;s also a 30 minute [...]</description>
		<content:encoded><![CDATA[<p>[...] going too far ahead, you might want to take a look at my previous post &#8220;Space-Based Architectural Thinking, or listen to my podcast Space-Based Architecture for the Web. There&#8217;s also a 30 minute [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; Using spaces with web services</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-1599</link>
		<dc:creator>&#187; Using spaces with web services</dc:creator>
		<pubDate>Sat, 05 May 2007 09:16:47 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-1599</guid>
		<description>[...] &#8220;JavaSpace&#8221; is really just a space, which is, at the end of the day, a queryable distributed in-memory hashtable. Something many of us [...]</description>
		<content:encoded><![CDATA[<p>[...] &#8220;JavaSpace&#8221; is really just a space, which is, at the end of the day, a queryable distributed in-memory hashtable. Something many of us [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; Database performance optimization</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-1525</link>
		<dc:creator>&#187; Database performance optimization</dc:creator>
		<pubDate>Mon, 30 Apr 2007 11:12:50 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-1525</guid>
		<description>[...] On of my customers is having to scale up from 500 concurrent users to 50,000. You need to get seriously close to the metal to handle that. Here&#8217;s a great post on the kind of hardware storage considerations I went through that I went through there. Of course, sometimes a database is just the wrong hammer for your screw - sometimes what you really need is a space. [...]</description>
		<content:encoded><![CDATA[<p>[...] On of my customers is having to scale up from 500 concurrent users to 50,000. You need to get seriously close to the metal to handle that. Here&#8217;s a great post on the kind of hardware storage considerations I went through that I went through there. Of course, sometimes a database is just the wrong hammer for your screw &#8211; sometimes what you really need is a space. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; [Podcast] Space-Based Architectures for the Web</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-1296</link>
		<dc:creator>&#187; [Podcast] Space-Based Architectures for the Web</dc:creator>
		<pubDate>Wed, 11 Apr 2007 05:28:38 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-1296</guid>
		<description>[...] Space-Based Architectural Thinking [...]</description>
		<content:encoded><![CDATA[<p>[...] Space-Based Architectural Thinking [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; So, how many machines/CPUs do we need?</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-1192</link>
		<dc:creator>&#187; So, how many machines/CPUs do we need?</dc:creator>
		<pubDate>Thu, 05 Apr 2007 08:17:29 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-1192</guid>
		<description>[...] of scalability (in terms of load). I would say that the solution isn’t necessarily to move to a Space-Based Architecture, as Guy mentions in this post, although many of the event-based concepts are definitely broadly [...]</description>
		<content:encoded><![CDATA[<p>[...] of scalability (in terms of load). I would say that the solution isn’t necessarily to move to a Space-Based Architecture, as Guy mentions in this post, although many of the event-based concepts are definitely broadly [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; Can, or should SOA be implemented without web services?</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-1176</link>
		<dc:creator>&#187; Can, or should SOA be implemented without web services?</dc:creator>
		<pubDate>Sun, 01 Apr 2007 18:19:33 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-1176</guid>
		<description>[...] of enterprise, and other reasonably complex systems. Going even higher we get into things like spaces which support other architectural styles than SOA, have a richer feature-set, and are often much [...]</description>
		<content:encoded><![CDATA[<p>[...] of enterprise, and other reasonably complex systems. Going even higher we get into things like spaces which support other architectural styles than SOA, have a richer feature-set, and are often much [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan - The Software Simplist &#187; Blog Archive &#187; Can, or should SOA be implemented without web services?</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-469</link>
		<dc:creator>Udi Dahan - The Software Simplist &#187; Blog Archive &#187; Can, or should SOA be implemented without web services?</dc:creator>
		<pubDate>Wed, 14 Feb 2007 11:04:58 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-469</guid>
		<description>[...] I actually want to take this discussion in a slightly different direction. At the message-payload level, interoperability is handled well enough by XML and XSD, although RelaxNG looks so much more elegant for schemas. The question now becomes one of communication – what does a message look like and how are various communications patterns represented. At the simplest level, we have HTTP which is interoperable across (almost?) all platforms but also quite lacking in higher level features. Going up we see things like JMS, queuing, and other middleware. We actually have a reasonably good ability to stitch these together across platforms. In my opinion, this would be a good place to start in terms of enterprise, and other reasonably complex systems. Going even higher we get into things like spaces which support other architectural styles than SOA, have a richer feature-set, and are often much more expensive. [...]</description>
		<content:encoded><![CDATA[<p>[...] I actually want to take this discussion in a slightly different direction. At the message-payload level, interoperability is handled well enough by XML and XSD, although RelaxNG looks so much more elegant for schemas. The question now becomes one of communication – what does a message look like and how are various communications patterns represented. At the simplest level, we have HTTP which is interoperable across (almost?) all platforms but also quite lacking in higher level features. Going up we see things like JMS, queuing, and other middleware. We actually have a reasonably good ability to stitch these together across platforms. In my opinion, this would be a good place to start in terms of enterprise, and other reasonably complex systems. Going even higher we get into things like spaces which support other architectural styles than SOA, have a richer feature-set, and are often much more expensive. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan - The Software Simplist &#187; Blog Archive &#187; So, how many machines/CPUs do we need?</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-444</link>
		<dc:creator>Udi Dahan - The Software Simplist &#187; Blog Archive &#187; So, how many machines/CPUs do we need?</dc:creator>
		<pubDate>Mon, 12 Feb 2007 13:07:33 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-444</guid>
		<description>[...] Bottom line, I’ve found that the layered-architecture/tiered-distribution pair to be rather limited in terms of scalability (in terms of load). I would say that the solution isn’t necessarily to move to a Space-Based Architecture, as Guy mentions in this post, although many of the event-based concepts are definitely broadly applicable. Werners Vogels (Amazon’s CTO) mentions the CAP (consistency, availability, partitioning – choose 2) model for distributed systems in this podcast which I think is critical in analyzing the different parts of a complex system. On the flip side, Patrick does an excellent job of warning about the dangers of other appealing, siren-esque paths – follow them at your peril. [...]</description>
		<content:encoded><![CDATA[<p>[...] Bottom line, I’ve found that the layered-architecture/tiered-distribution pair to be rather limited in terms of scalability (in terms of load). I would say that the solution isn’t necessarily to move to a Space-Based Architecture, as Guy mentions in this post, although many of the event-based concepts are definitely broadly applicable. Werners Vogels (Amazon’s CTO) mentions the CAP (consistency, availability, partitioning – choose 2) model for distributed systems in this podcast which I think is critical in analyzing the different parts of a complex system. On the flip side, Patrick does an excellent job of warning about the dangers of other appealing, siren-esque paths – follow them at your peril. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Nichol</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-383</link>
		<dc:creator>John Nichol</dc:creator>
		<pubDate>Mon, 22 Jan 2007 22:51:09 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-383</guid>
		<description>Udi, 

You said &quot;About three quarters of the way through the session, when I was still thinking that I could put entities in the space, someone called my attention to the fact that I would have to give up the cross-entity transactional semantics that I was so used to.&quot;. Whoever told you this was totally misinformed. A quick look at the JavaSpaces API (http://java.sun.com/products/jini/2.0/doc/api/net/jini/space/JavaSpace.html) will show you that all of the API methods take transactions. 

Once you move beyond the standard APIs and into vendor offerings such as the excellent GigaSpaces (http://www.gigaspaces.com/) product (which BTW I have used in several customer projects) you get integration with JTA/XA transactions as well as high-performance light-weight Local transaction manager for transactions spanning a clustered space! 

Error management in distributed systems (whether JavaSpaces, MoM, application server) is an oft overlooked aspect of system design. Mike Herrick referenced a paper one of my colleagues produced on the subject, and again real world experience tells us that managing exceptions and missing/misconfigured services in a distributed systems is critical to building scalable enterprise applications. Our experience in deploying JavaSpaces to real world problems has been that we are able to lift our focus from the infrastructure and focus on business information flow and error handling. 

JavaSpaces is not a silver bullet. It doesn&#039;t make scalable, reliable, distributed system development easy, but it makes it a lot more manageable, and coupled with a good toolset like the one developed by the folks at GigaSpaces gives a great insight into what is going on with your application (including currently active transactions, etc). 

John</description>
		<content:encoded><![CDATA[<p>Udi, </p>
<p>You said &#8220;About three quarters of the way through the session, when I was still thinking that I could put entities in the space, someone called my attention to the fact that I would have to give up the cross-entity transactional semantics that I was so used to.&#8221;. Whoever told you this was totally misinformed. A quick look at the JavaSpaces API (<a href="http://java.sun.com/products/jini/2.0/doc/api/net/jini/space/JavaSpace.html" rel="nofollow">http://java.sun.com/products/jini/2.0/doc/api/net/jini/space/JavaSpace.html</a>) will show you that all of the API methods take transactions. </p>
<p>Once you move beyond the standard APIs and into vendor offerings such as the excellent GigaSpaces (<a href="http://www.gigaspaces.com/" rel="nofollow">http://www.gigaspaces.com/</a>) product (which BTW I have used in several customer projects) you get integration with JTA/XA transactions as well as high-performance light-weight Local transaction manager for transactions spanning a clustered space! </p>
<p>Error management in distributed systems (whether JavaSpaces, MoM, application server) is an oft overlooked aspect of system design. Mike Herrick referenced a paper one of my colleagues produced on the subject, and again real world experience tells us that managing exceptions and missing/misconfigured services in a distributed systems is critical to building scalable enterprise applications. Our experience in deploying JavaSpaces to real world problems has been that we are able to lift our focus from the infrastructure and focus on business information flow and error handling. </p>
<p>JavaSpaces is not a silver bullet. It doesn&#8217;t make scalable, reliable, distributed system development easy, but it makes it a lot more manageable, and coupled with a good toolset like the one developed by the folks at GigaSpaces gives a great insight into what is going on with your application (including currently active transactions, etc). </p>
<p>John</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Herrick</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-381</link>
		<dc:creator>Mike Herrick</dc:creator>
		<pubDate>Mon, 22 Jan 2007 17:52:29 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-381</guid>
		<description>Hi Udi,

One good article I came across on managing errors with JavaSapces is here:
http://www.psjsolutions.com/index.php?id=61
&quot;Middle Tier Resilience - Fault Tolerant SOA using JavaSpaces&quot;

This is similar to what you are likely used to with messaging and managing error queues. It just seems like it has more capabilities.

Mike</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>One good article I came across on managing errors with JavaSapces is here:<br />
<a href="http://www.psjsolutions.com/index.php?id=61" rel="nofollow">http://www.psjsolutions.com/index.php?id=61</a><br />
&#8220;Middle Tier Resilience &#8211; Fault Tolerant SOA using JavaSpaces&#8221;</p>
<p>This is similar to what you are likely used to with messaging and managing error queues. It just seems like it has more capabilities.</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Owen Taylor</title>
		<link>http://www.udidahan.com/2007/01/20/space-based-architectural-thinking/comment-page-1/#comment-379</link>
		<dc:creator>Owen Taylor</dc:creator>
		<pubDate>Sun, 21 Jan 2007 07:55:18 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/365#comment-379</guid>
		<description>Hi Udi,

I work for GigaSpaces and would like to understand more about why you think spaces or any of the Jini services are not transactional.
If I understand the scenario you mention, you wish to be able to ensure consistency through transactions where a customer status and order completion status are in sync.

Our customers could never do business if the space was not completely reliable and transactionally aware.  
As touted here:

http://www.gigaspacesblog.com/2006/12/20/like-a-virgin/

&lt;a href=&quot;http://www.gigaspacesblog.com/2006/12/20/like-a-virgin&quot; rel=&quot;nofollow&quot;&gt;virginmobilestory&lt;/a&gt;

Our space has actually proved itself to be more reliable than traditional enterprise infrastructure components as while the rest of the system at Virgin Mobile crashed for 15 hours, the spaces and associated workers managed by our system kept creating, and transforming and storing Orders and was able to reconnect to the traditional infrastructure once it came back on line and not a single order was lost!

I wrote some sample code to demonstrate how consistency between two entities could be achieved using standard Jini Transaction management and any JavaSpace. 

(I ran it against the Open source JavaSpace implementation &quot;Blitz&quot; created by Dan Cresswell)

The code can be found here:
http://jroller.com/page/owentaylor/20070121

&lt;a href=&quot;http://jroller.com/page/owentaylor/20070121
&quot;&gt;codesample&lt;/a&gt;

As you should be able to deduce, the order and customer are written to the space with order written as NEW ORDER and the customer as having a pending order.  These are committed to the space.  

After some time, the Order status is changed to COMPLETED and the customer orderPending flag changed to false, while processing these changes and before committing to the space this new state of affairs, this later decision is aborted as something goes wrong in the writing or business activities surrounding the write and the Order returns to it&#039;s NEW ORDER status and the customer orderPending flag is set to true again.


This is designed to show that consistency through transactions is indeed possible and if I have missed the true meaning of your post, forgive me and please take the time to help me understand more regarding your disenchantment with SBA.

Owen Taylor
Senior Director - Worldwide Technical Communications
GigaSpaces Technologies
Blog:      www.gigaspacesblog.com
My Blog:   http://jroller.com/page/owentaylor 
</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>I work for GigaSpaces and would like to understand more about why you think spaces or any of the Jini services are not transactional.<br />
If I understand the scenario you mention, you wish to be able to ensure consistency through transactions where a customer status and order completion status are in sync.</p>
<p>Our customers could never do business if the space was not completely reliable and transactionally aware.<br />
As touted here:</p>
<p><a href="http://www.gigaspacesblog.com/2006/12/20/like-a-virgin/" rel="nofollow">http://www.gigaspacesblog.com/2006/12/20/like-a-virgin/</a></p>
<p><a href="http://www.gigaspacesblog.com/2006/12/20/like-a-virgin" rel="nofollow">virginmobilestory</a></p>
<p>Our space has actually proved itself to be more reliable than traditional enterprise infrastructure components as while the rest of the system at Virgin Mobile crashed for 15 hours, the spaces and associated workers managed by our system kept creating, and transforming and storing Orders and was able to reconnect to the traditional infrastructure once it came back on line and not a single order was lost!</p>
<p>I wrote some sample code to demonstrate how consistency between two entities could be achieved using standard Jini Transaction management and any JavaSpace. </p>
<p>(I ran it against the Open source JavaSpace implementation &#8220;Blitz&#8221; created by Dan Cresswell)</p>
<p>The code can be found here:<br />
<a href="http://jroller.com/page/owentaylor/20070121" rel="nofollow">http://jroller.com/page/owentaylor/20070121</a></p>
<p><a href="http://jroller.com/page/owentaylor/20070121<br />
">codesample</a></p>
<p>As you should be able to deduce, the order and customer are written to the space with order written as NEW ORDER and the customer as having a pending order.  These are committed to the space.  </p>
<p>After some time, the Order status is changed to COMPLETED and the customer orderPending flag changed to false, while processing these changes and before committing to the space this new state of affairs, this later decision is aborted as something goes wrong in the writing or business activities surrounding the write and the Order returns to it&#8217;s NEW ORDER status and the customer orderPending flag is set to true again.</p>
<p>This is designed to show that consistency through transactions is indeed possible and if I have missed the true meaning of your post, forgive me and please take the time to help me understand more regarding your disenchantment with SBA.</p>
<p>Owen Taylor<br />
Senior Director &#8211; Worldwide Technical Communications<br />
GigaSpaces Technologies<br />
Blog:      <a href="http://www.gigaspacesblog.com" rel="nofollow">http://www.gigaspacesblog.com</a><br />
My Blog:   <a href="http://jroller.com/page/owentaylor" rel="nofollow">http://jroller.com/page/owentaylor</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
