run-time support for adaptive communication services by: seyedmasoud sadjadi advisor: dr. philip k....
TRANSCRIPT
![Page 1: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/2.jpg)
• 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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/3.jpg)
• 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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/4.jpg)
![Page 5: Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022083004/56649e025503460f94aec925/html5/thumbnails/14.jpg)
• 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.