Today, in a world of cloud-hosted software, every application is a kind of trap. Even if it lets you export your data in a form other systems can read, many of the best apps have social features. You can't switch because your friends or colleagues are still using the old site — the new site will be a ghost town. This stifles competion, blocks innovation, and leaves users less happy with the systems they are using. While some developers might want to lock-in users, we trust that many value user happiness and would open their systems if it was technologically practical. Our goal is to make it practical.

Highlights

The Challenge

Around the world, as people increasingly use computer applications not just in their jobs but to automate and connect more and more elements of their lives, they are discovering that along with the benefits come considerable risk and frustration. As people move their lives online, the limitations of their software become limitations in their lives, yet the prevailing software architecture renders them unable to find or create other options. These limitations have broad impacts across the world, as technology solutions increasingly move toward venture capital and solutions which are easy to monetize, instead of directly providing what people want or need.

Our goal with Crosscloud is to create a world where people have better options. We want individuals, for example, to be able to easily integrate data relevant to their health, whether it comes from their exercise tracker, the restaurants they visit, their bathroom scale, or a medical testing lab. We want them to be able to share this data with their doctor and other caregivers, and also to be able to run a variety of commercial and noncommercial analytic software, mining their own data, all without significant risk to their privacy.

The Crosscloud approach uses personal data management, but it has impacts far beyond personal subjects like health. For instance, we aim for small businesses to be able to connect with their customers based on mutually beneficial relationships, not subject to shifting winds in social media companies and search engines, but simply making use of data each is willing to share with each other. We want emergency workers to be able to gather all available local resources and necessary data on survivors, even when the infrastructure is damaged, without opening the door to abuse in non-crisis times.

Perhaps most importantly, we want the software developer who has an idea which will help the world to be able to deploy it quickly and widely, not forcing people to break social ties or move entire communities at once just to try out a new system. Fundamentally, we want the "next Facebook" to be not another $100 billion company but a sea of different apps, from different creators, each well-suited to its users, serving its own market niche, all cooperating to provide an integrated user experience that empowers people around the world.

Goal

Our goal is to make it so building open/decentralized software is not prohibitively more difficult than building closed/centralized systems. For example, in today’s world if someone wanted to create a way for people to play chess online (via mobile apps, websites, etc) nearly all developers would do it in a closed/centralized way. If crosscloud technology were prevalent, a developer might quite reasonably build a decentralized system, knowing it would be comparatively easy to build and maintain.

The features of an open/decentralized system:

A user can switch to competing software painlessly (without losing any work or relationships)

There are no inherent bottlenecks, single points of control, or single points of failure.

Systems can change and improve over time, not subject to anyone’s control, agreement, or coordination

There are social, legal, and business aspects of this goal, but as our expertise is computer science, we are primarily concerned with technical considerations. Of course, we hope over time people with all the necessary expertise will come forward and help address all aspects of the challenge.

Technical Approach

While there remains much research to be done, we are relatively confident in this approach:

Crosscloud apps are stateless software, using separate data repositories (“pods”, from “personal online data”), which might be remote across a network.

Pods stand in for users, acting as their data storage agents. If a group of people are using some app, the app stores its data on the pods of those people.

Data is stored by apps on pods in a form that supports interoperability, so that users can use different apps, developed independently, with the same data.

A pod’s “owner” is the person (or organization) who the pod operates on behalf of and who generally owns the data on the pod. A pod “provider” is someone who keeps the pod functioning properly and may own the hardware the pod runs on (but there may be a IaaS provider who owns the hardware). Pod owner and provider are similar to tenant and landlord.

August 2014. Slides and video from presentation at Semantic Technologies and Business Conference. The talk is aimed at an audience familiar with the Semantic Web technology stack and interested in the emerging Linked Data Platform (LDP) standards.

June 2014. Slides from presentation to W3C staff. This talk is aimed at an audience expert in Web technologies, broadly speaking, and the standards process.

W3C

Students

If you're an MIT student, or a prospective MIT student, please let us
know about your interest in this project. UROP, UAP, MEng, and PhD RA
opportunities are often available. Contact: crosscloud-jobs@csail.mit.edu.

Hiring

We're looking for talented web developers and researchers to join our team at either QCRI or MIT.

Located in Doha, Qatar, QCRI
is an emerging leader in computing research, with over 100
experts from more than 25 countries. The distributed system group has openings for software developers and
computer scientists eager to take on the challenges of this
project.

Located near Boston, Massachusetts, MIT's Computer Science and
Artificial Intelligence Laboratory (CSAIL) is a
global pioneer in computing.

In addition to openings for technical staff (full-time
developers), we are looking for postdoctoral associates,
PhD students, and undergraduate researchers (UROPs).
For more information, please contact us at
crosscloud-jobs@csail.mit.edu.

For specific job requirements see our jobs page.
Contributing to solid
on github, with PRs or helpful issues, is a great way to
stand out.