This issue of XML Daily Newslink is sponsored by:
- SportsML 2.0 Approved for Use in IPTC's New G2 Family of Standards
- AtomServer Helps Serve Up AtomPub
- Atompub Collections and Resource Collections
- Architectural Constraints in the Model-Driven Development of Self-Adaptive Applications
- XRX: Mapping URLs with Orbeon Forms
- Assertions in New XSD 1.1 Draft
- Bridging the Object-Relational Divide
- ISO: OOXML Appeals 'Should Not Proceed'
SportsML 2.0 Approved for Use in IPTC's New G2 Family of Standards
Alan Karben, IPTC Announcement
The International Press Telecommunications Council (IPTC) is developing a new "G2" generation of news exchange format standards, using state-of-the-art Metadata and XML technology to combine rich functionality, easy of use, compactness and compatibility with the Semantic Web. ITPC's SportsML Chairman and Editor recently announced the approval of SportsML Version 2.0 by IPTC at the Annual General Meeting 2008 in Glasgow. With this approval, SportsML can act "in a 'stand-alone mode', or can also be carried properly as a package using the IPTC's new G2 family of standards. Other core and sport-specific improvements are in this release as well." SportsML is an open, global XML standard for the interchange of sports data—sports scores, schedules, standings, and statistics for a wide variety of competitions. Its extensibility allows for the easy accommodation of many sports from around the globe. SportsML cooperates with current IPTC standards NewsML and NITF to enable publishers to package sports statistics alongside edited coverage of sports. As of SportsML Version 2.0, independent DTDs and XML schemas were provided for American Football; Baseball; Basketball; Curling; Golf; Ice Hockey; Motor Racing; Rugby; Soccer; and Tennis; examples are provided for Olympic Swimming and Olympic Weightlifting. In version 2.0, the 'sports-metadata' element is made optional; G2-compliant Documents should not use 'article' element — rather, any companion NITF articles would reside within their own 'inlineXML' component. It allows for redefining datestamps to be G2-style datestamps. V2.0 allows for redefining of attributes with controlled vocabularies to have QCode-style values (with the colon in the middle). Improvements have been to Core, Basketball, Baseball, Ice Hockey, and American football. All proposed changes are backwards-compatible additions. Documentation has been updated to support all these new attributes...
AtomServer Helps Serve Up AtomPub
Taylor Cowan, O'Reilly Technical
The most interesting development within the XML world of late is AtomPub. It abstracts the details (however simple they may be) of REST and provides them in a well specified protocol. Instead of writing home grown RESTfull web services, merely decompose your domain into collections or listings of XML blocks and let AtomPub handle the details of query, create, delete, and update. One attractive benefit is that you can bank on a plethora of AtomPub client implementations...today. Furthermore, many services (gdata - Google Data APIs) are sprouting up so that the domain is familiar. Connecting to an RSS feed has always been simple, now we can detach ourselves from the dark days of SOAP over-engineering and provide data to the clients who want it with ease. So clearly I like Atom...but something has been missing. Until recently you'd be on your own in deciding how to implement the protocol. Many things are left to the particular implementation such as the URL format. The first thing to come along for Java developers was Abdera. This makes it possible to quickly write your own AtomPub server, however, it does require one to write more than a few lines of code. Having played around with Rails I could imagine that it wouldn't be too far off until we had something that made creating and binding an Atom server to a database simpler, and it's finally here in AtomServer. In their own words, "AtomServer is a generic data store implemented as a REST-ful web service." More specifically, it's a generic data store implemented as AtomPub. I downloaded the distribution and I was able to get it running easily.
See also: Atom references
Atompub Collections and Resource Collections
Cornelia Davis, Blog
There is a subtle but important difference in the use of the term 'collection' in the context of resource oriented architectures and Atom standards. I've literally had this conversation three or four times with colleagues in the last week or two so thought it relevant to post. At the crux of the matter is the fact that the term 'collection' is used in both the Atom context and resource oriented context. The good news is that the thing each is referring to with the term 'collection' is almost the same as what is referred to in the other—the bad news is that the things they are referring to are almost the same. In resource oriented interfaces, i.e., REST interfaces, the term collection is colloquially used to refer to sets of resources. Examples of resource collections are all of my blog entries, all of my photos on Flickr, all of my snowboarding photos on Flickr or all of the blog entries from some source that are about Atom. Pretty simple concept. The Atom Syndication Format has a construct, a feed, that can be used to represent a resource collection. The Atom format doesn't formally define a collection (it formally defines a feed), nor does any resource-oriented literature that I am aware of... Atompub collections are to be ordered by the value of the app:edited value. I know, I know, there are plenty of instances where we want a feed that is ordered by something other than a last edited date—contacts or even documents alphabetically, calendar entries by the appointment date/time (not by when the appointment was created or updated), etc. Such sets of entries with such orderings can be safely represented as Atom feeds but they are NOT Atompub collections. Why did Atompub add this constraint? Because Atompub is not only about the publishing or writing of content, it is equally about synchronization. Off line access... Simply put, all Atompub collections are feeds, but not all feeds and not all resource collections can be said to be Atompub collections. I personally use the term 'Atom feed' when I am referring to an Atom format representation of a resource collection and I use the term 'Atompub collection' when I am referring to a true Atompub collection.
Architectural Constraints in the Model-Driven Development of Self-Adaptive Applications
M. Khan, R. Reichle, and K. Geihs; IEEE Distributed Systems Online
These days, many people carry a mobile device such as a personal digital assistant (PDA), smart phone, or laptop wherever they go. These devices usually have limited resources in terms of battery power, memory, and CPU capacity. They also often operate in vastly diverse and changing environments—communication bandwidth fluctuates, error rate changes, battery capacity decreases, or a noisy environment obliterates the effect of sound output. The performance and quality of applications running on those devices depend on the resource constraints and the dynamically changing properties of the execution context. To maintain their usefulness, such applications must automatically adapt to their current operational context. Our overall goal is to facilitate the development of self-adaptive component-based applications. Here, we focus on dynamic compositional adaptation at runtime. Following the model-driven architecture (MDA)-based development process, we build an application adaptation model in UML 2.0 that is transformed into source code by means of a model-to-text transformation. The source code is packaged and deployed to the adaptation middleware. If a context change occurs during application execution, the adaptation middleware computes, on the fly, all possible application variants and evaluates their utilities with respect to the current context situation... In the comprehensive tool chain realm, we generate source code using the MOFScript (Meta-Object Facility) model-to-text transformation tool. The whole transformation procedure is integrated within the Eclipse environment. A transformation using MOFScript requires the model to be expressed in a format that conforms to the Eclipse UML2 meta-model, which is a subset of the Object Management Group UML 2.0 meta-model. Therefore, an Eclipse Modeling Framework-based modeling tool such as Omondo, IBM Rational Software, or Borland Together Architect is a direct choice for such a transformation. For Enterprise Architect, which doesn't produce UML2 output, we've developed an XSLT (Extensible Stylesheet Language Transformations) stylesheet that transforms the UML 2.0 model (in XML Metadata Interchange, or XMI, exported from Enterprise Architect) to UML2 (XMI) format, which MOFScript can then use as input... We've successfully applied our modeling technique for architectural constraints in the development of two adaptive applications in the MADAM project. We're enhancing the middleware in another research project called MUSIC (Self-Adapting Applications for Mobile Users in Ubiquitous Computing Environments) to support these improved specifications.
XRX: Mapping URLs with Orbeon Forms
Jeni Tennison, O'Reilly Blog
This article is Part 2 of a series exploring implementing a RESTful social bookmarking web service using the XRX (XForms, REST, XQuery) architecture. Part 1 showed how to set up eXist with a bunch of XML and some queries that provided flexible access to that XML. In this second part, we look at how to use Orbeon Forms to map good URLs onto those queries to get a reasonable read-only RESTful application. The social bookmarking web service being used is modelled on del.icio.us as described in Chapter 7 of Leonard Richardson's and Sam Ruby's book on "RESTful Web Services." [In this example], the 'matcher' attribute indicates that the URLs in the path-info attributes should be interpreted as regular expressions. The 'default-submission' attribute points to the template XML document. The 'model' attribute points to the pipeline I defined to do the XForms submission. The view 'attribute' just points to the identity transformation, because I want this service to just return the XML rather than HTML or Atom or XSL-FO or anything special. The 'epilogue' element tells Orbeon to use its normal epilogue pipeline to process the results. The epilogue pipeline sets the appropriate response headers (such as the Content-Type) and serialises the result in the right way. If the XML that your pipeline generates is an Atom feed, for example, the default epilogue will set the content type to 'application/atom+xml' and serialise the result as XML. If it's XSL-FO, the default epilogue will convert that to PDF (using FOP) and return that with the content type 'application/pdf'. Arbitrary XML is returned as arbitrary XML... I now have a system in which the URIs I want to use are mapped into queries on the XML database...
See also: Part 1
Assertions in New XSD 1.1 Draft
Rick Jelliffe, O'Reilly Blog
The new XSD 1.1 draft has some revisions to the assertions system, which seem sensible. Assertions follow Schematron's naming, so assert element and test attribute, but they are in the XSD namespace. I have mentioned before that they different from Schematron's assertions in paying no attention to natural language: schemas as still seen as computer problems not human problems. For XSD Datatypes, assertion elements are just another facet on the datatype. A change is that full XPath 2 paths can be used, however, in the case of simple types the assertion only operates on the value in isolation from its context: you cannot constrain a type to be used in a particular environment, you can only constrain that a structure uses a certain simple type: neatly top-down... The traditional argument against XSD 1.0 was that it had too little bang per buck: arbitrary limitations on the power working against the expectation that such a complicated technology would be able to meet its pretensions of universality. XSD 1.1 clearly improves a lot of areas, and the new draft is better than the old, but by requiring for example that a full XPath2 library is available but then only being able to use that library in a downward-streaming fashion, I don't see that the bang per buck argument will disappear: 1.1 has more bang, but more buck.
See also: Schematron references
Bridging the Object-Relational Divide
Craig Russell, ACM Queue
Modern applications are built using two very different technologies: object-oriented programming for business logic; and relational databases for data storage. Object-oriented programming is a key technology for implementing complex systems, providing benefits of reusability, robustness, and maintainability. Relational databases are repositories for persistent data. ORM is a technology that provides access to relational data using the object-oriented paradigm. An ORM implementation consists of a language for mapping between the object and relational domains and an API for storing, querying, and modifying application objects. There are several standards with commercial and open source implementations, as well as some nonstandard products. The ease of defining a mapping depends on the requirements of the application, its domain model, the existence of a legacy relational or object model, and the complexity of these models. ORM can provide significant improvements in programmer productivity, application quality, and maintainability. One of the most important ways this is achieved is through separation of concerns: separating the behavior of the domain object model from the access of the data from the database. Using a standard API allows the choice of implementation to be a late decision, providing more time for evaluation of alternative mapping and database technologies.
ISO: OOXML Appeals 'Should Not Proceed'
Stuart J. Johnston, InternetNews.com
The heads of two international standards bodies, which have purview over the status of Microsoft's Office Open XML (OOXML), have come out against appeals meant to block adoption of the controversial file formats. In a 35-page report, the CEOs of the International Organization for Standardization (ISO), and the International Electrotechnical Commission (IEC), which is an affiliate of the ISO, recommended that the appeals be dropped. The appeals were filed by national standards bodies in South Africa, Brazil, India, and Venezuela before the appeal period expired at the beginning of June. However, the organizations' CEOs do not have the final say, which goes to a body known as the ISO Technical Management Board (TMB). That body has until August 4, 2008 to vote to let all or some of the appeals proceed, or not proceed. The latter would lead to what Microsoft views as a hard-won victory in the international standards arena. The former, on the other hand, could end Microsoft's hopes to achieve ISO certification. At stake is Microsoft's continuing push to achieve blue ribbon status for OOXML, but more than that, billions of dollars of potentially lost revenue if lack of certification keeps the company from bidding on lucrative government and IT contracts around the world. That could seriously undermine the dominance of its Office 2007 productivity suite and leave the door open to competitor suites, such as OpenOffice.org, which support an already blessed, competing standard known as the OpenDocument Format, or ODF (define) . Open source activist site Groklaw.net stated that it had acquired a copy of the report (dated July 4, 2008) and posted it online. A spokesperson for ISO, which has primary oversight of the pending standard, now known as ISO/IEC DIS 29500, was not immediately available for comment.
XML Daily Newslink and Cover Pages sponsored by:
|Sun Microsystems, Inc.||http://sun.com|
XML Daily Newslink: http://xml.coverpages.org/newsletter.html
Newsletter Archive: http://xml.coverpages.org/newsletterArchive.html
Newsletter subscribe: email@example.com
Newsletter unsubscribe: firstname.lastname@example.org
Newsletter help: email@example.com
Cover Pages: http://xml.coverpages.org/