<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Maintaining state in an Indigo service</title><link>http://blogs.msdn.com/stevencl/archive/2005/08/26/456805.aspx</link><description>I've been working on usability studies for Indigo for the last 12 months now and have been learning a lot. I just learned another very valuable lesson this week, thanks to Steve Swartz. During a study I was running last week, participants worked with</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Maintaining state in an Indigo service</title><link>http://blogs.msdn.com/stevencl/archive/2005/08/26/456805.aspx#458343</link><pubDate>Wed, 31 Aug 2005 10:34:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:458343</guid><dc:creator>harry</dc:creator><description>Isn&amp;#180;t it one of the major principles of soa, that services should always be stateless? Therefore: different calls of a service operation should not depend on each other. If there&amp;#180;s state (and I think there&amp;#180;s always some kind of state) the database is the right place for it. The interface of the service operation should care that it contains all the parameters that are necessary to access the state. If there&amp;#180;s a situation where different operations depend on a common session state, try to encapsulate them in a (coarser grained) service.</description></item><item><title>Serendipitous, Indeed</title><link>http://blogs.msdn.com/stevencl/archive/2005/08/26/456805.aspx#460842</link><pubDate>Sun, 04 Sep 2005 21:19:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:460842</guid><dc:creator>Message for you, sir!</dc:creator><description /></item><item><title>re: Maintaining state in an Indigo service</title><link>http://blogs.msdn.com/stevencl/archive/2005/08/26/456805.aspx#460861</link><pubDate>Mon, 05 Sep 2005 00:28:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:460861</guid><dc:creator>Arnon Rotem-Gal-Oz</dc:creator><description>Also (in addition to Harry's comment)&lt;br&gt;isn't AddAlbum and (event more so)GetNumberOfAlbums too chatty for a Service interface?&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Maintaining state in an Indigo service</title><link>http://blogs.msdn.com/stevencl/archive/2005/08/26/456805.aspx#460949</link><pubDate>Mon, 05 Sep 2005 09:53:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:460949</guid><dc:creator>Eran Sandler</dc:creator><description>Having state or not having state is more of an implementation decision than a contract decision.&lt;br&gt;&lt;br&gt;A program that consumes a service of some kind need not to assume anything about the service except the contract the use to communicate.&lt;br&gt;&lt;br&gt;The sample of sending some kind of an identifier of the session to a web service can be a method that when implemented in the service can actually have state behind it of some kind. Perhaps this state will persist to a database before the method invokation returns and upon the next call (which can get to a different service) will retrieve the state and continue from there on.&lt;br&gt;&lt;br&gt;You see, this is all about implementation and there is no need for the application consuming the service to assume anything but the contract.&lt;br&gt;&lt;br&gt;Of course, this doesn't solve the problem of how to build a contract in a right manner that will enable you to switch (if necessary) between a stateful service (of any kind) and a stateless one.</description></item></channel></rss>