I've been tracking the Microsoft Atlas information flowing out of last week's
PDC '05 pretty closely. Atlas itself is finally
available now to everyone for experimentation in beta form. There's some truly intriguing material in Atlas and it's clear that at least with Microsoft's entry into the space,
Ajax will come very close to realizing the
Web 2.0's goal of making the web itself its own computing platform. Microsoft's ambitious and stunningly comprehensive entry with Atlas will make the browser join the server as a fully fledged new layer in the web computing stack. This is heady stuff for the whole web development world.
What does this mean for the average development organization? It's hard to see the full impact yet but a tour of Atlas architecture does show us that Microsoft is handing a can opener to developers to open up SOAs to folks that buy into Web 2.0. They make it very, very easy to wire up your Ajax applications to virtually all forms of web services, including the big WS-* stacks. Remember, the important part about Ajax is not that it facilitates cool user interfaces. That's not hardly it by a long shot. What's amazing about Ajax is that it adds a whole new computing tier to the application stack, and one that's platform neutral and no less capable than what's on the server. Take a look at the Atlas internals diagram in Figure 1 (with thanks to Nikhil Kothari's excellent Atlas architecture post) to see what I mean.

Figure 1: Atlas Architecture Overview for Microsoft's Web 2.0/Ajax Entry
You can see that Atlas is designed to make it easy for you to get at your organization's internal services through a variety of mechanisms, via both bridges and proxies. Ajax puts a lot of the integration and computing pieces that were formerly at the server, a puts them right into the browser, using the technology that's been there for the last couple of years, especially the XmlHttpRequest API, XSLT support, the DOM, and JavaScript 1.5. This means many of the computing infrastructure pieces we took for granted on the server side have to be moved to the browser. To that end, Microsoft has also added full blown OOP programming constructs, a capable class library, and a robust browser compatibility layer to the Ajax developer's toolkit. It's an impressive piece of work, at least in its vision. And in the end, Atlas does construct a robust virtual Web computing platform out of all the pieces in the browser. We'll see how this compares with other Ajax solutions coming to market soon, but Atlas is very probably the baseline to beat.
When you consider that the Ajax layer is a real web services integration point, and can do capable orchestration and coordination too, and the implication becomes clear... Ajax, especially with Atlas, makes the vision of pure Web-based computing not only possible and probably commonplace, but even necessary to leverage the full value of your SOA.
I think it's pretty obvious that with tools that make it so easy to connect web services directly to full-strength application code in the browser, that you will see it done much more often. Whether this is a good idea, for security, scalability, or design reasons, is another story entirely. But a compelling case can always be made to put fast, effective computing close to the user, where the processing power is often more available.
The headaches, and potential benefits, that Ajax, Atlas-style solutions, and Web 2.0 will bring enterprise architects can't be overstated. This really is a new vision for web computing and we're going to have to start regarding Ajax as a first class tier in our application architectures. I'll be tracking this a lot more but be sure to check out Atlas in your spare time.
Update: Scott Guthrie, one of the key people making Atlas happen, has some terrific posts about various Atlas topics here:
Atlas Unleashed, Atlas Project, and Atlas Keynote Walkthrough
Technorati: Enterprise Architecture, Computers and Internet, Programming, Web Services, SOA, Ajax