XML and Web Services In The News - 9 January 2007

Provided by OASIS | Edited by Robin Cover

This issue of XML Daily Newslink is sponsored by Innodata Isogen



HEADLINES:

 Delve into Hierarchical Inherited Rule-Interpreted XML
 Specializing xi:include
 AJAX Toolkit Lets Web Apps Work Offline
 XML Matters: Ajax Tradeoffs: The Many Flavors of XML
 Ford Runs Microsoft Sync
 The AJAX Application Delivery Challenge
 Apache Synapse Graduates, Releases 0.91
 Another Loss For GPLv 3?


Delve into Hierarchical Inherited Rule-Interpreted XML
Chad L. Meadows, IBM developerWorks
Java properties (java.lang.Properties) are the most common method of application configuration in use in Java programming. You typically use Java properties to determine how an application is configured on initialization, as well as to determine some types of runtime behavior. The problem with the traditional use of Java properties is that you have an inflexible configuration that will cost you more in maintenance. Instead, you can avoid these limitations using Hierarchical Inherited Rule-Interpreted XML. Hierarchical Inherited Rule-Interpreted XML is a dynamic engine that also allows one to modify the XML document structure after it is parsed. Structure modifications are then represented in the created DOM. The DOM also can present modifications dynamically, so that the elements that exist within the DOM may be determined based on application state. Therefore, the API can be queried in order to collect a list of child elements from an element in an XML document, but the list of elements returned may not represent the physical XML document that was originally parsed. You can use Hierarchical Inherited Rule- Interpreted XML to replace the standard Java properties with a dynamic version. This allows you to define properties that you can evaluate based on the state of the application. Hierarchical Inherited Rule- Interpreted XML also enables you to use one properties file for multiple instances of the application. It allows you to define properties that you can evaluate based on the state of the application using simple expressions or even Groovy expressions, and it lets you use only one properties file for multiple instances of the application. Future articles in this series will demonstrate the use of other scripting languages, sharing the servlet context in Web applications, building modular components, and using the full power of dynamic XML configuration.
See also: the alphaWorks article

Specializing xi:include
Eliot Kimber, Dr. Macro's XML Rants
I've posted before about how useful it is to specialize the XInclude include element — it makes authoring easier, it lets you define constraints on what can be referenced, etc. But until now I'd not really appreciated another serious benefit: It avoids ambiguous content models. I ran into this in the process of modifying the DocBook 5.0RC1 XSD schemas to add xincludes. The obvious approach of just adding xi:include wherever something that could be included is allowed did not work because it created all sorts of ambiguity problems. It should be immediately obvious [from the worked example] that if we specialize xi:include to reflect the specific element types of the things we want to include, for example docbook:section_include, then the ambiguity problem goes away because you'll be adding tokens with the same distinction as the existing tokens, so you can never create an ambiguity that wasn't already there. I also observe that since xi:include's complex type is named named then you can do the specialization formally using substitution groups at the XSD level.
See also: XInclude and re-use

AJAX Toolkit Lets Web Apps Work Offline
Darryl K. Taft, eWEEK
A team of AJAX experts is working on a new capability to enable Web applications to work offline. Brad Neuberg, a San Francisco-based software architect and programmer, said that he, along with the support of some developers at SitePen, of Palo Alto, Calif., is working on the Dojo Offline Toolkit, a small, cross-platform, generic download that allows Web applications to work offline. The tool kit is based on the popular Dojo Toolkit, an Asynchronous JavaScript and XML development system maintained by the Dojo Foundation. Major companies such as IBM and Sun Microsystems are members of the Dojo Foundation. The tool kit will be an open-source library that brings true, offline access to Web applications, where "users will be able to access their Web applications and work with their data even if no network connection is available, just like desktop applications," Neuberg said. Neuberg said he sees uses for the technology in consumer Web sites such as Gmail and Blogger and with corporate portals and CRM (customer relationship management) systems, among others. Dylan Schiemann, chief executive at Web application design and development firm SitePen, said there is considerable demand for a product like the Dojo Offline Toolkit. the Dojo Offline Toolkit will use a simple, small Web proxy that runs locally. The proxy will cache files that need to cached for later access without hitting the network, Neuberg said. In addition, to enable the browser to talk to the local Web proxy, the new tool kit will use a standard technology known as PAC (Proxy AutoConfiguration). A PAC file is a small bit of JavaScript that is invoked on each browser request. The system will use an off-the-shelf, open-source, C-based Web proxy named Polipo to save months of development time creating a custom HTTP/1.1 proxy. Polipo compiles to only 150K and is portable to Windows, Linux and Mac OS X, Neuberg said. The open-source NSIS (NullSoft Install System) will be used for the Windows installer, while Linux installation will be through Firefox's XPI (Cross-Platform Installer) technology.

XML Matters: Ajax Tradeoffs: The Many Flavors of XML
Dethe Elza and David Mertz, IBM developerWorks
The X in Ajax is for XML, but XML is not a language, it is a toolkit for building languages. So your first decision is: do you use an existing language, or build your own? Several tradeoffs are involved. You have to ask if an existing language fits your needs or whether you can design something which is a better fit? Are there tools to process the language, or will you have to build them? If you communicate with others (and if not, why are you building a Web application in the first place?), how well known is the language? Will other applications readily be able to access and use your data? Some of the obvious choices to pick from are (X)HTML (including the microformat subsets), SVG or X3D if your data is graphical, Atom for snippets of data over time, OPML for simple outlines, and RDF for semantic graphs. At one extreme, you might send DocBook, DITA, or even OpenOffice formatted data, which is rich, semantic, full-featured, and very verbose. You make a lot of decisions when you build an Ajax-enabled Web site or Web application. What format your data takes is a decision that is too often made by default or without really thinking about all the issues. I have tried here to at least give some food for thought on these issues and to help frame the decision making process. To reiterate the rules of thumb given above: (1) JSON for data; (2) XML for documents — favoring XHTML unless there is a reason not to; (3) Wrap it in Atom for syndication — and to support the Atom Publishing Protocol. In this article I try to show a lot of examples to illustrate some of the tradeoffs involved and to support my rules of thumb. I haven't proven anything, because these are issues that are all special cases and most real-world examples will be full of exceptions to any rule. I hope to report back in a future column about actually building the site using these guidelines. As always, I'm interested in hearing your success stories, criticisms, and ideas.
See also: Atom references

Ford Runs Microsoft Sync
Wayne Rash, eWEEK
The Ford Motor Company is introducing the first vehicles with Microsoft's Sync software, which allows a car to connect to a variety of Bluetooth and USB devices, including PDAs, smart phones, music players, and cell phones. Sync, which is based on the automotive version of Windows Mobile, can work with voice recognition or steering-wheel-based controls. Introduced at the Detroit Auto Show January 8 [2007], initially it will be included in 12 vehicle lines from Ford, Lincoln and Mercury this fall. As it's installed in the new Fords, Sync supports Apple's iPod and Microsoft's Zune music players, as well as PlaysForSure players and music contained on USB thumb drives. It will synchronize with Bluetooth-capable phones and use the call lists contained in the phones. It will also use any specialized ring tones on the phones, including caller-specific rings or ring tones. [Kevin] Keling told eWEEK, however, that e-mail capability and gaming will not be available with Sync. The voice recognition system will control attached phones, as well as attached music players, even to the extent of recognizing song names. In addition, the speech system will read text messages aloud, and it can provide replies from a list of 20 standard replies. The text message capabilities will even recognize common acronyms such as "LOL" and "BFF." According to Keling, the Sync software can be upgraded as new devices become available. Sync displays relevant information, including song titles, caller ID data, phone book entries and phone operation information on a dashboard display. Ford is making sure that everything works as it should with iPods, in some cases with added capabilities, like a voice command to tell your iPod to play music similar to what you're already listening to, or to use a variety of shuffle commands.

The AJAX Application Delivery Challenge
Lori MacVittie, Dr Dobbs Journal
Web 2.0 technologies like AJAX can have far-reaching consequences when it comes to security and performance. Users are demanding rich, interactive browser-based applications. Security administrators require these applications be secure on both ends of the wire. Server and systems administrators insist that the application not consume more than its fair share of resources, and network administrators are eyeing up your application and calculating the charge-backs with a gleam in their eye, wringing their hands gleefully while anticipating the probability of funding their next upgrade based solely on the cost of bandwidth needed to deliver your application. While Web 2.0 technologies like AJAX ("Asynchronous JavaScript and XML") provide the means by which you can satisfy the demands of your users, these emerging technologies can also have far-reaching consequence in terms of security and performance. Advocates of Web 2.0 technologies like AJAX like to point out that AJAX requests are typically smaller than their traditional HTML counterparts, but they forget to mention there are more of them, more often. Developers using JSON ("JavaScript Object Notation") as their protocol of choice to exchange messages between the browser and the server like to claim it is a "fat free" alternative to XML, but in reality the FDA would call them out on that claim, not to mention the security risks inherent in using JSON that aren't present with its XML counterpart.

Apache Synapse Graduates, Releases 0.91
Paul Fremantle, The Server Side
The Apache Synapse project is pleased to announce that it has graduated from the Apache Incubator and become a full member of the Apache Web Services project. This is a recognition of the hard work of the team in creating a Service Oriented Architecture (SOA) mediation broker project that meets the Apache Software Foundations guidelines for community, processes and approach. To celebrate, the Synapse team has released 0.91 of the project. Apache Synapse is a lightweight, high-performance broker for routing and mediating XML messages. It is designed to be the basis of a highly manageable XML-oriented Enterprise Service Bus. It has support for logging, routing, and transforming all kinds of XML messages including XML/HTTP, SOAP, JMS, and others. It supports a number of open standards including XSLT, XPath, WS-ReliableMessaging, WS-Security, WS-Policy and WS-Addressing. The highlights of the release include: (1) Content-based routing using XPath 1.0; (2) Configurable Message logging based on Apache Commons Logging; (3) Support for XML and SOAP over JMS, tested with Apache ActiveMQ; (4) Initiation and termination of WS-Reliable Messaging 1.0; (5) Authentication and Authorization using WS-Security 1.1; (6) Support for remote configuration via HTTP-based registries; (7) Extensible using Java and scripting languages, including support for JavaScript, E4X, JRuby, and other scripting languages.

Another Loss for GPLv 3?
Sean Michael Kerner, InternetNews.com
Two little words, one very big difference: Open source database vendor MySQL AB recently altered some of the wording of its license in order to let users know that it won't automatically be licensed under the next version of the General Public License, or GPL version 3, when that draft is finalized. The move signals that MySQL AB is protecting its options regarding what may or may not make its way into the next version of the open source license, and opting for control over the licensing process by sticking with the current GPL v2. MySQL isn't the only open source group making such as move. The Linux kernel itself is likely to remain as GPL version 2. GPL version 2 is the premier open source license in use today and is currently undergoing discussion and draft revision. After two drafts in 2006, a third and final draft is expected early this year. Among the key changes in the new license are new terms regarding patents and digital rights management. The change to the MySQL licensing terms revises the words "GPLv2 or later" to read "GPLv2 only," according to a blog posting by Kaj Arno, a MySQL AB vice president of community. According to Arno, the change was necessary "in order to make it an option, not an obligation for the company to move to GPLv3." Arno did not respond to request for comment by press time. What MySQL is doing is taking advantage of a loophole in Section 9 of the current GPL license. For example, GPL version 2 states that each version of the GPL has a specific version number, and that licensees "have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation."


XML.org is an OASIS Information Channel sponsored by BEA Systems, Inc., IBM Corporation, Innodata Isogen, SAP AG and Sun Microsystems, Inc.

Use http://www.oasis-open.org/mlmanage to unsubscribe or change an email address. See http://xml.org/xml/news_market.shtml for the list archives.


Bottom Gear Image