XML and Web Services In The News - 5 October 2006

Provided by OASIS | Edited by Robin Cover

This issue of XML Daily Newslink is sponsored by SAP


HEADLINES:

 Serializing SPARQL Query Results in JSON
 Microsoft Beats SOA Drum with ESB Guidelines
 Implementation of Serial Tree Transducers
 IETF Internet Draft: URI Template
 Google Crawls Into Source Code Search
 Introducing WSGI: Python's Secret Web Weapon, Part Two

Serializing SPARQL Query Results in JSON
Kendall G. Clark, Lee Feigenbaum, et al. (eds), W3C Working Group Note
Members of W3C's RDF Data Access Working Group have published an initial draft of "Serializing SPARQL Query Results in JSON." SPARQL is a query language and a protocol for RDF developed by the W3C's RDF Data Access Working Group. Included in that work is an XML vocabulary for serializing the results of two SPARQL query forms, 'SELECT' and 'ASK'. This document defines an alternative means of serializing the results of those SPARQL query forms using JSON, a lightweight representation format which emphasizes concision and legibility. RDF is a flexible, extensible way to represent information about World Wide Web resources. It is used to represent, among other things, personal information, social networks, metadata about digital artifacts like music and images, as well as provide a means of integration over disparate sources of information. A standardized query language for RDF data with multiple implementations offers developers and end users a way to write and to consume the results of queries across this wide range of information.
See also: JavaScript Object Notation (JSON)

Microsoft Beats SOA Drum with ESB Guidelines
Elizabeth Montalbano, InfoWorld
Heralding the most viable, "real-world" approach to building SOAs (service-oriented architectures), Microsoft has unveiled new guidelines for partners to create an enterprise service bus (ESB). Usually, BEA Systems and IBM beat the SOA drum the loudest, but Microsoft renamed its Business Process and Integration Conference for BizTalk partners, on this week, to "SOA and Business Process Conference", with the aim of demonstrating that it too has a plan for helping customers build SOAs. OA is the next generation of enterprise software architectures, in which applications and services within the IT system are loosely coupled and able to be integrated piecemeal to form custom, or "composite," applications from various components across the enterprise. Microsoft worked with partner Neudesic to provide sample code and documentation for using BizTalk Server to build an ESB, which Microsoft defines as a set of capabilities & such as mediation, transformation and integration & for connecting business processes and services throughout the organization, said Steven Martin, a Microsoft director of product management. The company also unveiled a new adapter for Extensible Markup Language-based BizTalk that enables customers to connect the product more easily to IBM mainframe and AS/400 systems. The technology, called the BizTalk Adapter for Host Systems, is based on technologies available in Microsoft's Host Integration Server product, which the company has had for some time, Martin said. John Devadoss, a Microsoft director of architecture, said it is still finding a lot of misconceptions about SOAs among its customers, who think they have to rearchitect their entire software infrastructure "from the top down" to build SOAs. On the contrary, Microsoft believes that SOAs are more successful if there is a "real-world business driver" behind the architecture.
See also: SOA references

Implementation of Serial Tree Transducers
Tobias Trapp, SAP Blog
This article is Part 5 in a series titled "Streaming Techniques for XML Processing." In an earlier installment the author described a divide and conquer approach for processing huge XML documents. Huge XML documents often have a simple structure and consist of wide trees but with only small height. They contain lists with millions of serialized business objects. So one may use STX to implement an outer loop performing only local transformations and transforming buffered subtrees using XSLT. The aim is to combine the strengths of STX and XSLT: We only have to keep a subtree together with its parents in the main memory at one time. We use XSLT either to reuse existing transformations or to perform transformations that are too difficult to be done with a tree transducer. XML documents can be modelled by trees and XML transformation by tree transformation. One model for tree transformations are tree transducers: finite automata that walk over trees and generate output. Because we want to use STX we restrict to top-down tree transducers. You can image these transducers as automata that do a simultanous translation. They walk through the XML document in a depth first order and apply a rule every time they visit an XML element. Applying a certain rule means that we insert a set of subtrees according to the current state and change the state of the transducer. A companion technical Working Paper "Serial Tree Transducers and their Implementation in STX" describes implementations of tree transducers using the Serial Transformations for XML (STX) language. We define fragments of STX that correspond to tree transducers with no lookahead and a limited number of registers. These tree transducers can be used for fast and scalable XML transformations. To overcome the limitited expressiveness of tree transducers we extend them by general subtree transformations.
See also: the technical paper

IETF Internet Draft: URI Template
Joe Gregorio, Marc Hadley, Mark Nottingham, David Orchard, IETF I-D
An IETF version -00 draft for "URI Template" has been published. URI Templates are strings that can be transformed into URIs after embedded variables are substituted. The document defines the structure and syntax of URI Templates. According to Mark Nottingham's blog entry "URI Templating, the Spec," The idea behind URI templates is blindingly simple. There are lots of conventions that people use to denote the variable parts of URIs; one of them is to use {brackets}. All that we've done is codify that practice & brackets are a good choice because they're not allowed in URIs, so there isn't much risk of collision. Conceptually, a URI Template has a lot in common with forms (whether HTML or X), but they have a few advantages: (1) They're strings, not full markup. You can use a template anywhere you need a short way to say how to construct a URI, like in an XML attribute, or an HTTP header. (2) You can put variables anywhere in the URI, not just the query string, allowing well-modelled resources to be constructed. (3) It's easy to construct and evaluate them. Since brackets aren't valid in normal URIs, they make great delimiters. What benefit does this bring? Besides having a common convention for human-readable documentation (which IME is already pretty common), the real value is when templates are used by machines...
See also: Mark's blog

Google Crawls Into Source Code Search
Martin LaMonica, CNET News.com
Google is taking its search expertise to one of its favorite audiences: software developers. The company on Thursday launched a Web site, Google Code Search, which the company says will let programmers search billions of lines of code for tips on how to write their own software. The service, conceived by the Google Labs early technology group, will crawl publicly available code, most of which is made available through open-source projects. The search and indexing covers code on Web pages and code that resides in compressed files, said Tom Stocky, a product manager at Google. Google expects that the search engine will be used primarily as a learning tool to help students and serious programmers, rather than a way to find and copy another person's code. A developer may need to write a function as part of an application and search the Web to see other examples. Google engineers, many of whom participate in open-source projects, already use these code-searching capabilities internally. Since it is a Google Labs project, the company is not yet seeking to make money through ads linked to searches. The search engine will let people do both keyword search and "regular expressions," which allow people to search a specified pattern, he said. For example, a person could narrow a search to JavaScript functions, which will help find more examples. As it does with many of its services, Google will release an application programming interface (API) to create an XML feed based on a specific query.

Introducing WSGI: Python's Secret Web Weapon, Part Two
James Gardner, XML.com
Part in this series discussed how the Web Server Gateway Interface (WSGI) is helping to unify the Python web-framework world by providing a standard API through which different web applications can operate with different servers. In this second part the author looks at how to make use of existing middleware components to add functionality to your WSGI applications. WSGI middleware is software that behaves like a server to an application, passing an environ dictionary and start_response callable to the application in the same way a server would. Middleware components also expect the application to return an iterable, such as a list of strings, or to be iterable themselves. Importantly, middleware also behaves like an application to the server, expecting to receive an environ dictionary and start_response callable itself, and returning an iterable back to the server. Middleware effectively sits between a server and an application, isolating one from the other, and can therefore do any of the following or a combination: (1) Provide more functionality by adding a key to the environ dictionary; (2) Change the status; (3) Intercept an error; (4) Add, remove, or change headers; (5) Change a response. With today's powerful middleware, the vision for "loosely coupled WSGI middleware components" is fast becoming a reality. Emerging projects such as Clever Harold provide just such a framework of loosely-coupled middleware components. Projects such as Pylons go further still, providing a ready-made configuration of WSGI middleware. The WSGI has shifted the point of reuse from the framework itself to individual middleware components. While developers can still create their own solutions to web development problems, as long as they're creating, using, and improving middleware components, the whole Python community now benefits.
See also: XML and Python


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