the design and implementation of a context-aware file system for ubiquitous computing applications

Post on 04-Jan-2016

26 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

The Design and Implementation of a Context-Aware File System for Ubiquitous Computing Applications. Christopher K. Hess Advisor: Roy H. Campbell Systems Research Group University of Illinois at Urbana-Champaign. Application Logic. Output. Input. A Room as a Computer. - PowerPoint PPT Presentation

TRANSCRIPT

The Design and Implementation of a Context-

Aware File System for Ubiquitous Computing

Applications

Christopher K. HessAdvisor: Roy H. Campbell

Systems Research GroupUniversity of Illinois at Urbana-

Champaign

A Room as a Computer

Output

Input

ApplicationLogic

Activity Oriented Computing

Research FocusSpaces:

• Private work spaces• Public work spaces• Group activity spaces

Applications:• Office apps• Collaborative apps• Activity apps

Outline

• Overview• File System

• mobile users• application types• heterogeneous devices

• Evaluation• Conclusions

1

application launcher

Scenario

Scenario

2

attendance recorder

Scenario

3

4

Scenario

Scenario

5

6

Scenario

6

Scenario

7

Scenario

8

What is Different?

• Mobile users• Mobile devices• Heterogeneous devices• Many configurations• Scheduled activities• Context

What is Context?

• Information used to characterize the situation of an entity typically from physical world activity, time, location, etc.

• Decisions made by applications or system

Thesis Statement

Context must be integrated into data access systems in ubiquitous computing environments to support the ways in which the space and its applications are used.

Context in Data Access

• Make data available in current location

• Make data valid when conditions are met

• Tag data for later retrieval in a context

• Adapt data to device context

Context File System (CFS)

• Context-aware file system has knowledge of environment can present relevant information

• Application level distributed file system

• Core service of Gaia middleware operating system supports application development

Gaia: A Middleware Infrastructure to Enable Active Spaces. Manuel Román, Christopher K. Hess, Renato Cerqueira, Anand Ranganathan, Roy H. Campbell, and Klara Nahrstedt, In IEEE Pervasive Computing, pp. 74-83, Oct-Dec 2002.

Architecture

• Mount server database of data references constructs the namespace

• File server provide access to distributed data

• Containers collection of typed objects

Question: How to support issues in ubiquitous computing?

Issue 1: Mobile Users

• Interact with local resources• Data cloud follows the user

Space A Space B

move

inject personal data reference into local space

Mobile Mount Points• User carries

mount points• Push into local

mount server• System

allocates user directory

File mode

/

bin users

usr1 usr2

ppt mp3 doc

mergeusr3

Building Applications for Ubiquitous Computing Environments. Christopher K. Hess, Manuel Román, and Roy H. Campbell, In International Conference on Pervasive Computing (Pervasive 2002), Zurich, Switzerland, August 26-28, 2002.

Merging Data

Space 3

Space 2Space 1

IR Beacon

merge/extractmounts MS

FS

disk

FS

disk

FS

disk

FS

disk

• PDA• Laptop• Profile

server

Add Personal Data

Issue 2: Application Types

• Public applications direct data to applications

• Scheduled applications prune irrelevant data

• Configurable applications personal configurations

group related material

Program Data• Applications specify what data they are

interested in• File system uses context to determine

when to make it available

• Applications do not know what context they are running in – just open a directory, but contents will change with context

• Applications run unchanged in different contexts – context knowledge is in system

A Context-Aware Data Management System for Ubiquitous Computing Applications. Christopher K. Hess and Roy H. Campbell, In International Conference of Distributed Computing Systems (ICDCS 2003), Providence, Rhode Island, May 19-22, 2003.

• Activity• Time• Location• Identity• Space

Properties what kind of data

• Type• Sub-type• Category

Group Related Material

Think of shapes and colors…

Context when data is valid

Properties

• Property = shape• Direct data to applications

Application

Space

Application

Properties

• Property = shape• Direct data to applications

Application

Space

?

Application

Properties

• Property = shape• Direct data to applications

Application

Space

?

Application

Properties

• Property = shape• Direct data to applications

Application

Space

Application

Context

• Context = color• Prune irrelevant data

Space

MeetingSeminarClassroom

Application

Context

• Context = color• Prune irrelevant data

Space

?

MeetingSeminarClassroom

Application

Context

• Context = color• Prune irrelevant data

Space

?

MeetingSeminarClassroom

Application

Context

• Context = color• Prune irrelevant data

Space

MeetingSeminarClassroom

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

?

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

?Meeting

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

Meeting

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

?Seminar

Application

Properties + Context

• Direct data to applications• Prune irrelevant data

Application

Space

Seminar

Application

Getting Relevant Data

File System

Application

Current context:situation = seminardate = 08/12/02

= paper

Give me papers

Question: How to apply shape and color to data?

Attaching Metadata• Metadata = properties + context• Attach metadata to files and directories• Instruct system when data is valid• Specify kind of data – fast searches

Datatype

time location

activity

Directory Representation

• Metadata name/value tuples• Name = property or context• Paths based on 1 or more tuples

name = locationvalue = 2401

/location:/2401data

data

Metadata Directories

PURPLE

/type:/ppt

/location:/2401

/type:/ppt/location:/2401

+

ORANGE

/type:/ppt

/location:/2402

/type:/ppt/location:/2402

+

OR

Virtual Directory

• Constructed from metadata

• Copy files to context mode directory to attach metadata

• Not ordered

Context mode

/

current: time:

mp3 gaia.ppt 2401

mp3 gaia.ppt time:

location:

2402

Metadata Augmented Mounts

Data

Mounts

Directories

link

aggregate

Accessing Data

• Applications unaware of current context

• Applications explicitly specify properties

• Context is determined implicitly

/type:/pdf/current:properties context

How to Find Relevant Data?

• Mount server maintains current context

• Directory path converted into query

• Aggregate relevant data into directory

/type:/pdf/current:

current context

FS FS FS FS

mount table database

type = pdftime = 2/3/03situation = seminar

type = pdftime = 3/3/03

MS

Relevant Data AlgorithmRelevant data ≠ properties + context

1. Match all properties exactly2. Match tagged context only

Current context:location = 2401situation = meetingweather = sunny

Datatype location

situation

properties context

weather is wildcard

Search for valid mounts:

Public Applications

/type:/mp3/current:

Scheduled Applications/current:/attendance.att

Tag file with situation metadata.

situation = meeting situation = seminar

Configurable Applications

Browser opens:

/acd:/ppt/current:

Tag configuration:

acd = pptlocation = 2401

Issue 3: Heterogeneous Devices

• Devices have different characteristics• Applications specify how to access

data• Type of data changes based on how

data is accessed

dynamic types

Transform Data

Context File System

BitmapsGIFsGIFs to Pixels

Pixels to Bitmaps

Bytes to GIFs

Bytes

Bytes

PowerPoint

Native File System

Design and Performance of MPEG Video Streaming to Palmtop Computers.  Christopher K. Hess, David Raila, Roy H. Campbell, and Dennis Mickunas.  In Multimedia Computing and Networking 2000 (MMCN00), San Jose, CA, January 25-27 2000.

Container ChainsInterface Map

Converter Containers

bitmap

pixel

BitmapContainer

GIFContainer

PixelContainer

ByteContainer

DirectoryContainer

TextContainer

FileContainers

dirent

byte

.ppt

*

.mpg

.gif

gif

mpeg

.txt

.doc

text

ByteContainer

DirectoryContainer

TextContainer

WordContainer

GIF2PixelContainerPixel2BitmapConverter

MPEGContainer

GIF2PixelConverterPowerPointContainer

An Adaptable Data Object Service for Pervasive Computing Environments. Christopher K. Hess, Francisco Ballesteros, Roy H. Campbell, and M. Dennis Mickunas.  In 6th USENIX Conference on Object-Oriented Technologies and Systems (COOTS'01), San Antonio, TX, January 29-February 2, 2001.

Interface Example

ImageViewer viewer;GIFs gifs;GIFContainer c(“gaia.ppt“, GaiaFS::Read);c.satt(“width”, “352”);c.satt(“height”, “240”);

while (!c.eof()) { c.get(gifs, 1); viewer.display(gifs); // … wait for user input …}

c.close();

Evaluation

• Ubiquitous computing environments are difficult to evaluate

• Goals: programmable and usable

Development programmable Performance usable

Simple Interface

• Not counting headers, generated code, path resolution, mount table lookup, etc.

• PPT – GIF ~270 lines of code to 10 lines

• PPT – GIF – Pixel – Bitmap ~460 lines of code to 10 lines

• Context mode directory ~500 lines of code to 10 lines

Context Mode Operations

Operation Time (msec)

List root 0.711

List directory (1 fs) 1.720

List directory (2 fs) 2.825

Create directory 8.948

Remove directory 36.669

Copy file to directory 11.303

Remove file from directory 9.021

Contributions

• Integrated environmental context into the file system design

• Enabled new types of applications• Developed mechanisms for users to

inject data references into the local environment (data cloud)

• Developed an interface and framework for supporting dynamic types

Related Work

• ParcTab• Stick-e Notes• TACC• Odyssey• Symantec• Presto• CAR

Needed support for applications in ubiquitous computing spaces

Questions?

Thank you!

Context-Aware Mount Points

<CFS:Storage> <CFS:Owner>ckhess</CFS:Owner> <CFS:Host>srg181.cs.uiuc.edu</CFS:Host> <CFS:Path>C:\Temp\15687</CFS:Path> <CFS:Context> <CFS:Type>type</CFS:Type> <CFS:Value>pdf</CFS:Value> </CFS:Context> <CFS:Context> <CFS:Type>location</CFS:Type> <CFS:Value>2401</CFS:Value> </CFS:Context></CFS:Storage>

/type:/pdf/location:/2401

• Attach attributes – create mount point.

<CFS:Storage> <CFS:Owner>mroman</CFS:Owner> <CFS:Host>barna.cs.uiuc.edu</CFS:Host> <CFS:Path>C:\Temp\34981</CFS:Path> <CFS:Context> <CFS:Type>type</CFS:Type> <CFS:Value>pdf</CFS:Value> </CFS:Context> <CFS:Context> <CFS:Type>location</CFS:Type> <CFS:Value>2401</CFS:Value> </CFS:Context></CFS:Storage>

Container Wrappers

GIFContainer

ContainerBase

C * _container;int _position;Attr _attrs;

int get(O &buf, int count);int put (O &buf, int count);void satt(char *type, char *value);

C, O

<GIFContainer, GIF>

<<bind>>

GaiaFS::Container::GetResult result;result = _container-> getObjects(buf, _position, _attrs);_position = result.position;return result.count;

XML Container Description <CFS:Container> <CFS:File/> <CFS:Interface>GIFContainer</CFS:Interface> <CFS:Name>PowerPointContainer</CFS:Name> <CFS:Extension>.ppt</CFS:Extension> <CFS:Output>gif</CFS:Output></CFS:Container>

<CFS:Container> <CFS:Converter/> <CFS:Interface>PixmapContainer</CFS:Interface> <CFS:Name>GIF2PixmapContainer</CFS:Name> <CFS:Input>gif</CFS:Input> <CFS:Output>pixmap</CFS:Output></CFS:Container>

Experimental Setup

1.5 GHz Pentium-4256 MB RAMWindows 20001 Gbps Ethernet

MS

FS

module

shell

FS

module

FS

module

FS

module

PPT – GIF

PowerPoint to GIF (sec)Dimensio

nText Graphic Picture

80x80 0.0200 0.0450 0.0630

160x160 0.0251 0.0541 0.1041

240x160 0.0281 0.0631 0.1181

352x240 0.0360 0.0831 0.1943

640x480 0.0771 0.1812 0.4797

800x600 0.1101 0.2434 0.6099

PPT – GIF – Pixmap – Bitmap

PowerPoint to Bitmap (sec)Dimensio

nText Graphic Picture

80x80 0.0210 0.0491 0.0641

160x160 0.0311 0.0471 0.1162

240x160 0.0400 0.0641 0.1342

352x240 0.0681 0.0771 0.2303

640x480 0.2043 0.3025 0.6069

800x600 0.3054 0.4369 0.8132

Mount Server Queries

Single Tuple Query

0

0.05

0.1

0.15

0.2

0.25

10 20 30 40 50

Number of Mounts

Tim

e (m

s)

1 match

2 matches

3 matches

4 matches

• Scales linearly.• Scale bounded by space and

activity.

Selected Publications• A Context-Aware Data Management System for Ubiquitous

Computing Applications.  Christopher K. Hess and Roy H. Campbell, In International Conference of Distributed Computing Systems (ICDCS 2003), Providence, Rhode Island, May 19-22, 2003.

• Building Applications for Ubiquitous Computing Environments. Christopher K. Hess, Manuel Román, and Roy H. Campbell, In International Conference on Pervasive Computing (Pervasive 2002), Zurich, Switzerland, August 26-28, 2002.

• Gaia: A Middleware Infrastructure to Enable Active Spaces. Manuel Román, Christopher K. Hess, Renato Cerqueira, Anand Ranganathan, Roy H. Campbell, and Klara Nahrstedt, In IEEE Pervasive Computing, pp. 74-83, Oct-Dec 2002.

• An Adaptable Data Object Service for Pervasive Computing Environments. Christopher K. Hess, Francisco Ballesteros, Roy H. Campbell, and M. Dennis Mickunas.  In 6th USENIX Conference on Object-Oriented Technologies and Systems (COOTS'01), San Antonio, TX, January 29-February 2, 2001.

• 2 more under review. Personal and Ubiquitous Computing Journal (ACM) IEEE Pervasive Computing

File System API

• File system and container wrappers.• Combination of template classes and

C++ wrappers provides simple interface.

• Apply generic programming to distributed objects.

DistributedContainer

Container Wrapper

DataObjects

Container Template

Specific Methods

Future Work

Application advertisements.More powerful syntax?Fault tolerance. retry indefinitely retry for period of time fail immediately

Traditional OS issues. reliability, consistency, locks

Scenarios

• Shared work space• How to dynamically add data?

• Seminar space• How to support scheduled

applications?

• Presentation space• How make data available?• How to incorporate personal devices?• How support heterogeneous devices?

How CFS Uses Context

• Used to make data available to local resources

• Used to adapt data to device characteristics

• Used to tag data for later retrieval

What Does CFS Support?

• Based on experiences, need to:

• Allow data to follow users• Prune irrelevant information• Direct data to running applications• Adapt to heterogeneous devices

What is Different?

• Mobile users• Heterogeneous devices• Context

Gaia Data Browser

Context Mode

File Mode

Data Transformation

Context File System

GIFContainer ByteContainer

PowerPoint

Native File System

Data Grouping

Data with same metadata are:

related grouped distributed

Implementation

File server.Mount server.Catalog of containers (13).File system wrappers.Applications.

What was Learned?

• What support an infrastructure for ubiquitous computing must provide.

• Ways in which users interact with ubiquitous computing spaces.

• Ways in which systems must change to support these interaction styles.

Application of CFS

• Gaia Data Browser.• Mobile mounts with PDA.• Add data from laptop.• Adding personal configurations.• Auto-launched attendance.• Handheld GIF viewer.

top related