210 likes | 223 Views
This reading material discusses different programming models for building reliable and safe pervasive systems. It explores fault management technologies and exception handling techniques to ensure the trustworthiness of these systems.
E N D
Programming Models in Pervasive SpacesPart 2CNT 5517-5564 Dr. Sumi Helal & Dr. Eun-Sun Cho Computer & Information Science & Engineering Department University of Florida, Gainesville, FL 32611 {helal, escho}@cise.ufl.edu
Reading Materials • H. Yang and A. Helal, "Safety Enhancing Mechanisms for Pervasive Computing Systems in Intelligent Environment", In Proceedings of the Middleware Support for Pervasive Computing Workshop, held in conjunction with IEEE PerCom 2008, Hong Kong, March 2008. (pdf) • Randell, B.: Dependable pervasive systems. In: SRDS, page 2. IEEE Computer Society Press, (2004) • R. Bose, A. Helal, V. Sivakumar and S. Lim, "Virtual Sensors for Service Oriented Intelligent Environments," Proceedings of the Third IASTED International Conference on Advances in Computer Science and Technology, Phuket, Thailand, April 2-4, 2007 • S. Chetan, A. Ranganathan, and R. Campbell. Towards fault tolerance pervasive computing. Technology and Society Magazine, IEEE, 24(1):38--44, Spring 2005. • P. Hu, J. Indulska, R. Robinson, An Autonomic Context Management System for Pervasive Computing, Percom 2008 • Kulkarni, D., Tripathi, A.: A Framework for Programming Robust Context-Aware Applications. In: IEEE Transactions on Software Engineering, vol. 36, no.2, IEEE Computer Society Press (2010) • Damasceno, K., Cacho, N., Garcia, A., Romanovsky, A., Lucena, C., : Context-Aware Exception Handling in Mobile Agent Systems: The MoCA Case. In: Software engineering for large-scale multi-agent systems, pp37 – 44, ACM New York (2006)
Programming Models • Service oriented models • More expressive, Less safe • Context driven models • Less expressive, Safer • Safety oriented models √ • More expressive, Safer
Trustworthiness of a Computing System • The trustworthiness of a computing system (including a pervasive system) can be defined by its dependability • Dependability is comprised of: • reliability, availability, integrity, safety and maintainability • Online transaction processing systems have emphasized availability, maintainability and integrity. • The solutions also have helped to facilitate less emphasized attributes like safety.
Exception Handling Technologies maintainability reliability ★ availability safety Dependable systems integrity Fault Management Technologies
Trustworthiness of a Pervasive System • In pervasive systems, safety (especially, user-centered safety) deserves more attention • abnormalities in pervasive systems could be critical problems to users’ safety. • Examples: • Conflicting usage of shared resources • Invalid operational directives • Risks of conflicting side effects
Trustworthiness of a Pervasive System (cont’d) • Solutions to traditional dependability may help user-centered safety in pervasive systems, but they are only partially helpful • More direct attention on safety is needed • Useful tools • Fault management technologies • Exception handling
Fault Management Technologies • Goal : continuous, acceptable-quality operation of a system, even in presence of faults. • based on a closed control loop of monitoring, detection and reaction • System-wide safety support • able tomonitor the interactions between different applications from system-wide point of view • does not consider the semantics of individual applications • the remedies of the fault are simple, usually limited to halting, reconfiguration or redundancy.
Exception Handling • Allows programmer-described abnormal cases to be detected and remedied • according to the handler programs. • Program-wide safety support • exceptions and the handlers based on application/service semantics. • needs any additional coordinator • exception handling support in a general purpose language (C++/C#/Java) may complicate the application codes
aware of Individual application semantics aware of presence of multiple applications System-wide fault management application specific safety support retry, halt or reporting to users handlers defined by programmers Program-Wide Safety Support System-wide Safety Support
Previous Work • Usually focuses either on fault management or on exception handling • Some of the existing methods consider both fault detection and exception handling • They assume a single program in a system, without considering interactions of independent programs
Previous Work (cont’d) • Detection • heartbeat based fault detection and remedy in a program [4] • Remedy • reconstructing the organization of the program (the execution path) [5] • embedding human “roles” explicitly as subjects to handle exceptions [6] • based on existing exception handling tools in C++/C#/Java [7] • Virtual sensors [2]
Safety Oriented Models • Safety oriented programming models needed to allow multiple independent programming units to run on a system safely • Allowing detection and handling of unsafe states in application semantics aware way. • Employ both system-wide and program-wide safety support
System-Wide Safety Supports • “Global safety knowledge base” • Stakeholders such as devices manufactures, space owners and users specify their individual concerns into their safety knowledge through a domain-independent ontology. • By integrating and maintaining the knowledge base, the pervasive system keeps a coherent understanding of the overall safety issues in the space
System-Wide Safety Supports(cont’d) • A pervasive system dictates, prioritizes, and addresses the various concerns to achieve maximum overall safety based on the knowledge base • Works best when multiple services and devices are entangled.
Program-wide Safety Support • A programmer has the best knowledge of the intricacies and the safety needs of his program • More powerful tools needed to address the internal safety issues within the program itself. • Like enhanced exception handling techniques • programmers are able to direct control to manage safety risks within their own programs. • A fine-grain, and more customized support for safety.
More on Program-Wide Support • A Situation • means a temporal sequence of contexts that can cause abnormality in complicated pervasive environments. • allows sophisticated description of exceptions, • Asynchronous exception detection • Avoid distracting programmers from programming on application’s main flow
Before the Execution During the Execution Physical World with Context Reader/Writer Preprocessing Tools Context Monitor Runtime Service Execution Environment Exceptions and handlers in programs Exception Registration Exception Detection Handler Invocation Runtime Exception Engine Exception and Handlers Repository
Program-Wide Exception Registration • Exceptions are sometimes program-local but in many cases, they are related to system-wide abnormalities. • The programmer is supposed to register the exception and handler definitions into the Runtime Exception Engine • also checked to meet the system-wide safety specifications; otherwise discarded and warn the programmer (by assistance of specialized tools.) • need to be verified again against the noticeable modification of the system and knowledgebase
Program-Wide Exception Handling • If an exception is detected, • Runtime Exception Engine will try to find an appropriate handler and execute it. • each program maintains its own queue of context data to facilitate scenario-based abnormality detection, by consulting from context monitor. • When preventing an impermissible context fails, in spite of protection of context locks, • execution of an exception handler can be initiated.
Discussions • Safety problems are critical • Adequate support for safety is needed • Program-wide safety support • Not for the cases that multiple tasks are interacting to each other • Still valuable • Allows sophisticated and customized handling of erroneous cases