Towards a new infrastructure for the World Wide Web Systems - - PowerPoint PPT Presentation

towards a new infrastructure for the world wide web
SMART_READER_LITE
LIVE PREVIEW

Towards a new infrastructure for the World Wide Web Systems - - PowerPoint PPT Presentation

Towards a new infrastructure for the World Wide Web Systems Software Lab Godmar Back Towards a new infrastructure for Or: the World Wide Web What Have I Been Up To? Systems Software Lab Godmar Back 3/27/2009 Departmental Seminar March 2009


slide-1
SLIDE 1

Towards a new infrastructure for the World Wide Web

Systems Software Lab Godmar Back

slide-2
SLIDE 2

Towards a new infrastructure for the World Wide Web

Systems Software Lab Godmar Back

Or: What Have I Been Up To?

slide-3
SLIDE 3

3/27/2009 Departmental Seminar March 2009 3

slide-4
SLIDE 4

Systems Software Lab (Dr. Back)

  • LibX platform

for libraries

  • HPC: Sparse

methods

  • Simulation
  • Software

Visualization (HDPV)

  • Program Analysis
  • Domain-specific

Languages

  • Automatic Program

Enhancement

  • Hardware

Virtualization for Manycores (VT-ASOS)

  • Educational OS

(Pintos)

  • Advanced Client and

Server Execution Environments for Cloud Applications

  • Real-time

Garbage Collection

Runtime Systems Operating Systems Applications Software Engineering

4

slide-5
SLIDE 5

Cool projects I won’t talk about today (1)

  • Sparse Methods

– How can we make iterative solvers for A x = b faster on current machines?

  • collaboration w/

Belgin/Ribbens [ICS07, ICS09, IJPC09]

3/27/2009 Departmental Seminar March 2009 5

+ + + =

0100 1100 0101 0010 0010 0001 1000 0100 0000 0000 1000 1100 Remainder Matrix

1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11

slide-6
SLIDE 6
  • Automatic Program Enhancement

– How can we let programs complete themselves?

collaboration w/ Tilevich [AOSD 2008]

3/27/2009 Departmental Seminar March 2009 6

Cool projects I won’t talk about today (2)

slide-7
SLIDE 7

C1,2 C1,1 C2,2 C2,1 C3,2 C3,1 C4,2 C4,1 CPU1

Conventional SMP-NUMA OS

RTA RTB RTC RTD APPB APPA APPC APPD

Node1 Node2

cores cpus memory runtime apps Hypervisor

APPB APPA APPC APPD OSB OSA OS

CD

CPU2 CPU3 CPU4 C1,2 C1,1 C2,2 C2,1 C3,2 C3,1 C4,2 C4,1 CPU1 Node1 Node2 CPU2 CPU3 CPU4

RTA RTB RTC RTD

OS

Cool projects I won’t talk about today (3)

collaboration w/ Peng & Nikolopoulous [STMCS ’07], NSF-CSR 0720673

  • VT-ASOS

– Can we use hardware virtualization to better support manycore environments?

3/27/2009 7 Departmental Seminar March 2009

slide-8
SLIDE 8

3/27/2009 Departmental Seminar March 2009 8

A java.lang.String in memory A binary tree being traversed

Cool projects I won’t talk about today (4)

  • HDPV

– What do programs really look like?

collaboration w/ Sundaramanan [ACM SoftVis 08]

slide-9
SLIDE 9

Pintos Kernel Usermode Test Cases Device Support Keyboard, VGA, USB, Serial Port, Timer, PCI, IDE P3: Virtual Memory P4: Extended Filesystem P2: System Call Layer: Copy-in/out, FD Management Stress Tests Boot Support MMU Support Threading Simple Scheduler P1: Priority Scheduler P1: MLFQS P1: Alarm Clock P2: Process Management P3: Page Fault Handling P3: Address Space Manager P1: Priority Inheritance Basic Filesystem P1: Kernel-mode Test Cases MLFQS Scheduling Priority Scheduling

Alarm Clock

Physical Memory Manager P3: Page Replacement P3: Memory-mapped Files P4: Hierarchical Multi-threaded Filesystem and Buffer Cache P2-4: System Call Functionality P2-4: Robustness P2-4: Basic Filesystem

Students Create Public Tests Support Code

Cool projects I won’t talk about today (5)

collaboration w/ Pfaff & Romano [SIGCSE 2009]

  • The Pintos Educational OS

– How do we teach OS in a realistic and state‐of‐the‐ art manner?

3/27/2009 9 Departmental Seminar March 2009

slide-10
SLIDE 10

A Bit Philosophy

  • Applications drive systems
  • Users run applications, they don’t care about

systems

  • Successful systems designers understand

applications

3/27/2009 Departmental Seminar March 2009 10

slide-11
SLIDE 11

LibX: Background

  • Brick-and-mortar libraries in the Internet age face

a problem

– Students + researchers forgo library resources – Risk becoming irrelevant

  • A “virtual librarian” that guides users to library

resources while they use the Web

– integrates access to library resources into the users’ “webflow” – no matter which page a user visits (⇒ needs client- side presence!)

3/27/2009 11 Departmental Seminar March 2009

slide-12
SLIDE 12

LibX 1.0 Features

  • Toolbar and right-click context menu
  • Adaptive and user-configurable context menus
  • OpenURL support
  • Magic Button (Google Scholar support)
  • Web Localization via Embedded Cues
  • Autolinking
  • Off-campus access via EZProxy or WAM
  • Support for CiteULike
  • Support for COinS
  • Support for xISBN
  • Show/Hide Hotkey

3/27/2009 12 Departmental Seminar March 2009

slide-13
SLIDE 13

LibX 1.0 Features

  • Toolbar and right-click context menu
  • Adaptive and user-configurable context menus
  • OpenURL support
  • Magic Button (Google Scholar support)
  • Web Localization via Embedded Cues
  • Autolinking
  • Off-campus access via EZProxy or WAM
  • Support for CiteULike
  • Support for COinS
  • Support for xISBN
  • Show/Hide Hotkey

3/27/2009 13 Departmental Seminar March 2009

slide-14
SLIDE 14

LibX Timeline

  • 2005

– Released LibX Virginia Tech as a Firefox extension – Offered to share LibX with interested libraries

  • 2006

– Tremendous response from library community – Received National Leadership Grant from IMLS to create LibX for IE and Edition Builder

  • 2007

– Received LITA Entrepreneurial Award

3/27/2009 Departmental Seminar March 2009 14

slide-15
SLIDE 15

The LibX Edition Builder

  • A configuration management tool for creating customized versions of

LibX

– Customized version of LibX = LibX edition

  • Edition configuration includes descriptions of community-local

resources:

– OPACs, OpenURL, Proxy, Databases, Links, Branding, …

  • Edition Builder is easy to use

– Makes heavy use of OCLC registries – Uses sophisticated auto-detection techniques – Usable by librarians, not just programmers

  • Anybody can create, share, and manage editions
  • Over 550 edition as of now, new ones created at a pace of 20/month

– Huge human investment – 10’s of thousands of end users

3/27/2009 Departmental Seminar March 2009 15

slide-16
SLIDE 16

EDITION BUILDER DEMO

3/27/2009 16 Departmental Seminar March 2009

slide-17
SLIDE 17

Demo Backup Slide

3/27/2009 17 Departmental Seminar March 2009

slide-18
SLIDE 18

Login Edition and Revision Management Changes to Configuration Auto-discovery Download customized LibX

Architecture

18

Edition Maintainer End User Edition Builder Database File System Third Party Resource Servers OCLC WorldCat Registry Web Server

3/27/2009 Departmental Seminar March 2009

slide-19
SLIDE 19

Log Data – Adoption of Edition Builder

  • 1155 total

editions present by May 2008

  • As of Oct 2008,

1600 total editions

  • 460 were

made public

  • New editions

are being made public at a rate

  • f ~20/month

3/27/2009 19 Departmental Seminar March 2009

slide-20
SLIDE 20

Overall Perceived Ease of Use

0% 10% 20% 30% 40% 50% 60% Very easy to use Easy to use Somewhat easy to use Somewhat difficult to use Difficult to use Very difficult to use

Overall, you would describe the LibX Edition Builder as:

3/27/2009 20 Departmental Seminar March 2009

slide-21
SLIDE 21

Perceived Learning Curve

0% 10% 20% 30% 40% 50% Very easy to learn Easy to learn Somewhat easy to learn Somewhat difficult to learn Difficult to learn Very difficult to learn

In your opinion, the LibX Edition Builder interface is:

3/27/2009 21 Departmental Seminar March 2009

slide-22
SLIDE 22

Style of Application

0% 10% 20% 30% 40% 50% I much prefer the LibX Edition Builder style I somewhat prefer the LibX Edition Builder style I do not think the style matters I somewhat prefer the traditional style I much prefer the traditional style No response

Do you prefer this style of web application to the more traditional, page-based applications?

3/27/2009 22 Departmental Seminar March 2009

slide-23
SLIDE 23

Saving of Changes

0% 10% 20% 30% 40% 50% The LibX Edition Builder uses an interaction mode in which configuration changes are immediately saved, so you do not need to press "Save" or "Submit" In your opinion, this mode of interaction was:

3/27/2009 23 Departmental Seminar March 2009

slide-24
SLIDE 24

Log Data Results (cont’d)

  • 50% editions

built in 72 minutes or less

  • 80% editions

built in 190 minutes or less

3/27/2009 24 Departmental Seminar March 2009

slide-25
SLIDE 25

Study Findings

  • The LibX Edition Builder

– is easy to use and learn – auto-detection is effective at configuring resources

  • Created a community
  • Open source spirit

– Anybody can create, share, publish, copy and adapt editions

3/27/2009 25 Departmental Seminar March 2009

slide-26
SLIDE 26

Where to go from here?

  • A toolbar is great, but…
  • Emerging technology trends

– Service-oriented architectures, web services interfaces – soon even to ILS! – Data mash-ups; HTML widgets

  • Educational trends: librarians, educators, and

users create

– Online tutorials, subject guides, visualizations – Social OPACs: tagging, reviews, recommender services

3/27/2009 26 Departmental Seminar March 2009

slide-27
SLIDE 27

World Wide Web Library Resources and Web Services LibX 2.0 LibX 2.0 plugin: executes Libapps, merging library information into pages. Users: decide to which library services to subscribe, see expanded view of the web Librarians: create or adapt Libapps from reusable, shareable modules

3/27/2009 27 Departmental Seminar March 2009

But who will create those modules?

slide-28
SLIDE 28

LIBX 2.0 DEMO

3/27/2009 28 Departmental Seminar March 2009

slide-29
SLIDE 29

The LibApp Model

  • How can the interaction of LibX with web content be

modeled?

  • Typical tasks involve

– Examination of the page and extraction of information – Processing of information – Modification of the page

  • A Module is a small piece of JavaScript code along with

a metadata description of its input and/or output

  • A Libapp is a group of modules
  • A Package is a folder of libapps and packages

3/27/2009 Departmental Seminar March 2009 29

slide-30
SLIDE 30

LibX Tuple Spaces

tuple = TAKE(template)

  • If a tuple matching template

exists in the tuple space, remove it and return it

  • If no tuple exists, wait until

a matching tuple is written, remove it and return it WRITE (tuple)

  • Write a tuple into the space
  • If a TAKE is pending with a

matching template, complete the TAKE

3/27/2009 Departmental Seminar March 2009 30

Tuples and Templates are JavaScript objects in JSON notation. Tuple example: { isbn: “0743226720” } Template example: { isbn : * } // any tuple with ‘isbn’ field

slide-31
SLIDE 31

3/27/2009 Departmental Seminar March 2009 31

Tuple Space

Word Finder Display Result Name Lookup { name: John Grisham} Guarded-By: { name: *} Guarded-By: { display: * } { display: “published: 1989-2008 (Novelists, American--20th century), most widely held work: The client” }

slide-32
SLIDE 32

Rationale for Tuple Spaces

Software Engineering

  • Low coupling between

modules

  • Independent composition
  • Simplicity
  • Suitable for meta-

programming Handling Asynchrony

  • User actions happen

asynchronously

  • Information arrives

asynchronously from external sources

  • Execution order

independence

3/27/2009 Departmental Seminar March 2009 32

slide-33
SLIDE 33

Back To Systems…

slide-34
SLIDE 34

Client Side – Systems Perspective

  • Browser’s execution

environment must support a mix of components

– Coming from the original page – Coming from widgets included in original page – Coming from extensions such as LibX

3/27/2009 Departmental Seminar March 2009 34

W i d g e t 1 Component 2 Component 3 Ext 2 Ext 1 Gadget 1

slide-35
SLIDE 35

Why Existing Browsers Don’t Work

  • Lack of namespace separation
  • Lack of fine-grained security contexts
  • Lack of resource management
  • Lack of parallelism

3/27/2009 Departmental Seminar March 2009 35

<script> for (var i = 0;; i++) setTimeout( function () { var list = { data: “some string” }; for (;;) list = { next: list, data: list.data + list.data }; }, i++); </script>

slide-36
SLIDE 36

Script Spaces

  • Script space represents execution context

– May be Tab, Page, Frame, Extension module or Part of Page

  • Unit of resource consumption

– CPU + Memory + Garbage Collection

  • Separate security context
  • Separately schedulable

3/27/2009 Departmental Seminar March 2009 36

slide-37
SLIDE 37

Server Side – Systems Perspective

3/27/2009 Departmental Seminar March 2009 37

W i d g e t 1 Component 2 Component 3 Gadget 1

  • Many apps use Web as

their primary user interface (“AJAX”)

– E.g. LibX Edition Builder – Google Mail, Docs, etc.

  • Must manage complex UI

state

slide-38
SLIDE 38

Challenges for Server-side Environments

  • Web designed for static documents

– Interactivity was retrofitted

  • Stateless nature of HTTP

– Must re-render complete presentation state on every request

  • If state is kept on client, developer must

manage client-server communication

– Writing distributed applications is hard

3/27/2009 Departmental Seminar March 2009 38

slide-39
SLIDE 39

Idea: A “remote-display” approach

  • Server-centric AJAX

Framework

– Keep presentation state on server side – Use aspect-oriented techniques to track changes to presentation state – Render on demand

  • Drastically simplified design

3/27/2009 Departmental Seminar March 2009 39

W i d g e t 1 Component 2 Component 3 Gadget 1 W i d g e t 1 Component 2 Component 3 Gadget 1

Server Client

slide-40
SLIDE 40

Conclusion

  • To build systems, must understand

applications

  • Not just theoretically, build and support them

3/27/2009 Departmental Seminar March 2009 40

slide-41
SLIDE 41

Acknowledgements

LibX Team

  • Annette Bailey
  • Godmar Back
  • Kyrille Goldbeck
  • Michael Doyle
  • Arif Khokar
  • Travis Webb
  • Alumni

– Nathan Baker – Tilottama Gaat – Tobias Wieschnowsky – Robert Ellis

  • Advanced Execution

Environments

– Amarjyoti Deka – Michael Doyle

  • Students

– Mehmet Belgin – Peng Lu – Ben Pfaff – Anthony Romano – Jaishankar Sundararaman

  • Faculty

– Dimitris Nikolopoulous – Calvin Ribbens – Eli Tilevich

3/27/2009 41 Departmental Seminar March 2009

slide-42
SLIDE 42

Past Student Employment

3/27/2009 Departmental Seminar March 2009 42

I’m hiring for multiple open GRA and URA positions