Skip to content


RESTFul services registry

Today my team started a new Sprint, with several very interesting technical stories. We are progressively migrating an architecture that uses EJB 2.1 for client-server communication and also for transaction control. Our new architecture uses RESTFul services (currently with Jersey 0.7) for communication and Spring + Ibatis underneath.

One of the main issues with the old architecture is the tight coupling between the server and the clients. The way it was designed, our server platform is limited by the oldest client’s platform.  To have more flexibility and loose coupling between server and clients, we decided to have an XML contract in the communication.

In this Sprint we must finish the implementation of a Java client to be distributed to the client applications. We have some optimization and refactoring tasks for this Sprint, and one of them includes a RESTFul registry. We don’t want the clients to have our URIs configured via properties files. This approach limits our flexibility to manage URIs, so a different approach is desirable.

Our client will access a repository to ASK FOR the URI corresponding to a given service AND version. That means: the client willing to access the login service will ask the repository for the URI of this service, in the client’s version. The client could ask for /repository/login/v2.0 and then receive back the URI http://login.globo.com/login/v2.0.

We could have several different versions of the same services, each of them with different contracts. Introducing the repository as an extra layer of indirection, we also have the flexibility to take down several server machines for a while and even update URIs if desired (although that’s unlikely).

I checked Mule Galaxy and WSO2 Registry, but unfortunately they don’t give me what I need. They’re both open source registries, but they index SOAP services and some other things, but not RESTFul URIs. They offer a REST API to interact with their registries (unlike UDDI, which uses SOAP), but don’t index RESTFul URIs at this moment.

After this analysis of both, i decided to implement my own RESTFul registry. It shouldn’t be too sofisticated for this first release, but since it’s a frequent need in my team, I’m probably going to take some off-time to develop a nice registry that might be useful for a wider range of applications. My goal with this post is to gather some requirements for this registry and also its client. Features that would be useful for other people too.

The initial set of requirements that I wanna deliver in this Sprint is:

  • Must have a RESTFul API to search for services
  • Should be possible to browse published services with a web browser (even IE, if you call it a browser)
  • Ajax clients should be able to access the registry easily
  • Java client must run on JDK 1.4 and above
  • Java client should require as few libraries as possible
  • Registry should access the database through a JDBC datasource
  • Offer an authenticated user interface to publish the services (probably with Java EE authentication)

An extra list of desirable features (not for this Sprint) is:

  • Import service URIs from WADL document
  • Allow database access without a JDBC datasource
  • Show history of modifications in the registry
  • Registry should be distributed as .war
  • Offer other ways of authentication

Well, that’s the first ideas that come to my mind. My intention is to implement a nice registry and offer it for everyone to use it. If you think of some other features that would be nice in the registry, please let me know. The idea of this post is to be an asynchronous brainstorm, so please help! :)

Posted in design, java, open source.

Tagged with , , , , , , , , , , , .


8 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Glen Daniels says

    Hi Bruno!

    I’m Glen Daniels, Director of Java Platforms at WSO2 – noticed your post, and had a few quick comments.

    First off, we’ve had several discussions within WSO2 about how to make the Registry directly support URLs. Although we don’t have any special tooling for this, you can do it now by either using text/plain documents or coming up with your own media type. If you go this route, you’ll just get back a URL as follows:

    request – GET /wso2registry/resources/someURL

    response – “http://whatever.is.stored/here”

    We’ve also talked about being able to store a URL in such a way that a GET of the Registry URL will redirect your browser to the stored URL – we’ve got a number of potential uses for that sort of thing.

    The other important point I’d like to make is that our Registry is very much a true open source project. All the code is Apache-licensed (hence usable without encumbrance), and we would be delighted if you felt like swinging by registry-dev@wso2.com to comment or better yet, help us make it better! We don’t want to dissuade you from doing your own thing (let many flowers bloom!) but it sounds to me like we’re already pretty far down the road you’re about to travel, and we might be able to get there faster together.

    Thanks,
    –Glen

  2. Phillip Calçado "Shoes" says

    I’m not sure if I understood your problem.

    First I question the very registry itself. If I have to know the resource I want by its name (“/repository/login/v2.0″) I can’t really think of any big benefit in adding just some intermediate step to get to the resource. As the client already knows an Id to the service it wants, I would prefer it to know where to find it. Changing URIs in RESTful architectures is a big deal in spite of using a Registry or not so I would expect those to not change that often. When that happens it wouldn’t be a problem to return an HTTP 301 to tell the new location to the clients. I think that would be enough for most cases I’ve ever faced.

    That said, I understand that sometimes functional or nonfunctional (i.e. sysadmins) requirements make it hard to not have a centralised point that knows all services in the ecosystem. In this case I would recommend that instead of going for a specialised solution you apply the same RESTful principle. In the end your Registry is just a RESTful webservice that manages a catalogue of other webservices. It’s probably a very simple CRUD-like implementation.

    cheers

  3. blpsilva says

    Hi Phillip, you’re right about the simplicity. Our requirements are not complicated, and something CRUD-like will do it just fine.

    However, we find interesting to have this intermediate step, because it’ll make easier for us to update and migrate stuff. The client would know the registry URI to ask stuff and some very basic information like the name of the service and the client’s version. The registry would answer with the URI of the service and possibly some configuration parameters that we want to update on the client (we will provide the client for all Java applications).

    At first glance it may seem that putting the registry in the middle is not necessary, but our current architecture (Java contract with EJBs) has a very tough problem with old client applications that are no longer maintained.

    Introducing the registry and the service versioning will give us flexibility to keep avaiable several different versions of the same service. The older applications can keep using their legacy versions. The newer applications can update their services as needed. With our legacy Java client this was not possible in a clean way, and this is a much desired feature.

    Well, that’s about it. I appreaciate your feedback, and will surely consider these discussions to decide the best way to design our architecture.

    Regards,

    Bruno

  4. cartoon porn videos says

    I like it so much, Best free lesbian porn videos [url=http://www.gravatar.com/freelesbianpornvides#1]Best free lesbian porn videos[/url], 9777,

  5. All about free shemale porn says

    Beautiful site, free porn site [url=http://www.gravatar.com/freepornsitee#1]free porn site[/url], znxc,

  6. Paula Hannon says

    Hi Bruno, did you get your RESTful APIs registered in the WS02 registry in the end? Regards, Paula

  7. paris hilton sex tape here says

    Your Site Is Great!, http://parishiltonsextaped.webs.com/ paris hilton sex tape, :P ,

Continuing the Discussion

  1. Bruno Pereira » Blog Archive » RESTFul Registry update linked to this post on 23/09/2008

    [...] as I said recently, we want to use a registry to keep URIs of our services and also some configurations that are [...]



Some HTML is OK

or, reply to this post via trackback.



  • Buy Cheap what is xanax Now Free Viagra Pills! Drugs, Health And Beauty.
  • Buy Cheapest viagra order Now Pharmacy At The Best Price! Best Drugstore.
  • Buy Cheap without prescription tramadol Online Guaranteed Shipping. Pharmacy Store.
  • Buy Cheap order verapamil Online Best Internet. Internet Prices For order verapamil!
  • Buy Cheapest phentermine 30 mg Now Cheap Online Pharmacy. Best Drugstore.
  • Buy Cheapest diet pill that works Now Best Drugstore. Internet Prices For diet pill that works!
  • Buy Cheapest best buy viagra Online Low Prices. Online Prices For best buy viagra!
  • Buy Cheapest what do xanax look like Now Discount Pharmacy Online. Best Internet.
  • Buy Cheapest cialis maximum dose Now 24/Online Pharmacy. Best Drugstore.
  • Buy Cheap trimethoprim sulfamethoxazole Now Free Viagra Pills! Internet Prices For trimethoprim sulfamethoxazole!
  • Buy Cheap viagra erection duration Now 24/Online Pharmacy. Top Online Pharmacy.
  • Buy Cheapest cialis for women Now Best Drugstore. No Prescription Needed.
  • Buy Cheap valium for sale Now No Prescription Needed. 24/Online Pharmacy.
  • Buy Cheapest levitra drugs Online Cheap Pharmacy Online. Best Drugstore.
  • Buy Cheapest purchase phentermine without prescription Online Discount Drugs At Best Online Drugstore.
  • Buy Cheapest fda approved weight loss Now Buy Medications Online. Free Viagra Pills!
  • Buy Cheap medications on line Online The Largest Internet Pharmacy. Low Prices.
  • Buy Cheap lexapro benefits Now No Prescription Needed. Free Viagra Pills!
  • Buy Cheapest 37.5 phentermine online Online Best Prices. Internet Prices For 37.5 phentermine online!
  • Buy Cheap us pharmacy no prescription ambien Now Discount Pharmacy Online. Guaranteed Shipping.
  • Buy Cheapest norvasc buy Online Discount Online Pharmacy. Best Prices.
  • Buy Cheapest valium 10 Now 24/Online Pharmacy. Guaranteed Shipping.
  • Buy Cheapest buy tramadol without prescription Now Low Prices. Pharmacy At The Best Price!
  • Buy Cheap buy pain pills Online Best Internet. Drugs, Health And Beauty.
  • Buy Cheap ambien us pharmacy Now Best Online. Internet Prices For ambien us pharmacy!
  • Buy Cheapest prescription depression Now Low Prices. Discount Online Pharmacy.
  • Buy Cheapest cheap viagra soft tablet Now Cheap Prescription Drugs. Best Drugstore.
  • lorazepam dosages Online Without Prescription Low Prices. Best Internet.
  • cialis tadalafil information page Online Without Prescription WorldWide Shipping. Best Prices.
  • Buy Cheap over the counter viagra Now Online Prices For over the counter viagra! Best Drugstore.
  • Buy Cheap what does xanax look like Now Best Internet. Top Online Pharmacy Supplier.
  • Buy Cheap overnight acne treatment Online Pharmacy Store. Cheap Pharmacy Online.
  • Buy Cheap list of pain medications Online Pharmacy Store. Online Prices For list of pain medications!
  • Buying Cheap generic viagra cheap. Worldwide Rx, Good Prices. WorldWide Shipping.
  • Buying Cheap mebendazole tablets. Offshore Rx, Good Prices. Guaranteed Shipping.
  • Buy Cheap strongest otc pain reliever available Online Best Online. No Prescription Needed.
  • Buy Cheap medical discount international drug Now Guaranteed Shipping. Cheap Prescription Drugs.
  • Buy Cheapest phentermine lowest prices Now Best Online. Discount Online Pharmacy.
  • Buy Cheap phentermine with no rx Online Best Drugstore. Discount Online Pharmacy.
  • Buy Cheap cialis 5mg Online Prescription Drugs And Generic Medications.
  • Buy Cheap use of viagra Now Low Prices. Drug Store Without A Prescription.
  • Buy Cheap vitamin information Online Cheap Prescription Drugs. Best Internet.
  • Buy Cheapest cheap viagra pill Now Online Medical Shop. Cheap Online Pharmacy.
  • Buy Cheapest diazepam medication Online Pharmacy At The Best Price! Low Prices.
  • Buy Cheapest symptoms of xanax withdrawal Online Free Viagra Pills! Online Medical Shop.
  • Buy Cheap ultram rx Now 24/Online Pharmacy. Free Viagra Pills!
  • Buy Cheap treatment of arthritis Online Order Cheap Meds Without Rx. Best Online.
  • Buy Cheap online ativan Online Top Online Pharmacy. Best Drugstore.
  • order tramadol online Online Without Prescription Cheap Meds Without Prescription.
  • Buy Cheap drug sarafem Online Cheap Pharmacy Online. Pharmacy Store.
  • Buy Cheapest viagra substitute Now Buy Medications Online. WorldWide Shipping.
  • Buy Cheap order norvasc Online Online Medical Shop. WorldWide Shipping.
  • Buy Cheapest mexican rx cialis low price Now Special Prices For mexican rx cialis low price! Pharmacy Store.
  • Buy klonopin clonazepam Without Prescription Doctor. Best Internet. Low Prices.
  • Buy Cheap ultram pregnancy Now Cheap Pharmacy Online. Online Medical Shop.
  • Buy Cheapest prescription acne Now Best Drugstore. Buy Medications Online.
  • Buy Cheapest tadalafil generika Online Low Prices. Internet Prices For tadalafil generika!
  • Buy Cheapest cialis online consultation Online Top Online Pharmacy. Best Prices.
  • Buy Cheap obesity pill Online Discount Online Pharmacy. Best Prices.
  • Buy Cheap buy a weight loss program Now Best Prices. 100% Satisfaction Guaranteed.
  • Buy Cheapest dose diflucan Online Best Online. Guaranteed Shipping.
  • Buy Cheap elite pharmacy Online Top Online Pharmacy Supplier. Low Prices.
  • Buy Cheapest buy medication online fast Online Discount Online Pharmacy. Best Internet.
  • prescription weight loss medication Online Without Prescription Free Viagra Pills! Low Prices.
  • Buy Cheapest cheap diazepam site Now No Prescription Needed. Best Drugstore.
  • Buy Cheap using cialis professional Now Low Prices. No Prescription Needed For Drugs.
  • Buy Cheap free ambien Online Low Prices. The Largest Internet Pharmacy.
  • Buy Cheapest sexual impotence Online Discount Pharmacy Online. Best Internet.
  • how to get pain medicine Online Without Prescription WorldWide Shipping. Best Prices.
  • Buy Cheap canada cialis Now The Largest Internet Pharmacy. Best Internet.
  • Buy Cheap viagra and blood pressure meds Now Low Prices. Safe And Secure Payment System.
  • Buy Cheapest tramadol 50 mg tablets Now Cheap Prescription Drugs. Low Prices.
  • Buy Cheapest valtrex commercials Now Special Prices For valtrex commercials! Pharmacy Store.
  • Buy Cheap treatment of roundworms Online Low Prices. 100% Satisfaction Guaranteed.
  • Buy Cheap hair loss online stop Online Cheap Prescription Drugs. Best Online.
  • Buy Cheap top fat burners Now Pharmacy Store. Discount Online Pharmacy.
  • weight loss prescription arizona Online Without Prescription Best Prices. Pharmacy Store.
  • Buy Cheap online tramadol pharmacy Now Discount Pharmacy Online. Top Online Pharmacy.
  • Buy Cheap levitra results Online Free Viagra Pills! Cheap Online Pharmacy.
  • Buy Cheapest appetite control pills Now No Prescription Needed. Free Viagra Pills!
  • Buy buspar information Online Without Prescription. Pharmacy Store. Low Prices.
  • Buy Cheapest discount generic medications Online Pharmacy Store. Cheap Online Pharmacy.
  • Buy Cheap ambien long term use Online Special Prices For ambien long term use! Best Prices.
  • Buy Cheap chinese viagra Online Best Drugstore. No Prescription Needed.
  • Buy Cheap generic pharmacy Online Discount Online Pharmacy. Best Internet.
  • Buy Cheapest non prescription diuretic Now Guaranteed Shipping. WorldWide Shipping.
  • Buy Cheapest buy anti obesity drugs Now Drugs, Health And Beauty. Best Internet.
  • Buy Cheap levitra onlines Online Best Prices. The Largest Internet Pharmacy.
  • Buy Cheapest viagra cialis levitra comparison Online Best Drugstore. Cheap Online Pharmacy.
  • Buy Cheapest usa pharmacy Now Best Prices. Discount Pharmacy Online.
  • Buy Cheapest free trial viagra Now The Largest Internet Pharmacy. Best Prices.
  • Buy Cheap online propecia prescription Online Best Internet. No Prescription Needed.
  • Buy Cheapest buying pain medication online Now Cheap Pharmacy Online. Top Online Pharmacy.
  • Buy Cheapest online tramadol pharmacy Online 24/Online Pharmacy. Best Prices.
  • Buy Cheapest ambien purchase Now Best Drugstore. Drugs, Health And Beauty.
  • Buy Cheap what burns body fat Now 24/Internet)(safe Pharmacy. Best Prices.
  • Buying Cheapest weight loss products for women. Mexican Rx, Good Prices. Free Viagra Pills!
  • Buy Cheapest pinworms medication Online Online Medical Shop. WorldWide Shipping.
  • Buy Cheapest generic compazine Online Best Online. Discount Online Pharmacy.
  • Buy Cheap without prescription tramadol Now Online Medical Shop. Online Prices For without prescription tramadol!