ABSTRACT
Self-regenerative capabilities are a new trend in survivable system design. Self-regeneration ensures the property that a system's vulnerabilities cannot be exploited to the extent that the mission objective is compromised, but instead that the vulnerabilities are eventually removed, and system functionality is restored. To establish the usefulness of self-regenerative capabilities in the design of survivable systems, it is important to ensure that a system satisfying the self-regenerative requirement is survivable, and software engineering practices and tool support are available for building self-regenerative systems. This paper emphasizes the need for formal definition of the concept of self-regenerative systems in general and self-regenerative software components in particular. We propose a simple formal definition of a self-regenerative software component and we propose to adapt well-established formal software validation techniques to build tool support to implement self-regenerative capabilities at the component level.
- A. Arora and S. S. Kulkarni. Detectors and correctors: A theory of fault-tolerance components. In Proceedings of the 18th IEEE International Conference on Distributed Computing Systems (ICDCS98), May 1998.]] Google ScholarDigital Library
- T. Ball, Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In C. Norris and J. J. B. Fenwick, editors, Proc. of the ACM SIGPLAN '01 Conference on Programming Language Design and Implementation (PLDI-01), volume 36.5 of ACM SIGPLAN Notices, pages 203-213, New York, June 2001. ACM Press.]] Google ScholarDigital Library
- E. M. Clarke, O. Grunberg, and D. A. Peled. Model Checking. The MIT Press, Cambridge, Massachusetts, 1999.]] Google ScholarDigital Library
- P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. pages 238-252. ACM Press, Jan. 1977.]]Google ScholarDigital Library
- C. Cowan, C. Pu, D. Maier, J. Walpole, P. Bakke, S. Beattie, A. Grier, P. Wagle, Q. Zhang, and H. Hinton. StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks. In Proc. 7th USENIX Security Conference, pages 63-78, Jan. 1998.]] Google ScholarDigital Library
- C. Flanagan and J. Leino. Houdini, an annotation assistant for ESC/Java. In International Symposium on FME 2001: Formal Methods for Increasing Software Productivity, LNCS, volume 1, 2001.]] Google ScholarDigital Library
- S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In O. Grumberg, editor, Conference on Computer Aided Verification, volume 1254 of LNCS, pages 72-83, Haifa, Israel, June 1997.]] Google ScholarDigital Library
- J. Levy, H. Saïdi, and T. E. Uribe. Combining monitors for run-time system verification. Electronic Notes in Theoretical Computer Science, 70(4), Dec. 2002.]]Google Scholar
- T. M. Mitchell. Machine Learning. McGraw-Hill, 1997.]] Google ScholarDigital Library
- G. C. Necula, S. McPeak, and W. Weimer. CCured: Type-safe retrofitting of legacy code. In Principles of Programming Languages. ACM, Jan. 2002.]] Google ScholarDigital Library
- A. Pnueli. The temporal logic of programs. pages 46-57. IEEE Computer Society Press, 1977. Revised version published in Theoretical Computer Science, 13:45-60, 1981.]]Google ScholarCross Ref
- P. Porras and P. Neumann. EMERALD: Event Monitoring Enabling Responses to Anomalous Live Disturbances. In Proceedings of the 20th National Information Systems Security Conference, pages 353-365, Baltimore, MD, Oct. 1997.]]Google Scholar
- M. Roesch. Snort: Lightweight intrusion detection for networks. In USENIX LISA'99, Nov. 1999. www.snort.org.]] Google ScholarDigital Library
- H. Saïdi. Model-checking guided abstraction and analysis. In 7th International Static Analysis Symposium, SAS 2000, volume 1824, pages 377-396, June 2000.]] Google ScholarDigital Library
- W. Visser, K. Havelund, G. Brat, and S.-J. Park. Model checking programs. In Proc. 15th IEEE International Conference on Automated Software Engineering, Sept. 2000.]] Google ScholarDigital Library
- Self-regenerative software components
Recommendations
Self-Managing Software
The properties of an autonomic or self-managing system provide the basis for future selfware development.
Connector-based self-healing mechanism for components of a reliable system
DEAS '05: Proceedings of the 2005 workshop on Design and evolution of autonomic application softwareThis paper describes the self-healing mechanism for components in reliable systems. Each component in a self-healing system is designed as a layered architecture, structured with the healing layer and the service layer. The healing layer of a self-...
Building autonomic components: the selflets approach
ASE'08: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software EngineeringAutonomic computing is an emergent field aiming at the development of large-scale, self-managing, distributed component-based systems. This paper presents the model and the architecture of an autonomic computing element called SelfLet, which is a ...
Comments