VIENNA, Va.-The OpenAjax Alliance is working to address interoperability issues among development environments for AJAX as well as to facilitate the creation of secure mashups.
At the Rich Web Experience conference here on Sept. 4, Jon Ferraiolo, an IBM engineer and director of the OpenAjax Alliance, a consortium of vendors and organizations working to promote AJAX interoperability, said the group has published draft specifications for ways to make AJAX IDEs (integrated development environments) more interoperable, to secure the creation of mashups and to make widgets more interoperable for use in mashups.
Ferraiolo said the capabilities in AJAX IDEs-such as code assist, debug and visual layout-ought to be interoperable across the different IDE platforms, but as each AJAX tool kit documents its APIs and widgets in its own way, that has been a problem. So the OpenAjax Alliance is working to overcome that problem with a new specification known as OpenAjax Metadata for AJAX Libraries, which delivers industry-standard XML for JavaScript APIs and user interface controls.
It should be possible for there to be intelligent code assist for APIs across different AJAX libraries, and visual design should be possible using widgets from AJAX libraries, Ferraiolo said. The OpenAjax Alliance specifications will help get to that point, he said.
Aptana is leading the OpenAjax Alliance’s IDE Working Group. Ferraiolo said the group wanted to follow the lead of the leading AJAX IDE in the industry and that is Aptana’s.
Standards will improve industry efficiency and unleash innovation, Ferraiolo said. So in that regard, AJAX libraries can produce one format, OAM (OpenAjax Metadata), for their APIs, and these libraries will then be compatible with many IDEs, he said. If the library uses JSDoc, then autogeneration of OpenAjax Metadata is possible. “We are investigating autogeneration for other inline documentation formats, such as what Dojo uses,” Ferraiolo said. “AJAX IDEs can consume one format, OAM. That IDE will now support dozens of AJAX libraries. By unifying the industry around a single XML file, [this makes it so that] IDEs can now innovate and compete in other areas.”
The OpenAjax Alliance IDE Working Group has a number of participants, but the core group that shows up on the weekly calls includes folks from Aptana, folks from Adobe’s Dreamweaver group and folks from Microsoft’s Visual Studio team, Ferraiolo said.
And while Microsoft has taken a rap for not participating or playing well in some standardization and open-source efforts, Ferraiolo said the company is working to make Visual Studio support the OAM format. Other organizations with participants in the working group include the Eclipse Foundation, Sun Microsystems, TIBCO and OpenLink Software.
Aptana has contributed much to the effort, including sharing some of its extensive experience with the ScriptDoc.org project for annotating JavaScript in a way that enables code assist and code completion style features in Aptana Studio, the company’s open-source IDE for Web 2.0 apps that use AJAX.
“Microsoft has been a strong, active participant, as has Adobe, IBM, Eclipse, Sun, OpenLink and others,” said Kevin Hakman, chairman of the IDE Working Group and director of evangelism at Aptana. “All have influenced the specification offering insights from their respective IDEs, user communities and code annotation conventions. Not to diminish others who have contributed significantly, but Bertrand Le Roy of Microsoft has been a consistent core contributor to this process whose input has been very insightful and formative.”
Where Is OpenAjax?
There is a draft of the OpenAjax Metadata specification that is now in the implementation phase, Ferraiolo said.
“Our open-source mashup tool supports the widget format, but not APIs at this point,” Ferraiolo said. “Version 0.1 of JSDoc to OpenAjax Metadata is available. We have not yet started on work for other inline documentation formats, [such as] Dojo. And we have not yet started on Aptana to/from OpenAjax transcoders.”
“OpenAjax Metadata is all about making it easier to use JavaScript libraries and incorporate Ajax widgets when creating Web pages, Web applications and mashups,” Hakman said. “The OpenAjax Metadata specification provides a way to describe JavaScript objects in a standard way that developers can easily produce and IDEs and mashup environments can consume. The metadata format can describe full JavaScript libraries like Dojo, for example, or single AJAX components like a YUI [Yahoo User Interface] Tree Control, or full-featured mashable AJAX gadgets like Google Maps or even just a plain old JavaScript function too. It works at all levels.”
To be clear, there are two primary specifications that share a common set of descriptors, Hakman said. One is the API specification for describing the APIs of JavaScript objects. This was largely based on ScriptDoc with strong input from JSDoc and Microsoft’s conventions as well, he said. The API metadata is useful to developers writing application code. There also is a markup specification that is largely based on Adobe Dreamweaver’s support and the common Web developer practice of inserting markup and changing parameters in that markup. So in addition to some JavaScript, you also get the chunk of HTML you need to include the widget or gadget in your page, Hakman said.
“The spec contemplates an XML file with transformer utilities to go between JSON [JavaScript Object Notation] and this XML for those that prefer JSON,” Hakman said. “In addition, transformers for JSDoc and ScriptDoc are being created by participants and will likely be shared as open-source code for the community to use.”
Meet OpenAjax Hub
Widgets used to create mashups tend not to be interoperable and also to be potential security risks, in that third-party widgets could be malicious, Ferraiolo said. Widget developers usually have to build different versions of their widgets to work with different containers. And on the security front, there is no comprehensive, standards-based approach to widget isolation.
So the OpenAjax Alliance is working to relieve this situation with its OpenAjax Hub technology and OpenAjax Metadata for Widgets specification. The OpenAjax Hub 1.1 provides a framework for loading and isolating widgets and secure message management, Ferraiolo said. Then OpenAjax Metadata for Widgets defines an industry-standard widget wrapper format. Then open-source transcoders convert popular existing proprietary gadget formats into OpenAjax Metadata, and the OpenAjax Alliance open-source mini-mashup application shows how to use all of these technologies.
The OpenAjax Hub is a small bit of standard JavaScript that enables multiple AJAX run-times to work together, and Version 1.1 provides for widget security. There is a draft OpenAjax Hub 1.1 specification that should be finalized by the end of 2008, Ferraiolo said.
OpenAjax Metadata for Widgets addresses the two core shortcomings of widgets for mashup use. In terms of widget interoperability, OpenAjax Metadata for Widgets defines industry-standard XML for mashup widgets and is “very close to Google Gadgets,” Ferraiolo said. OpenAjax Metadata for Widgets is designed to work with OpenAjax Hub 1.1, which provides a secure mashup run-time.
“Google Gadgets is the gorilla of the Web widget space, and we want to match Google Gadgets wherever possible,” Ferraiolo said.
Testing OpenAjax Metadata; Mobile Ajax?
The OpenAjax Metadata for Widgets specification is at the first draft stage and should be completed and approved by the end of 2008, Ferraiolo said.
Much of the progress for the OpenAjax specifications will rely on the outcome of the OpenAjax InteropFest, where the organization will test OpenAjax Metadata interoperability across multiple vendors, and also test OpenAjax Hub 1.1 for reliability, performance and suitability.
“As we head into the fall, the goal is that each of the tool vendors in the IDE working group will demonstrate via the OAA InteropFest how they can consume these description files for a variety of widgets from various sources like Google, Yahoo, Dojo, jQuery, EXT JS, Prototype, Scriptaculous, Mootools … and have the things described be easy to use in the context of the tool,” Hakman said. “With this group of tool vendors behind the specification, we’d hope that developers creating libraries and widgets will have strong incentive to produce the description files or annotate their code with ScriptDoc/JSDoc such that their libraries and widgets can benefit from the tooling of many leading companies.”
Also, “We see mobile AJAX as the next big frontier,” Ferraiolo said. “We’ve been trying to advance the ability for AJAX to be successful for mobile initiatives.”
The OpenAjax Alliance is working to promote mobile device APIs, including open-source JavaScript, to access GPS, camera, address book, SMS (Short Message Service) and more, Ferraiolo said. The effort targets both existing proprietary, system-dependent APIs (via plug-ins) and emerging industry standards, he said. And the organization is collaborating with the OMTP (Open Mobile Terminal Platform) and tracking work being done by the World Wide Web Consortium in areas like geolocation, he said.
Ferraiolo mentioned the OpenAjax Alliance feature wish list, where the group polled 222 participants and came up with a list of top requests. The top feature requests include: two-dimensional graphics, security, improved low-level DOM (Document Object Model) hooks for visual layout, DOM performance, rich text editing, server push (Comet), video and audio, Ferraiolo said.