Can Ajax be running partner of Web services? Whether or not AJaX and the Service Oriented Architecture (SOA) can coexist together is yet to be seen with the nature & scope of development mechanisms and target applications to come-up in the coming months. An AJaX engine can however be integrated with a SOA Web Service; without any change to be made to the Web Service architecture or implementation. So I guess the ball is in AJaX’ court to essentially harness the utility of SOA, and bring forward a robust & efficient architecture in whole.
Speaking of AJaX, I read a couple of blog posts and articles on how AJaX is so 1999. I do agree that the concept of a web-based middleware engine itself is rudimentary as it is basically based on the XMLHttpRequest object which was introduced by Microsoft as part of IE5 back in 1998. It was earlier referred to as Web Scrape Parsing, Remote Scripting and later as Client Callbacks. Us geeks do have a way with technical jargon – don’t we 😉 So, yes, it’s not the next best thing to sliced bread. But if you look closely, it’s not until the recent past that actual production-level applications which utilize AJaX (or similar client-server patterns) have evolved. Service providers (specially Google) are taking keen interest in AJaX. Services like Oddpost (later acquired by Yahoo), A9 (from Amazon.com), Google Maps, Google Mail, Google Suggest, Flickr, 24SevenOffice and a host of others have embraced AJaX, and produced some smart Rich Internet Apps (RIA) for our use. And how can the guys at Redmond (or Bangalore 😉 ) resist getting their hands dirty. Microsoft is planning a much closer integration of AJaX, with Asynchronous Client Callbacks already in scope for ASP.NET 2.0 and a new developer tool codenamed Atlas on these lines.
Infact, even before I had heard the term AJaX, I had succesfully implemented a custom web-based solution based on Remote Scripting (reference 1 / reference 2) for a client of mine. The idea was to develop a completely browser-based webcam viewer system with user authentication, cam history, private broadcasts etc. Although a Java applet would have been an ideal choice but I wanted to try something different – a cross-browser DHTML-only client interface. As I researched more on the idea of client callbacks, I was getting sure that its quite possible. Eventually in about a month, the whole system (with a AJaX-style web app, a VB6 webcam client app, a MySQL database and a Java daemon app running on the server acting as a web service) made its launch. And it has been doing quite well actually. The whole development experience was great, although I did encounter a few problems here & there but nothing too critical.
I reckon the next few months will spell a few more nifty services and applications based on the AJaX style.