Ajax vs. SOA

While surfing the web, I happened to find a blog entry by Dion Hinchcliffe, containing some interesting observations on the conflict between Ajax and SOA, related to my recent discussion with Dag König. The most interesting part is the enumeration at the end of the post, under the heading "SOA Implications".

Ha, Dion’s blog is the first one I’ve seen that looks like a OneNote notebook! That’s cool. Well, reasonably cool, at least.

Comments on Ajax versus SOA and Smart Clients

For those of you who know Swedish, there’s some interesting discussion (post 1, post 2, with comments) at Dag König’s blog, related to my previous two posts (post 1, post 2) about Ajax versus Smart Clients. For those who don’t, here’s a summary from my perspective:

In his first post, Dag says that the internal email sent by Bill Gates recently fits very well into the SOA view of developing software.

Then, I comment on this, stating that the Web 2.0 way of developing applications rather focuses on  more "lightweight" technologies (since SOA development is usually viewed as more "heavyweight"), and Microsoft "turning ship" could instead mean that they are  turning away from their SOA focus (they won’t skip it, I’m sure). But I say that probably Microsoft will probably win this battle anyway, due to their effort on Smart Clients: those will be needed to make use of the Web 2.0 services when we’re not online (that still happens, and will happen to many people, occasionally during the coming few years).

Dag replies in a second post that when the Web 2.0 services will be used for more important services, we’ll see that more of a SOA view (and associated technologies) will be necessary (several Web 2.0 services are publishing external APIs). And that Microsoft will get to show its advantages (they’ve invested a lot into SOA) when that time comes. In addition, it’s possible to be online more and more of the time, so the importance of offline clients decreases. But nevertheless, there are technologies that bridge the two worlds: click-once and Java applets.

My comment to that post is that I agree that when for example digital identity management will be required for those services, we’ll probably see more heavyweight protocols being used. But there’s no immediate pressure for using SOA at the moment. And that those bridging technologies are actually the smart clients (where Microsoft will get its payback, as commented in my previous post).

End of discussion, so far. Looking forward to more discussions of this kind! 🙂

Ajax and Smart Clients

We’ll soon be having an interesting conflict between the recent Ajax hype on one hand, and the trend of "smart clients", which includes "offline capability" in its tenets, on the other hand. I found myself complaining today about the otherwise nice task list application "Remember the Milk", which is Ajax based, and thus available online only. Well, I was on the train, and the GPRS connectivity was very bad. And I wanted to administrate my tasks. Well, luckily, I’ve got OneNote as a spare. But after this experience, I’ll be looking for a task list application which is usable offline as well. I’ll let you know what I find (I hope it won’t be Outlook…). Ajax clients are definitely not smart, and it’s hard to see what we could do, architecturally, to make them smarter.

Architecture Astronauts and Web 2.0

Joel Spolsky is so very annoyed by the Web 2.0 term:

The term Web 2.0 particularly bugs me. It’s not a real concept. It has
no meaning. It’s a big, vague, nebulous cloud of pure architectural
nothingness.

I wonder if the problem comes when we attribute something "architectural" to it. I don’t think it is. As some kind of "visionary fluffy concept", it can certainly have some meaning. I have no problem with that, such concepts can be OK for what they are. But the architecture astronauts will most certainly use it for their purposes; I guess that’s when we’ll all be annoyed.

RSS for Subscribing to Anything

Nick Bradbury writes about "reading list subscriptions", basically subscribing to OPML files. A great idea. But why stop there? Couldn’t we just subscribe to anything on a standardized XML format, by inserting into an RSS feed items conforming to a specific XML schema? I’m most certainly overlooking some technical complications here, in particular, that we would stop keeping things simple. But anyway, by inserting more and more stuff into RSS feeds (we’d like to subscribe to anything, wouldn’t we?) we will finally reach a point where such a generalization is inevitable, I believe.

AJAX and GUI Responsiveness

I’ve always been thinking that web GUI applications are terribly stone-ageish, compared to their rich-client counterparts. But with the advent of AJAX and Web 2.0, we’ve actually gotten something that’s better than what we get in traditional GUIs: GUI responsiveness. In order to make an ordinary GUI responsive, we have to let user actions spawn actions in separate threads, which cannot directly update the GUI, since typically, GUI APIs don’t allow updates performed in anything but the main thread. So, lazy programmers always skip making some of those operations asynchronous, and the GUI won’t be very responsive as a result.
But web GUIs always respond to clicks (well, as far as the browser GUI is responsive; that’s not always the case, just watch Internet Explorer), so the web application GUI itself will be responsive whether the developer of it wants or not. So the developers are forced to address this, on the server. But no longer does the problem of updating the GUI in a single thread exist, since the browser and server are separated over the network.
It is possible to build response rich-client GUIs, but too few people are actually doing it.

Update (same day): The responsiveness has always been there in web applications, of course, regardless of whether AJAX has been used or not, but not until now, web GUIs have reached a standard where they can favourably be compared to traditional desktop GUIs.

Delicious

I’m finally getting the hang of using the "Delicious" service. At first, I didn’t get it. I tried it for a while, and now I believe I’m stuck.
The basic idea is that you use the service to collect your bookmarks, by tagging them with one-word tags. Then you can find them again by "searching by tag". You don’t store them in folders. It’s a little like storing bookmarks the way Gmail stores your mail.
Now comes the point: all tags that you’ve set will be seen by others! So, together with all other users, you’ll be "tagging" the internet, and using this, you can subscribe to a RSS feed specified by one or more tags. For example, I can subscribe to the tags "software" and "architecture" by entering the feed http://del.icio.us/rss/tag/software+architecture in my RSS aggregator. Cool!
Read more about it here.