run-time support for adaptive communication services by: seyedmasoud sadjadi advisor: dr. philip k....

14
Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan State University 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

Upload: lorena-alexander

Post on 25-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Run-Time Support for Adaptive Communication Services

By: SeyedMasoud Sadjadi

Advisor: Dr. Philip K. McKinley

Computer Science and Engineering

Michigan State University

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.

Page 2: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

• Motivation: – Wireless networks are improving rapidly.– Mobile computers are gaining more popularity.– Lots of Software is being developed for this new

infrastructure.

• Problem?– Dynamic changes in wireless networks.– Heterogeneity of mobile devices.

• Standard solution:– Developing adaptive application.

• Problems with adaptive software?– Adaptive code is scattered all over the application.– Development, deployment, and maintenance are

difficult.

• Our solution:– Using Adaptive Java (developed by E. Kasten) to

develop adaptive applications.

Page 3: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

• Case Study:• Audio Multicasting Application (AMA)

• A traditional real-time distributed application that multicasts a live audio stream over a wired network.

• Motivation:• Using AMA over a wireless network.

• Problem?• Wireless network dynamically changes.

• Standard solution:• Writing an adaptive AMA that uses FEC.

• Problem with adaptive AMA?• Adaptive code is scattered all over the application.• Development, deployment, and maintenance are

difficult.• Our solution:

• Using Adaptive Java to develop a “metamorphic” socket (or metasocket) that makes AMA adaptive.

• Adaptive code is not tangled to the application code.

Page 4: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan
Page 5: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

XX

X

X

Wireless Network

Error Control in Wireless Networks

XX

X

X

Page 6: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Java Virtual Machine

Java MulticastSocket

Java Virtual Machine

MetaSocket

Adaptive Code is factorized in one component to

better support the development of evolutionary software

Adaptive Code (the cross-cutting concern)

is scattered all over the application

code

Page 7: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Java Virtual Machine

Java MulticastSocket

We decided to factorize all of the adaptive code needed to adapt AMA to the dynamic changes of wireless networks and put them in a “metamorphic” component named MetaMulticastSocket (MetaSocket in brief). MetaSocket “absorb”s and “metafy”s the original Java MulticastSocket.You can follow the steps for building this component in Adaptive Java in the next slides.

Page 8: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

First we extended the original Java MulticastSocket to support a filter pipeline. This way we could add, remove,or modify different filters. In this study we just used FECFilters, but it can work with other filters.

Page 9: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Then we “absorb”ed MulticastSocketSender using “absorb”construct in Adaptive Java to create a component from thisJava class. We defined all the invocations that this component support to provide service to other components.

Page 10: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

In this step we “metafy”ed this new component, MulticastSocket-SenderComponent using “metafy” construct in Adaptive Java and defined “refraction”s and “transmutation”s. Refraction methods can only read the status of a component. Transmutation methods, in contrast, can only write to the component.

Page 11: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Java Virtual Machine

Now that MetaSocket is developed, we need a component that knows about our specific application (AMA) and customizes MetaSockets dynamically. We call this component a “Decision Maker”. A decision maker gets the state of other components using their refraction methods and adapt them using their transmutation methods.

Page 12: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

This is how the whole Microphone application works.

Page 13: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

Data loss in 35% Signal Strength

0

10

20

30

40

50

60

70

801 5 9 13 17 21 25 29 33 37 41 45 49 53 57

packets grouped in 200 packets

Pac

ket

loss

in g

rou

ps

of

200

pac

kets

k=4 n=8

k=4 n=10

k=4 n=12

k=4 n=20

k=4 n=40

FECinserted

FECremoved

Page 14: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan

• Conclusion:– Developing MetaSocket in Adaptive Java

demonstrated that we can write adaptive application so that the adaptive code is separated from the application code.

– Developing, deploying, and maintaining such applications is much easier.

• Future Work:– MetaSocket is just one application written in

Adaptive Java. Further investigation on other adaptive applications showed that Adaptive Java should be extended.

– Some of the design decision made while developing Adaptive Java makes its use limited.