Framework of an Application-Aware Adaptation

advertisement
Framework of an Application-Aware
Adaptation Scheme for Disconnected
Operations
Umar Kalim, Hassan Jameel, Ali Sajjad, Sang
Man Han, Sungyoung Lee, and Young-Koo Lee
Department of Computer Engineering,
Kyung Hee University
dated: 2005/11/23
Background
• Hand-held devices using a wireless network
• Environment conditions such as network
bandwidth varies due to user mobility
• Service may be disrupted as a result of
– Network bandwidth dropping below a threshold
– Out of range
• Example scenario
– Hospital’s environment/rescue team
– Junior doctors need to diagnose patients
Wireless
Access Point
Below
threshold
Within range
Out of range
Research Objective
Devise a mechanism that allows the
system to automatically reconfigure
itself in order to maintain service
availability (even with poor
network bandwidth)
Proposed Solution
• Mobile computing middleware
(Remote Evaluation paradigm)
– Reflection
– Code mobility
• Adaptation scheme is application aware
– The framework allows the developer to
determine the application policies
Proposed Solution
• Dynamically reconfigure the application
– Redeploy components - when online a offline
Client
Server
Operates according to
the remote evaluation
paradigm
Before
Client
After
Server
Certain objects (with
their states) are
relocated to the client
platform and continues
its operation
Example
Implementation
Types of Disruptions
• Voluntary disconnections
– User initiated event
– Knowledge in advance – enable the system to
prepare for preparation
• Involuntary disconnections
– Unplanned – network failure
– No knowledge in advance - need to detect
disconnection, require to be pessimistically prepared
for it, and pro-actively prepare a response
• Remedy is the same
How is it Achieved
• Floating objects
– Deal with the process of adaptation to disconnected operations
• Based on a distributed object framework
– Allow the redeployment of components
• Code mobility and dynamic binding
– Java class loader and Java Reflection API
– Ability to replace objects – substitute for remote
Remote Object
implementations
<<interface>>
Disconnection Management
<<interface>>
• Transfer of State
– Java Serialization/De-serialization
• DisconnectionManagement Interface
– disconnect and reconnect
Application Logic
<<interface>>
Application Logic
(Server Implementation)
<<interface>>
Classification of Components for
Disconnection
• Log
– After disconnection, the invocations that are made on this
reference are logged locally
• Substitute
– Upon disconnection , a temporary but local reference should be
used to replace the remote reference
– It may have a different (or limited) functionality
• Replica
– The reference should be replicated and transferred to the
client for local execution to maintain service availability
– Reconnection; latest, revoke, prime, merge
Classification of Components for
Reconnection
• Latest
–
The state of the reference with latest time-stamp is maintained while the
other is discarded
• Revoke
–
The entire changes made on the replicated or substituted reference are
dropped in favor of the state of the original reference
• Prime
–
–
Contrary to revoke references
The state of the original reference is discarded in favor of the Prime
reference
• Merge
–
–
Neither the replicated/substituted reference nor the original reference is
clearly identified to be maintained
There is a need for conflict detection and resolution techniques
• All disconnection-aware references may implement the Merge interface
–
Whenever a reconnection occurs, the system would invoke the merge method
for reconciliation by using callback mechanism
State Transitions
initialize
reconfigure
Transferring state
(as per policy)
Traversing reference
graph
identify
references for
relocation
disconnect
reconnection
complete
Swapping local
references with
remote references
Connected
Disconnection
triggered
disconnection Swapping remote
references with local
complete
references
Reconnection
triggered
identify
references for
relocation Reconnecting
Disconnected
Traversing reference
graph
download
references
Downloading reference
implementation
(.class files)
create
instances
reconfigure
reconnect
finalize
[off=true]
Transferring state
(as per policy)
Creating local
references
transfer state
Disconnecting
Module Layout
Class diagram –
framework
Real-Time Effectiveness
How long does a disconnection take?
How long does the process of reconciliation take?
3000
Duration (msec)
2500
2000
1500
1000
500
0
0
1
2
3
4
5
6
Experiment
disconnection (w. pre-installation)
disconnection (w/o pre-installation)
reconciliation [replace]
reconciliation [substitute (merge)]
reconciliation [log]
7
Related Work
• Commonly used techniques
–
–
–
–
–
Caching [1]
Hoarding [2]
Queuing remote interactions [3]
Replication and replica reconciliation [1]
Multi-modal components [4]
• Architectural reconfiguration [5]
– Exact algorithm - Complexity - O(kn-m)
– Stochastic algorithm - Complexity - O(n2)
– Adaptive greedy algorithm - Complexity - O(n3)
Conclusion & Future Work
• Programming model to maintain service
availability even in the face of disconnections
– Code mobility
– Reflection
• Application in Delay Tolerant Networks (DTNs)
• Operational issues of predicting a disconnection
in the face of fading bandwidth
Questions & Comments
Thanks
Please feel free to contact us for further details at the
following addresses
Young-Koo Lee
Umar Kalim
yklee@khu.ac.kr
umar.kalim@gmail.com
Department of Computer Engineering,
Kyung Hee University,
Suwon, South Korea.
Selected References
1.
2.
3.
4.
5.
6.
J. J. Kistler and M. Satyanarayanan. Disconnected Operation in the Coda
File System. ACM Transactions on Computer Systems, vol. 10, no. 1,
February 1992
G. H. Kuenning and G. J. Popek. Automated Hoarding for Mobile
Computers. Proc. of the 16th ACM Symp. on Operating Systems
Principles, St. Malo, France, October, 1997
A. D. Joseph, et. al., Rover: a toolkit for mobile information access,
15th ACM Symposium on Operating Systems Principles, December 1995,
Colorado
Y. Weinsberg, and I. Ben-Shaul. A Programming Model and System
Support for Disconnected-Aware Applications on Resource-Constrained
Devices. Int’l Conf. on Software Engr., Orlando, Florida, May 2002
M. Mikic-Rakic and N. Medvidovic. Support for Disconnected Operation
via Architectural Self-Reconfiguration
M. Shepperd et al. Comparing Software Prediction Techniques using
Simulation, IEEE Transactions, 2001.
Please refer to our paper for further details
Download