Runtime capability negotiation for the Internet of Things
With the internet of things, many different things (systems, devices, sensors, actuators, etc) will interact. Some of these will be more powerful than others, e.g. a phone, compared to a cloud service, compared to a temperature sensor embedded in clothing.
The focus so far has been on the building blocks to get things to talk to each-other (e.g. low-level comms (radio), data formats, etc). But moving forward, there will need to be more control/co-ordination of these devices. This is because interactions are ad-hoc — who, what, when and how systems/services/devices communicate will need to be determined on the fly, and may occur with things never seen before. E.g. walking into your friend's home for the first time, how can we quickly determine that we could interact with their lights, and their stereo, but not their oven, heating system or their grandmother's heart-rate sensor. More specifically, how can we even know the capabilities of these devices.
This project will explore the mechanism by which 'things' can negotiate, at run-time, the types and properties for interactions with others, and the mechanism by which they can be controlled.
Data analytics to support EU Intellectual Property Law
The EU patent system is current undergoing radical transformation. However, there is little, if any, technical support for this.
This project would develop, explore and evaluate data analytics techniques, to help uncover new and interesting associations between patents and case law. The target is not only to support the judiciary, and law firms, but to uncover new and interesting insights into the types of technology being protected, and how these have been referenced.
There is lots of Government and industrial support for this - opportunity to work with some high-profile players in the space.
Maintaining privacy in the Internet of Things
The vision of the internet of things is basically data being collected constantly from everywhere. A lot of this, however, will relate to the physical environment/space you're in. E.g. the room you're in, the shops near by, other people around you, etc.
It would be useful to have some control over who you interact with and how your data is used. This project will explore practical mechanisms for effecting this. A simple example might be something like 'telling' a Google glass wearer to `ignore me'.
Decentralised, secure data sharing/recovery (for healthcare)
To explore how highly sensitive data can be shared in a peer-to-peer, decentralised infrastructure - with a particular focus on mobile devices.
Broadly the themes concern mobile computing, security and distributed systems networking.
Some issues include:
*) 'Managing failures' - be they security related, e.g. a lost/stolen phone or compromised key, or more network based (disconnection). How do we recover prior data?;
*) 'Dynamic data types' - different 'types' of data exist, and may be defined at runtime --- sending a file (e.g. picture, video) is different to a live stream (ECG stream, accelerometer, live video).
The motivation stems from the NHS - there's the opportunity to engage with clinicians and trusts, if desired.
Infrastructure for supporting behavioural change (with uMotif)
Reminders and notifications have been shown to effect real behavioural change.
This project explores how a technical infrastructure can improve health and well-being, where a person (or their care community) to be prompted when/where relevant to effect some lifestyle change.
There are many aspects to this project -- so there is some freedom to focus on areas of interest.
This could include developing a suitable (reliable, secure) messaging capability (comms), complex event processing - that is, working out when important things have happened, the best time to send a message etc (which involves combining data from various sources e.g. phone sensors with environmental data, and perhaps open datasets), how to specify policy (e.g. can we take a complex set of actions when something happens), etc.
The project is in collaboration with uMotif (a prosperous, rapidly growing medical-IT startup), and has much scope for real-world testing and deployment.
Demonstrating distributed-systems using Raspberry Pis
The Raspberry Pi is a cheap little computer, originally developed to help introduce CS concepts to younger people.
This project concerns a platform for introducing networking (distributed systems) concepts, through a bunch of Pis.
Demonstrating networking would probably be through some "fun" A/V feedback, e.g. playing some sound(s), screen output, lights, buzzers, etc. The networking concepts demonstrated by the users (kids/teachers) composing a 'symphony', or 'art-installation', of sorts.
The challenge is making things 'work'. That is, at a lower-level, coordinating the devices, making sure they are in synch, loads are balanced (data flows, CPU, etc), dealing with failures (network variability, 'unplugging' the pi). This stuff should be seamless for users - they are non-experts! But at the same time, there needs to be feedback to illustrate network issues (e.g. failures, congestion).
Quite a few resources are available to assist (devices, scripting languages, middleware, etc.)