(link) [del.icio.us/distobj]
(link) [del.icio.us/distobj]
(link) [del.icio.us/distobj]
![](http://www.markbaker.ca/images/slot.jpg)
William Henry wrote a little piece called Poor Service Semantics where he criticizes uses of CORBA IDL that offer operations like “runIt” or “doIt”. He writes;
The problem with these is that the semantics are lost as to what the business actually is doing.
Rubbish! “what the business actually is doing” is determined by the implementation of the service. Do you want clients of your services to have dependencies upon those implementations? I thought not. We have a name for that practice, “tight coupling”.
submitPizzaOrder() tells you less about what the business is doing than submitPepperoniPizzaOrder(), but is it somehow less of business semantic as a result? No, of course not, it’s just more general. Likewise, submitOrder() is more general still, and submit() yet more general again … so general in fact that it can’t be generalized any further (i.e. it’s uniform).
doIt, runIt, submit, processMessage, or POST; whatever you want to call your “process this document” semantic, it’s most definitely a business operation, just a highly reusable one.
Tags: soa, rest, mest, webservices.
(link) [del.icio.us/distobj]
(link) [del.icio.us/distobj]
(link) [del.icio.us/distobj]
Tres cool demo from Microsoft, as described on Ray Ozzie’s blog;
But each site is still in many ways like a standalone application. Data inside of one site is contained within a silo. Sure, we can cut and paste text string fragments from here to there, but the excitement on the web these days is all about “structured data” such as Contacts and Profiles, Events and Calendars, and Shopping Carts and Receipts, etc. And in most cases, the structured form of this data, which could be externalized as an XML item or a microformat, generally isn’t. It’s trapped inside the page, relegated to a pretty rendering. So, where’s the clipboard of the web?
If you take a look at what gets put in your clipboard on a “copy/cut” action, you see this;
<?xml version="1.0" encoding="utf-8" ?><liveClipboard version="1.0" xmlns:lc="http://www.microsoft.com/schemas/live"><lc:format type="hCard"> %3Cdiv%20class%3D%22vcard%22%3E%3Cdiv%20class%3D%22n%22%3E%3C span%20class%3D%22given-name%22%3EMatt%3C/span%3E%20%3Cspan%20 class%3D%22family-name%22%3EAugustine%3C/span%3E%3C/div%3E%3Ca%20 class%3D%22email%22%20href%3D%22matta@microsoft.com%22 %3Ematta@microsoft.com%3C/a%3E%3Cdiv%20class%3D%22tel%22%3E%3C span%20class%3D%22value%22%3E425%20707%207716%3C/span%3E %3C/div%3E%3Cdiv%20class%3D%22adr%22%3E%3Cspan%20class%3D %22type%22%3EWork%3C/span%3E%3A%3Cdiv%20class%3D%22street-address%22 %3E1%20Microsoft%20Way%3C/div%3E%3Cspan%20class%3D%22locality%22 %3ERedmond%3C/span%3E%20%3Cspan%20class%3D%22region%22%3EWA%3C /span%3E%20%3Cspan%20class%3D%22postal-code%22%3E98052%3C/span %3E%20%3Cabbr%20class%3D%22type%22%20title%3D%22dom%22%3EUSA%3C /abbr%3E%3C/div%3E%3C/div%3E </lc:format></liveClipboard>
I wonder what purpose is served by the proprietary XML wrapper? The “type” doesn’t need to be specified. I suppose the relevant value of the HTML profile should be imported if present, but that could also be done by prepending the relevant snippet from the HEAD, no?
Tags: microformats