Pocket Webclass - MSU CSE - Michigan State University

Download Report

Transcript Pocket Webclass - MSU CSE - Michigan State University

Adaptive Middleware for Heterogeneous
Collaborative Computing
Philip K. McKinley
Software Engineering and Network Systems Laboratory
Department of Computer Science and Engineering
Michigan State University
Outline
 SENS Lab and Communications Research Group
 Summary of prior research activities
 Issues in anytime, anywhere, anyhow computing
 Ongoing Projects
Pavilion: web-based collaborative toolkit
RAPIDware: adaptive middleware framework
Meridian: automated development of
distributed applications
 Summary
MSU SENS Laboratory
 The Software Engineering and Network Systems
Laboratory supports research in:
software engineering
distributed computing
network protocols and real-time systems
fault tolerance and security
formal methods, code generation
compilation/analysis of concurrent systems
 Six faculty members and their students
 Research sponsored by NSF, DARPA, DOE,
NASA, EPA, and several industrial partners
Communications Research Group
 A research group within the SENS Laboratory
 Much of our research addresses the design and
performance of multiparty applications,
protocols, and services. Prior research:
 Parallel processing
collective communication in MPPs and NOWs
 Distributed Computing
reliable multicast in Linux kernel and in NT
 Networking
hardware-based flooding in ATM networks
efficient leader election, routing protocols
Motivations for Current Work
 “Anytime, anywhere” data access and
communication is quickly becoming reality, due to:
development of world-wide web
large scale deployment of wireless services
advances in handheld/wearable computers
 One class of applications that will likely benefit
from this infrastructure is collaborative computing
systems
 Examples: CSCW, remote instruction, factory
management, medical diagnosis, command and
control
 Users will access services through a variety of
network connections and computing devices
Example Scenario
Remote collaboration among researchers:
Field Engineer
with Wearable
Computer
Traditional Wired LAN
Telecommunications
Network
Internet
Proxy
server(s)
Indoor Wireless LAN
Proxy
server(s)
Mobile Research
Station
High-Performance
Compute Server
Same technology will also be used for “everyday”
collaboration among family members, etc.
Pavilion Project
 A Java-based middleware framework for weboriented collaborative applications
 By default, provides collaborative browsing
 More importantly, supports development of new
applications by reusing/extending components:
Reliable Multicast Protocol (WBRM)
Web Browser Interfaces
Leadership Protocol
Extensible HTTP Proxy
Plug-ins for thin clients
etc...
Default Pavilion Operation
Proxy
Server
Browser
Interface
Multicast
Protocol
Leadership
Protocol
S
Proxy
Server
Multicast
Protocol
Leadership
Protocol
Browser
Interface
HTTP/GET
FILE DATA
URL INFO
CONTROL
WBRM Performance
 Over 8Mbps throughput on 10Mbps Ethernet and around
50Mbps on 100Mbps Ethernet, depending on processors
 Performance approaches that of our Linux kernel protocol,
H-RMC, with much less development effort
Response Time
35000
Delay (msec)
30000
Protocol (Avg)
Protocol (Max)
Protocol (Min)
HTTP (Avg)
HTTP (Max)
HTTP (Min)
25000
20000
15000
10000
5000
0
1
3
5
7
9 11 13 15 17 19
Number of Receivers
Pavilion Proxy Servers
 Proxies can be used to provide transparent
services to collaborative web-based applications
Local proxies execute on client's local host and are
typically used to enhance application functionality
Remote proxies execute on other systems and
enhance performance by tailoring data streams to
match client capabilities
 A key design principle in Pavilion (and follow-on
RAPIDware project) is to provide such services in
the form of data- and application-specific plug-ins
Building Applications with Pavilion
Pavilion may be extended by implementing
application-specific plug-ins (loaders, filters,
etc) for various proxies.
Plug-ins used to perform the following tasks:
Distill data stream to reduce bandwidth consumption or
client processing overhead
Modify the web resources according to applicationspecific needs
“Wrap” the resource in another file that is returned to the
browser (used to load associated applet). Such applets
can communicate with other participants via local
Pavilion “worker” threads.
Example: VGuide
 VGuide is a Pavilion-based synchronous virtual
reality tool
leader selects (arbitrary) VRML world and guides other
participants through that world
 Uses/extends several Pavilion components:
reliable multicast protocol to distribute VRML file and
associated applets
proxy server plug-ins to intercept file and “wrap” it in an
html file containing an application-specific applet
applets and worker threads to monitors viewpoint
changes and multicast them to other group members
VGuide Demonstration
VGuide Component Overview
Leader Browser
Client Browser
 VRML plug-in to Http proxy
EAI Applet
EAI Applet
socket
VRML Thread
Browser
Interface
socket
IP
Multicast
VRML Thread
Browser
Interface
VRML
Plug-in
Http proxy
Http proxy
Reliable
Multicast
“wraps” VRML file in html file with
embedded applet
 Http proxy distributes VRML file
and associated applet
 Applet uses External Authoring
Interface (EAI) to access the
VRML world
 Applet forwards viewpoint
updates to VRML thread using
socket
 VRML thread sends viewpoint
updates to other participants
using IP multicast
Platform Heterogeneity
The time needed to
read/modify object in a VRML
word varies on each machine.
 Time to modify an object depends
highly on video adapter
performance
 Time to read an object depends
on CPU speed.
Presence of heterogeneous
participants could lead to high
jitter and buffer overflow.
Updates filtered by proxies for
slow clients in order to improve
performance
Pocket Pavilion Subproject
 Goals:
To design a web-based application that extends
collaborative browsing to wireless handheld
computing platforms running Windows CE
To demonstrate reuse of Pavilion components in
supporting heterogeneous clients
To evaluate the performance of using a wired proxy
on behalf of wireless clients
 Key issue: accommodating limitations of
handheld PCs and the Windows CE
environment
Handheld/Palm-Sized PCs
 No disk, only
ROM and RAM
 Can be
connected to a
desktop to
synchronize
data
 Run PalmOS,
Windows CE, ...
HP 620LX/660LX Handheld PC
 75MHz RISC processors (Hitachi SH-3)
 Display
 256-color LCD
 640*240 pixels on screen
 32MB/16MB RAM
 Card Slots
 One PC card type II card slot
 One CompactFlash type I card slot
 Ports
 One RS-232C serial port
 One IrDA port
 Battery
 Rechargeable Lithium-Ion Battery
 CR2032 coin-cell backup battery
 Windows CE 2.0
Experimental Configuration
Multicast-incapable
wireless receivers
Wired receivers
Sender
Proxy with
TCPhub
Access
point
Wired receivers
Reliable multicast
connection
TCP connection
Pocket Pavilion Operation
7.
Request
for data
8. Data
3. Data
Data
Proxy
Reliable Multicast
Protocol
3. URL
Control Proxy
6. URL
Pocket
Pavilion
Client
Handheld PC
5. URL
2. Web
resources
4. URL
4. URL
TCP hub
5. Request to
Data Proxy
for data
1. Register
1. Register
H/PC
Membership
manager
Proxy Node (also a
participant in the session)
6. Data
from Data
Proxy
Sample Performance
Proxy vs. no proxy
1200
Milliseconds
1000
800
No proxy
600
Proxy
400
200
0
1k
2k
4k
6k
File size
8k
10k
RAPIDware Project
 Extends Pavilion by addressing automatic
instantiation and adaptation of the middleware
layer
 Key objectives:
Automatically accommodate heterogeneity of among
computing devices and network connections
Adapt to failures, changes in channel quality, etc.
Provide support for reuse of middleware components
Offer a unified methodology for three types of
adaptation: communication services, user interfaces,
fault tolerance
 Observers monitor system and detect changes
 Responders handle such events by instantiating
Adaptive Component Interaction
Host computer
(wired workstation)
Host computer
(wireless laptop)
Application
Application
APPLICATION
LAYER
Host computer
(wireless palmtop)
Application
observers
MIDDLEWARE
LAYER
data
paths
NETWORK
LAYER
core middleware
components
Proxy node
(e.g., desktop)
responders
Subproject: Adaptive FEC for Reliable
Multicasting on WLANs
 Forward Error Correction (FEC) can be introduced at a
WLAN proxy to mitigate potentially high packet loss rates
 Losses among multiple receivers in WLANs are often
uncorrelated, since they depend on the distance from the
access point and environmental conditions
 Objective: experimentally evaluate effectiveness of proxybased FEC on multicast data streams in WLANs, and
explore how to adapt FEC to changing conditions
 Proxy runs two instances of protocol, one tuned for wired
network, and one tuned for wireless network
Receiver Throughputs without Proxy
and with Proxy
Throughputs with Proxy
Observed Throughput (in Mbps)
50
45
Wired Receiver
40
Wireless Receiver #1
35
Wireless Receiver #2
30
25
20
15
10
5
0
1
2
3
4
Run #
5
6
7
Observed Throughput (in Mbps)
Throughputs Without Proxy
50
45
40
35
30
25
20
15
Wired Receiver
Wireless Receiver #1
Wireless Receiver #2
10
5
0
1
2
3
4
Run #
5
6
7
(n,k) Block Erasure Codes
•Divide data (audio) stream into groups of k packets
•For each group, send k data packets and n-k parity packets
•Receipt of any k packets enables reconstruction of data
FEC Proxy Design
 Reuses several classes from WBRM protocol
 Adaptive components operate as plug-in modules
Packet
Buffer
WBRM
Receiver
Dispatcher
Queue
FEC Group
Filter
Wired
LAN
Adaptive
FEC Control
FEC
Encoder
Packet
Dispatcher
Parity
Packet
Buffer
Packet Loss
Monitor
Wireless
LAN
NAK
Processor
Proactive Parity Transmission
 In the presence of high losses, it usually takes multiple
NAKs (and hence RTTs) to correct losses in a group
since the correction packets themselves are
susceptible to losses
 Sending immediate redundant information along with
the data and NAK responses may help in solving this
problem
 Can adjust proactive rate a proportionally to loss rate
 Experiments show that throughput is less affected by
an over-estimate of the proactive parameter than by
an under-estimate
Sample Results (Emulation)
5% loss
10% loss
35
35
Proactive Packets
NAK Response
Total Required Parity
20% loss
35
30
Proactive Packets
NAK Response
Total Required Parity
25
20
15
10
5
Group Number
277
254
231
208
185
162
138
115
92
69
46
23
0
0
277
254
231
208
162
138
Group Number
Group Number
No. of Packets
115
0
277
254
231
208
185
162
138
0
115
0
92
5
69
5
46
10
23
10
92
15
69
15
20
46
20
23
No. of Packets
25
0
No. of Packets
25
30
185
Pro-active Packets
Nak Response
Total Required Parity
30
Sample Results (Experimental)
adec=0.02
adec=2i(0.02)
25
1465
1353
1240
1127
1014
902
789
676
563
451
0
1361
1257
1152
1047
942
838
733
628
524
Group Number
Group Number
25
Proactive Packets
Required Parity
NAK Response
20
15
10
5
1465
1353
1240
1127
902
Group Number
1014
789
676
563
451
338
225
112
0
0
Number of Packets
419
0
314
0
210
5
0
5
338
10
225
10
15
112
15
105
Proactive Packets
Required Parity
NAK Response
20
Number of Packets
20
Number of Packets
25
Proactive Packets
Required Parity
NAK Response
adec=2i(0.02)
lower bound = 1
Subproject: Mobile Composable Filters
 Questions:
can we apply mobile agent concepts to instantiation
and population of proxies?
Can we dynamically insert filters into running
communication streams without disruption?
 Goal: identify and evaluate “glue” mechanisms
needed for dynamic construction of lightweight
proxies in which components are created,
migrated, composed as necessary to
accommodate heterogeneous and dynamic
environments
 Example proxy services: FEC, filtering, web
clipping
Proxy Framework
 Mobile Composable Filters enable proxy filters to be
uploaded and dynamically inserted into (running) data
streams
Control
Thread
PROXY
Endpoint
Endpoint
F1
DIS
F2
F3
DOS
Control
Internal Data Flow
External Data Flow
The Classes
 To facilitate the making and breaking of data flow inside
the Proxy Container – two new classes were created:
DetachableInputStream
DetachableOutputStream
 These streams have all the methods available in
PipedInputStream and PipedOutputStream classes of the
Java2 API.
 They also have additional methods that allow us to handle
diverse data streams.
 The ControlThread communicates with a ControlManager
and implements the proxy management.
 The ControlManager class serves to control the proxy
framework remotely. It can be easily integrated to a
browser.
DIS/DOS Interaction
 Similar to other Java I/O streams, except that
they can be paused, reconnected, restarted
DetachableOutputStream
DetachableInputStream
sink
Data
In
connect(dis)
write( )
flush( )
source
connect(dos)
receive( )
buffer
read( )
available( )
pause( )
reconnect(dis)
pause( )
reconnect(dos)
Data
Out
Current Status
 Presently, we are refactoring various Pavilion
proxy filters to work within the new framework
 Example: FEC insertion in video streams
Location 3
80%
80%
Percentage of Frames Delivered
100%
60%
40%
20%
FEC + NAKs
FEC Only
No Error Control
0%
60%
40%
20%
FEC + NAKs
FEC Only
No Error Control
Time (sec)
Time (sec)
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
0%
1
Percentage of Frames Delivered
Location 2
100%
Meridian
 Large multi-investigator project supported by
NSF grant
 Goal: Develop an end-to-end, integrated set of
tools that automate the development and
maintenance of interactive distributed
applications
 Case studies from several industrial partners
involving on-board control, web-based
collaboration, mobile telecommunications
Meridian Vision
IDA Models
IDA Constraints
IDA Interface
Requirements
Refined
Specifications
Requirements
Specifications
Model
Editing
Specification
Analysis
Design
Processing
IDA Reuse
Repository
Code
Feedback
User
IDA External
Parameters
Test Cases
Testing/
Simulation
Model Editor
 Supports editing of UML
models.
Incorporates reusable
IDA models.
 Generates formal
representations of the
models
 Supports automated
analysis of graphical
models
Reuse Environment
 Supports browsing/selection from
reuse repositories.
 Component-based:
 Index components by formal

specs
Search and retrieve based on
specs
Tool suite (cont’d)
 Temporal Analyzer:
 Augments UML models with

temporal constraints.
Graphical spec of timing
constraints
 Design Processor:
 Automatically refines UML



models.
Generates code and selects
reusable components
Adapts components to satisfy
interface constraints
Checks consistency between
refinements
Emulation/Simulation of Synthesized
Components
 MX simulator supports emulation of code
identical to that used in experiments, via a
socket-level system call interface
 Provides both C++ and Java APIs
Host
Application
Code
Host/Network
Configuration
File
Process
Thread
Placement
Module
Host
Socket-Level
API
Socket-Level
API
OS Module
OS Module
NIC
NIC
Network Module
(Routing Domains, Wired/Wireless Channels,
Routers, Wireless Access Points, etc.)
Meridian Contributions
 Automates end-to-end development of IDAs
 Extends visual development to encompass formal
reasoning.
 Supports reuse at many levels of abstraction using a
common notation: UML
 Integrates formal analysis and testing/simulation.
 Enables tracing of requirements from diagrams to code
 Facilitates evolution of software to accommodate new
technologies
 Holds promise of “Internet-Speed” development.
Summary
 Pavilion: (present) focuses on communication
protocols for interconnecting heterogeneous
mobile nodes and on reuse of collaborative
components
 RAPIDware: (short term) seeks to develop a
unified methodology for design of adaptive
middleware and automate its operation
 Meridian: (long term) seeks to automate many
aspects of the development of interactive
distributed applications in order to improve their
quality and maintainability
Related Work
 Groupware Toolkits
JETS, Promondia, TANGO, Habanero, DISCIPLE,
MultiTel, and others
 Adaptive Middleware Frameworks
Rover, TAO, MCF, DaCapo++, Odyssey, QuO,
Mobiware, Remulac, Sync, MOST, Limbo, ...
 Configurable Proxies
Transend, MPA, Mobiware, Alpine, Active Names, …
 FEC for multicast
 RMDP protocol (Rizzo and Vicisano, 1998
 NP (Nonnenmacher et al., 1998)
 ECSRM (Gemmell, et al. 1998)
Further Information
 Project descriptions, including related papers and
technical reports, are available at:
http://www.cse.msu.edu/~mckinley
 Email address: [email protected]
 This research was supported in part by National
Science Foundation grants DUE-9551180, CCR9503838 CDA-9617310, NCR-9706285, and CCR9912407, and EIA-0000433.