Albert Einstein once said, "Things should be made as simple as possible, but not any simpler." While most would agree that the topic of relativity requires greater care and consideration than most information technology topics, Einstein's quote could also refer to the eXtensible Markup Language, or XML, which is currently sweeping through the computing world.
After years of experimentation with an endless stream of changing languages, architectures, and proprietary "standards," we seem to be coalescing around XML - a language that, on the surface, is painfully simple. XML draws upon an SGML (HTML's parent) foundation and is currently being used to solve many of the most vexing problems, including distributed computing, electronic data interchange, enterprise application integration, and - you guessed it - wireless application development.
XML was originally created by the World Wide Web Consortium to draw a "line in the sand" against the HTML standards assault being led by browser vendors Microsoft and Netscape. While HTML served to provide a framework for describing the display of documents, it had become apparent that what was even more important was a technology that would support the description of the content within documents.
Keeping in mind that the "X" stands for extensible, XML allows a document to define its own tags and also supports formal definition of these tags through a Document Type Definition, or DTD.
XML files are validated against the XML standard through a set of code known as a "parser," meaning that invalid XML files simply are not allowed. If you have any experience coding HTML, you know that you can be very liberal with the HTML standard and still produce a functioning document in most HTML browsers. While this is arguably permissible if we're only concerned about the unintelligent display of documents, what happens if we'd like our XML file to serve as a database for an application or if we'd like its contents to be indexed by an XML search engine?
Obviously, a strong standard - and rigid standards enforcement - opens XML to a world of new application possibilities. While simple in concept (but a bit more complicated in practice, if you've examined the complete specification), XML is now being used in a wide variety of applications. Three primary areas of interest to the mobile audience are data interchange, device markup, and distributed computing.
XML and data interchange
XML has quickly emerged as a common language that most enterprise applications and data source can agree upon. Instead of attempting to agree upon a proprietary data exchange mechanism between two companies' ERP systems (not to mention the process of coding this proprietary solution), XML allows the two companies to simply agree on a common DTD, a process being rapidly pursued by a number of industries.
XML also came along at just the right time for the wireless world, as well. Instead of an application being hard-coded to support a wide array of Web, WAP, i-Mode, and PDA clients, data can be served via XML and "trascoded" to the appropriate device format using XSLT (a related XML technology).
XML and device markup
While XML is being widely used on the server to distribute data to a wide range of client devices, it is also being used as the basis of a number of new client markup technologies. HTML in its current bloated state is overkill for devices such as mobile phones and PDAs, giving rise to new XML-based languages such as WAPıs Wireless Markup Language (WML).
While WML is currently supported across a wide array of WAP browsers, the WAP Forum has made the decision to move beyond WML to the broader XHTML standard. XHTML is a "reformulation of HTML 4.0 as an XML 1.0 application," meaning that it is an XML-compliant flavor of HTML. Within two years, expect to see XHTML supported on devices ranging from your mobile phone all the way up to your desktop browser.
XML and distributed computing
Among the most promising of the XML applications is the concept of distributed computing and "Web services." The major software companies are championing Web services as the foundation of the next-generation Web. Microsoft's .NET architecture is one of several major initiatives being set forth to allow Web servers expose programmable functionality through a public interface.
This interface could function as a Remote Procedure Call (RPC) differing from a standard RPC in that it could be called via an XML invocation. In plain English, this means that Server One could make a call to Server Two by passing an XML string. Server Two could perform some computation then return results to Server One via another XML string. Using this functionality, you could implement live auctions on your Web site by calling an eBay Web Services API (which is actually in the works, using Microsoft .NET). Simple Object Access Protocol (SOAP) and XML-RPC are two XML technologies that have been developed to handle this inter-server messaging.
These happenings are relevant to the mobile world as well given the limited processing power available on most mobile devices. Offloading the processing to a remote server via SOAP would allow small devices to interoperate seamlessly with sophisticated Web services... and on a level playing field with desktop clients.
While the IT world has always trumpeted "silver bullet" technologies that aim to solve the world's problems, XML may be the best step in that direction to date. It incorporates the most important buzzwords ("open standard," "vendor neutral," and "platform independent" come to mind first) while remaining malleable to the requirements of the toughest applications.
The combination makes it a perfect solution for a networked world of disparate devices and platforms.
Bryan Morgan was the founder of WirelessDevNet.com (The Wireless Developer Network) and is currently an independent writer and software developer. He is a columnist for Wireless Internet magazine and is also a regular contributor to WirelessWeek.com and InformIT.com.