<?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>The Emissary Design Pattern and RIAs (Rich Internet Applications)</title><link>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx</link><description>Here is a first draft of a new presentation. I gave it a couple of months ago just after TechEd and thought I would share it as I try to write up some of my thoughts on RIAs. I plan to rework this a bit more and present it again at TechEd Europe. The</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: The Emissary Design Pattern and RIAs (Rich Internet Applications)</title><link>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx#8847943</link><pubDate>Mon, 11 Aug 2008 14:09:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8847943</guid><dc:creator>manuelsimoni</dc:creator><description>&lt;P&gt;Hi, any chance for a PDF version of that presentation? Thanks a lot, Manuel.&lt;/P&gt;</description></item><item><title>re: The Emissary Design Pattern and RIAs (Rich Internet Applications)</title><link>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx#8856186</link><pubDate>Wed, 13 Aug 2008 08:45:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8856186</guid><dc:creator>Oran</dc:creator><description>&lt;P&gt;I enjoyed reading your powerpoint. &amp;nbsp;I've been thinking similar thoughts for a while now, and it is good to see someone else's detailed thinking on the subject.&lt;/P&gt;
&lt;P&gt;The sound byte summary for my thinking is "sync down, actions up" or more precisely, "synchronize reference data to clients, send user actions to the service as messages." &amp;nbsp;User actions, once they are authenticated, authorized, and executed by the service, usually turn into new reference data that is then synchronized out to all interested parties. &amp;nbsp;As you note, the same model can also be used between services, often in both directions.&lt;/P&gt;
&lt;P&gt;This style requires that you be explicit about who owns and controls the data. &amp;nbsp;If you don't have clear data ownership rules, you will need hacks like merge conflict resolution to bail you out of your lack of foresight. &amp;nbsp;The Sync Framework, ADO.NET, and SQL Server folks are more than happy to be enablers of this style with a big grab bag of such hacks. &amp;nbsp;People typically get into this mess because of the belief that "sync down, sync up" is good enough.&lt;/P&gt;
&lt;P&gt;I think the biggest (and most subtle) hurdle to implementing "sync down, actions up" is preserving user-centric authentication for user actions that occur on offline-able clients. &amp;nbsp;Many implementations take shortcuts, including relying on sync to transfer the client-computed _result_ of user actions, and downgrading from user-centric to client-centric authentication and authorization. &amp;nbsp;More sophisticated hacks try to validate user actions by reverse-engineering the actions from the resulting data sent from the client. &amp;nbsp;Security shortcuts that would never fly in an online web client are the norm in offline-able clients. &amp;nbsp;People are moving emissaries inside the trust sphere because it's easier that way.&lt;/P&gt;
&lt;P&gt;There isn't a good RIA message queuing solution that securely flows user identity along with service calls. &amp;nbsp;Solving this problem correctly requires queueing up user actions as signed messages that prove that this user identity performed this action, in a way that can be validated by the service once the queued message eventually arrives. &amp;nbsp;This enables online web clients and offline-able clients to use the same exact user-centric authorization code, with the same degree of confidence.&lt;/P&gt;
&lt;P&gt;Another issue offline-able clients may need to deal with is treating local updates to data as speculative until the actions that correspond to those updates have been approved by the service. &amp;nbsp;The service reserves the right to veto any client action. &amp;nbsp;This veto needs to eventually compensate for ("undo", possibly via sync) any related speculative data changes on the client. &amp;nbsp;Allowing the user to take further actions based on speculative local data is a trade-off to be made on a case-by-case basis, keeping in mind the impact of a service veto early in the chain of offline actions.&lt;/P&gt;
&lt;P&gt;If the client and the service share the same business logic code, then the client can have a high degree of confidence that its speculative local updates are identical to the data that will eventually be synced back down from the service, assuming the corresponding action is approved. &amp;nbsp;But just in case the client got it wrong, the system will eventually self-heal through synchronization of reference data.&lt;/P&gt;
&lt;P&gt;I would love to know your thoughts on this. &amp;nbsp;Sometimes I wonder if I'm unnecessarily complicating things since I don't hear many people talking about solutions like this.&lt;/P&gt;</description></item><item><title>TechED Chronicle: Imparare dai problemi altrui...</title><link>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx#9064651</link><pubDate>Thu, 13 Nov 2008 02:31:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9064651</guid><dc:creator>di .NET e di altre Amenit</dc:creator><description>&lt;p&gt;TechED Chronicle: Imparare dai problemi altrui...&lt;/p&gt;
</description></item><item><title>New and Notable 265</title><link>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx#9393780</link><pubDate>Wed, 04 Feb 2009 00:08:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9393780</guid><dc:creator>Sam Gentile's Blog (if (DeveloperTask == Communication &amp;&amp; OS == Windows)</dc:creator><description>&lt;p&gt;A quick one while I am on vacation. .NET 3.5 SP1 Mr. Hanselman has come out with the mother of all .NET 3.5 SP1 posts with Hidden Gems - Not the same old 3.5 SP1 post , which includes coverage of all the areas including my WCF changes . Announcing Entity&lt;/p&gt;
</description></item></channel></rss>