140 likes | 238 Vues
A Formal Model for Supporting Frameworks of Dynamic Service Update Based on OSGi. Junqing Chen, Linpeng Huang, Siqi Du and Wenjia Zhou Reliable Adaptive Distributed Systems Laboratory, Shanghai Jiao Tong University, China Dec. 30, 2010. Outlines. Introduction Background
E N D
A Formal Model for Supporting Frameworks of Dynamic Service Update Based on OSGi Junqing Chen, Linpeng Huang, Siqi Du and Wenjia Zhou Reliable Adaptive Distributed Systems Laboratory, Shanghai Jiao Tong University, China Dec. 30, 2010
Outlines • Introduction • Background • Dynamic service update • Type-safe analysis • Implementation and applications • Conclusion and future work
Introduction • To address changing business requirements, the maintenance and evolution of service-oriented applications become more and more frequent. • Many mission-critical applications such as nuclear power plants and patient life-support monitoring, are required to provide services continuously for 24/7 to support persistent tasks. • These services cannot be stopped for a moment; otherwise, this temporary unavailability may cause significant damages and even lose many lives. • Dynamic service updating • updating the cooperating services on the fly • without stopping the whole application • without interrupting the service consumer
Background (1) • OSGi service platform • an OSGi framework • a set of standard service definitions • Defining OSGi services • Registering OSGi services • Accessing to OSGi services
Background (2) • Service-oriented framework relies on • A strict separation between service interfaces and service implementations • Service dependency — services’ collaboration • Adaptable to dynamically replace a service • Not supporting dynamic updates in OSGi • Losing all the states of current service • Shutting down other dependent services (i.e. both services B and C) • Restarting the replaced service
Dynamic service update (1) • There are three features used to support dynamic service update: • Update Manager——coordinating behavior of dynamic updates (by synchronization mechanisms), detecting whether a service’s new version and deciding update points • Delegate ——playing a role resembling as the proxy, linking to an updatable service class and redirecting to its new version after updates • State Transfer —— moving service states from a service’s old version to its new one by a State Transfer Function (STF) • Update process • To guarantee the correctness of dynamic updates, we need to check • Dynamic service update framework’s properties • Type-safe analysis
Dynamic service update (2) • Formal method — Finite State Process (FSP) • Providing a set of operators to define a process model representation • Often used to describe an interaction behavior between a server and a client
Dynamic service update (3) • Formally describing all the framework’s components • Service interface • Service implementation, i.e. CurrentService (CS) and NewService (NS) • Another three feature: UpdateManager, Delegate and StateTransfer
Dynamic service update (4) • Model checking tool — LTSA • Framework properties: • deadlock-freedom: checking its safety • client transparency • server correctness
Type-safe analysis • System upgrade may change the type of service interfaces or the relation of service dependency • Formally analyzing type-safe update • Service • Services dependency • Type • Type of service • Valid update service • Type safety • Theorem 1. (Type-safe update) • Updating an application P to P’ with valid update service, if P is type-safe, then P’ is also type-safe
Implementation and applications • Our implementation (GFTP) is built on the dynamic service update framework. • TransferLow service : low speed (i.e. 10kbps) • TransferParallel service: high speed (i.e.150kbps) • Update manager: controlling the update process
A Type Checking Tool Checking valid updates by our tool (type-safe Update Checker) Checking service interface type checkingservice dependency relationship
Conclusion and future work • Current work • Presenting a framework for supporting dynamic service update in service-oriented applications • A formal model for our framework by using FSP • Verifying some properties of our framework • Formally proving type-safe update • Future work • Improving the performance of our tool and checking another properties • Considering dynamic update’s more requirements such as limited resource and update failure recovery.