This post was originally published on October 24, 2012 as part of the submission to Mozilla Ignite project. This article was slighly amended.
What problem are we intending to solve?
The “packet with a label identifying the receiver’’ model seems to be an ill fitting abstraction for popular Internet services provided by companies such as Google, Facebook, YouTube, or Twitter. These services are primarily about information dissemination and a suitable network service abstraction should really do more than deliver individual packets really, really fast.
While there has recently been a lot of focus on content-centric networking, the web taught us that much information is in the links between things. The database community has clearly embraced the challenge of “linked data at unprecedented scale’’ as reflected by new research on graph or no-schema databases, as well as different distributed models. Furthermore, services, such as email, chat, and voice mail, clearly demonstrate that most of our interactions spread across time as well. On the other hand, the networking community has not much progressed beyond a slightly more generalised notion of packet and time in the form of content delivery networks.
We argue that we should adopt an information centric system model instead of the current service oriented one. Rather than dealing with information exchange between specific services on a case by case bases, we should instead consider a global information storage and dissemination network onto which individual applications and services are built. Information exchange is done implicitly through sharing as depicted in Figure 1. This is quite different to content-centric networks as we believe that the relationships between “entities’’ is a fundamental component in describing information and should not be hidden in the bits of a content blob.
A higher service abstraction which is closer to the application developers world would also provide new opportunities for ISPs. Moana essentially adds asynchronicity and with it time elasticity which creates many more opportunities to innovate in the way such a service is provided. Similar to FedEx and DHL, ISPs could expand from a “dumb” packet delivery service to an information logistics provider.
Moana merges various concepts from the network, database, and semantic web field to realise a fully distributed and decentralised, global information network. We believe that unifying the way we store, disseminate, and retrieve information will lead to similar leaps in innovation as we have seen when the Internet did the same for data.
The core concept is similar to the Semantic Web. We propose a globally accessible service which provides an API to enhance and access a global hyper-graph consisting of labeled nodes, edges and contexts. Applications and services can publish to this graph and subscribe to be informed about certain additions to the graph. The labels are simple UUIDs and any semantic interpretation is left to the applications and services (E2E principle).
A graph is an almost universally used data-structure to maintain state in computer programs. For instance, an object oriented design is essentially defining a graph consisting of nodes (objects and property values) and edges (property names).
We are enhancing the simple planar structure of a graph with a context and a group identifier. The former allows for providing “information about information” (reification) and the latter defines a security context. Both identifiers are also nodes in the basic graph allowing for further annotations without any additional mechanism.
From an implementation point of view, the graph is serialised into a set of n-tuples which is further sub divided into sub-sets based of the group identifier. Each of the sub sets (groups) is hosted in its own secure container which controls access to the tuples inside. Groups can be replicated and hosted according to the group owners requirements. A user may decide to host the group containing her medical records on her home gateway, her photo collection in her ISPs data center and her financial records in a secure facility underwritten by her bank.
How will end users interact with it, and how will they benefit?
The end-user would not directly interact with Moana but will greatly benefit as applications layered on top can then be viewed as different windows into the SAME information space. Different aspects of a user’s information space will no longer be locked up in various applications, but instead applications will provide users the ability to interact with all their accessible information in different ways. By removing the need for syncing of data between applications and devices, as well as mapping data from various formats and sources into the applications internal information model, applications can innovate on how the enable a user to interact with various kinds of information. Applications will work behind the scene and on behalf of a user to enrich the user’s information space. Developers with new ideas on how to find relevant information for a user or which can discover new links between existing nuggets, now no longer need to worry about also creating a ‘nice, compelling GUI’.
However, we do plan to develop (or adopt existing) applications to demonstrate Moana’s potential.
Imagine a room where the music played in the background is adapting dynamically to the preferences of the people present in it. While such an application can be built now by meshing various services together, we will demonstrate the ease with which it can be realised with Moana and more importantly, how easily it can be extended without having to modify anything in the base service.
The RoomDJ service assumes that the Moana information space would contain information on who is in a specific room, and by extension, their musical preferences. The former information may be maintained by the rooms wireless access point to which all the local mobile devices are connected. Information about their musical preferences is available from stored playlists and listening history. Obviously, there is a privacy issue, but Moana provides mechanisms to control access to all such information. Finally, the music itself, with all it’s associated meta data is stored in Moana in a consistent fashion.
My Social Network:
Projects, such as Diaspora promote a distributed social networking where everyone store and controls their own information. However, the current network & service architecture requires a significant amount of code and effort on behalf of the developers to build such system, and even more importantly, a significant effort by the users to maintain it.
An information-centric network service takes away most of these concerns. All Moana-enabled applications and services will already maintain a coherent information graph for each user which also naturally links to others. Moana’s inherent access control model maintains control over who can see what in the hands of each user. Obviously, companies like Facebook provide more than just storage and a nice GUI to all that information. They also enrich, sort, and filter information. However, in Moana, every user is free to choose which service they would want to use to do all that with their data. Separating these various concerns will unlock many new ideas on how best to do this.
Personalise Diet Plan:
Imaging trying to market a service which creates a presonalised diet plan based on your medical record. “Upload your medical history and credit card - Trust us we won’t share that with anyone”. However, a deeply programmable and distributed infrastructure combined with Moana’s information-centric approach also supports a “bring computation to the data” model. The diet program, embedded in a virtual machine would execute in a sandboxed environment where it would be given special access privileges to the user’s medical information and by restricting any information ‘leakage’ out of this box to the Moana information space, the ‘information integrity’ of the Diet Plan service can be verified. Emerging research results in distributed, differential privacy can easily be applied to provide aggregated performance information back to the service provider.