The Generic Web Service From Hell


This week I stumbled upon a pretty serious WTF while reading the specs of the B2B web service of a major european hardware retailer.

We've all already seen an utterly complex SOAP API coming with diarrheal XML schemas and all the compatibility issues one may experience when using different stacks.
Now it looks like someone addressed the strong typing complaint about SOAP in quite an extreme fashion.

The published API consists of a single method, let's call it the MotherOfAllMethods. It has the following signature:

String MotherOfAllMethods(String sessionId, String xmlString)

The second parameter is a complete XML document, using an undocumented custom schema (no DTD, XSD or RELAX in sight, only examples are provided). So Yes, technically speaking, what we are dealing with here is actually XML over XML over HTTP.

Did I mention the function also returns a string which contains an XML document?

Hold on tight, the best is yet to come. Although the API may have only one generic method, the web service actually has several functions. It appears it was slightly too difficult to dispatch the service to the right handler when parsing the content of the xmlString so every function has its own URL... with it's very own WSDL, all describing the same MotherOfAllMethods. I highly doubt that design choice was made to make the whole thing a bit more RESTful...

That means that a different SOAP client proxy has to be built for every function supported by the one method API. Brilliant.

Can you imagine that whoever designed that has SOAP in his/her resume?
Scary stuff.

Obie puts the SemWeb on Rails


Interesting stuff : ontologies, the Rails way.

My own private daily WTF : struts4php


From the clueless wannabes department :

"struts4php is an application framework for PHP which is designed with the MVC pattern. It is the link between the persistence layer and the presentation layer of your application. The idea behind struts4php comes from the already known project Apache Struts. The usage of struts4php is very similar to the Struts of the Apache project. For developers who already know the Apache Struts it's very easy to learn how to use struts4php. "

Holy crap, they did it... Let me highlight some of the core features of this brilliant port :

  • The framework will happily parse a bloated and redundant XML configuration file for each and every page request so you don't have to restart your application server...
  • The central piece of this enterprise grade framework is the aptly named ActionBanana "controller component" (they probably meant "dispatcher component" but let's give up on nitpicking)
  • It relies on the Smarty templating engine (oh, I thought PHP already was an embedded language)
  • Yes, the completely useless ActionForms are there too. Thanks to struts4php, You'll be able to use the sacred word "Bean" when talking of your PHP project with that Java developer sitting next door that you secretly wish you were.
  • Last but not least : "struts4php is designed for PHP4 and so it does not make use of the new object oriented features of PHP5.". Sounds fair enough for a full object-oriented framework... who needs exceptions anyway...

I just don't get it... who has enough time on his hands to write a port of the worst web framework ever made while completely ignoring the features of the target platform (ie the sandbox-based architecture of PHP)?
And they're so proud of it that they bought a f*cking domain name for it!

It's high time people stop aiming at the Java-way when trying to design or build "serious" software unless they really want to shoot themselves in both feet.

Creating an SVG Wiki


Creating an SVG Wiki.

Keynote's XML Connections


More Keynote and XML fun!

Developer Opportunities Using Keynote and APXL


Great article from the ADC about Keynote's XML-based file format and how to create your own slides with the DOM API. Can you imagine for a second how simpler life would be if the industry leading "productivity" suite had such an open file format?

Private RSS Feeds


Steven Garrity has some interesting thoughts about private RSS feeds.

CDuce


Not so long ago, I was complaining about the lack of an AWK-like language for XML... Here comes CDuce, a modern, typed, functional programming language adapted to the manipulation of XML documents. In CDuce, XML elements and DTDs are part of the core language. I wish I had more spare time to dive a little deeper in it and experiment...

Metadata Programming in Adenine


Adenine is a LISP flavored Python-like language for manipulating RDF. XML lacks a quick-n-dirty scripting environment just like what AWK does for text.

XML Patterns


A pretty neat repository of XML patterns.

Keynote XML file structure


Let's dig in the Keynote XML file format...

Older posts: 1 2 3