Friday, February 22, 2008

Separation of Concerns - the IDE angle

So, you might have thought it reasonable to avoid getting stuck in the XML swamps of the Server-side Web Frameworks, and instead separate the client in your system to run entirely in the browser.

You might even have chosen a client library framework (like Dojo) to do so. Still, that is only half of the solution, since even with the best client side framework, it must have a server to play with (even though that server does not generate content as such).

Theres also the IDE factor to consider. You'll probably be using Java on your server. You probably must, since you're actually designing a new web access 'portal' for an existing system. How could I guess?

I recently ran across the WaveMaker IDE. Those guys were called ActiveGrid before, but recently changed the name of the company. *** As you might remember, ActiveGrid was the company that donated the worlds best Grid component to the Dojo foundation when the bought the company Turbo Ajax, who were its makers. ***

****UPDATE 2008-03-31**** : Dylan Schiemann of Sitepen and the Dojo foundation have corrected me in this issue. Naturally it was
SitePen, Mozilla Foundation, Nexaweb Technologies, Redfin, & SnapLogic that last fall jointly bought TurboGrid from the TurboAjax group.

I don't really know what to say in my defense, sadly enough. I remember that I read several articles on the subject and how I could come up with my first take on this subject, and how I could get it this wrong is completely incredible. Very sorry about this!!
**** UPDATE ****

The WaveMaker IDE has a number of very good features, listed in no particular order;

1) It is Web-based
2) It runs on its own Tomcat-server with a massive supporting act (the download is ~90MB!)
3) It's fully open-source under the GPL.
4) It uses Dojo 1.0 components, so you create your page(s) visually.
5) Complex components like Tree or (above mentioned) Grid can be connected to services on the server
6) You can create services inside the IDE; WSDL, Database Queries or custom Java code.
7) It generates generic WAR archives, for crying out loud!

There are a couple of other web-based IDEs out there which I quite like.

TIBCO is one, but it can only use WSDL services, and lives only in the browser. And most of the others want either to host your solutions at their remote server farm somewhere, or possibly sell you a nice vendor lock-in solution that will hurt good in a couple of years.

So WaveMaker really has guts to actually deliver what's needed for the .. I don't think customer is the right word, since it's free, but there you go :) But what I meant to say is that most companies focus on how to make sure that they secure their own position first, and then loosen that a bit here and there to make the proposition tastier for the customer. This is almost the other way around.

Full disclosure before I go any further: I do some contract work for WaveMaker. However, I really like their approach and would not have taken up the work otherwise.

But to sum it up - To be able to approach the ideal of "Thin Server" or Separation of Concerns properly, you need to have support on the server-side as well. I'm not sure you really need IDE support as well. I've kind of given up on Eclipse (not counting using the Aptana plugins for JavaScript work - of course).

What I mean with support on the server-side is tools or inherently capable systems that result in a proper RESTive service foundation that can be accessed by the client.

WaveMaker supports not only the addition of existing services into the client for consumption, but lets you create them, and gives you a more cleanly separated server-side even if you choose other venues later on, which is even better.

Another option is of course to use a server-side technology that is a RESTive foundation to build upon from scratch - such as Apache Sling, for example :)

Now that I think of it, why not have both [Another late night warning klaxxon].. ? Hmm...

No comments: