I have seen the future and it is XAML
It seems very clear now that a pure Service Oriented Architecture is emerging that will start to replace the existing platform-specific architectures in place today. It will not matter whether the platform is J2EE, .Net or Mainframe; all should be able to consume and provide services reasonably interoperably.
Golden age of SOA? SOA will start to add capabilities that were not possible in a platform independent manner before. Capabilities like 2PC transactions; long-running compensating transactions; reliable messaging; transfer of large binary data (MTOM); message-based, federated security; stateful services (process orchestration); and much more. It is good to know that all major vendors Microsoft, IBM, BEA, Sun and even open source Axis are targeting the same feature set and are largely on track to deliver the advanced features in the near future (if not already). Add to this the recently re-energized Web Services Interoperability organization with the new Basic Profile and Reliable Secure Profile and we might just be on the cusp of the golden age of SOA.
But what about the user interface (UI)? There are several technologies that can directly take advantage of XML web services; portlets; Java clients; .Net Smart Clients; Microsoft Office clients; AJAX web clients; xForms; InfoPath; SVG; and Flash come to mind immediately. And I am sure there are many more. But now there is a new kid on the block called XAML (pronounced zamel). I recently had to chance to take a deep dive into XAML and came away duly impressed.
XAML is from Microsoft - part of the Windows Presentation Foundation. At its heart XAML is an XML language for declaratively specifying very rich user interfaces; so much so that even animation of UI components can be specified declaratively in XAML. Another key feature is XAML's declarative, two-way data binding to an XML or object data source. The combined effect of these two features makes XAML a very potent force.
It is fair to say that XAML may not be accepted for general consumer-facing web applications any time soon; AJAX will probably continue to rule in that domain for a while. This is because XAML requires a Microsoft-specific implementation at this time. However, for internal web apps where the desktop standard is Microsoft Windows and Internet Explorer (easily more than 90% of large organizations today) XAML makes perfect sense as a replacement of existing UI technologies (such as JSP, ASP, Flash, etc).
In a series of upcoming posts, I will examine XAML and try to establish that companies that 'get' XAML and are able to harness it well, will stand to gain a considerable competitive advantage over those that don't.