Open-CI, a technical overview

Open-CI is a set of open standards built on existing technologies designed to enable collaboration between social networks and websites. The reference implementation anyMeta is built by Mediamatic, but Open-CI is independent of Mediamatic Lab and is built upon and provides Open Standards and Open Source Software.

The collaboration does not solely consists of exchange between Open-CI sites. Any social network wishing to implement the open standards in Open-CI may do so and become part of the network. Other social sites or content management systems that have a need for user management may use a plugin to outsource this functionality to Open-CI. A complete implementation is best for full interoperability, but implementing part of the standards will already bring some benefit to a participating system and its users.

The following standards are used in Open-CI:

  • The HTTP standard is used extensively to offer web browsers and other clients access to resources in the appropriate format. HTTP is also used for synchronous server to server communication. Content negotiation is used by clients on URIs to retrieve the appropriate representation of an object.
  • The XMPP messaging protocol is used to exchange data and updates between Open-CI servers. The Publish-Subscribe extension (XEP-0060) is used in particular to provide scalable updates without the need for continuous polling.
  • The Atom format is used to offer a representational machine readable version of content to interested parties both over HTTP as over XMPP.
  • OpenID is an identity system both provided and consumed by Open-CI. Users can use any OpenID login to log onto an Open-CI site and an Open-CI account can serve as an OpenID login on other Open-CI sites and any other site that consumes OpenID.
  • OAuth is a protocol used to let users grant authorization to protected resources. This can be the case when third parties want access to API methods, but also when collaborating sites need to update content and profiles on a different server based on users' actions.
  • XRDS is used to discover service endpoints on resources and has been extended to provide necessary additional information such as OAuth consumer keys and notification of created relations.

Mediamatic provides documentation for the standards used in the Open-CI system and their semantics (forthcoming).

Mediamatic also provides a number of public services other sites may wish to use:

  • The Central Search Service is a crawler that indexes content from the Open-CI network and offers an interface users can use to search the index with OpenSearch.
  • The Identity Service returns a user's original Open-CI site based on a given hash. This makes users identifiable while maintaining privacy.
  • The reference implementation for the PubSub (XEP-0060) server is written in Twisted. There also is a HTTP gateway component to the PubSub server which is available as the Idavoll HTTP interface.