DOA 2002 Poster Presentation Slides

Download Report

Transcript DOA 2002 Poster Presentation Slides

MetaSockets
Run-Time Support for Adaptive
Communication Services
S. M. Sadjadi, P. K. McKinley, E. P. Kasten
Software Engineering and Networking Systems Laboratory
Department of Computer Science and Engineering
Michigan State University
www.cse.msu.edu/sens
International Symposium on Distributed Objects and Applications (DOA 2002)
Motivations

Mobile computing applications must adapt to
the dynamic situations related to several
cross-cutting concerns including:
– Quality of Service
– Security
– Energy Consumption
– Fault Tolerance

Solution?
– Adaptive Middleware.
Our Approach

RAPIDware Project:
– Addresses the design of adaptive software.

Adaptive Java (AJ):
– An extension to Java that provides language
constructs and compiler support for developing
adaptive software (previously done).

MetaSockets:
– An adaptable communication component
developed in AJ as the heart of our Adaptive
Middleware.
Adaptive Java Background

Adaptable Component Model:
– Component: the basic building block that can be equated
to adaptable classes (composed of invocations).
– Meta-Object Protocol: a set of meta-level primitives
(refractions and transmutations).
Adaptive Java Background (cont.)

Three-Dimensional Interfaces:
– Invocations: normal component imperative operations.
– Refractions: operations for inspecting components.
– Transmutations: operations for modifying components.

Component Absorption and Metafication:
base-level method
base-level invocation
receive()
send()
close()
joinGroup()
leaveGroup()
Java MulticastSocket
replaced invocation
refraction
AJ MetaMulticastSocket Meta-Compnent
transmutation
send()
insertFilter()
send()
getStatus()
close()
AJ SendMSocket Base-Component
close()
removeFilter()
MetaSocket Internal Architecture
getStatus()
MetaSendMSocket
Internal
Architecture:
FP
put()
close()
MT
send()
SS
Fltr
get()
FP
receive()
joinGroup()
leaveGroup()
close()
FP: firstPacketBuffer
LP: lastPacketBuffer
MT: MetaSocketThread
joinGroup()
close()
put()
MT
receive()
RS
insertFilter()
removeFilter()
insertFilter()
removeFilter()
invocation
refraction
transmutation
put()
get()
Filter Pipeline
send()
close()
get()
Filter Pipeline
put()
LP
LP
get()
Fltr
getStatus()
MetaRecvMSocket
Internal
Architecture:
Fltr: Filter
SS: SendMSocket
RS: RecvMSocket
dependency
packet flow direction
thread
MetaSocket Absorption Code
public component SendMSocket
absorbs java.net.MulticastSocket
{
/* constructor */
public SendMSocket(...)
{
setBase(new java.net.MulticastSocket(...));
}
/* invocations */
public invocation void send(...) { base.send(...); }
public invocation void close() { base.close(); }
}
MetaSocket Metafication Code
public component MetaSendMSocket metafy SendMSocket
{
/* constructor */
public MetaSendMSocket(SendMSocket sendMSocket)
{ setBase(sendMSocket); }
/* invocation that "replaces" the send() invocation in SendMSocket */
public invocation void send(...)
{ ... firstPacketBuffer.put(packet); ... }
/* refractions */
public refraction byte[] getStatus()
{ return filterPipeline.getStatus(); }
/* transmutations */
public transmutation void insertFilter(int position, Filter filter)
{ ... filterPipeline.add(position, filter); ... }
public transmutation Filter removeFilter(int position)
{ ... return filterPipeline.remove(position); }
/* private fields */
private java.util.Vector filterPipeline = new java.util.Vector();
PacketBuffer firstPacketBuffer = new PacketBuffer();
}
MetaSocket Evaluation

Audio Streaming Application (ASA)
– MetaSocket is used instead of MulticastSocket
– Live audio stream from a desktop to multiple
iPAQs
– Physical experiment configuration:
..
.
Audio Stream
Wired
Sender
Access
Point
Wireless
Receivers
ASA Components Interaction
invocation
refraction and
transmutation
thread
LP
Decision
Maker
(DM)
Dependency
Event propagation
Reflection
PB
FD
Component
Loader
PB
NL
Player
Filter Pipeline
Trader
AL
Event
Mediator
FP
MT
RS
Wired Network
Wireless Network
AL: RecvAppLossDetector
FD: FECDecoder
NL: RecvNetLossDetector
ASA Components





Decision Maker: a optional component that controls all the
non-functional behavior of the subcomponents in its
container component, according to its rule-base.
Component Loader: a unique component in an address
space that loads components from a trader, according to a
set of policies.
Trader: a server that works as yellow pages and replies to
component requests.
Event Mediator: Supports asynchronous interaction
among decoupled components using a publishersubscriber pattern.
Player: plays the incoming audio stream.
Block Erasure Code Operation



Wireless networks produce dynamic and location dependent packet loss
because of signal strength, interference, antenna alignment.
802.11b MAC layer does not provide link-level acknowledgement for
multicast frames.
FEC can be used to improving reliability by introducing redundancy into
the data channel.
Forward Error Correction Filters


MetaFECEncoder: a component in AJ that absorbs a FECEncoder class.
MetaFECDEcoder: a component in AJ that absorbs a FECDecoder class.
getSrcPacketBuffer()
getDstPacketBuffer()
getNK()
getSrcPacketBuffer()
getDstPacketBuffer()
getNK()
FE
start()
stop()
FilterMismatchEvent
FECMismatchNKEvent
FD`
setSrcPacketBuffer()
setDstPacketBuffer()
setNK()
start()
stop()
(a) MetaFECEncoder
setSrcPacketBuffer()
setDstPacketBuffer()
setNK()
(b) MetaFECDecoder
refraction
invocation
FE: FECEncoder
dependency
transmutation
thread
FD: FECDecoder
event propagation path
MetaSocket Performance
Evaluation




FEC Filters inserted automatically at time 8, when loss rate exceeds 30%.
FEC Filters removed automatically at time 45, when loss rate drops below 10%.
Inserted again at time 60.
Removed again at time 80.
Conclusions and Future
Directions

Conclusions:
– Adaptive Java provides language support for run-time adaptation.
– Experiments show that MetaSockets are an effective means to QoSoriented adaptation.

Future Directions:
– A MetaSocket is only one type of adaptable components. Any AJ
component can be metafied and adapted at run time.
– Other cross-cutting concerns (security, power consumption, and
fault-tolerance) can be addressed with AJ components.

Acknowledgements:
– This work was supported in part by the U.S. Office of Naval
Research under Grant No. N00014-01-1-0744, and in part by
National Science Foundation grants CDA-9617310, NCR-9706285,
CCR-9912407, EIA-0000433, and EIA-0130724.
– Special thanks to Dr. Kurt Stirewalt for his contribution to this work.