« Netgear and Skype, And Now The Mobile Industry Is Under Threat | Main | Open Source ESB for Mac OS X »

RSS For SOA Services Registry

During the Christmas period I was looking into the RSS standard(s) and came up with an idea for using RSS that may save corporations a lot of money.

Today there are really two fundamental ways to connect to a Web service. Either you bootstrap the consumer with the services WSDL file or you use a UDDI registry to lookup a service.

Before I go any further I want to point out that I am not against UDDI. I am not trying to replace UDDI. UDDI is the right and standard approach for discovering Web services. In fact I think that my idea can compliment UDDI - more on that later.

The problem for some people is that UDDI is a substantial investment in terms of licensing, programming to the APIs, and perhaps hosting. When I say some people I mean organizations that have only a a few services. UDDI seems like a lot of infrastructure for basically looking up a Web service. And if I don't want to bootstrap what other alternative do I have?

Well I thought why not use RSS as a place to syndicate Web services in a "simple" way. I found this site useful in describing RSS and it's various "flavors". RSS stands for Really Simple Syndication and is used by news web sites and bloggers to create feeds. Basically RSS has a channel that contains items. These items have, among other things, a title, a description, and a link. Usually the link is an HTML link to the news or blog content. However why can't that link be to a WSDL?

I Googled to see if anyone else had described doing this but I couldn't find any references to using RSS as a Web services registry - a kind of Really Simple Syndication of Services (or RS3). I did see mention of some uses of RSS around Web services (similar to other ideas I had when looking into this) but nothing about using it as a services registry. Not even from the REST community.

Last night I downloaded Celtix, an open source ESB and RSSLib4J and RSS feed parser for Java. I wrote a simple class that wrapped the RSSLib4J APIs in order to use them for a name lookup for a WSDL from the feed.

A friend of mine Barry O'Mahony was over with me. Barry has been helping me with the IP Babble web site. Barry set up an RSS feed on IP Babble that pointed to a WSDL that was also loaded on ipbabble.com. The WSDL was directly from Celtix's simple "Hello World" sample - unmodified.

Both the service consumer and provider were to run on my Powerbook G4 laptop. I modified the Hello World client to use my new RSSSRegistry class and passed in the IP Babble based RSS feed URL to the client. I searched for the Hello World service title in the item title field and returned the WSDL link to the celtix client. Celtix took care of the rest.

It worked! Beautifully.

Obviously this is just a POC and I'd like to add some features, even to the demo. E.g. validating that the feed is a services feed rather than a news or blog feed. That's why it might be useful in defining RSSS or RS3 where some standard definitions are used to make this more useful. But we must make sure we keep the Really Simple part. And for Celtix it would be much better that it's a plugin that gets configured with the feed URL rather than the client having to program to the APIs.

So there are lots of questions about the use of this technique, e.g. what about security or other governance issues? Though posting to a feed has some security built in, i.e. not anyone can post to news feeds or blog feeds, that's not really the point. If you are thinking about serious governance issues then you need to look at UDDI. This is not for you. If you want a quick, simple, standards based approach to Web service lookup then RSS can be useful. Remember too that many ESB products build in some security, routing, transaction etc. information into the WSDL (see Artix ).

In fact rather than just being an alternative to using UDDI, RSS could be very useful for UDDI users. A UDDI implementation with an RSS plug-in can populate some of its metadata from such RSS feeds! RS3 feeds themselves would be syndicated providing a larger structure than the current 15 item limit of RSS - (which is soft limit for the most part).

Anyway, I'll be posting my demo to the Celtix web site either today or over the weekend. The demo will be in the samples/hello_world_RSS directory. It's not in the current (milestone 3) download but will be.

Thanks again to Barry O'Mahony for his help. And thanks too to Mark Rogers for inspiring me by mentioning RSS around a different area of Web services.

TrackBack

TrackBack URL for this entry:
http://www.ipbabble.com/blog/mt-tb.cgi/26

Listed below are links to weblogs that reference RSS For SOA Services Registry:

» Really Simple WSDL Discovery from Eric Newcomer's Weblog
My colleague William Henry may be onto something with his idea for using RSS as a WSDL discovery mechanism, without the overhead of a UDDI-based solution. I can easily imagine StrikeIron and XMethods and others adding RSS feeds that include pointers to... [Read More]

» RSS as a SOA Registry from Haute Techno
Just read over at IP Babble about using RSS to register and syndicate services. William seems to be mainly talking about using some form of ESB, namely Celtix, however it struck me that this could easily be achieved with PHP... [Read More]

» Open Source ESB for Mac OS X from IP Babble
I wasn't explicit it my last post because I didn't want to detract from my main topic of RSS for WSDL discovery. But you should have noticed that I performed this demo on my Apple Powerbook. So I thought I'd... [Read More]

» RSS Demo Code from IP Babble
It seems that my RSS For SOA Services Registry post from one week ago has generated a lot of interest. My weblog has experienced a massive increase in traffic. And people have been looking for the code.... [Read More]

» Celtix Milestone 4 Available - RSS for Services Demo included from IP Babble
Celtix, the open source ESB, milestone 4 is ready and available for download. Press release available here. Included in this drop are several new demos documented here. Included are: An Intalio integration demoRSS as a Web services RegistryAn ActiveBPE... [Read More]

» SOA Adoption: Think Big, Start Slow, Scale Fast from IP Babble
At IONA's Sales Kick-off event in January this year I heard a phrase that I instantly liked. The phrase aligns exactly to what I think about SOA Adoption: Think Big, Start Slow and Scale Fast. No doubt this is probably... [Read More]

» SOA Adoption: Think Big, Start Slow, Scale Fast from IP Babble
At IONA's Sales Kick-off event in January this year I heard a phrase that I instantly liked. The phrase aligns exactly to what I think about SOA Adoption: Think Big, Start Slow and Scale Fast. No doubt this is probably... [Read More]

» SOA Leadership? from IP Babble
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... [Read More]

» Soa from Soa
Reuse is golden, in that a service component needs to be only designed and built once (but tested often and beSOA Web S... [Read More]

» UDDI's Slow Adoption and Ad Hoc Approaches to a Services Registry from IP Babble
I wrote a blog entry back in January about using RSS as a cheap way to do a services registry. I'm told by one source that as a result several hundred downloads of Celtix were generated in the first week... [Read More]

Comments

Xmethods has this kind of access from a long time ago. You can check it here: http://www.xmethods.net/ve2/Interfaces.po;jsessionid=4kq0X2ccL0iLYnw_f3dGxUIG(QHyMHiRM)#rss

But, instead of syndicating WSDLs, it syndicates uuid (and descriptions also), which has more sense.
Btw, it provides other interfaces also: http://www.xmethods.net/ve2/Interfaces.po;jsessionid=4kq0X2ccL0iLYnw_f3dGxUIG(QHyMHiRM)

Hi Pablo,

Thanks for the comment. Good for Xmethods!

Yes it is similar in concept, i.e. using RSS for services. But not the same because of Xmethods use of UUIDs as you point.

I favor the straight forward and, correct me if I'm wrong, more standard (if I can say that in this context) approach of syndicating the WSDLs. It seems more straight forward.

Thank you for pointing this out.

Anne Thomas Manes from Burton Group pointed out this link from James Snell:

http://www-128.ibm.com/developerworks/library/ws-atomwas/

James is also advocating the use of RSS as a mechanism for
discovering Web services.

The main differences I can see in our article approaches:

1. James is demonstrating how to generate the feed specifically for
J2EE hosted Web services. I am demonstrating how to consume the feed
and then invoke a Web service (not J2EE specific)

2. James combines WS-Addressing with the solution.

3. A not so important difference is that James uses Atom in his feed.

So the articles are complementary.

In a later post I'll include some of the code snippets from my demo.

Thanks Anne.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Who is IP Babble?

William Henry IP Babble is the personal blog of William Henry. I have over 16 years experience in software development and distributed computing and hold a M.Sc from Dublin City University. I'm currently a Technical Director and Enterprise Architect at IONA Technologies Inc. This weblog is mine personally and is in no way funded by IONA. I will try to post independent views but understand that most likely I have a bias based on the influence of working with standards based middleware for about a decade. (See disclaimer below)

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.