Blog Post RSS ?

Blogs » PHP » Two kinds of AJAX: HTML++ vs Client / SOA
 

Two kinds of AJAX: HTML++ vs Client / SOA


  • Save to
    Del.icio.us

by Harry Fuecks

Think this needs stating clearly, following the comment from Bill Edney on of technicalpursuit (Tibet), and because I think it reflects experiences people are having with AJAX.

In short think there’s going to be two kinds of AJAX application, one I’ll dub “HTML++” and the other being the Client / SOA Bill mentions. To describe them roughly…

HTML++

AJAX is used to enhance existing HTML forms / user interaction but the fundamental paradigm is still the same as “normal” web applications. Some key smells of this style;

  1. Page reloads still happen frequently
  2. It’s possible (if you make the effort) to degrade gracefully to non-supporting browsers / browsers with JS turned off.
  3. Session state still resides on the server.

In practice this is what everyone’s doing right now, with varying degrees of success. For many I think the effort and cost to “go HTML++” will far outweigh the benefit. Practically think this is best done server-side with tools like HTML_AJAX that do the “thinking” for you (side note: while giving this talk, mentioned JPSpan is effectively dead - HTML_AJAX is, to some extent, it’s successor - it’s a bit like PEAR::SOAP and NuSOAP).

Meanwhile an interesting “in between” example, which I think highlights the divide, is the script.aculo.us shopping cart. Every time you place an item in the cart, it tells the server about it then retrieves a fresh list of cart contents and updates the client side. In other words the server is the judge of what’s in your cart. It’s interesting because you might argue that the cart could stay purely client-side, only sending anything to the server when you decide to head to the “checkout”. In practice though, it’s likely the cart would be used on sites where it’s expected to work across multiple “pages” (or tabs), which share a single server-side session.

Client / SOA

As Bill called it Client / SOA will use the same. SOA may not yet be concept which readily communicates ideas. My angle of understanding this begins with asking AJAX: what’s a session?. An alternative angle comes from Cédric Savarese over at Form Assembly in Ajax: It’s not all about XMLHTTPRequest (and part 2), a train of thought which leads to what he’s done with the freja framework.

Some of the key smells with Client / SOA;

  1. Page reloads are rare, if at all. The application tends to run in a single browser window.
  2. It’s practically impossible to degrade gracefully, without maintaining seperate code bases.
  3. Session state is largely handled by the client.
  4. Javascript and the browser are acting as a runtime in the same sense as the Java or .NET runtime.
  5. It’s going to require specialist developers

Really it’s probably wrong to use the word AJAX here at all. To enable this style of application you need a lot of Javascript glue and what we call AJAX would likely be so deeply buried that it’s barely reflected in the APIs you call as an application developer.

As far as I know, Tibet is the only Open Source project today which would be capable of making this happen and, right now, there’s no code available - you need to wait for the next release (due soon). Meanwhile, via Google, you’ll find people raving about Tibet all the way back to April 2001.

What kind of applications will be built this way remains to be seen. Superficially these will be the equivalent to today’s desktop applications but think the winners here won’t be those simply trying to re-invent what already works. For example the race is already on to build web based Office Suites, but I think that’s largely a fools game. Thinking in terms of MS Word, specifically, if you’ve ever seen what companies typically do with Word templates and consider why MS developed InfoPath, you realise that word processors as a “unit of application” is no longer interesting. Something more like “living documents”, relevant to a specific type of information a group of humans is trying to organise, and incorporating things like collaboration, versioning and workflow is far more interesting.

Also this kind of application could, potentially, be eclipsed by another technology, such as stuff Microsoft are packing into Vista or something XUL-based (perhaps just Firefox extensions). Think alot depends on what happens in the next 12 months.

Anyway - thats just my thinking, bordering dangerously on marketecture, but in the interest of trying to nail down the relevance of AJAX.

This post has 23 responses so far

  1. […] On the SitePoint PHP Blog, Harry Fuecks discusses what he sees as the two types of Ajax applications out there - “HTML++” and the standard “Client/SOA” model. […]

     
  2. HTML++, Client/SOA and Web 2.1

    Harry Feucks over at Sitepoint just put up a great article about the different uses of Ajax out in the wild today. He affectionately calls the two categories, HTML++ and Client/SOA. I would suggest reading his

     
  3. Thanks for mentionning my work with the Freja framework. I think you nailed it by making this distinction in the Ajax field (html++ vs. fat client/soa). So much attention is on the xmlHttpRequest object right now that I feel I’m not doing the same thing at all.

    With Freja you can effectively implement a Client / SOA application. But Freja is a lightweight framework, mostly focused on client-side application state handling and UI rendering, far from being as ambitious as Tibet.

     
  4. More meaningless buzzwords. Hooo-raa. Ever since ‘AJAX’ became a popular term it seems that every single webdev blog author is on a mission to create their very own buzzword.

    These bloggers, or BloWOEs as I call them (Bloggers With Oversized Ego), need to stop this pathetic self promotion and get back to talking about actual methods.

    Let’s put an end to all the BloWOEs.

     
  5. Another client/soa product…

    this one won InfoWorld 2006 Technology of the Year award: TIBCO General Interface, which has been shipping in market since 2001. It’s very cool with lots of components, communication methods and a visual tooling package that itself is an Ajax app. The drag and drop binding to XML and SOAP messages is pretty sweet I must say (but I’m biased becuase I’m from tibco). Nonetheless take a look.

    See InfoWorld’s coverage: http://weblog.infoworld.com/udell/2005/05/25.html

    … or get it at http://www.tibco.com/mk/gi

    –Kevin @ Tibco.

     
  6. More meaningless buzzwords. Hooo-raa. Ever since ‘AJAX’ became a popular term…

    These bloggers, or BloWOEs as I call them (Bloggers With Oversized Ego)…

    I sincerely hope you were trying to be humorous by inventing a new term for people who invent terms :) Otherwise, pot/kettle/black.

     
  7. Yes, thankyou, that was the joke.

     
  8. GenInterface, which was purchased by Tibco, provided incredibly robust one-window browser-based apps way before “Ajax” was coined. Its tech shows up in Tibco’s software:
    http://www.tibco.com/software/business_optimization/gi_resource_center.jsp

    They were doing things like pulling down large quantities of data and being able to sort and filter them locally. All in the browser.

     
  9. […] SitePoint’s PHP Blog (of all places): AJAX is used to enhance existing HTML forms / user interaction but the fundamental paradigm is still the same as “normal” web applications. Some key smells of this style; […]

     
  10. […] Read the rest of the article. Technorati Tags: Ajax, Javascript, Programming […]

     
  11. LOL more pointless buzzwords. And this time the author has made them up. As guiness would say, brilliant!

     
  12. LOL more pointless buzzwords. And this time the author has made them up. As guiness would say, brilliant!

    Come on. Inventing buzzwords beats doing real work any day ;)

     
  13. I hate pointless buzzwords. Or as I prefer to call them, PLeBz.

    Everyone start using the word PLeBz! Please! It’ll make me famous! Then I can write a book called “Web3.11++AJAX JSON The PLeBz generation” and make lots of money! Yey for buzzwords! They’re much more fun than articles on meaningfull web practice.

    And before someone thinks they’re being clever, I’m being a sarcastic sod.

    Or a “sarcod”, as I prefer to call it.

     
  14. […] Harry Fuecks suggests there are two types of Ajax apps: HTML++ and Client/SOA. This is something I’ve noticed too, and it cuts right across the Ajax architecture, impacting on the user-interface, the physical architecture (browser-server separation) and the abilities of the developers involved. […]

     
  15. […] Teilweise nachzulesen in Harry’s Blog auf http://www.sitepoint.com/blogs/2006/02/15/two-kinds-of-ajax-html-vs-client-soa/ […]

     
  16. Looks like Tech2All.com stole this post: www.tech2all.com/2006/02/17/two-kinds-of-ajax-html-vs-client-soa/

     
  17. Great material, though I think Client/SOA will require less specialist developer talent pretty quickly as tools step in to help with the grunt work.

    More coverage of this here on my ZDNet blog.

    Keep up the great work,

    Best,

    Dion

     
  18. Looks like Tech2All.com stole this post:

    Thanks for pointing that out, Joshua. We’re on it.

     
  19. I hear ++HTML is slightly faster than HTML++… ;)

     
  20. Looks like Tech2All.com stole this post

    Whats your abbreviation of “stealing”… While provide link to the Original Site.. Anyway Doesn’t matter..

     
  21. […] Now before I go any further—this is not a PHP problem despite the title (I hope the web ring is paying attention)- this is is a feature of HTTP—it’s stateless. The problem is really the blurring of lines AJAX introduces—this goes right to the line between the two kinds of AJAX - is the client or the server managing state? […]

     
  22. […] Ajax use in web applications falls along a spectrum ranging from small usability enhancements such as auto-populating a drop-down without reloading the page (dubbed by Harry Fuecks as HTML++), to mopre full-blown client-side apps, where lots of business logic is in JavaScript on the browser. How you choose to use Ajax will affect your security posture, as we will explore in future posts. […]

     
  23. thanks richardson.ı missed you.

     

Sponsored Links

Leave a response

You are not logged in, log in with your SitePoint Forum username and password.

-OR- Post Anonymously

* Make sure any code samples are escaped (i.e. ‘<b>’ becomes ‘&lt;b&gt;’).

If not logged in, your comments will be placed in a moderation queue. This means your comment may not appear until one of our moderators approves it.

SitePoint Marketplace

Buy and sell Websites, templates, domain names, hosting, graphics and more.

Logo Design, Web page Design and more!

99designs

  • Custom logo designs created ‘just for you’.
  • Pick the design you like best.
  • Only pay if you’re satisfied with the result.

Want More Traffic?

Get up to five quotes from qualified SEO specialists, with no obligation!

Get A Free SEO Quote Now!