<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:ebpmlChannel="http:/www.ebpml.org/blog">
    <channel>
        <title>Carnets de Bord</title>
        <link>http://www.ebpml.org/ebpml_radio.htm</link>
        <description>A weblog about Service Oriented, Process Centric, Model Driven Programming Models</description>
        <language>en-us</language>
        <copyright>Copyright 2001-2008 ebPML.org</copyright>
        <lastBuildDate>Fri, 18 Dec 2009 18:00:00 GMT</lastBuildDate>
        <generator>FingerTips</generator>
        <managingEditor>jdubray@gmail.com</managingEditor>s
        <webMaster>info@ebpml.org</webMaster>



 <item>
		<title>[MDE] From DSL to MOP</title>
			<link>http://www.ebpml.org/blog/216.htm</link>
			<description>
			<![CDATA[
        	  
			  <p>Johan published <a href="http://www.theenterprisearchitect.eu/archive/2010/03/09/best-practices-for-dsls-and-model-driven-development">a great summary</a> of a somewhat old article from
			  <a href="http://www.voelter.de/">Markus Voelter</a>: &quot;<a href="http://www.jot.fm/issues/issue_2009_09/column6/index.html">Best 
			  Practices in Model Driven Development</a>&quot;. I say somewhat old, 
			  because the article was written in 2005 and Markus's position may 
			  have evolved since that time. I'd like to take a moment to express 
			  how <a href="http://www.infoq.com/articles/mop">Metamodel Oriented 
			  Programming r</a>edefines the foundation of DSLs.</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Sources for the language</h4>
			  </span></span>
			  <p>I no longer think that Domain DSL make much sense. Domain 
			  experts rarely have the semantic precision that would allow 
			  supporting their work with a DSL. Note that technical people don't 
			  exhibit much more precision. Just look at the REST space and see 
			  how people &quot;interpret&quot; the semantics of a resource, four verbs and 
			  URI. Ok, maybe the problem is that REST is so poor semantically 
			  that they &quot;have to&quot; add their own semantics, but still. </p>
			  <p><em>Recommendation 1</em>: build your language for the solution 
			  space, leave the problem space to creative expression. </p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Limit Expressiveness</h4>
			  </span></span>
			  <p>On the contrary, I would argue that the problem of limited 
			  expressiveness is precisely the explosion of &quot;interpretations&quot; of 
			  semantics. Again, use REST as an example. Please needed a query 
			  language. What happened? everyone created its own. It may not 
			  happen on the same scale in your organization, but it will happen 
			  enough to be a real pain.</p>
			  <p><em>Recommendation 2</em>: Make your language as expressive as 
			  it is needed but not more</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Notation, Notation, Notation</h4>
			  </span></span>
			  <p>Text is beautiful. Do not mix the need for graphical 
			  visualization with the need for graphical design. Most often 
			  textual definitions can be converted (automatically) in graphics. </p>
			  <p><em>Recommendation 3</em>: use graphical editors as rarely as 
			  you can. Prefer textual notations with graphical renditions</p>


			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Viewpoints</h4></span></span>
			  <p>
			  The goal is not to have everyone express something, the goal is to 
			  build solutions fast. The design of the language must be driven by 
			  how fast you can translate requirements into a working solution. 
			  Take the example of BPMN. BPMN was designed to let a certain 
			  category of people express their view point. That's great. When it 
			  comes to create &quot;executable BPMN definitions&quot;, well the little 
			  known secret is that developers stuff the definitions with tons of 
			  arcane, hard to debug, scripts. This is highly inefficient. From 
			  my own experience, it can take 3-5 times as much to write a 
			  solution using an executable BPMN engine than writing it in 3GL.
			  </p>
			  <p>
			  <em>Recommendation 4</em>: design the language for rapidly 
			  building solutions (from as few viewpoints as possible)&nbsp; </p>
			  <p style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  &nbsp;</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
		  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
		  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
		  Partitioning</h4>
		  </span></span>
			  <p>
			  In MOP this best practice translates as rules that enable 
			  execution elements to control the lifecycle of other elements. The 
			  language needs to be one, however, you should restrict with 
			  precision the lifecycle operations a model element can invoke on 
			  another. I would not call that partitioning</p>
			  <p>
			  <em>Recommendation 5</em>: understand with precision which model 
			  element control the lifecycle of other model elements</p>
			  	 
			  
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
		  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
		  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
		  Evolution</h4>
			  </span></span>
			  	 
			  
			  <p>This is a difficult topic, MOP doesn't necessary help here. 
			  However, because MOP forces you to think through the entire 
			  lifecycle of the model elements and the relationships between the 
			  model elements at the implementation level, you may end up needing 
			  far fewer evolutions. DSL focuses only on the associations between 
			  model elements, not there interelated lifecycles.</p>
			  <p><em>Recommendation 6</em>: Think through the entire design of 
			  the language, especially the lifecycles</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  The fallacy of generic languages</h4>
			  </span></span>
			  <p>We agree, yet, as you focus on the solution side, you should 
			  remain as generic as you can, what is wrong is the monadism of 
			  general purpose languages, not genericity per say. </p>
			  <p><em>Recommendation 7:</em> Think polyadic programming languages</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Learn from 3 GLs</h4>
			  </span></span>
			  <p>I would say, learn from both 3GLs and DSL. This is what MOP is 
			  about, bringing cogency and polyadism together in one efficient 
			  formalism. </p>
			  <p><em>Recommendation 7</em>: Design Cogent Polyadic languages</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Who are the first class citizens?</h4>
			  </span></span>
			  <p>You don't have to choose, this is the wrong choice. DSL forces 
			  you through that choice because second class citizens are created 
			  to implement the cogent aspects of the model. MOP focuses on first 
			  class citizens without the need of artificial model elements 
			  needed to express execution elements.</p>
			  <p><em>Recommendation 8</em>: Avoid creating model elements to 
			  express execution semantics</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Libraries (and Patterns)</h4>
			  </span></span>
			  <p>I have mixed feelings about that one. Why would you create 
			  libraries and patterns in your DSL? They exist only because of the 
			  monadism of the general purpose languages. Programming Patterns 
			  would have never existed if programming languages were polyadic. </p>
			  <p><em>Recommendation 9</em>: Rely on as few libraries and 
			  patterns as possible on top of your language, prefer a higher 
			  degree of polyadism</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Teamwork support</h4>
			  </span></span>
			  <p>Go Textual !!!!!!!</p>
			  <p><em>Recommendation 10</em>: MOP is textual in nature, structure 
			  your language to facilitate teamwork and leverage all the 
			  source-based tools </p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h3 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Models Interpretation vs. Code Generation</h3>
			  </span></span>
			  <p>The bad reputation of Code Generation is due to the lack of 
			  execution semantics in DSL, i.e. DSLs are not cogent. MOP 
			  languages facilitate the transformation (not generation) into 
			  general purpose languages because the execution semantics are half 
			  way there. </p>
			  <p><em>Recommendation 11</em>: Prefer &quot;transformation&quot; to model 
			  interpretation or code generation</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; ">
			  <h4 style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
			  Don't modify generated code</h4>
			  </span></span>
			  <p>Yes, but you can modify &quot;transformed&quot; code. Round-trip 
			  engineering in code generation can be very tricky. However, using 
			  a transformation paradigm in lieu of code generation make the 
			  round-tripping a lot easier. </p>
			  <p><em>Recommendation 12</em>: You may use round-tripping safely 
			  when it makes sense, but avoid it if you can</p>
			  <p>I am not quite sure today, why the DSL community do not see how 
			  much simpler their life would be by making DSL cogents. I also 
			  don't see why the general purpose language guys keep annotating 
			  their language to death. They annotate it so much that they can't 
			  see the semantics behind their annotation. But, hey, what do I 
			  know? I am just a MOPer. </p>
			]]></description>
			<pubDate>03/10/2010</pubDate>
			<guid>http://www.ebpml.org/blog/216.htm</guid>
</item>
			  


 <item>
		<title>[REST] RESTless in Seattle</title>
			<link>http://www.ebpml.org/blog/215.htm</link>
			<description>
			<![CDATA[
       	  
			 		  <p>Lori MacVittie wrote
			  <a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/02/rest-api-developers-between-a-rock-and-a-hard-place.aspx">
			  a following post</a>&nbsp;to
			  <a href="http://www.ebpml.org/blog/214.htm">my post </a>on REST 
			  that is both refreshing and terrifying. Refreshing because well it 
			  kind of puts together a lot of the untold truth of our industry: </p>
			  <ol>
				  <li>Standards sucks and are ever changing, they don't fit with 
				  each other or offer some kind of upward compatibility</li>
				  <li>REST is not as &quot;easy&quot; as some people would like others to 
			  believe it is</li>
				  <li>Innovation in 2010 is no free lunch, lots of people who 
			  don't understand a thing about innovation get in the way for 
			  various reason (greed, fud, ego...) and the innovators have to 
			  deal day in and day out with their stupid goals and constrains, 
			  not to mention unsustainable ROI</li>
			  </ol>
			  <p>Thank you Lori. It's refreshing that someone is not talking 
			  about the Lalaland of XYZ and is not afraid of using &quot;real&quot; words, 
			  not to mention avoid bolonizing their readers. There are so few 
			  like you that it is worth mentioning.</p>
			  <p>Your post is also terrifying because it leaves little hope to 
			  achieve building anything right. Actually, the probability to get 
			  the right thing accomplished is as high as winning the lottery. In 
			  many ways, I agree with you. When you see products like the iPhone 
			  and you think at the alignment of technologies that needed to happen 
			  to realize such a device, only a strong 
			  culture and &quot;proprietarism&quot; can deliver any kind of innovation today. 
			  Standards are the wrong approach to innovation. They kill 
			  innovation. Pretending innovation is easy is the biggest lie of 
			  the 21st century. No, innovation is complex and requires a bunch of 
			  smart people working together without just ROI, greed, or fear as 
			  a driver. I think the next decade will see the emergence of new 
			  winners who understand innovation at that level. Of course, there 
			  are counter examples to my argument, company like WSO2 have 
			  innovated on top of less than optimal standards, but I think they 
			  remain the exception, and it is probably due to their strong 
			  culture and sense of values.</p>
			  <p><a href="http://www.stucharlton.com/blog/archives/2010/03/versioning-restful-web-resources---a-survey.html">Stu also provided a follow up to my challenge to define a 
			  version strategy</a>. Don't get me wrong, I like Stu, he is incredibly 
			  competent and he backs his work with a long experience. But, Stu 
			  failed to provide a compelling strategy for versioning. He 
			  actually admits that:</p>
			  <blockquote>In a RESTful approach, URIs are your &quot;foreign keys&quot;, and if you 
			  embed a version identifier in them, they need to change when you 
			  upgrade to the next version if you embed those versions in the 
			  URI. Assuming you can't convince your resource owners to use 
			  languages with version identifiers as a MIME parameter or inside 
			  the language itself, how is that done?&nbsp; </blockquote>
			  <p>&nbsp;This is what I mean by REST couples access and identity. </p>
			  <p>Stu also conveniently forgets to speak about the &quot;unit of 
			  versioning&quot;. Nearly every resource is participating in different 
			  lifecycles. A resource has different states, composite states. 
			  Each lifecycle has a set of actions (which are always encoded as POST+noun in REST). This is the unit of versioning. A comment from 
			  Mike actually speaks to that very problem:</p>
			  <blockquote>there are many times when an application-flow update requires 
			  support for side-by-side versioning </blockquote>
			  <p>Yeah, the RESTafarians finally touch the real problems or 
			  building real systems, not just blog posts and plain vanilla 
			  articles or useless annotations. I actually argue that without the 
			  visibility of an explicit lifecycle, these problems are impossible 
			  to solve. You can't version an action API if you don't understand 
			  the states and transitions behind them.&nbsp; </p>
			  <p>Of course, people like Stu or Mike will never admit such a 
			  thing publicly. They will always say, &quot;but... if you look here ... 
			  there is a promising solution that that problem&quot;. Boloney guys. 
			  Pure and complete boloney. We have endured 3 years of that 
			  boloney. REST is not a programming model. It has never been and it 
			  will never be. Deal with it.</p>
			  <p>I have ordered Subbu's book (hopefully he will give me an 
			  autograph), so I'll wait until I get it to make my final comments 
			  on versioning, but so far I think (reluctantly) that Stu belongs 
			  to the REST wall of shame. It is time to get real and provide real 
			  recommendations. Recommendations that don't let people loose like 
			  the ones that have been made for so long and got us where we are 
			  today, i.e. nowhere. </p>
			  <p>I see no success in sight and no sign of possible success 
			  either. The (other) REST is a fraud, nothing less, nothing more. 
			  Innovation is not &quot;serendipitous&quot; innovation requires hard work 
			  and courage. Innovation doesn't happen in pretty power points and 
			  IEEE articles.</p>
			  <p>RESTfully yours,</p>
			  <p>JJ-</p>
			]]></description>
			<pubDate>03/05/2010</pubDate>
			<guid>http://www.ebpml.org/blog/215.htm</guid>
</item>

<item>
		<title>[Other] Apple</title>
			<link>http://www.google.com/finance?q=NASDAQ:AAPL</link>
			<description>
			<![CDATA[
			<p>The good think about a company like Apple is that its stock drives its a good part of its sales. Of course you don't want to own the stock when <a href="http://www.google.com/finance?q=NASDAQ:MSFT">the company sales flattens or drop</a>.</p>
			]]></description>
			<pubDate>03/05/2010</pubDate>
			<guid>http://www.google.com/finance?q=NASDAQ:AAPL</guid>
</item>

<item>
		<title>[REST] 2010 - Where are we?</title>
			<link>http://www.ebpml.org/blog/214.htm</link>
			<description>
			<![CDATA[
        	  
			<p><a href="http://stage.vambenepe.com/archives/1300">A post by 
			William Vambenepe, and the comments that followed</a>, prompted me 
			to do a reality check: here we are, 3 years after the 2nd invasion of RESTafarians 
			in our industry. That wave has kind of succeeded. &quot;REST&quot; APIs 
			are everywhere. I put REST in quotes because the number of RESTful 
			APIs are far fewer than the self-proclaimed ones. Even the hard core RESTafarians do not bother 
			policing the ugly world they have created anylonger.</p>
		  <p>Take
		  <a href="http://gsma.securespsite.com/access/Access%20API%20Wiki/Payment%20RESTful%20API.aspx">
		  this payment API</a>. Is that RESTful?</p>
		  <blockquote><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
		  <span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: verdana; font-size: 11px; line-height: 14px; text-align: left; ">
		  <p class="MsoHeader" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; ">
		  <span style="font-weight: normal; font-size: 11pt; font-family: 'Courier New'; ">
		  POST /&lt;path&gt;/charge?version=1.0&amp;endUserId=tel:+447990123456&amp; currency=GBP&amp;amount=1&amp;referenceCode=ABC</span></p>
		  </span></span></blockquote>
		  <p>Yes, you have seen it you POST a 
		  &quot;verb&quot; (the remainder of the API is all verbs to).</p>
		  <p>But that's not it, check that one. No you are not dreaming. You 
		  want to cancel a &quot;reservation&quot;, you -of course- use DELETE, and just 
		  to be consistent, you use a verb (reserve) and not a noun.<blockquote>
		  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
		  <span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Courier New'; font-size: 15px; line-height: 18px; text-align: left; ">
		  DELETE /&lt;path&gt;/reserve/1234/release?version=1.0</span></span></blockquote>
		<p>But, who cares, right? the coders have already hidden all that CRUD 
		behind code generators.&nbsp; Check
		<a href="http://bill.burkecentral.com/2010/02/19/mapping-response-on-client-side/">
		the kind of code that Bill Burke wants you to write</a> to deal with 
		Hypermedia. While you are at it, I would also look in Bill's post what 
		the JAX-RS code look like: </p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="color: rgb(42, 42, 42); font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; text-align: left; ">
			  <pre style="display: block; font: normal normal normal 1em/normal 'Courier New', Courier, Fixed, monospace; font-size: 11px; color: rgb(0, 0, 0); background-image: url(http://s2.wp.com/wp-content/themes/pub/freshy/images/preback.jpg); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); overflow-x: auto; overflow-y: auto; text-align: left; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(153, 204, 102); border-right-color: rgb(153, 204, 102); border-bottom-color: rgb(153, 204, 102); border-left-color: rgb(153, 204, 102); line-height: 17px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 20px; padding-bottom: 0px; padding-left: 30px; background-position: 0% 0%; background-repeat: no-repeat no-repeat;"><span class="style3">@Path(&quot;/customers&quot;)</span>
public interface CustomerClient {

   @Path(&quot;{id}&quot;)
   @Produces(&quot;application/xml&quot;)
   public MyResponse getCustomer(<span class="style2">@PathParam</span>(&quot;id&quot;) int custId) throws NotFoundException;
}</pre>
			  </span></span>
			  <p>Yeap, this looks so much better and different than jax-ws:</p>
			  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
			  <span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px; text-align: left; ">
			  <pre style="font-family: 'Andale Mono', Courier, monospace; font-size: small; margin-left: 0.48in; "><span class="style1"><span class="style3">@WebService</span>(targetNamespace = &quot;http://duke.org&quot;, name=&quot;AddNumbers&quot;)
public interface AddNumbersIF extends Remote {
    @WebMethod(operationName=&quot;add&quot;, action=&quot;urn:addNumbers&quot;)
    @WebResult(name=&quot;return&quot;)
    public void addNumbers(
        <span class="style2">@WebParam</span>(name=&quot;num1&quot;)int number1,
        @WebParam(name=&quot;num2&quot;)int number2,
        @WebParam(name=&quot;result&quot; mode=WebParam.Mode.OUT) Holder&lt;Integer&gt; result)
        throws RemoteException, AddNumbersException;
</span><font face="Courier New" size="2"><span lang="en-US">}</span></font></pre>
			  </span></span>
			  <p>&nbsp;</p>
			  <p>Outstanding job guys ! all this brouhaha to get there. I am in 
			  awe. I am 
			  glad people get paid for that kind of &quot;work&quot;. Some even call themselves 
			  &quot;successful entrepreneurs&quot; after producing a few 
			  annotations and a couple variations (no kidding). </p>
			  <p>Yes, REST has won. Not sure what we have won in return, but 
			  REST has. So, it is time to share some of the highlights of the Phyrric victory of the 
			  RESTafarians:</p>
			  <p>1) Dave Chappell - 			  <a href="http://blogs.zdnet.com/service-oriented/?p=699">SOA is a 
			  failure</a> : I am glad Dave gets paid to travel the world and 
			  propagate his boloney - what a job ! Dave (who doesn't write a 
			  single line of code) explains that for him &quot;Reuse&quot; doesn't work and the only services worth building 
			  are &quot;Data Services&quot;. Why reuse don't work? Because:</p>
			  <blockquote>Creating services that can be reused requires predicting the 
			  future&#8230;&nbsp; </blockquote>
			  <p>Dave, do you understand how reuse works in a distributed 
			  system? It is quite easy actually. You need a Forwards Compatible 
			  Versioning strategy. You can't reuse what you built 3 years ago, I 
			  actually agree with you. But, you can evolve services in
			  <a href="http://www.infoq.com/articles/contract-versioning-comp2">
			  a forwards compatible way </a>such that the new version of a 
			  service (which was developed to meet the needs of a new consumer) 
			  works with all previous consumers without breaking them, and hence 
			  without requiring any changes from them. Something that your 
			  typical OO library can't do. Reuse in SOA happens the other way 
			  around: the old consumers reuse the new version of a service. That 
			  way you don't have to predict the future. </p>
		  <p>2) Stafan Tilkov - <a href="http://www.ebpml.org/blog/202.htm">Code 
		  first does not work </a>: yeap, another rock solid argument. Stefan 
		  complains that his code first approach creates &quot;very large 
		  WSDL-files&quot;. First, REST does not change the footprint of service 
		  invocations. If your DTO (aka Resource Representation) is large in 
		  WSDL, it will be large in REST, just as well. REST is just a different 
		  encoding of the operations (using predefined verbs GET, POST, PUT). 
		  Second, You can't do SOA in a &quot;code-first&quot; fashion. I know, even 
		  Microsoft does that. I have explained many times that OO is the 
		  problem across our industry, any approach that tries to express new 
		  semantics on the foundation of OO is bound to fail. Annotating OO or 
		  wiring remote calls into and OO runtime is the wrong thing to do. OO 
		  is just a particular case of
		  <a href="http://www.infoq.com/articles/mop">Metamodeling Oriented 
		  Programming</a>. OO is not the foundation of programming, let alone 
		  software architecture. Semantics need to be expressed independently of 
		  the OO metamodel, in particular the semantics of the execution 
		  elements.</p>
		  <p>3) Steve Vinosky, Bill DeHora :
		  <a href="http://www.infoq.com/presentations/rest-vinoski">The 
		  interface to a resource is uniform</a>.. You don't hear that argument 
		  very often nowadays, specially after
		  <a href="http://www.infoq.com/news/2009/11/restfulie-hypermedia-services">
		  RESTfulie was published</a>, yet it was the core argument when the 2nd 
		  invasion started.</p>
			  <p>... and the list could go, on and on. Stu, let's see what you 
			  come up with versioning. I do not wish to add you to this wall of 
			  shame.</p>
			  <p>I can demonstrate that our industry has lost tens of billions 
			  of dollars in productivity with these three flawed arguments. In 
			  one big swoop, the RESTafarians have prevented reuse to happen, 
			  crippled model-driven engineering and the emergence of a 
			  distributed programming model which could be the foundation to 
			  build composite applications. </p>
			  <p>In the end, you guys can claim all you want, but REST is just a &quot;NO WS-*&quot; movement. 
			  I am not here to defend WS-* or SCA, I don't work for a vendor. I, 
			  however, as a user of these technologies, have to constantly talk 
			  to people that are often completely confused about all these 
			  approaches (I mean really bright experienced people who now think 
			  that CRUD is a good way to build distributed systems). I sure wish 
			  our industry would have produced by now a nice distributed 
			  programming model and made all these discussions pointless. 
			  Everyone critically needs it. Unfortunately, as I explained 
			  before, there was not a chance, because everything is done from a 
			  monolithic programming model point of view, and somehow the gurus 
			  like Bill or Steve who had their chance at producing that 
			  programming model, project the semantic of a monolithic 
			  programming model (OO) into the distributed world. When these 
			  people looked at REST, they saw a distributed object paradigm that 
			  seemed to work. They looked at all the problems of CORBA 
			  (granularity of the calls, brittle interfaces, naming service...) 
			  and they felt REST solved elegantly all these questions. REST 
			  offered a universal naming service, uniform interfaces and 
			  DTO-size granularity. They said Bingo ! and here we are, only 
			  ashes are left, they burnt down everything. They have destroyed 
			  all the advances that were painfully conquered amongst stupid 
			  vendor politics and exacerbated egos. All gone: contracts, 
			  forwards compatible versioning, bi-directional interfaces, 
			  eventing mechanism, advanced coordination mechanism, assemblies, 
			  orchestrations,... you name it. REST doesn't offer any of them. 
			  REST brought our industry back to the a pre-Neolithic age and has 
			  enslaved everyone to CRUD. The RESTafarians made us lose another 
			  10 years in our quest to built a true distributed programming 
			  model.</p>
			  <p>Congratulations on a job well done ! Mission accomplished ! </p>
			  <p>As for myself, I am not in the business of creating &quot;pretty 
			  stories&quot; or attracting &quot;followers&quot;. I am just too old-fashioned 
			  for that.&nbsp; </p>

			]]></description>
			<pubDate>02/28/2010</pubDate>
			<guid>http://www.ebpml.org/blog/214.htm</guid>
</item>

<item>
		<title>[Other] MomentumSI</title>
			<link>http://www.momentumsi.com/about/leadership.html</link>
			<description>
			<![CDATA[
			<p>I left MomentumSI last Friday. My departure broke an 8 year friendship with Jeff. This is probably the part that saddens me most. Knowing what I know today, I would have never joined MomentumSI in the first place. C'est la vie...</p>
			]]></description>
			<pubDate>02/27/2010</pubDate>
			<guid>http://www.momentumsi.com/about/leadership.html</guid>
</item>

<item>
		<title>[Other] Steve Ballmer's OMG moment: "A phone is not a PC"</title>
			<link>http://seattletimes.nwsource.com/html/microsoftpri0/2011082354_microsoft_shows_a_new_generation_of_windows_phones.html</link>
			<description>
			<![CDATA[
			<p>Finally Microsoft is waking up. <a href="http://seattletimes.nwsource.com/html/microsoftpri0/2011082354_microsoft_shows_a_new_generation_of_windows_phones.html">Steve finally got that a phone was not a PC !</a>. I wouldn't call that game changer, but they have definitely caught up. That's probably going to hurt RIM and Google because Microsoft will pull the attention of mobile app developers away from them. I am not sure sales of iPhones will be impacted by Windows Mobile 7. So when is Objective-C# going to be released?</p>	
			<p>You'll notice that <a href="http://techie-buzz.com/mobile-news/watch-windows-mobile-keynote-mwc-2010-highlights.html">Steve quickly passed the batton</a> as soon as the D word (Demo) came about.</p>
			]]></description>
			<pubDate>02/12/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/html/microsoftpri0/2011082354_microsoft_shows_a_new_generation_of_windows_phones.html</guid>
</item>

<item>
		<title>[Other] Bill Gates "OMG" moment</title>
			<link>http://seattletimes.nwsource.com/html/microsoftpri0/2011055408_microsoftneedsabigleaptocatchup.html</link>
			<description>
			<![CDATA[
			<p>I must admit that Steve and Bill make a great pair <a href="http://seattletimes.nwsource.com/html/microsoftpri0/2011055408_microsoftneedsabigleaptocatchup.html">leading Microsoft</a>:</p>
			<blockquote>Bill Gates admitted this week to an OMG moment when he first saw the iPhone. In an interview with business Web site Bnet, Gates recalled when he first saw the iPhone, he said, "Oh, my god, <b>Microsoft didn't aim high enough</b>."</blockquote>
			<img src="http://seattletimes.nwsource.com/ABPub/2010/02/12/2011055454.jpg" alt=""/>
			]]></description>
			<pubDate>02/12/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/html/microsoftpri0/2011055408_microsoftneedsabigleaptocatchup.html</guid>
</item>

<item>
		<title>[Other] The world is (soon to be) flat</title>
			<link>http://seattletimes.nwsource.com/html/microsoftpri0/2010946791_statelegislatureconsiderstaxbreakondatacenters.html?syndication=rss</link>
			<description>
			<![CDATA[
			<p>Microsoft has been a rock star at cutting tax deals with Washington State. Unemployment taxes are just an example (who would dare collect unemployment taxes at a company who never "had lay offs", not to mention convincing the state, county and nearby towns to spend Microsoft (all?) taxes towards ever more infrastructure projects to get to and from the sprawling campus. 
			Well, <a href="http://seattletimes.nwsource.com/html/microsoftpri0/2010946791_statelegislatureconsiderstaxbreakondatacenters.html">the world is getting "flatter" by the day</a>:
			</p>
			<blockquote>The state Legislature is considering a tax break for tech companies that want to build data centers in rural Washington after Microsoft moved its cloud-computing platform, Azure, out of Washington state last year.</blockquote>
			<p>I suggest that we universally, globally and locally remove any tax on any business activity. That way companies will make even more money and it will mechanically restart the economy while increasing positively the local, state and federal deficits. I suggest that we increase taxes on people because they can't go anywhere and they can't negotiate deals with the county or state or the federal government to make their tax bill more manageable. It will also increase consumer debt which is better for the economy. I propose to raise the sales tax 50% universally. Companies which would no longer pay any tax would have all the money they need to innovate. Of course.</p>
			<p>Note that <a href="http://www.thinkstrategies.com/blog/2010/02/sap-needs-strong-leadership-to-stop-sinking.html">SAP has lost no time in making the world flatter</a> and took matter in its own hands:</p>
			<blockquote>Although Plattner refused to specify the reasons for Apotheker’s resignation, he admitted that the company was facing growing dissatisfaction among customers in response to SAP’s decision to increase its maintenance fees and a recent employee survey also found growing disenchantment among its own staff. He also acknowledged that the cloud computing model poses a significant challenge for SAP’s underlying software architecture.</blockquote>
]]></description>
			<pubDate>02/9/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/html/microsoftpri0/2010946791_statelegislatureconsiderstaxbreakondatacenters.html?syndication=rss</guid>
</item>

<item>
		<title>[Other] Innovation, Microsoft Style</title>
			<link>http://blogs.technet.com/microsoft_blog/archive/2010/02/04/measuring-our-work-by-its-broad-impact.aspx</link>
			<description>
			<![CDATA[
			<p>I am preparing a longer post on innovation, but in the mean time, here are a couple of "official" quotes from Microsoft in response <a href="http://www.nytimes.com/2010/02/04/opinion/04brass.html?ref=opinion">the NY Times column</a>.</p>
<blockquote>At the highest level, we think about innovation in relation to its ability to have a positive impact in the world. For Microsoft, it is not sufficient to simply have a good idea, or a great idea, or even a cool idea. We measure our work by its broad impact.</blockquote>
<blockquote>for a company whose products touch vast numbers of people, what matters is innovation at scale, not just innovation at speed. </blockquote>
<p>Here is the translation in French of Frank Shaw's quote: "As long as we can make a bunch of money on our crap, who cares about what is pushed down the pipe? it is not sufficient to simply have a good idea, or a great idea, or even a cool idea. We measure our work by how much money gets in our bank account."</p>
]]></description>
			<pubDate>02/9/2010</pubDate>
			<guid>http://blogs.technet.com/microsoft_blog/archive/2010/02/04/measuring-our-work-by-its-broad-impact.aspx</guid>
</item>

<item>
		<title>[REST] PUT vs POST</title>
			<link>http://www.ebpml.org/blog/213.htm</link>
			<description>
			<![CDATA[
						<p>My post on <a href="http://www.ebpml.org/blog/30.htm">REST, Processes and Resources</a> 
			is the most read on ebpml, 
			month after month (I am not sure who linked to it). I stand by every word in this post, but I would 
			like to reiterate a truism that apparently even some of the most 
			senior architects and developers seem to ignore. </p>
			  <p>Lots of people who have read about REST would tell you that the 
			  &quot;resource representation&quot; pattern is a great progress in 
			  information system construction, in particular because you can 
			  &quot;PUT&quot; the representation back. That's in line with the DTO pattern that CORBA or 
			  JEE aficionados are/were so accustomed to. Of course, they often 
			  pass on the fact that having a standard &quot;Change Summary&quot; 
			  definition as the resource representation would be a terrific 
			  feature to have, one day the RESTafarians will look around and 
			  discover (Stefan?) that the industry had already solved all these problems 
			  well before they even started to understand them: Microsoft came 
			  out with the DataSet concept around 2003 and later, in 2005, SDO 
			  generalized that concept in both Java <strong>and </strong>.Net world. But 
			  it is so easy to ignore all the work that has been done and start 
			  over. Right.</p>
			  <p>So here the argument goes, REST is great because I can PUT 
			  stuff back. Complete Freedom, they argue. This is what Bill DeHora 
			  stated a while back:</p>
			  <blockquote>
				  <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">
			  	<span class="Apple-style-span" style="color: rgb(103, 112, 90); font-family: verdana, arial, sans-serif; font-size: 11px; line-height: 18px; text-align: justify; ">
			  	So, 
			  in a business process where GET and PUT (and friends) apply to 
			  *all* business entities and are not just per process defined 
			  methods, why can't<span class="Apple-converted-space">&nbsp;</span><strong>I 
			  GET the state</strong><span class="Apple-converted-space">&nbsp;</span>and 
			  have a well-understood formal document returned citing the state 
			  of that entity?<span class="Apple-converted-space">&nbsp;</span><strong>Or 
			  for that matter PUT the updated state to that entity</strong>? 
			  What's the actual&nbsp; limitation induced by applying REST?</span></span></blockquote>
			  <p>
			  For those of you who still believe that PUT is all you'll ever 
			  need, let's look at the physical world: everything is in a &quot;given&quot; 
			  state. From the smallest particle to the heaviest piece of 
			  equipment. Each state has a well defined transitions to other 
			  states. I can't &quot;PUT&quot; a particle in any state I want, I can't PUT 
			  an elevator or a can of soda in any state I want. Actually, state is such a profound 
			  foundation in our universe that it defines &quot;time&quot;. Time only exist 
			  because the universe can never return arbitrarily to a given 
			  state. If that were possible (who would decide which state to go to?), 
			  time would simply not exist. </p>
			  <p>
			  Before you get too bored with metaphysical considerations, let's 
			  go back to information system construction. Information entities 
			  are like physical objects. First, they often represent physical 
			  objects and model their primary &quot;States&quot;, if they are a more 
			  abstract concept, say like a contract, they nearly always have 
			  distinct states which control their lifecycles.</p>
			  <p>
			  The question becomes how do you express the intent of 
			  transitioning from one state to another. I say intent, because, 
			  just like in the physical world THY SHALL NOT PUT STATE directly 
			  into the information entity. Yes there are attributes, say like 
			  the color of a soda can that can change idempotently and then 
			  there are attributes which represent the states of the information 
			  entity which can only be changed by the entity itself. The 
			  business logic that transitions from one state to another must be 
			  owned by the entity. If not? if not, terrible things happen when 
			  you have more than one consumer of that entity, you start 
			  duplicating the state/transition logic in the consumer of that 
			  entity. You get the picture. In the days we built monolithic 
			  systems, there was little value in correctly factoring that kind 
			  of business logic. In the SOA days - and I would argue the 
			  principal reason people fail at SOA - THY SHALL LET THE ENTITY 
			  DECIDE FOR ITSELF whether it can transition from one state to 
			  another. Most people do SOA and actually expose a Data Access 
			  Layer as a bunch of Services. They encourage people CRUDing. 
			  Worse, people like Dave (Microsoft) Chappell would tell you that 
			  the only thing that works is a &quot;data service&quot;, SOA is a failure. I 
			  can safely say that he doesn't understand a thing about SOA. Now, 
			  when the RESTafarian like Stefan, Bill DeHora, Bill Burke, Jim 
			  Webber, ... come to you and encourage you to PUT up with CRUD as a 
			  key success factor for your &quot;SOA&quot;, I smile loudly. </p>
			  <p>
			  Now, people might tell you that PUT can express an intent, why not 
			  (Roy would disagree), they can tell you, but we use POST to encode 
			  all intent. I say why not, as long as the logic to transition from 
			  one state to another resides on the resource side, but have we 
			  gained? Nothing, we have just found another encoding (actually 2, 
			  PUT or POST) and we have lost so much (bi-directional interfaces, 
			  events, orchestration, we have coupled access and identity ...). 
			  So what is the point? What is the point of yet a new encoding? 
			  Browser access, ok, so what, do you need to displace entire 
			  technologies for that? Is that a game? I am amazed, in awe 
			  actually, at how such bogus arguments took hold in our industry, 
			  how little, nice to hear, stories ended up where they are today. 
			  Yet, REST is nowhere, no proof of any massive and successful use 
			  outside the browser. </p>
			  <p>So if you want to use PUT to the attributes that can change 
			  idempotently, great, if you want to use POST for invoking actions 
			  on a resource, even better, but don't tell me you invented 
			  anything. Information systems have been working on these 
			  principles for 8000 years. They didn't need computers, the Web, 
			  Stefan, Steve or Bill to figure that out.</p>
			  <p>The (other) REST is a fraud, and there is nothing clearer 
			  today.</p>
]]></description>
			<pubDate>01/26/2010</pubDate>
			<guid>http://www.ebpml.org/blog/213.htm</guid>
</item>

<item>
		<title>[Other] Apple's most profitable quarter ever</title>
			<link>http://seattletimes.nwsource.com/html/businesstechnology/2010890129_applequarter26.html</link>
			<description>
			<![CDATA[
			<p>You probably know by now that I am not a big "cash" and "Cash equivalent" fan, but still, this is quite a remarkable "performance":</p>
			<blockquote>Apple said Monday it earned $3.4 billion, or $3.67 per share</blockquote>
			<p>It could be the quarter where Apple passes Microsoft. I know they are not exactly in the same business, but still, who would have thought these numbers would ever be possible...?</p>
			]]></description>
			<pubDate>01/25/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/html/businesstechnology/2010890129_applequarter26.html</guid>
</item>

<item>
		<title>[Other] Sunset</title>
			<link>http://blogs.sun.com/jag/entry/so_long_old_friend</link>
			<description>
			<![CDATA[
			<p>Mark Little pointed to this <a href="http://blogs.sun.com/jag/entry/so_long_old_friend">picture</a>. He found it quite sad.</p>
			<p>I wrote back in the summer of 2002:</p>
			<blockquote>"Oracle, IBM and Microsoft [will be] the only total infrastructure providers left (OS/DB/App server/WS/EAI/B2B/... I sure hope that the SUN's disease (react to whatever Microsoft does) is not contagious because this is not how you build a corporate strategy...
			</blockquote>
			<p>This should not be a surprise to anyone. It took Sun 8-10 years to bleed and spend their money to beat the "competition". This is now Microsoft's strategy, "react to Apple and Google's every move". It is easy to know how that will end. Microsoft will not be around in 2020. As soon as Windows and Office cash cows will start to plummet, they'll be gone even faster than Sun. I have nothing against Microsoft, I wish for Seattle, that my prediction would be false, but unfortunately, the recipe is now well known. They are simply unable to establish any competitive advantage both in the consumer and enterprise markets. They actually don't understand these markets. They have been an ISV/OEM company, and even then, if the mobile market is the blueprint of battles to come, they have no idea to compete.</p>
			<p>Just like Sun, Microsoft is a "geeky" company: Geeks write stuff for Geeks. Geeks used to be the vast majority of their customers. Geeks were making the calls to buy their products. Actually at some point, it was the ultimate Geek experience to buy a Sun server or workstation. Eventually, Sun didn't understood to sell to IT. Today, Microsoft doesn't understand IT nor Consumers. Worse, Microsoft leader(s) don't even use their products. They can't demo them either. The day Microsoft will be run by people who actually use the crap they ship to IT or consumers, that day Microsoft will have a chance to come back.</p>		
			]]></description>
			<pubDate>01/23/2010</pubDate>
			<guid>http://blogs.sun.com/jag/entry/so_long_old_friend</guid>
</item>

<item>
		<title>[BPM,MDE] Workflow Foundations</title>
			<link>http://www.infoq.com/news/2010/01/WF-4</link>
			<description>
			<![CDATA[
			<p>I am not sure what is going on in Redmond. Redmond might actually be in a different galaxy altogether. We don't live in the same planet as Microsoft teams, specially when it comes to the mighty CSD, I forgot what they are called now, something like BSD (B stands for Business -no laugh please).</p>
			<p>A few quotes from <a href="http://www.infoq.com/news/2010/01/WF-4">this article on InfoQ and comments</a>:</p>
			<blockquote>First a note on backwards compatibility. There is none.</blockquote>
			<blockquote>A key selling point for Windows Workflow 4 is its integration with Windows Communication Foundation [Just like "Routing", I am glad Microsoft's Enterprise customers can only benefit from that "new" feature... we are only 3-4 years after the first release of the product]</blockquote>
			<blockquote>[Giorgio Galante:]Let's be honest, business users will not be writing their own workflows anytime soon with WW. So what do the consumers (developers) gain from the added complexity, learning curve, etc of using WW rather than just implementing 'workflow' in code? Very little IMO, and a slow runtime to boot (at least in WW3.)

Given the above opinion, an extremely large & complicated application would be the only situation where one should consider using WW. Microsoft's decision to 'reboot' WW and throw out backwards compatibility without much consideration makes it a poor choice from a long term viability perspective. Why tie yourself to a technology that will likely be tossed out in 2 years?

Anyone considering a workflow engine/tool for .NET applications should consider alternative 3rd party solutions first.</blockquote>
			<blockquote>WF4 uses pure XAML to define workflows, which makes them much easier to programmatically generate but also means you lose the ability to leverage Code activities. </blockquote>
			<blockquote>State Machine workflows are not supported in WF4, so anything based on them will have to be redesigned. </blockquote>
			<p>You can look a the programming model <a href="http://msdn.microsoft.com/en-us/library/ee342461.aspx">here.</a></p>
			<p>I would not be surprised that they took away the State Machine capability, just because I claim that's an important capability to have [just kidding]</p>
			<p>Doug, guys in the mighty CSD, this is beyond sadness, there is nothing that can be added. The Mighty CSD has destroyed the Enterprise arm of Microsoft. Who is going to keep buying SQL Server when everything else has to be procured elsewhere?</p>
			<p>Note that the SQL Server division seems just as competent as the mighty CSD (I can already see the synergy playing between the two). <a href="http://www.infoq.com/news/2010/01/SSRS-Incompatible">Visual Studio/SQL Server Reporting Services Continue to be Incompatible</a>.</p>
			<blockquote>This isn’t an oversight, according to Stella Chan this is an intentional design decision.</blockquote>
			<p>My prediction is that Microsoft Enterprise Software will be trimmed down in the next 12-18 months (as Microsoft revenue starts to take a dip) to a basic stack driven by ASP.Net/SharePoint supported where it can by the amazingly powerful tools and runtime engines the Mighty BSD can actually ship in a form other than CTP and minor incompatibilities.</p>
			]]></description>
			<pubDate>01/23/2010</pubDate>
			<guid>http://www.infoq.com/news/2010/01/WF-4</guid>
</item>


<item>
		<title>[MDE] Solution vs Problem Abstractions, Does it Matter? (II)</title>
			<link>http://www.metamaxim.com/pages/news.htm</link>
			<description>
			<![CDATA[
			<p>Following the Udi's discussion on this question, Ashley McNeile provides, I think, a great insight on the question:</p>
			<blockquote>
			<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">
<p>Professor Wil van der Aalst et al. have done some interesting work on 
compiling a catalogue of control flow patterns in workflow, and assessing the 
extent to which different commercial workflow products support (or fail to 
support) different patterns. They have published a paper &quot;Workflow Control 
Patterns&quot; which describes 20 different workflow patterns and analyses the 
ability of 15 commercial workflow products to support these patterns. This paper 
is available from<span class="Apple-converted-space">&nbsp;</span><a class="mainNav" href="http://is.tm.tue.nl/research/patterns/documentation.htm" onmouseover="window.status='Workflow Patterns' ;return true" style="font: normal normal bold 11px/normal helvetica, arial, 'sans serif'; line-height: normal; color: rgb(0, 51, 204); text-decoration: none; " target="_blank">here</a>.</p>
<p>They find that commercial products are uneven in their ability to support the 
full set of patterns. In our view, this is because these products aim for too 
high a level of abstraction in their control flow primitives, potentially 
leading to an explosion in the number of primitives required or gaps where 
patterns are unsupported.</p>
<p>There is a analogous problem in ideographic writing systems: the Kangxi 
Dictionary of chinese characters contains over 47,000 entries compared the 26 
letters of the latin alphabet. The reason that alphabetic approaches achieve 
high expressive power with a small number of primitives is, of course, that they 
support the ability to compose the primitives (letters) to make larger units 
(words). We suggest that the same is true with control flow. The ability to 
compose control flow definitions (as you can with Protocol Machines) means that 
a small number of primitives can be used to model a wide range of control flow 
patterns.</p>
<p>We have successfully described the full set of patterns using Protocol 
Machines. As an example, a model for Pattern 7 (Synchronizing Merge) can be 
downloaded<span class="Apple-converted-space">&nbsp;</span><a class="redNav" href="http://www.metamaxim.com/download/models/WCP_7.zip" onmouseover="window.status='Workflow Pattern 7' ;return true" style="font: normal normal bold 11px/normal helvetica, arial, 'sans serif'; line-height: normal; color: rgb(255, 0, 0); text-decoration: none; ">here</a><span class="Apple-converted-space">&nbsp;</span>(14 
K). This example shows how composition is used to model a complex pattern. 
Please read the PowerPoint file first, for a description of the pattern.</p>
</span></span>
			</blockquote>
			<p>I would add that Problem models tend to look like Kangxi ideograms because they lower the bar for business analysts to express their concepts. So you end up creating a lot of descriptive models that are more or less easy to learn by a given population.
			However, it does not mean that they are effective at representing how the solution is constructed, nor are they particularly effective at creating a complete description of the solution. Problem side semantics are almost by definition incomplete.
			Problem side semantics also tend to hide an efficient set of solution semantics (I don't want to say "the solution semantics" as there could be more than one).
			</p>
			<p>What I am certain is that Problem-side semantics are the wrong direction to define efficient solution construction models. Problem side semantics are important, but they should be focusing on the problem side only.</p>
			
			]]></description>
			<pubDate>01/23/2010</pubDate>
			<guid>http://www.metamaxim.com/pages/news.htm</guid>
</item>

<item>
		<title>[MDE] Protocol Modeling</title>
			<link>http://www.metamaxim.com/download/documents/chor.pdf</link>
			<description>
			<![CDATA[
			<p>Jorge Ubeda pointed me to the work of <a href="http://www.metamaxim.com/download/documents/chor.pdf">Ashley McNeile and Ella Roubtsova</a> on Protocol Modeling. I am still exploring the concept but it looks very interesting in the context of Entity Lifecycle.</p>
			<blockquote>Protocol Modeling (PM) is a technique that aims to combine the strengths
of process algebra, in particular its formal relationship between states and
events and its support for process composition, with the ability to model
data.</blockquote>
			<p>Ashley provides some example where the complexity of defining a Business Entity Lifecycle is greatly reduced by the definition of a Protocol Model instead, which is strictly equivalent.</p>
			<p>Other papers include <a href="http://www.open.ou.nl/elr/ENASE.pdf">"Programming in Protocol"</a>, <a href="http://www.metamaxim.com/download/documents/aom2008.pdf">CSP Parallel Composition of Aspect Models</a></p>
			<p>A complete set of papers can be found <a href="http://www.metamaxim.com/pages/news.htm">here</a>.</p>
			]]></description>
			<pubDate>01/23/2010</pubDate>
			<guid>http://www.metamaxim.com/download/documents/chor.pdf</guid>
</item>

<item>
		<title>[Other] I'll never cease to be amazed...</title>
			<link>http://www.cs.hut.fi/~ctl/3dm/thesis.pdf</link>
			<description>
			<![CDATA[
			<p>...at the power of sharing knowledge. I found this <a href="http://www.cs.hut.fi/~ctl/3dm/thesis.pdf">thesis on metadata management</a> which is a gem.
			I just can't believe scientists accept that their papers (in the Web age) be locked behind "financial walls". What a loss.</p>
			<p>One of the side effect of locking knowledge is the emergence of banana scientists which are more concerned of crafting a story they can sell, without any consideration whatsoever for the science behind it.</p>
			]]></description>
			<pubDate>01/19/2010</pubDate>
			<guid>http://www.cs.hut.fi/~ctl/3dm/thesis.pdf</guid>
</item>

<item>
		<title>[SOA] REST/WOA Tutorial</title>
			<link>http://jim.webber.name/2009/11/20/8eae595a-d1d2-4f4f-87f6-f67280013176.aspx</link>
			<description>
			<![CDATA[
			<p>My good friends Jim, Savas and Ian have published 300 slides of the most insipid tutorial you can find on REST.</p>
			<p>Anyone looking at this amazing tutorial can only conclude that WOA stands for the <b>"WOrst Atrocity"</b> our industry has ever had to deal with. Let's all go back to notepad and hack URIs, HTTP headers and media types.</p>
			<p>On a positive note, they finally understood what is the relationship between a process and a resource lifecycle. I wouldn't expect these "scientists" to actually point that out, but that's better than pushing broken views of this key concept.</p>
			<p>On the convenient ommissions side, they "forgot" to talk about versioning, and the fact that RESTfully introduced a contract definition... contract, contract, contract, I thought REST had no need for a "contract"...</p>
			<p>There is also <a href="http://jim.webber.name/2009/12/03/2f984a12-6a47-4d91-8693-de82b6f890c4.aspx">an interesting discussion about RESTeasy vs RESTfully</a> going on on his site. You obviously see the usual marketing crap about "my framework is better than yours". How about they are both equally "terrible"? They were both made by hackers who understand nothing about information system construction.</p>
			<p>The (other) REST is a fraud and nothing is clearer today.</p>
			]]></description>
			<pubDate>01/18/2010</pubDate>
			<guid>http://jim.webber.name/2009/11/20/8eae595a-d1d2-4f4f-87f6-f67280013176.aspx</guid>
</item>

<item>
		<title>[SOA] William El Kaim's SOA</title>
			<link>http://www.infoq.com/articles/mysoa</link>
			<description>
			<![CDATA[
			<p>William wrote a great article describing the choices he and his colleagues made as they built their SOA. This is real world. The article is free of vendor technobabble, pretty stories, stupid debates like REST vs WS-*... </p>
			<p><a href="http://www.infoq.com/articles/mysoa">enjoy...</a></p>
			]]></description>
			<pubDate>01/18/2010</pubDate>
			<guid>http://www.infoq.com/articles/mysoa</guid>
</item>

<item>
		<title>[EA] Praxeme</title>
			<link>http://friends.praxeme.org/</link>
			<description>
			<![CDATA[
			<p>I really like Praxeme as an EA Framework. Amongst other things, it is modern, service oriented, process centric, model driven and last, but not least, proven, open and public.</p>
			<p>Dominique Vauquier, one of the founders of Praxeme just sent a couple of links:</p>
			<p>You can join the Praxeme Institute as an individual for free (well worth it, if you ask me) <a href="http://friends.praxeme.org/adhesion/">http://friends.praxeme.org/adhesion/</a></p>
			<p>Praxeme is now part of the "Interoperability Recommendations" of the French Government (<a href="http://references.modernisation.gouv.fr/rgi-interoperabilite ">http://references.modernisation.gouv.fr/rgi-interoperabilite </a> - in French)</p>
			]]></description>
			<pubDate>01/17/2010</pubDate>
			<guid>http://friends.praxeme.org/</guid>
</item>

<item>
		<title>[Other] "Just Send your Cash"</title>
			<link>http://www.youtube.com/watch?v=ibMf68i4rz8</link>
			<description>
			<![CDATA[
			<p>I refrained from commenting on involving George W. in the relief effort for Haiti. But I just heard him a couple times today:</p>
			<blockquote>I know a lot of people want to send blankets or water...just send your cash</blockquote>
			<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ibMf68i4rz8&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/ibMf68i4rz8&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object>
			<p>As always, amazing George...</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://www.youtube.com/watch?v=ibMf68i4rz8</guid>
</item>


<item>
		<title>[MDE] Solution vs Problem Abstractions, does it matter? </title>
			<link>http://www.ebpml.org/blog/212.htm</link>
			<description>
			<![CDATA[
        	  
									<p>As Google
			<a href="http://www.infoq.com/articles/google-go-primer">just 
			launched</a> a &quot;new&quot; general purpose programming language (what for?) more and more 
			people are asking about and somewhat demanding better abstractions. 
			The question is should they be
			<a href="http://www.ebpml.org/blog/139.htm">problem or solution side 
			abstractions </a>or possibly both? </p>
			  <p>
			  <a href="http://www.udidahan.com/2010/01/12/non-functional-architectural-woes">
			  Udi recently complained about solution side abstractions</a>:</p>
			  <blockquote>If we want our architecture to be stable, we need to base it on 
			  stable abstractions. The only thing is that there aren&#8217;t any 
			  inherently stable abstractions in the solution domain (as we&#8217;ve 
			  had the chance to witness). That really only leaves one other 
			  place to look for them &#8211; in the problem domain, also known as the 
			  functional requirements.</blockquote>
			  <p>Udi believes that the solution is on the problem side :-):</p>
			  <blockquote>If we could find a way to capture those stable elements and 
			  represent them as core elements in our architectural structure, 
			  and then balance the non-functional requirements within those 
			  functional contexts, maybe, just maybe, our architecture will 
			  stand the test of time.</blockquote>
			  <p>His position is quite ironic as the BPM punditocracy
			  <a href="http://www.brsilver.com/wordpress/2010/01/11/the-beginning-of-the-end-in-bpm/">
			  interprets the current wave of acquisition of the BPM space as a 
			  &quot;the end of BPM&quot; as we know it</a>. This particular rash of BPM 
			  products built their business
			  <a href="http://www.infoq.com/articles/seven-fallacies-of-bpm">on 
			  the fallacy </a>that you could somehow build solutions directly 
			  from &quot;problem-side abstractions&quot;, i.e. BPMN. Ten years later, we 
			  are still waiting for large enterprise deployments where all 
			  business processes are somehow implemented from problem-side 
			  definitions. These vendors have for long claimed victory, this is 
			  somewhat of a Phyrric victory for our industry. 
			  Sincerely, I am glad they are going away. They have taken away 
			  tremendous resources, delivered hardly anything, and prevented the 
			  right solution-side abstractions to emerge.
			  <a href="http://www.bp-3.com/blogs/2009/12/process-trends-from-keith-swenson/">
			  I have had some discussions with Keith and Scott on that topic </a>
			  after Keith detailed the &quot;process trends&quot; he saw unfolding in the 
			  last 20 years.</p>
			  <p>These &quot;process trends&quot; are precisely the problem 
			  you are going to face if you go find your abstractions in the problem space: you will never succeed at converting problem side analysts 
			  that can achieve the level of rigor necessary to build a 
			  solution and because you will adopt their language, you will have 
			  less than optimal abstractions to build the solutions and you'll 
			  end up, like BPM, catering to different groups when the 
			  solution-side is in fact common. The little 
			  known secret of &quot;BPM&quot; is that once you quickly pass the pretty 
			  (process) pictures, when you look under the hood, you see all 
			  kinds of ugly scripting language dropped wherever possible.
			  <a href="http://www.bp-3.com/blogs/2009/12/server-side-javascript/">
			  Scott thinks that JavaScript is the &quot;ideal&quot; complement of BPMN</a>. 
			  Anyone who has written more than 10 lines of JavaScript 
			  understands what I mean, and JavaScript is possibly one of the 
			  better ones I have seen over there. </p>
			  <p>So Udi, I am sorry, but starting on the the problem side has 
			  been tried and it's a mess. Developers will never be able to 
			  design abstractions
			  <a href="http://www.soa-consortium.org/EA2010_Business_Architecture.pdf">
			  that make business analysts comfortable</a>, they need freedom and 
			  fuzziness. They want the solution side to build the solution, not 
			  them. Hence, the problem-side needs a) as fewer abstraction as 
			  possible and b) (what is the most important) whatever runs in 
			  production (once the problem has been solved) must be 
			  &quot;visualizable&quot; by the business analysts. That is the most 
			  important direction: solution-&gt;problem, not the other way around. 
			  So far, the problem-&gt;solution is just a pipe dream, an immense 
			  distraction for our industry and a general failure. </p>
			  <p>There is a more fundamental reason, for why abstractions 
			  (problem or solution side) cannot emerge. If you spend some time exploring Ecore 
			  in EMF (or MOF in UML) and if you look at EMF's M3 layer (i.e.
			  <a href="http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial11final.pdf">
			  Ecore</a>):</p>
			  <a href="http://www.infoq.com/resource/articles/thiede-ruby-modelling">
			  <img src="http://www.infoq.com/resource/articles/thiede-ruby-modelling/en/resources/ecore_simplified_small.png" alt=""/></a>
			  <p>&nbsp;</p>
			  <p>You can see that, the center is the &quot;EClass&quot;. Just like in OMF, 
			  the M3 layer is OO based. OO is the enemy, sorry, I can't find 
			  another word. There is nothing abstract about OO and there is 
			  nothing architectural about OO. OO is a tiny little pattern which 
			  success is out of control. Actually, I am a bit unfair. I teach 
			  mathematics to my kids using UML. So, yes OO, provides a generic 
			  modeling capability to describe systems statically, or static 
			  abstractions. At a certain level, everything is a bag of 
			  attributes with relations to other things. But you can't 
			  efficiently describe dynamic systems in OO, the behavior is an 
			  after thought in Ecore and MOF, well beyond the
			  <a href="http://en.wikipedia.org/wiki/Allegory_of_the_Cave">OO 
			  cave</a>. </p>
			  <p>Udi, look no further for why solution-side 
			  abstractions don't work: static solution-side abstractions are not very common. 
			  Once the modeler realizes that he or she needs behavior, that's 
			  when he or she starts throwing a scripting language into the mix 
			  and everything becomes ugly, impossible to dissociate from the 
			  underlying architecture (the script has to run somewhere, call 
			  some APIs...). Microsoft abuses &quot;code behind&quot; models, for the same 
			  result: once your abstraction is tied into an architecture, you 
			  know what happens next. I have raised this concern with some of the fathers 
			  of MDA but I always a distant glare and no response. I may be 
			  wrong, but IMHO, MDA is built on the wrong foundation, OO. It is 
			  going to be hard for them or for the OMG to change course, but 
			  there has been enough surges in that direction to think the solution 
			  to MDE would be more OO.</p>
			  <p>I like textual-DSLs because they are conducive to modeling 
			  behavior in addition to the abstraction. You tend to create your 
			  own programming language along-side the abstractions. This is why 
			  I was generally excited about SSM and things like MService.&nbsp; 
			  Note that some people understand the problem, some people have shown
			  <a href="http://www.ibm.com/developerworks/library/os-eclipse-emfmetamodel/index.html">
			  how to extend Ecore to model &quot;code&quot; as well</a>. But I think OO 
			  IS-THE problem, abstractions need to exist completely outside the OO 
			  cave. This is why I suggest to adopt a 			  <a href="http://www.infoq.com/articles/mop">Metamodel Oriented 
			  Programming </a>approach.</p>
			  <p>I am certain that the question you raise will be solved in the next 10 
			  years and that the abstractions will be more on the solution side, 
			  completely outside the OO space.</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://www.ebpml.org/blog/212.htm</guid>
</item>
			


<item>
		<title>[Cloud] Did Azure launch?</title>
			<link>http://searchcloudcomputing.techtarget.com/news/article/0,289142,sid201_gci1378887,00.html</link>
			<description>
			<![CDATA[
			<p>The Launch of Azure has been particularly low key. My good friend Steve Ballmer seems to be more keen to talk about "zeu Tablette" than Azure.</p>
			<p>Microsoft has chosen for the most part to deliver a PaaS, i.e. it is not selling server instances. I command them for that. That's very courageous and there are many pieces of Azure that I like: the Service Bus or the Access Control Service, for instance.</p>
			<p>But, the problem with PaaS is versioning. This is even more complex than SalesForce, GAE and the like since each component can be versioned independently. Since the Mighty CSD never understood a thing about Service Orientation, they completely missed what (forwards) versioning meant as well.</p>
			<blockquote>Until now, however, it has kept the operating systems on Azure firmly under wraps, patching and making changes without warning.
			Now, Microsoft says that Azure will proceed with an earlier promise to preserve platform version control for users as it moves into commercial viability.</blockquote>
			<blockquote>Azure users can choose from existing versions by updating their configuration files and preserve their instances from automatic patching, according to the posting.</blockquote>
			<p>Ouch, this is "service orientation" Microsoft style... Service consumers are coupled RESTfully to Service Implementations... What's going to happen when hundreds of patches will be applied to Azure services, not just Windows? How, as a consumer, will they ensure my compatibility with the latest versions of each service?</p>
			<p>Fear no more, .Net 4.0 Routing Service patched with SSM CTP (thank you Doug) is coming to the rescue, boy oh boy.</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://searchcloudcomputing.techtarget.com/news/article/0,289142,sid201_gci1378887,00.html</guid>
</item>

<item>
		<title>[Other] The most amazing thing is that you can try this at home...</title>
			<link>http://www.youtube.com/watch?v=V3KrFV0-WFw</link>
			<description>
			<![CDATA[
			<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/V3KrFV0-WFw&color1=0x6699&color2=0x54abd6&hl=en_US&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/V3KrFV0-WFw&color1=0x6699&color2=0x54abd6&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object>
			<p>The main application is, of course, to fetch warm croissants at the bakery from your bed.</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://www.youtube.com/watch?v=V3KrFV0-WFw</guid>
</item>

<item>
		<title>[Other] Google Chrome Developer Tools</title>
			<link>http://www.chromium.org/devtools/google-chrome-developer-tools-tutorial</link>
			<description>
			<![CDATA[
			<p>I don't know if you have looked at <a href="http://www.chromium.org/devtools/google-chrome-developer-tools-tutorial">Google Chrome Developer Tools</a> lately. If not, they are worth your time.
			I am a fan of Chrome. I have installed all browsers on my laptop and let the selection process happen naturally. Chrome is just easier and faster to use. Just like gmail is the mail client that I prefer. 
			Did I mention that Chrome was free ;-). Google product don't look particularly good, their UX is not really jaw dropping, but I'll bet a dollar that they study very hard the patterns of usage and they optimize them to death.</p>
			<p>So if you have not checked the dev tools recently, I would pick a page, select some content and right-click to "inspect element". Enjoy.</p>
			<p>Note that Chrome is far behind IE or Firefox in ebpml.org stats. Hopefully, you'll give it another look.</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://www.chromium.org/devtools/google-chrome-developer-tools-tutorial</guid>
</item>


<item>
		<title>[Cloud] SaaS: from Freemium to Freepoff</title>
			<link>http://blogs.zdnet.com/SAAS/?p=976</link>
			<description>
			<![CDATA[
			<p>There seems to be quite <a href="http://seattletimes.nwsource.com/html/businesstechnology/2010280189_brier16.html">a bit of backlash on the concept of a "Freemium" business model</a>. Phil Wainewright is the last commentator to complain <a href="http://blogs.zdnet.com/SAAS/?p=976">about it.</a>
			I am not a big fan either. Google is offering lots of stuff for "free" and I use them, but at the same time, Google is single handedly killing the press, world-wide by transferring ad revenues from being content based to search based.
			In a few years, if nothing changes, we could look back and find the Chinese government less lethal to Democracy than Google itself.</p>
			<p>What I find interesting with SaaS and Cloud in general is the emergence (not even the risk) of a new business model, the "freepoff" business model. I have seen it with my own eyes, so this is not just speculative. The "as-a-Service" model is 
			particularly vulnerable to black-mailing customers. Once you spent X man months or man years of work customizing something in the Cloud, the Cloud provider might simply raise its prices well beyond what your business case can tolerate. It might even tell you that if you don't pay, it would go out of business.
			More subtle, and probably a lot more frequent, is the serendipitous difference between a quote and a bill, and the "honest mistake" of the "quoter" which did not "fully understand" the extent the "quotee" would use their service.</p>
			<p>The industry would probably be better off defining a business model charter for as-a-Service activities. Phil provides lots of good reasons for it, ...but I don't really believe that will happen.</p>
			]]></description>
			<pubDate>01/16/2010</pubDate>
			<guid>http://blogs.zdnet.com/SAAS/?p=976</guid>
</item>

<item>
		<title>[Other] The Apps are back, HP style</title>
			<link>http://online.wsj.com/video/worth-it-hp-printer-connects-to-the-web/5DC485CF-889B-410A-A2D0-65988B77E637.html?mod=WSJ_hpp_videocarousel</link>
			<description>
			<![CDATA[
			<p><a href="http://online.wsj.com/video/worth-it-hp-printer-connects-to-the-web/5DC485CF-889B-410A-A2D0-65988B77E637.html?mod=WSJ_hpp_videocarousel">Who needs a browser anymore?</a></p>
		    ]]></description>
			<pubDate>01/06/2010</pubDate>
			<guid>http://online.wsj.com/video/worth-it-hp-printer-connects-to-the-web/5DC485CF-889B-410A-A2D0-65988B77E637.html?mod=WSJ_hpp_videocarousel</guid>
</item>

<item>
		<title>[Other] Tablet, Tablet, Tablette</title>
			<link>http://bits.blogs.nytimes.com/2010/01/05/ahead-of-apple-microsoft-and-hp-to-reveal-slate-pc/</link>
			<description>
			<![CDATA[
			<p>My good friend Steve presented a new Windows Computer, "zeu Tablette"</p>
			<img src="http://beta.images.theglobeandmail.com/archive/00421/microsoft_ballme_421001artw.jpg" alt=""/>
			<p>In a perfect Microsoft tradition, Steve only showed a CTP, i.e. the tablet is not available yet... </p>
			<blockquote>... and possibly available by mid-year</blockquote>
			<p>I heard they plan to synchronize the launch of SQL Server Modeling with the one of the Tablette, ok maybe this is just me speculating. Of course this is a Windows 7 computer and unfortunately they didn't have room for the DVD player. No USB port either, they had to make room for the modem, printer and RS232 ports. So you'll have to download ISO DVD images to install anything you need, of course, after you figure out how to mount them before it reboots due to an unplanned and critical Windows update. The most popular app so far, that's already pre-shipping, is the blue screen of death. A beta user reported:</p>
			<blockquote>The download was instantaneous and the execution flawless. I was able to reboot my computer just fine after the fake memory dump. It felt really good to experience my first blue screen on Microsoft's latest computer.</blockquote>
			<p>Steve also talked about project Natal, a "natural UI", that of course will ship "in a few months". It's going to be really cool to talk to my computer in the middle of the night and wake up the family. I can't wait to replace my TV remote with Natal, I can already picture the kids changing channels... boy oh boy.</p>
			<p>I was telling Doug earlier that I was tired to hear pre-announcements, and what do we get? 80% of what Steve is talking about will be another Zune (means Zombie in technobabble).</p>
		    <p>Steve threw <a href="http://blogs.pcmag.com/miller/2010/01/microsoft_opens_ces_with_slate.php">some numbers as well</a>:</p>
		    <blockquote>He said the company made a lot of progress in search with Bing, which he said now has 11 million new users</blockquote>
		    <p>Gee, impressive, that's what 1% of the "connected" population? How much did they have to pay them to use Bing? I also suspect that the connected population grew by far more than 11 M in the same time laps, so they probably got a whoping 0.2211% market share increase on Google.</p>
		    <blockquote>He said the Zune is getting great reviews</blockquote>
		    <p>Just as many reviews as new customers...</p>
		    <p>I really enjoyed the title of the NY Times article: "Microsoft and H.P. to Reveal Slate PC Ahead of Apple". Yeah, ahead of Apple. Ahead is the new Behind in Redmond. Sad and embarrassing.</p>
		    <p>Actually, I am a bit unfair, PC Magazine found out that Microsoft had already announced a slate in 2002:</p>
		    <blockquote> And of course, we've been seeing Tablet PCs including slate-based designs from Microsoft since 2002.  http://www.pcmag.com/article2/0,2817,265001,00.asp</blockquote>
		    <p>I'll let <a href="http://blogs.zdnet.com/microsoft/?p=4897&tag=nl.e539">Mary Jo Foley conclude this post</a> (I guess I am not the only one tired of Microsoft's Marketing "Strategies"):</p>
		    <blockquote>Maybe Microsoft would be better off just relinquishing the CES keynote kick-off spot. Yes, I know there’s a renewed focus at the company on proving Microsoft has consumer mettle. But if you’re going to back up that claim, you need to bring to CES some things people are actually excited about. Not version 2.0 of MediaRoom (Microsoft’s IPTV software, if you’ve forgotten).</blockquote>
		    <p>Well done, Steve, another great presentation. I am blown away.</p>
		    ]]></description>
			<pubDate>01/06/2010</pubDate>
			<guid>http://bits.blogs.nytimes.com/2010/01/05/ahead-of-apple-microsoft-and-hp-to-reveal-slate-pc/</guid>
</item>

<item>
		<title>[MDE] Clarification on DSL Annotations</title>
			<link>http://www.ibm.com/developerworks/library/os-eclipse-emfmetamodel/index.html</link>
			<description>
			<![CDATA[
			<p>Doug and I exchanged a couple of emails about this topic and other things today. I explained that the reason I made my comments was:</p>
			<blockquote>Annotations in code (C#, Java...) are simply metadata describing concepts that cannot be materialized in pure OO. Annotions are the expression that MDE is the way forward, that you can't patch forever OO for whatever architectural concept is missing. So let me ask you, what is the point of adding "metadata" to "metadata"? Just expand the metamodel, don't create a new concept. If you want to have an annotation representation for some metadata you are free to do so, but don't confuse notation and metamodel.</blockquote>
			<p>Doug responded that this was exactly how SSM worked and that annotations were syntactic not semantic. I'll take his word for it. I have decided that I will never open a Microsoft technology until it ships, I'll come back exploring SSM in detail when it does just that.</p>
			<p>EMF ships and has been doing so for years, so that's where I am spending most of my (free) time these days. I found this <a hre="http://www.ibm.com/developerworks/library/os-eclipse-emfmetamodel/index.html">article</a> on "Metamodeling with EMF: Generating concrete, reusable Java snippets" which I really like. It's a bit crude, but it really proves that MOP is growing.</p>
			]]></description>
			<pubDate>01/06/2010</pubDate>
			<guid>http://www.ibm.com/developerworks/library/os-eclipse-emfmetamodel/index.html</guid>
</item>

<item>
		<title>[BPM] Total Architecture</title>
			<link>http://www.total-architecture.com/indexFiles/Presentations/BPM%20in%20a%20SOA%20Environment.pdf</link>
			<description>
			<![CDATA[
			<p>Tibco's Paul Brown and I have a similar background. He worked at Nasa building "distributed control systems, process control interfaces..." and I worked at Hughes Aircraft building Semiconductor manufacturing systems. So I am not surprised we ended up in the same space. I was a bit excited looking at <a href="http://www.total-architecture.com/indexFiles/Presentations/BPM%20in%20a%20SOA%20Environment.pdf">his presentation on "Total Architecture"</a>, especially because Paul Vincent is a (strong) supporter of Business Entity Lifecycles. But no, sorry Paul, the same Blah, Blah, Blah about SOA, BPM, BPMN, Choreographies, Orchestrations...</p>
			<p>I was also disappointed to read <a href="http://www.infoq.com/articles/Dynamic-SOA-Fiammante">Boris' interview of Marc Fiammante on InfoQ</a>. Here is someone who could speak coherently about SOA and BPM.</p>
			<p>Here are just a few quotes, music to my ears:</p>
			<blockquote>First, I do not consider SOA to be Client/Server or Object-Oriented (OO) on Web Services, but a business contractual approach between two business parties.</blockquote>
			<blockquote>Semantically, a Web Service is just a parametric state transition request on a target resource</blockquote>
			<p>Marc even quotes the work of the OAGIS !</p>
			<p>But, no, that would be too easy, he still thinks that "WS-BPEL is an execution language for processes", (sight) this is hopeless.</p>
			<p>Doug Purdy could learn a thing or two in the routing section:</p>
			<blockquote>With WebSphere Fabric we do store the routing policies in the registry and as a consequence, there is a place for dynamic routing support with registries. We need however to differentiate where the routing decision takes place from where the policy is stored. Usually the endpoints and policies from the registry are cached in the ESB performing the routing, while usually caching efficiency patterns and the routing evaluation is performed in the bus on the fly, and not in the registry which would require a remote interaction.</blockquote>
			]]></description>
			<pubDate>01/05/2010</pubDate>
			<guid>http://www.total-architecture.com/indexFiles/Presentations/BPM%20in%20a%20SOA%20Environment.pdf</guid>
</item>

<item>
		<title>[Cloud] Brier Dudley on the iTablet</title>
			<link>http://seattletimes.nwsource.com/html/technologybrierdudleysblog/2010697102_wsj_apple_tablet_on_sale_in_ma.html</link>
			<description>
			<![CDATA[
			<p>Brier added a summary of <a href="http://seattletimes.nwsource.com/html/technologybrierdudleysblog/2010697102_wsj_apple_tablet_on_sale_in_ma.html">the latest sound bytes on the device</a>. What Mary Joe Foley does not seem to understand the difference between a computer and the device. Microsoft may have pioneered the "tablet", but that never was a device, and that was the problem (booting, battery length, administration...).</p>
			]]></description>
			<pubDate>01/04/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/html/technologybrierdudleysblog/2010697102_wsj_apple_tablet_on_sale_in_ma.html</guid>
</item>

<item>
		<title>[Cloud] The "Techtonic" Shift of 2010: the iTablet</title>
			<link>http://www.ebpml.org/blog/211.htm</link>
			<description>
			<![CDATA[

			<p>I don't know about you, but I feel ripped off. I got the 
			incredible opportunity to live to 2010 and I feel except for a 
			couple things I can only buy technologies that were mostly 
			available 10 years ago. I don't know what Apple will release this 
			month. Some talk about the
			<a href="http://www.youtube.com/watch?v=AdgfpMuB3gM">iTablet</a>, 
			but it will certainly look like an iKindle, a larger iPhone. Whether 
			the geeks like it or not, the computer has become a consumer 
			product, driven by consumers who want to do what consumers expect to 
			do, i.e. they never dream of becoming a sysadmin. The devices of 
			this decade will be designed for humans by humans, not for geeks by 
			geeks. </p>
			<img src="http://digitaldaily.allthingsd.com/files/2009/12/steve_tablet.jpg"/>
			<p>So what will be the characteristics of the devices (not 
				  computers) of this decade?&nbsp; That's quite 
				  easy:</p>
			  <ul>
				  
				  <li>touch, touch, touch</li>
				  <li>apps, apps, apps... hu?... I mean connected apps</li>
				  <li>location, location, location</li>
				  <li>no sysdamin required</li>
			  </ul>

			<p>			  Many of us would feel that this is back from the future, but let's 
			  face it, just compare using a browser based app and an iPhone app. 
			  Not convinced? Do you use Netflix? Just compare browsing Netflix 
			  with a... web browser and Microsoft media center. You get the 
			picture, right?		  
			</p>
			  <p>			  
			  <a href="http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/2677">
			  In 2005, I was making fun of Microsoft's &quot;SaaS&quot; strategy</a>. 
			  Shortly thereafter they changed the course and came out with a &quot;Software+Services&quot; 
			  strategy. Yes, that was the right move, but we all know how well 
		  Microsoft executes strategic moves.		  

</p>
			  <p>			  In this new landscape 
			  devices will be easy to use, loaded with &quot;apps+services&quot;. The 
			  browser is out, whether you like it or not, we are back to the 
			  wonderful idea of multi-platforms. Did I talk about form factor of 
			  an app? Cheap, small, downloadable. The &quot;price&quot; of an app: 
			  $1 or $2 sound reasonable, well suited to a mass market of 
			  hundreds of million of people. Who's going to buy a $60 box, shiny DVDs included,
			  running on an operating system that requires
			  <a href="http://www.bestbuy.com/site/Electronics/Geek-Squad/pcmcat138100050018.c?id=pcmcat138100050018">a Geek Squad 
			  </a>just to keep 
			  running?</p>
			  <p>			  So here we are, at the onset of a tectonic shift 
			  (it has already happened, it will just become visible). 
			  Who's going to win? We know that won't be Microsoft, unfortunately 
			  for Seattle. Successful people at Microsoft are too busy boating 
			  and driving their fancy cars, they never use their own product, 
			  let alone watch how people are using them. Google may 
			  have bet on the wrong horse, the browser may be laid to REST in 
			  this decade. That prediction is easy to make: finger stokes are 
			  not RESTful and JavaScript can't access &quot;local&quot; information 
			  (accelerometers, location...). </p>
			  <p>			  So Steve Jobs may have done it again after the 
			  Apple II, the Mac, the Laser Printer, NeXT, the iFamily is 
			  breaking our industry's mold. Well done Steve. </p>
			  <p>			  If you want to see the future, just look at this
			  <a href="http://morecontrol.com/2009/10/viper-smartstart-iphone-app-starts-your-car-from-anywhere/">
			  app</a>, <a href="http://www.dragonmobileapps.com/">that one too</a>. 
			  Now, look at your browser...</p>

			]]></description>
			<pubDate>01/03/2010</pubDate>
			<guid>http://www.ebpml.org/blog/211.htm</guid>
</item>
<item>
		<title>[Other] Happy 2010 !</title>
			<link>http://seattletimes.nwsource.com/ABPub/2010/01/01/2010657561.jpg</link>
			<description>
			<![CDATA[
			<img src="http://seattletimes.nwsource.com/ABPub/2010/01/01/2010657561.jpg"/>
			]]></description>
			<pubDate>01/01/2010</pubDate>
			<guid>http://seattletimes.nwsource.com/ABPub/2010/01/01/2010657561.jpg</guid>
</item>

<item>
		<title>[Cloud] Lecture from Eric Schmidt at UW on "Information Technology"</title>
			<link>http://www.uwtv.org/asx/uw_cse_persin_1300k.asx</link>
			<description>
			<![CDATA[
			<p>Very impressive <a href="http://www.uwtv.org/asx/uw_cse_persin_1300k.asx">lecture from Google's CEO at the UW Department of Computer Science</a>.</p>
			<p>I found interesting his discussion on the relation between ads and content towards the end. It appears to me that he still doesn't understand that there are three roles: the publisher, the author and the advertizer. For him authors and publishers are the same. I cannot emphasize enough how much a game changer it would be for the press (in the broad sense) if these two roles could be separated.</p>
			<p>I was also quite surprised that he did not talk much about Cloud Computing.</p>
			]]></description>
			<pubDate>12/31/09</pubDate>
			<guid>http://www.uwtv.org/asx/uw_cse_persin_1300k.asx</guid>
</item>

<item>
		<title>[SOA] Microsoft and the Enterprise</title>
			<link>http://www.douglaspurdy.com/2009/12/06/model-driven-content-based-routing/</link>
			<description>
			<![CDATA[
			<p>I must admit that Doug Purdy's blog is full of "gems" and <a href="http://www.douglaspurdy.com/2009/12/06/model-driven-content-based-routing/">provides a vibrant insight on how highly Microsoft thinks of the Enterprise Market</a>. Even the shittiest startup in the country would never dare to write this kind of thing. But hey this is the mighty CSD representing Microsoft in the Enterprise market, what can you expect? Doug (one of the Keynote guests at the last PDC) explains:</p>
			<blockquote>One of the major "new" WCF features in .NET 4 is the Routing Service which is a configurable WCF-based service that supports content-based routing and protocol bridging. </blockquote>
			<p>Oouh..Aaah... I am in awe. Who would have thought that Services in SOA needed to decouple their interface from their implementation? Only Microsoft could come up with such a feature ... in 2010 when the rest of the industry provided it back in 2003. Thank you Doug ! What a beautiful holiday present ! On behalf of all your Enterprise customers, thank you ! Thank you ! This is nirvana.</p>
			<blockquote>For instance, if a company has two different versions of the same service deployed, the client application can call into a central routing service. The routing service can then forward the message to the correct backend service based on information it extracts from the incoming message, such as version number. </blockquote>
			<p>Oouh..Aaah... I am in awe. WCF can actually version services, right now, I mean when WCF 4.0 ships? Wow! Doug, do you even understand how versioning works in SOA? Have you heard of something call forwards compatibility? Are you that ignorant? People that "route" consumers to immutable versions of services quickly end up with 15 versions of each service in production. And then their SOA stall under the weight of regression testing and tricky updates across 15 different code bases.</p>
			<p>Last, but not least...</p>
			<blockquote>Unfortunately, the default routing service is not the easiest to manage or configure.</blockquote>
			<p>Really? Oohh.. You mean that this is something you even have to tell us? Isn't that the basic characteristic of WCF since its inception? Tools? No tools ! the mighty CSD writes software for "real" developers, the vi and emacs kind... sorry... I meant ...the Notepad ones. But Microsoft will spare no effort for the rest of us:</p>
			<blockquote>.NET 4 router configuration is a good modeling candidate [...] The SQL Server Modeling <b>CTP (sic)</b> can be used to create a domain specific language (DSL) that can make the routing configuration of the WCF routing service much simpler. </blockquote>
			<p>Wow... you mean I need SQL server to define a routing map and implement a broken versioning strategy. Gees, the mighty CSD rocks [bottom]. Which enterprise would not want to adopt WCF and SQL Server Modeling "CTP" at once? Who would pass on such an incredible piece of infrastructure which 7 years after its inception is still delivering basic functionality and relies on crutches?</p>
			<p>Add another 10 years and you can be guarantied that WCF 8.5 will support XSLT transformations (stored in SQL Server, of course) and will finally get WSDL-first to work. Just like the BizTalk Server 2009 would have been a great product in 1999, WCF 2019 would start looking decent for the 2005 era.</p>
			]]></description>
			<pubDate>12/30/09</pubDate>
			<guid>http://www.douglaspurdy.com/2009/12/06/model-driven-content-based-routing/</guid>
</item>

<item>
		<title>[Cloud] Multi-Tenancy or MEBAs?</title>
			<link>http://blogs.zdnet.com/SAAS/?p=957</link>
			<description>
			<![CDATA[
			<p>Phil Wainewright is somebody that is hard to disagree with. He actually deeply thinks about what he is writting. However, I found his point on Multi-Tenancy a bit weak. He claims:
			</p><blockquote>Organizations are adopting cloud computing because their customers, suppliers, partners and employees are all doing business and interacting in the cloud already, and multi-tenancy makes no sense except as an enabling component for uncapped connectivity to every other business and resource out there in the public cloud.</blockquote>
			<p>Phil, could it be that you are mixing up two concepts? Multi-Tenancy and Multi-Enterprise Business Applications? What is the value of MT when data is strictly partitioned? It makes sense when resources need to be shared from a cost perspective, but in the case of a MEBA (i.e. when each enterprise is allowed to tap into each other's data) that can be achieved without necessarily MT.</p>
			<p>I would argue if you are deploying some SaaS or PaaS that is entirely built in F/OSS, you are much better off, not trying to add multi-tenancy to the stack. MT is mostly a cost optimizer, MT does not give you a MEBA capability by default. And yes, MEBAs have a lot of business value, far more than Multi-Tenancy.</p>
			]]></description>
			<pubDate>12/28/09</pubDate>
			<guid>http://blogs.zdnet.com/SAAS/?p=957</guid>
</item>

<item>
		<title>[SOA] Kudos to WSO2</title>
			<link>http://pzf.fremantle.org/2009/12/looking-back-on-2009.html</link>
			<description>
			<![CDATA[
			<p>Paul provided <a href="http://pzf.fremantle.org/2009/12/looking-back-on-2009.html">a list of what happened at WSO2 in 2009</a>.</p>
			<blockquote><ul><li>20 major product releases all based on our OSGi framework Carbon
			<li>15 minor releases</li>
			<li>Five new major products</li>
			<li>All our products now available as VMs and AMIs</li>
			<li>...</li>
			</ul></blockquote>
			<p>Guys, you don't have to do the typical vendor dog and poney show. You are clearly better. Happy and prosperous year !</p>
			]]></description>
			<pubDate>12/28/09</pubDate>
			<guid>http://pzf.fremantle.org/2009/12/looking-back-on-2009.html</guid>
</item>

<item>
		<title>[MDE] Barbara Liskov at OOPSLA</title>
			<link>http://www.infoq.com/presentations/liskov-power-of-abstraction</link>
			<description>
			<![CDATA[
			<p>My favorite quote of the presentation (in reference to Functional Programming languages):</p>
			<blockquote>I didn't go with functional languages because I believe the fundamental role of programs is to modify state, not just the bits.</blockquote>
			<p>Barbara talks about the 40 year "Software Crisis". If I may take a stab at it, pretty much every one is look at Polyadic Anemic DSL or Monadic Cogent General Purpose Programming Languages. 
			In 40 years, no one has found a monadic concept that would solve this Software Crisis. I am puzzled at why no one is looking at Polyadic Cogent Programming Models. I like her last sentence of the talk, talking about programming on the Web: "Maybe we can find programming languages where we can programm the whole thing".</p>
			]]></description>
			<pubDate>12/23/09</pubDate>
			<guid>http://www.infoq.com/presentations/liskov-power-of-abstraction</guid>
</item>

<item>
		<title>[MDE] Annotating DSLs</title>
			<link>http://www.douglaspurdy.com/2009/12/04/m-attributesannotations/</link>
			<description>
			<![CDATA[
			<p>I had the strong sense that the Oslo team had no idea about what they were doing. Well, I was wrong, look how innovative they are, this is so ... cool. Even <a href="http://en.wikipedia.org/wiki/Beavis_and_Butt-head">Beavis and Butthead</a> would have never thought of that: </p>
			<blockquote>In the latest CTP you can add attributes/annotations for “M” types, extents, fields, functions.</blockquote>
			<img src="http://www.douglaspurdy.com/wp-content/uploads/attributes.png"/>
			<p>What a brilliant idea, annotating a DSL. Hey a textual DSL looks like code, so why not annotate it?</p>
			<p>Some of you may also have picked up the anemicity of the People service, I am in awe. I mean wow, who would have thought to design the People service that way? Can you imagine, we can now create a service definition in M and it gets stored in SQL Server. I mean, Wow. I bet that one day WCF will even be able to read it back. And, add another 10 years and M will have a WSDL-mode. Wow, I just can't wait. This is so cool.</p>
			<p>What to expect after that? I can't resist to share what I have heard: they are going to come up with is a T-SQL emulation mode for quadrant. Yes, in a few months, soon, I mean when they get a chance, they'll ship yet another CTP that will let you create M files directly from a T-SQL syntax.</p>
			<p>Oslo rocks!</p>
			]]></description>
			<pubDate>12/22/09</pubDate>
			<guid>http://www.douglaspurdy.com/2009/12/04/m-attributesannotations/</guid>
</item>

<item>
		<title>[BPM] IBM Buys Lombardi, So What ?</title>
			<link>http://www.ebpml.org/blog/210.htm</link>
			<description>
			<![CDATA[
			
		<p><a href="http://en.wikipedia.org/wiki/Transactional_analysis">Dr. 
		Berne would probably be amused </a>by the BPM field: all 
		the BPM children want to behave well and explain how IBM (one of 
		the parents) is going to deal with one of the rare grown ups in the field. They all go through excruciating details to explain how all the 
		pieces of the puzzle fit:
		<a href="http://www.column2.com/2009/12/ibm-buying-lombardi-a-bauble-on-their-bpm-christmas-tree/">
		Sandy</a>,
		<a href="http://www.brsilver.com/wordpress/2009/12/16/ibm-buys-lombardi-it-was-bound-to-happen/">
		Bruce</a>,
		<a href="http://jshurwitz.wordpress.com/2009/12/16/why-did-ibm-buy-lombardi/">
		Judith</a>, <a href="http://www.bp-3.com/blogs/2009/12/lombardi-acquired-by-ibm/">Scott</a>... The Golden BlahBlah 
		Award, for sure, goes to <a href="http://blogs.zdnet.com/Gardner/?p=3372">Tony 
		Baer</a>, unconditionally. </p>
			  <p>Some even felt it was time
			  <a href="http://digitaldaily.allthingsd.com/20091216/ibm-gobbles-up-bpm-outfit-lombardi/">
			  to crunch more numbers</a>. You know what is the size of the BPM 
			  market? $3B. Yes, IDC has predicted that 2013 the size of the BPM 
			  market will be $3B. The problem is, that $3B prediction has been a 
			  rolling prediction since at least 2004. Miko, is there a formula 
			  to calculate the growth rate of a rolling target? I think it is 
			  exactly 0.2%.</p>
			  <p>So why did IBM buy Lombardi? The world is holding its breath, 
			  waiting for the answer. Is it because Frank Leymann needed to win 
			  its BPMN to BPEL argument? Maybe. WebSphere Business Modeler 
			  (which first appeared on the market in 1955) needed a face lift? 
			  Hum... how about, BlueWorks sucks? </p>
		  <p><a href="http://www.soacenter.com/?p=204">Not sure, what is certain is that BPM is not going very well</a> at all 
		  and instead of going through the morbid exercise of trying to see 
		  which piece fits with which and which widget will survive the 
		  acquisition, the BPM pundits like Sandy, Bruce or Scott would be 
		  better inspired reflecting on why BPM is so abysmal? Why BPM's target 
		  is 0.2%? No, these people will defend the indefensible:
		  <a href="http://www.infoq.com/articles/seven-fallacies-of-bpm">the 
		  fallacy that you can somehow refine little by little, one layer of metadata 
		  after another from the business analyst to the integration developer.</a>&nbsp;&nbsp; </p>
		  <p>This phase of BPM is over, the acquisition of 
		  Lombardi signals that the last decade has been a complete waste, that 
		  pretty-picture-to-execution does not work, otherwise, I can guarantee 
		  you it would be the other way around, the BPM market would be about $200B 
		  and Lombardi would have bought IBM. BPM, as it was designed an preached by the pundits, 
		  the &quot;experts&quot; 
		  cannot stand on its own. Live with it. Middleware has won, 
		  of course, because ultimately, the value is in the execution 
		  not the notation, and you can't achieve execution without a strong service oriented, 
		  process centric, model driven programming model. Not that IBM and 
		  Oracle are there yet, but they'll get there, make no mistake 
		  (Microsoft shot itself in the foot in that space when it put the 
		  mighty CSD &quot;in charge&quot; of solving that problem).</p>
			  <p>The question today is not, which pieces will go where, the 
			  question is going to be how can you influence these vendors to the 
			  right thing? In the end, they care about doing the right thing. 
			  Make no mistake. They are just poorly advised: BPEL is not a 
			  technology that plays directly at the business process level and 
			  no you should not attempt to reduce BPMN &quot;isomorphically&quot; to BPEL, 
			  at home, in the lab, at the OMG or anywhere else. </p>
			  <p>&nbsp;Allow me to reiterate what I wrote in the &quot;Seven 
			  Fallacies of Business Process Execution&quot; article. The business, hence IT, hence IBM 
			  and Oracle, care about 4 things:</p>
			  <blockquote><ul>
				  <li>Build solutions rapidly with projects as small as possible 
				  (rely on many iterations)</li>
				  <li>Change solutions rapidly and support an iterative lean six 
				  sigma approach</li>
				  <li>Be able to visualize the business design in operation at 
				  the present time without complex &#8220;current-state&#8221; projects</li>
				  <li>Be able to gain operational intelligence from the current 
				  business design without complex measurement projects</li>
			  </ul></blockquote>
			  <p>In other words, Michael, the business cares about agility and 
			  visibility. Who said that the business cares about having a 
			  business-process-model-notation-to-execution engine? Who said you 
			  cannot meet these core requirements without a business-process-model-notation-to-execution engine? Ismael, Assaf, thank you for setting BPM on such a 
		  wonderful course, you guys deserve an industry award for such a service. 
		  Architecture and standards do matter, in case you have not noticed. </p>
			  <p>The business rarely cares when changes are implemented in two 
			  minutes or two days. Two days is a great first step ! The business 
			  doesn't really care if one person or two will be translating their 
			  business problem into a working solution. Who said the business 
			  wanted to eradicate IT? The problem 
			  you see is that in 2010, in the enterprise, you can't deploy 
			  anything of value in less than 3 months with a team smaller than 
			  10 people -if you are lucky. This is 
			  a great improvement from the early 90s, where projects were 
			  commonly 2-3 years and 100 people, but it is not enough. We need more, especially 
			  on the visibility side.</p>
			  <p>So as long as the Bruces, Sandys and Scotts of the world will 
			  insist on the corny idea of &quot;executable notation&quot;, as long as the 
			  the Michaels and the Franks of the world will tell you &quot;we have a 
			  solution, slap a notation on BPEL, isomorphically map BPMN to 
			  BPEL&quot;, as long as that will happen, we will be in this vortex. 
			  Guys don't you think that trying for 10 years with the &quot;best&quot; 
			  minds of this world, PhDs, Professors, Hackers... is not the proof 
			  that it does not work? Don't you think that it is time to try 
			  something else? With the foundation that we have learned, of course. Don't throw 
			  away BPEL, don't throw away BPMN, just find a different 
			  articulation. How hard can that be? It's Win-Win all the way.</p>
			  <p>The vast irony of this story is that my 			  <a href="http://www.ebpml.org/ebpml2.2.doc">2002 articles</a> are 
			  still referenced in BPMN 2.0. Somebody must like me very much to 
			  keep giving me this honor despite all that I write, but the only 
			  thing I care about is that their content be understood and that 
			  the articulation between BPMN and BPEL be designed per my 
			  recommendations.</p>
			  <p>The only path to move forward is to:</p>
			  <p>a) Give up on the pretty-picture-to-execution path for now, I 
			  don't know if it will be possible in the future, but give it up 
			  now, today, not tomorrow, don't create executable BPMN or a BPEL 
			  notation, don't, don't, don't.</p>
			  <p>b) Introduce the concept of business entities and business 
			  entity lifecycles both at the engine level and articulated with 
			  BPMN and design a service oriented, process centric, model driven 
			  programming model. BPEL at it's core is fine, someone might find 
			  something better one day, but let's start with it today.</p>
			  <p>Most of the theoretical work has been done by
			  <a href="http://wwwahler.ch/ksenia/">Ksenia Whaler</a>  at IBM 
			  Zurich Research Lab. The notation is here and it is good, the 
			  engine is built and humming. It is shovel ready. </p>
	]]></description>
			<pubDate>12/19/09</pubDate>
			<guid>http://www.ebpml.org/blog/210.htm</guid>
</item>

<item>
		<title>[Other] Keith Olbermann on Health Care Bill</title>
			<link>http://www.msnbc.msn.com/id/3036677/vp/34455431#34455431</link>
			<description>
			<![CDATA[
			<p><a href="http://www.msnbc.msn.com/id/3036677/vp/34455431#34455431">That's worth watching</a>.</p>
			<object width="420" height="245" id="msnbc6aa838"><param name="movie" value="http://www.msnbc.msn.com/id/32545640" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"><param name="FlashVars" value="launch=34455431&width=420&height=245"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="wmode" value="opaque" /><embed name="msnbc6aa838" src="http://www.msnbc.msn.com/id/32545640" width="420" height="245" FlashVars="launch=34455431&width=420&height=245" allowscriptaccess="always" allowFullScreen="true" wmode="opaque" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object><p style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color: #999; margin-top: 5px; background: transparent; text-align: center; width: 420px;">Visit msnbc.com for <a style="text-decoration:none !important; border-bottom: 1px dotted #999 !important; font-weight:normal !important; height: 13px; color:#5799DB !important;" href="http://www.msnbc.msn.com">breaking news</a>, <a href="http://www.msnbc.msn.com/id/3032507" style="text-decoration:none !important; border-bottom: 1px dotted #999 !important; font-weight:normal !important; height: 13px; color:#5799DB !important;">world news</a>, and <a href="http://www.msnbc.msn.com/id/3032072" style="text-decoration:none !important; border-bottom: 1px dotted #999 !important; font-weight:normal !important; height: 13px; color:#5799DB !important;">news about the economy</a></p>
			]]></description>
			<pubDate>12/18/09</pubDate>
			<guid>http://www.msnbc.msn.com/id/3036677/vp/34455431#34455431	</guid>
</item>

<item>
		<title>[Other] iPhone Growth Rate per Country</title>
			<link>http://brainstormtech.blogs.fortune.cnn.com/2009/12/18/where-in-the-world-are-apples-78-million-handsets/</link>
			<description>
			<![CDATA[
				<p>Yes, the first tick on the scale starts at 100%</p>
				<img src="http://fortunebrainstormtech.files.wordpress.com/2009/12/screen-shot-2009-12-18-at-5-37-13-am.png"/>
			]]></description>
			<pubDate>12/18/09</pubDate>
			<guid>http://brainstormtech.blogs.fortune.cnn.com/2009/12/18/where-in-the-world-are-apples-78-million-handsets/</guid>
</item>




    </channel>
</rss>


