Carbon Commute: Difference between revisions

From C-Aware Project Wiki
Jump to navigationJump to search
(layout improvements)
Line 1: Line 1:
== Introduction to system ==
== Introduction to system ==
Carbon Commute is a system to record and estimate a user’s carbon footprint during their travel to work, whilst respecting their privacy and giving them increased control over the data recording from this activity. It involves an mobile phone application that records a users’ location data and uploads it to a server application. Each user is assigned their own Personal Container, isolated and controlled by themselves, which runs applications within itself and allows user control of the access to their data.
Carbon Commute is a system to record and estimate a user’s carbon footprint during their travel to work, whilst respecting their privacy and giving them increased control over the data recording from this activity. It involves an mobile phone application that records a users’ location data and uploads it to a server application. Each user is assigned their own Personal Container, isolated and controlled by themselves, which runs applications within itself and allows user control of the access to their data.
Line 10: Line 9:
The application records the most accurate GPS updates it can during the commute, and calculates speed and headings at the same time. The timestamp of the start and end of the commute is also recorded. This is then packaged into a JSON object and uploaded to the users locker.
The application records the most accurate GPS updates it can during the commute, and calculates speed and headings at the same time. The timestamp of the start and end of the commute is also recorded. This is then packaged into a JSON object and uploaded to the users locker.


=== iPhone App Internals ===
=== [[Downloading iPhone App | Downloading and running the iPhone Application]]===
  * description of app classes, data flow through app etc.
 
  * requirements to install and run app, instructions to do so, using Test Flight etc
The iPhone application source code can be found on Github, and compiled and run using the Xcode IDE. You can also use a application distribution service such as Test Flight to run the application on users' phones.
=== Downloading and running the iPhone Application ===
[[Downloading iPhone App | More Info...]]
 
===[[iPhone App Internals]]===
The iPhone application was written in Objective C and created using standard APIs included in iOS and the Cocoa framework.
[[iPhone App Internals | More Info...]]


* Link to code on Github


== Locker ==
== Locker ==
Line 30: Line 33:
We have used an implementation of a Personal Container called Locker and use this to store information gathered from the Carbon Commute app, include information from many other sources, and run apps within itself to process the data and output results. Thus the University can know the travel to work carbon footprint of an individual without knowing where the individual has been.
We have used an implementation of a Personal Container called Locker and use this to store information gathered from the Carbon Commute app, include information from many other sources, and run apps within itself to process the data and output results. Thus the University can know the travel to work carbon footprint of an individual without knowing where the individual has been.


For more information see the [http://www.cl.cam.ac.uk/research/srg/netos/c-aware/arch.html C-Aware Architecture] page.
For more information on personal containers see the [http://www.cl.cam.ac.uk/research/srg/netos/c-aware/arch.html C-Aware Architecture] page.
 
===[[Locker Internals]]===
Locker is a personal container implementation coded in Node.JS and using a MongoDB backend.
[[Locker Internals | More Info...]]


===[[Locker Setup]]===
The lockers were setup on the university computing service's cloud service, hosted within a VM and inside individual containers.
[[Locker Setup | More Info...]]


* Overview of what locker provides, history
* Overview of what locker provides, history

Revision as of 15:13, 21 January 2013

Introduction to system

Carbon Commute is a system to record and estimate a user’s carbon footprint during their travel to work, whilst respecting their privacy and giving them increased control over the data recording from this activity. It involves an mobile phone application that records a users’ location data and uploads it to a server application. Each user is assigned their own Personal Container, isolated and controlled by themselves, which runs applications within itself and allows user control of the access to their data.

The Carbon Commute system has 3 main parts; a mobile phone application, one or more installs of the “locker” personal container software, and applications that run within locker. In our implementation we used an iPhone for the mobile platform, and ran lockers on servers hosted by the university computer service.

iPhone App

The mobile application is responsible for collecting location data when the user is commuting to or from their workplace. It allows the user to set their work and home locations' and then monitors and records the users location when travelling between these points. Once a GPS path has been recorded, it is uploaded to a remote server, running the users locker, where it is used to calculate the carbon footprint of the user.

The application records the most accurate GPS updates it can during the commute, and calculates speed and headings at the same time. The timestamp of the start and end of the commute is also recorded. This is then packaged into a JSON object and uploaded to the users locker.

Downloading and running the iPhone Application

The iPhone application source code can be found on Github, and compiled and run using the Xcode IDE. You can also use a application distribution service such as Test Flight to run the application on users' phones. More Info...

iPhone App Internals

The iPhone application was written in Objective C and created using standard APIs included in iOS and the Cocoa framework. More Info...


Locker

To produce accurate reports on personal energy use, it is necessary to track a users location, for example to calculate their energy use whilst commuting, at work, as well as at home. This requires personal data, and it is important:

To allow only reputable parties to use this information, and only for the applications the user allows. To provide an environment in which third party applications can run but only provide output back to the user. In this case, we want to allow (e.g.)the university to calculate the carbon footprint of our commute as accurately as possible, yet deny data that the university does not require, and ensure the university is only using this data for this application.

Our solution is to use a 'personal container' architecture where personal data is stored in user-specific containers, through which the university requests access to a subset of that data which users can accept or deny, and identify exactly what is being accessed.

These containers protect user data from unauthorised access- the goal is not necessarily to share less data with 3rd parties, but to make sure the user is aware of all data accesses that occur, and that they are happy to authorise them.

We have used an implementation of a Personal Container called Locker and use this to store information gathered from the Carbon Commute app, include information from many other sources, and run apps within itself to process the data and output results. Thus the University can know the travel to work carbon footprint of an individual without knowing where the individual has been.

For more information on personal containers see the C-Aware Architecture page.

Locker Internals

Locker is a personal container implementation coded in Node.JS and using a MongoDB backend. More Info...

Locker Setup

The lockers were setup on the university computing service's cloud service, hosted within a VM and inside individual containers. More Info...

  • Overview of what locker provides, history
  • link to original locker code
  • Info on locker install in the lab, how to create, destroy, start, stop lockers etc.
 * setup of VMs at computing service
 * DNS setup, location of relevant files etc
 * Web Server front end setup, etc
 * LXC Container setup
 * Locker install with containers

Locker App

  • Introduction
  • How a locker app works within locker
  • locker end-point for data info
  • data used by app, overview of UI.