| By Jeremy Allaire | Article Rating: |
|
| August 1, 1999 12:00 AM EDT | Reads: |
8,515 |
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.
There are many variations on this model, of course, depending on the requirements and available skill sets on any given project. For example, in many cases the server-side includes a scripting abstraction layer, typically implemented in JavaScript or ColdFusion, and tag-based development, which encapsulates servlets or EJB component interactions.
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.
From this emerged the Web Distributed Data Exchange, or WDDX. Initially created by Allaire, and integrated into the ColdFusion language environment, WDDX was released into the public domain under a modified BSD license with an SDK and free implementations available from Wddx.org. Over the past six-months WDDX has been implemented to support COM (ASP, VB, etc.), Java, Perl, PHP, Python, JavaScript and ColdFusion.
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.
Published August 1, 1999 Reads 8,515
Copyright © 1999 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jeremy Allaire
Jeremy Allaire is one of the key people behind ColdFusion. He was one of the co-founders of Allaire Corp, which was later sold to Macromedia, where he joined as the CTO and turned his attention to helping evolve Macromedia Flash into a next-generation rich client platform. He is a regular author and analyst of Internet technologies.
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?


































