Introduction to OpenAjax Metadata (and OpenAjax Widgets)

Blogged by: Jon Ferraiolo on May 8, 2010 at 3:15 pm

This post provides some background information to supplement the announcement of formal approval of the OpenAjax Metadata 1.0 Specification.

OpenAjax Alliance started its IDE Working Group back in 2007, with participation over the years from Abiss, Adobe (Dreamweaver), Aplix, Aptana, Dojo Foundation, Eclipse Foundation, GDE Solutions, IBM, Marcos Caceres (now employed by Opera), Microsoft, RadWebTech, SAP, Sun Microsystems, TIBCO, and WebTide. The  objective was to promote better Ajax tools, both widget-centric designer tools and code-centric developer tools. To meet this objective, the IDE Working Group produced the OpenAjax Metadata 1.0 Specification, which defines a set of industry-standard metadata defined by the OpenAjax Alliance that enhances interoperability across Ajax toolkits and Ajax products.

OpenAjax Metadata 1.0 defines metadata for the following:

  • Ajax widgets (“OpenAjax Widgets”), which include:
    • UI controls – The user interface components — such as combo boxes, menu bars, charts, and calendars — that some Ajax libraries provide.
    • Mashup components – Pre-packaged mini-applications (sometimes called “widgets” or “gadgets”) that can be combined together within a composite application (the “mashup”), where the mashup components react to each other intelligently, such as when the user selects an address in one component, and a different component displays an updated map for that address.
  • Ajax APIs – The runtime JavaScript APIs (e.g., classes and methods) that are available for an Ajax library.

The primary target consumers of OpenAjax Metadata 1.0 are Web page developer tools targeting Ajax developers. These software products consume and use the metadata to provide an enhanced experience for users building Ajax-powered solutions. In particular:

  • Ajax IDEs use OpenAjax Metadata to provide developers with API documentation, intelligent code-assist, widget palettes, and widget property editors.
  • Mashup assembly applications use OpenAjax Widget Metadata (“OpenAjax Widgets”) for definitions of widget user interface, widget APIs, identification of pub/sub messages to which the widget publishes or subscribes, and identification of shared properties.

The widget parts of OpenAjax Metadata, “OpenAjax Widgets,” grew out of a file format submission from the Adobe Dreamweaver team. The IDE Working Group concluded that Adobe’s submission represented solid technology, but made various detailed changes to the original proposal. The Dreamweaver team tracked the spec changes, and now Dreamweaver CS4 and CS5  support OpenAjax Widgets as defined by the the OpenAjax Metadata 1.0 Specification as its standard format for 3rd party widget extensibility. Various OpenAjax Widgets are available on the Dreamweaver Exchange (where Dreamweaver users can find 3rd party widgets).

The Dreamweaver widget submission was focused on user interface components — such as combo boxes, menu bars, charts, and calendars — that some Ajax libraries provide. Some members of OpenAjax Alliance pushed to extend the OpenAjax Widget spec to address mashup requirements. This resulted in a handful of additional features that are optional for IDE but required for mashup tools. The mashup-oriented features found in OpenAjax Widgets are summarized in this section of the spec. The “mashable widgets” feature in OpenAjax Widgets overlaps largely with the OpenSocial Gadgets format developed by OpenSocial Foundation, but not completely. There are various features critical to mashup scenarios that are not yet supported by OpenSocial Gadgets. Various members of OpenAjax Alliance are now working with members of OpenSocial Foundation to mirgrate mashup-oriented features from OpenAjax with OpenSocial, although this process will likely take some time.

The other major piece in the OpenAjax Metadata spec is an XML format for representing JavaScript APIs (“OpenAjax API Metadata”). The starting point for these features was the ScriptDoc XML format supported by Aptana Studio. The OpenAjax API Metadata spec is generally close to ScriptDoc XML. Aptana implemented support reading the OpenAjax API Metadata format (which provides information to help with code assist) and worked with leading Ajax toolkits to generate OpenAjax API Metadata. Eclipse Foundation also includes support for OpenAjax API Metadata within its JSDT component.

2 Comments »

Pingback by Ajaxian » OpenAjax Metadata 1.0 and the Adobe Dreamweaver Widget Browser

May 11, 2010 @ 5:50 am

[...] Here is an announcement with some accompanying background. [...]

Pingback by Introduction to OpenAjax Widgets | Web Spiders' Blog

May 13, 2010 @ 2:15 am

[...] here for a detailed [...]

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.