Over the past year significant momentum has grown behind the unique intersection of two core Web platform technologies, Java and XML. Clearly, with Java emerging as the predominant Internet-system programming language and XML emerging as the dominant model for Internet data, these two technologies are bound to intersect in interesting ways. Indeed, almost without exception Java has been the primary reference implementation environment for emerging XML technologies such as XML and XSL parsers, as well as XML-centric object database systems.
The meshing of these two key technologies is also at the intersection of a revolution in how the Internet economy functions. Over the last few months we've begun to see an emerging concept that is quickly spreading across leading Internet companies and technology platforms. The concept is Web syndication, which refers to building affiliate and syndicate networks across Web sites, and syndicating content and application assets to create Internet value chains and Internet-based e-commerce businesses.
The convergence of Java, XML and Web syndication is perhaps one of the most important shifts in the Web platform landscape, and beckons to be better understood. Indeed, this shift affects how Java systems will be built for the Web. It affects the future of distributed computing models, potentially shifting the balance of power away from Java-centric models based on RMI, CORBA or EJB and toward XML-centric distributed computing. Overall it creates a larger economic opportunity for every company embracing the Internet.
A quick review of the current state of Java, XML and syndication on the Web is well worth our time.
The Current Role of Java
Despite the significant limitations of Java in browsers, Java has established itself in a dominant position in the emerging Web application landscape. Increasingly, companies are embracing the three (or n-tier) application model with HTML/DHTML in browsers, Java on the server and databases behind this.
For the most part these applications are built for end users accessing the applications through Web browsers on intranets and Internet sites. Additionally, companies are increasing their investment in Java as a component implementation language through CORBA and EJB, where application objects service other applications across the network. For many developers and companies there is even a sense of market stability in the historically incoherent distributed-computing landscape. Or so it seems.
The Current Role of XML
As an emerging technology, XML has received nearly the same amount of coverage that Java did in its early years of adoption. Despite this, XML adoption remains fairly limited and scattered, though this is rapidly changing as companies begin to understand its role and economic value more clearly.
XML emerged over a year ago as a next-generation technology for structuring and exchanging information on the Web. Initially, XML was greeted as the "future of HTML," with the focus on browser-based adoption and integration with presentation and formatting technologies such as CSS and XSL. This was the document-centric XML world speaking, and, frankly, was easy for pundits and the press to understand. This approach to XML has largely fallen flat; few Web developers are actively using XML for storing Web documents or CSS/XSL to format and deliver those Web documents.
Another view was that XML would replace proprietary business-to-business commerce systems based on EDI, and that it would open up new models of e-commerce based on industry-standard XML schemas. This view, sometimes referred to as the XML data worldview, has increasingly become the more relevant model for XML usage.
Despite an emerging clarity around the "proper" use of XML, adoption has remained scattered. A first barrier to adoption was that the XML standards weren't solid. This has changed for the better in the last six months. A second major issue was - and is - the fact that most data and application environments haven't been set up to use XML. Related to this has been the fact that few developers are conversant with this new model for data and application integration.
The Emerging Distributed Web
About a year ago I wrote a series of white papers under the banner of the "emerging distributed Web." The basic argument was pretty simple. The Internet was about to undergo a radical transformation based on new business models centered around Web syndication. Syndication represented the idea that every Web site was not an island, that the content and application assets of every Web system was a set of data and services that could be leveraged by every other site on the network.
Prior to writing the papers, I had been influenced by Bob Metcalfe, who anticipated this in what he dubbed "Metcalfe's Law," which stated that for every n-node added to the Internet, the Internet's value would grow exponentially. In this law I saw that if every Web system was a set of data and application APIs for every other Web system, this would radically change how business would be built in the emerging Internet era.
From this it became clear that there needed to be an extremely simple model for Web applications and systems to share assets with each other. Of course, XML had recently emerged as the proper foundation for this, but the basic XML infrastructure would not be sufficient to meet the needs of developers and companies wanting to do it easily.
What was needed was a pragmatic view of distributed Web computing, one that embraced the basic principles that have made the Web successful to date - principles such as simplicity and openness, and heterogeneous platforms and languages...and the idea that implementing this should not require an extremely advanced programming and systems infrastructure.
XML as Middleware
The basic conclusion drawn from all of this was that to embrace the opportunity of Web syndication, we needed to enable transparent application and data exchange based on XML but without all of the overhead of "purist XML." In short, we needed a model based on XML as middleware. This refers to using XML as a "tunnel" for application data exchange, where the applications and language environments that are communicating never know they are using XML as a transport. Internet programming languages would be the starting point, and a lowest-common-denominator approach would be developed to enable common data structures to be shared transparently between languages, without any real work by developers.
All of a sudden, with just a Web server, a scripting language and HTTP, any application implemented in any language on the Internet can communicate with any other system. Content and application syndication would now be possible with a trivial amount of work by either party without their having to know a thing about XML.
The Loosely Coupled Web
The emerging XML middleware model, in fact, is posing a challenge to those who are investing entirely in binary distributed object standards. Indeed, Web systems will increasingly be implemented for maximum interoperability with other applications on the Internet. Given this, a model based on XML, which relies on loosely coupled systems communicating over HTTP, and implemented in potentially any language environment, is changing architectural decisions for many Internet-centric companies.
By building on a simple foundation such as WDDX, one can imagine layering additional semantics and services that support standard RPC-style invocations, or more robust object request brokers layered on WDDX, but without any language bindings or dependencies, and potentially implemented over asynchronous transports such as SMTP and POP. Some analysts are even beginning to argue that XML-HTTP will evolve into a Web Object Model that rivals and even replaces systems such as CORBA or EJB.
Designing for Web Syndication
Whatever evolution this new platform model actually takes, it is clear that systems built around Web syndication represent an enormous opportunity for companies and developers. Embracing this new model requires a few simple things.
- First, companies must determine what business model they want to wrap around Web syndication.
For example, an e-commerce site might create an affiliate program, and enable site affiliates to remotely grab content and invoke transactions from your site through an XML-based API. Or, in a B2B model, a company could expose a lead-tracking system through a private URL, syndicating lead data to partners accessing the system from their own applications.
- Second, companies need to evolve their core Web application infrastructure to support Web syndication more directly. A great start for this would be a JSP server, such as Allaire JRun, and WDDX for Java, available from Wddx.org. From this it becomes trivial to expose any data or application services to other applications, and to consume content and application data from other sites.
- Finally, companies need to determine what content and services they want to expose, build special URLs for accessing those functions and document this for their customers and partners. I like to think of this as developing a Web SynDK for your business - a set of Web-based APIs, exposed through XML or WDDX, that enable your partners to integrate your business with theirs.
Jeremy Allaire is a cofounder and vice president of technology strategy at Allaire. He helps determine the company's future product direction and
is responsible for establishing key strategic partnerships within the Internet industry. Jeremy has been a regular author and analyst on
Internet technologies for the past seven years, and he holds degrees in both political science and philosophy from Macalester College. He can be reached at