OpenAjax Hub 2.0 Specification
NOTE: This wiki page holds part of the OpenAjax Hub 2.0 Specification.
This document is the approved formal specification for OpenAjax Hub 2.0.
The key feature of OpenAjax Hub 2.0 is its publish/subscribe engine that includes a "Managed Hub" mechanism that allows a host application to isolate untrusted components into secure sandboxes. With the Managed Hub, all communications between components pass through the host application’s security manager, which allows or denies each publish or subscribe request. As a result, the Managed Hub allows for safe integration of untrusted 3rd party components.
Status of this Document
This is the approved OpenAjax Hub Specification for OpenAjax Hub 2.0 that was developed within the Interoperability Working Group at OpenAjax Alliance. It contains all of the finalized and approved content from the OpenAjax Hub 1.0 Specification, plus text for the new features in OpenAjax Hub 2.0.
This Specification was developed under the terms of the OpenAjax Alliance Members Agreement, in which the Members of the OpenAjax Alliance have agreed to various royalty-free conditions for Specifications, and the OpenAjax Alliance Development Process.
OpenAjax Alliance has an open source reference implementation and test suite of the OpenAjax Hub 2.0 feature set at http://openajaxallianc.sourceforge.net.
Public feedback on this document should be sent to firstname.lastname@example.org.
Errata for the final, approved version 2.0 of this Specification are posted at:
Any security issues discovered after finalization of this Specification are posted at:
Versions of OpenAjax Hub
This Specification is for OpenAjax Hub version 2.0. The URL for this wiki page, which is the front page for the OpenAjax Hub 2.0 Specification, is:
The OpenAjax Hub 1.0 Specification can be found at:
A complete list of all versions of the OpenAjax Hub Specification (past, present and in progress) can be found at:
Table of Contents
- 1 Introduction
- Includes an introduction to OpenAjax Hub 2.0, what services it provides, and how it works. It provides links to the open source reference implementation and test suite. It also provides introductory information about the Specification, such as conventions and terminology.
- 2 Library Management
- Defines APIs for registering libraries, unregistering libraries, and querying about previously registered libraries. Includes rules and guidelines for using the OpenAjax Hub library within a Web page.
- 3 Publish/Subscribe Overview
- Overview of the OpenAjax Hub's publish/subscribe services that enable script logic (from libraries, components and the application itself) to publish events on a broadcast basis and to listen (i.e., subscribe) to events fired by other script logic.
- 4 Unmanaged Hub
- Publish/subscribe APIs for the "Unmanaged Hub,", which provide a lightweight event engine when all components are trusted and when all components can co-exist within a single browser frame.
- 5 Managed Hub Overview
- Overview of the Managed Hub, which provides the ability to isolate untrusted components into secure sandboxes and allows for a custom security manager that controls the dispatching of events among the various components in the web page.
- 6 Managed Hub APIs
- Detailed APIs definitions for all interfaces in the Managed Hub.
- 7 Managed Hub Containers
- Overview of the managed hub container architecture, description of the two built-in containers (IframeContainer and InlineContainer), and introduction to how to extend the Hub with custom containers.
- 8 Topic Names
- Rules for topic names used in
- 9 Best Practices
- Discussion of best practices for event names, manager applications (i.e., host application) and client applications (i.e., components).
- 10 Implementation Metadata
- Metadata that implementations of the Hub must provide.
- A References
- References to other specifications.
Copyright 2007-2009 OpenAjax Alliance
Permission to copy and display the OpenAjax Hub specification, in any medium without fee or royalty is hereby granted, provided that you include the copyright notice as shown herein and link or URL to the Specification on the OpenAjax Alliance website. In addition, for parties wishing to implement this Specification, the Members of the OpenAjax Alliance have provided royalty-free patent covenants to their respective patent claims as described in the OpenAjax Alliance IPR Policy.
DISCLAIMERS: THIS SPECIFICATION IS PROVIDED "AS IS," AND THE OPENAJAX ALLIANCE AND ITS MEMBERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, THE OPENAJAX ALLIANCE AND ITS MEMBERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THIS SPECIFICATION OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
No other rights are granted by implication, estoppel or otherwise.