Platinum Solutions Corporate Website


XML

Excited about REST Web Services

This weekend I attended the "No Fluff Just Stuff" Software Symposium and had the good fortune of catching Scott Davis teach a session on "Real World Web Services." Scott is a terrific speaker and if you ever get the chance to listen to him, I highly recommend it - he is very entertaining and easy to listen to.

As noted by the title of this blog entry, I left the session very excited about an alternative style for constructing web services referred to as REST (stands for Representational State Transfer). The reason I'm excited is simple - I'm frustrated by the complexities of SOAP! Now, if you're thinking 'why is this guy frustrated? Building web services with SOAP is easy' let me burst your bubble: it isn't easy. Is it impossible? Of course not; is it complicated? Yes. I've recently been working on a project that utilizes SOAP based web services and I can tell you from personal experience it's not easy. Just to give you some background on myself, I am a Sun Certified Java Web Services Developer and it's still not easy. Consider this excerpt from the installation instructions for the Axis framework (a very popular web service framework):

Code Generation: Living The Dream

You know the dream: write a configuration file, push a button and voila: a beautiful software application is born. Your work as developer is reduced to just those bits that make your system different from the rest, and all the monotonous bits are automatically generated for you. It’s a wonderful dream, but is it realistic? Does it really work? Read on for my experiences on this topic.

In my current project I have the privilege of working on a code generation framework. Our code generation framework uses a custom-built core engine that essentially marshalls an Object Model XML file into a Java Object and allows “Visitor Classes” to “visit” the Object Model Java Object to produce code artifacts (using the Visitor pattern). The actual production of code occurs by applying XSL templates to XML that is a subset of the great Object Model XML file. XSL templates can be designed and developed to produce most any kind of artifact.