March 2006 Archives

I've been discussing internet radio with a friend of mine Barry. We think it's the next big thing or at least one of them. It's big now but it's only going to get bigger. I read today in the WSJ today and interesting article by Walter Mossberg (The Mossberg Solution) about internet radio. Unfortunately I only have a print subscription and not an on-line subscription. So I can't provide the link.

[Later: found the story here]

In the article Mossberg describes a new device by Roku LLC called SoundBridge Radio. This device is a WiFi enabled radio with built in speakers etc. So you don't have to plug it into a receiver or speakers like other devices in this market.

Why will this deal a blow to satellite radio? Well I don't think this device will do it but I think it's a sign of things to come. Again I get back to WiMAX. When WiMAX becomes more ubiquitous then for most people devices like the SoundBridge Radio will become more appealing, because of cost. Basically it will be free. Like AM and FM today. And those satellite subscriptions will need to come down or go away to compete.

Of course a WiMAX version of this device won't work when you're driving most of I-70 through Kansas but for commuting in a metro area and bringing into your office and home it will work just great.

And of course developing and delivering content will become a lot more interesting too. (Consider the recent rise in popularity of PodCasts). It won't be just the current radio providers that will have on-line radio channels. Who knows maybe an IPBabble broadcast would be a fun experiment.

SOA Leadership?

| No Comments | No TrackBacks

Annrai (when they're larger than life you don't need to use last names) has written an interesting State of the Cape Clear Nation address in his recent blog entry.

And Ciaran McHale takes him to task about a few things in the comments. I won't add anything to Ciaran's comment.

What is interesting about this post is that the ideas expressed in my RSS For SOA Services Registry post in January seems to be working its way into a commercial product! That's pretty cool.

The more and more I look into the whole governance space and talk to people about UDDI the more I think that this RSS idea is a good one. I'll have to put more effort into developing this further.

I've been arRESTed!

| No Comments | No TrackBacks

Yes apparently my babble is causing unREST.

Mark Baker thinks I speak rubbish in my Poor Service Semantics post.

But Mark is just shifting around where the semantics of what your doing is. That's all. All this RESTing has him confused. ;-)

Look when you get down to it everything (in this service world) is just a string coming over the wire. Web services, REST, CORBA etc. are just arguing where the unwrapping of the string occurs.

Take CORBA for example. When you look down into it there is basically one operation called a Request that puts a big blob of data (a document?) on the wire. At some point the data gets unwrapped and examined and a dispatch to piece of coded logic (the business) occurs. So is CORBA RESTful?? Is the Request just really a PUT in disguise?? ;-)

Either you have one location and you put and the semantics of what your doing (the operation) in the document - e.g. orderItem. Or there is a different URL location for each operation. So either the document semantically tells you what you want to do (and you still need to dispatch to the right code) or else each location only performs one operation and you only send the data there. Actually the former sounds very like CORBA ironically. I.e the CORBA dispatcher sends the data to the right location of the business logic. ... But then so does the later. Wow CORBA is definitely not supposed to be RESTful but sounds like it. (I'm being factitious) The reason can you look at it both ways is that again at some point you need to dispatch a piece of data to a specific piece of code and at that point it becomes very "tightly coupled" no matter what the technology. Is a RESTful internet just a big ORB? Well I'm sure many of the REST folks would just say so.

I get back to my point. Everyone is getting bent out of shape about this and really it's just a matter of where the big string of data gets unwrapped and who wants to do the unwrapping. But when you do pick a particular technology to do your unwrapping then you take advantage of the capabilities of that technology. And in CORBA a runIT (in String blob) where there is a dozens of business functions hidden in the string, is definitely not taking advantage of the underlying infrastructure and a waste of money.

The big issue not whether a PUT or orderItem is better. That depends on the technology being used. If REST provides a great framework for maintaining, tracking, documenting etc. the real location and semantics of the operation then I think it's great. I can definitely see where REST makes a lot of sense. There is a LOT of waste and misunderstanding in other technologies. (There is a whole lot of complication in CORBA that I thought made it inaccessible to many developers and would drive anyone to a more RESTful state of mind).

Imagine if the anchor tag of a hyperlink didn't allow you to specify any source. Imagine if it had an implicit "GET" as the source. So on ay web page the only semantic you had was "GET" as the link to the underlying href. Hyperlinks would be rather boring and not very well documented. And that's my point the semantics need not only be there for the operation but also for understanding the way the business works. Where the semantics are depends on the technology used and how rich it lets you document those semantics.

I'm looking forward to understanding more about how that works in REST. Perhaps it's just brilliant. Remember I was the one advocating using RSS feeds as a service lookup repository instead of UDDI a few months back. Boy it doesn't take long to fall from grace.

Though I've seen my share of badly formed "everything is a string" type interfaces like:

String runIt (in String stuff); // I saw this in someones IDL once :-(

or with more specific CORBA types in the interface:

AnySeq dotIt (in AnySeq stuff);   // Where AnySeq was a sequence of CORBA Anys
 

The problem with these is that the semantics are lost as to what the business actually is doing. Then you have to look at various pieces of implementation code to find out ALL the different things that this interface is. THIS IS BAD!!! Moreover you've just wasted money on technology - in this example CORBA. Why? Because now you have to essentially do all the marshaling of data in and out of the strings or Anys. Something that CORBA was designed to solve for you by giving you the type mappings. (Anys had their place ... allegedly ;-) Similarly if your Web service merely had a String parameter instead of some XML structure or data types you couldn't take advantage of all the marshaling capabilities of modern Web service enabling technology.

Some advocate a much more granular interface operation. E.g. having a specific interface operation for every product in your store! But this is neither practical or useful.

void buyItem (ProductCode, Quantity);

is much more sensible than:

void buyCheese( Quantity ); // I've seen something similar suggested

Consider an on-line retailer. You can be sure that there is not a placeItemTypeInCart for every subcategory of ItemType - i.e. placeNovelBookInCart or placeGardenHoseInCart etc. It would be completely impractical writing code (even generating code), maintaining code and documenting such an interface. Every time a business partner brings more products to your "store" you need to write more code.

This is the problem with taking some of the OO type concepts into the SOA world. We saw this and the earlier everything-is-a-string type approaches in CORBA and other technologies. Successful CORBA based application implementations are more than likely SOA based. You cannot and should not, as much as possible, let your implementation influence your SOA design. Now sometimes it does because perhaps you're not starting from scratch and you are dealing with production code (aka legacy). Extra layers of abstraction might be required to make a legacy application more service oriented.

Who is IPBabble

William Henry IP Babble is the personal blog of William Henry.

William has 20 years experience in software development and distributed computing and holds a M.Sc from Dublin City University. He is currently working in the office of CTO at Red Hat on the MRG product. This weblog is not funded by Red Hat.

Posts are intended to express independent points of view, but understand that there is probably a bias based on the influence of working with standards based middleware for over a decade. (See disclaimer below)

February 2009

Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

Disclaimer

The views expressed in this blog are solely the personal views of the author and DO NOT represent the views of his employer or any third party.

About this Archive

This page is an archive of entries from March 2006 listed from newest to oldest.

February 2006 is the previous archive.

April 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.