01/05/09 :: [SOA] Great News, Application Architecture is now Stable (at least at Microsoft) [permalink]
Who knew that we would see such a glorious day? I could not believe my eyes. J.D. Meier runs an interesting blog. You can sense that the chap spends a lot of time thinking. So, I opened his application architecture guide vintage 2.008. (J.D. is apparently the lead on this wonderful document).
Here is the v2.008
In 6 long years, this picture has not changed. Wow ! Houston, the eagle has landed.
Yet, this architectural guide is full of "modernism" (actually structuralist post-modernism): for instance, it speaks about REST at length, yet REST has absolutely no impact on the logical view of the application model... nice ! Why do we even bother? Hum... I am actually not sure people at Microsoft are teaching RESTful principles and RESTfulness in a way that the rest of the industry would consider RESTful (Dare, are you ok with that?). So, I am certain the RESTafarians are going to love Microsoft's Architectural definition of REST:
REST is based on HTTP, which means that it works very much like a Web application, so you can take advantage of HTTP support for non-XML MIME types or streaming content from a service request.
REST works ... very much like a Web application (specially the ones you build with ASP.Net). Ah, ah, ah. I don't think I had laughed as much in a long time.
The whole document is actually hilarious. This one is not bad either:
The main difference between these two styles [REST and SOAP] is how the service state machine is maintained. Don’t think of the service state machine as the application or session state; instead, think of it as the different states that an application passes through during its lifetime.
HATEOAS is about application "lifetime" states. Wow. So much to learn, so little time.
I am wondering if Doug Purdy agrees with that one:
SOAP is much better suited for implementing a Remote Procedure Call (RPC) interface between layers of an application.
There is better. Who knew REST could "provide" anything you need?
The WS-* standards, which can be utilized in SOAP, provide a standard and therefore interoperable method of dealing with common messaging issues such as security, transactions, addressing, and reliability. REST can also provide the same type of functionality, but you must create a custom mechanism because few agreed-upon standards currently exist for these areas.
I love the "you must create a custom mechanism". The more custom, the more chances it could become an agreed-upon standard.
I left the best for the end:
The most common misconception about REST is that it is only useful for Create, Read, Update, and Delete (CRUD) operations against a resource. However, REST can be used with any service that can be represented as a state machine. In other words, as long as you can break a service down into distinguishable states, such as “retrieved” and “updated,” you can convert those states into actions and demonstrate how each state can lead to one or more states.
You mean "retrieved" is an "application lifetime state"?
At Microsoft, in the CSD, you can convert "states" in "actions" (they actually finally found a use for the Alchemy project). Unless they have the same linguistic problems at Microsoft and JBoss. I think they cheated on jBPM's documentation. Now that I think about it, they also forgot the "created" and "deleted" lifetime states, that would make a new acronym that we never heard before: CRUDed.
See, guys, even REST is not going to resist this phenomenon. Ted Neward was right on the money. Let's give J.D. and his team a lollypop of appreciation for such innovative contributions to REST (sorry no gold star due to financial crisis).
I don't know what to say anymore, our industry has become a junk yard where nothing matters. As Dave Chappell told me once, you are wasting your career, the truth is whatever Microsoft (or XXX) says it is (He consults for Microsoft all the time). Yes, I still can't understand how can a company this caliber let this fly? What's the purpose? kill REST by uneducating the masses? Don Box's team screw up a couple of annotations, so the whole world has to be uneducated? is it really 2009? Are we in America?
Microsot is sure good at shipping: Ship, Ship, Ship, Shipped ... surely the guide was.
Subbu and I live less than a mile away from each other, I'll suggest next time I see him that we create the "Dead Architect Society". We could arrange weekly meetings at the Ale House and talk about the good old days of architecture, while sipping an IPA or two. Software Architecture does not exist any longer. At least, I can't hear a pulse anymore.

.gif)