A Framework for Developing Configurable Objects

  • Dilma M. Silva USP
  • Karsten Schwan Georgia Institute of Technology

Abstract


The recent boom of new application categories, such as multi-media systems, groupware, and the wide area distribution of information across the Internet, has led to further demands for flexibility in software. This paper presents a framework (COBSOM) for building configurable parallel and distributed programs where type-dependent object functionality is explicitly separated from its characteristics subject to configuration, including its performance, reliability, and timing properties. COBSOM supports a programming model where dealing with configuration issues is a central part of the design. It provides abstractions for incorporating flexibility into a distributed object-oriented application in a methodical fashion. In addition, performance issues are addressed by considering run-time execution adjustments of the basic mechanisms that influence them. We introduce the basic elements of the model. We also present Data. Object, which has been developed with COBSOM. Data Object is a complex configurable object that encapsulates data output from a high performance parallel and distributed scientific application.

Keywords: configuration, fexibility, object design, distributed objects

References

B. Agnew, C. Hofmeister, and J. Purtilo. Planning for change: A reconfiguration language for distributed systems. In Proc. of the Second International Workshop in Configurable Distributed Systems, pages 15-22. IEEE Computer Society Press, May 1994.

M. Ahamad and K. Schwan. The COBS Project. http://www.cc.gatech.edu/systems/ projects/COBS, 1995.

H. Astudillo. Evaluation and Realization of Modeling Alternatives: Supporting Derivation and Enhancement. PhD thesis, College of Computing, Georgia Institute of Technology, April 1996.

R. Campbell, V. Russo, and G. Johnson. Choices (class hierarchical open interface for custom embedded systems). ACM Operating Systems Reviet, 21(3):9-17, July 1987.

Proceedings of the 3rd International Conference on Configurable Distributed Systems. IEEE Computer Society Press, May 1996.

H. Custer. Inside Windows NT. Microsoft Press, Redmond, Washington, 1993.

S. Danforth and I. Forman. Reflections on metaclass programming in SOM. In Proc, of OOPSLA '94, pages 440-452. ACM Press, October 1994.

G. Eisenhaner, B. Schroeder, and K. Schwan. From interactive high performance programs to distributed laboratories: A research agenda. In Proc. of the SPDP'96 Workshop on Program Visualization and Instrumentation, October 1996.

G. Eisenhauer and K. Schwan. Parallelization of a molecular dynamics code. Journal of Parallel and Distributed Computing (SPDT), 34(2), May 1996.

D. R. Engler, M. F. Kaashoek, and J. O. Jr. Exokernel: An operating system architecture for application-level resource management. In Proc. of the 15th Symposium on Operating Systems Principles. ACM Press, December 1995.

G. K. et al. Open implementations: A metaobject protocol approach. In Proc. of the 9th Conference on Object-Oriented Programming Systems, Language, and Applications, 1994. Tutorial notes.

I. Froman, S. Danforth, and H. Madduri. Composition of before/after metaclasses in SOM. In Proc. of OOPSLA'94, pages 427-439. ACM Press, October 1994.

G. Hamilton, M. Powell, and J. Mitchell. Subcontract: A flexible base for distributed computing. In Proc. of the 14th ACM Symposium on Operating Systems Principles, pages 69-79. ACM Press, December 1993.

G. Kiczales and J. Lamping. Operating systems: Why object oriented? In International Workshop in Object Oriented Operating Systems, pages 25-30, December 1993.

T. Kindberg, A. Sahiner, and Y. Paker. Adaptive parallelism under Equus. In Proc. of the 2nd International Workshop in Configurable Distributed Systems, pages 172-182. IEEE Computer Society Press, May 1994.

T. Kindler, K. Schwan, D. M. Silva, M. Trauner, and F. Alyea. Parallelization of spectral models for atmospheric transport processes. Concurrency: Practice and Experience, 8(9):639-666, November 1996.

P. Maes. Concepts and experiments in computational reflection. In Proc. of OOPSLA'87, pages 147-155. ACM Press, October 1987.

J. Magee, N. Dulay, and J. Kramer. A constructive development environment for parallel and distributed programs. In Proc. of the Second International Workshop in Configurable Distributed Systems, pages 4-14. IEEE Computer Society Press, May 1994.

H. Massalin. Synthesis: An Efficient Implementation of Operational System Services. PhD thesis, Columbia University, 1992.

B. Mukherjee, D. Silva, K. Schwan, and A. Gheith. Ktk: kernel support for configurable objects and invocations. Distributed Systems Engineering Journal, 1:259-270, 1994.

A. Paepcke, editor. Object-Oriented Programming - The CLOS Perspective. MIT Press, 1993.

R. Rashid, D. Julin, and et al. Mach: A system software kernel. In Proc. of the 94th IEEE Computer society International Conference (COMPCON 89), pages 176-178, February 1989.

D. Schmidt. The adaptive communication environment. In Proc. of the 11th Sun User Group Conference, 1993.

K. Schwan, A. Gheith, and H. Zhou. Chaos-arc: A kernel for predictable programs in dynamic real-time systems. In 7th IEEE Workshop on Real-Time Operating Systems and Software, Univ. of Virginia, Charlottesville, pages 11-19, May 1990.

J. Siegel. CORBA Fundamentals and Programming. John Wiley & Sons, Inc., 1996.

D. M. Silva and K. Schwan. CTK: configurable object abstractions for multiprocessors. Technical Report GIT-CC-97-03, Georgia Institute of Technology, Atlanta, GA 30332, January 1997. Submitted to IEEE Transactions on Software Engineering.

I. Sommervile, Software Engineering. Addison-Wesley Pub Co, 4th edition, 1992.

Y. Yokote. The Apertos reflective operating system: The concept and its implementation. In Proc. of OOPSLA 98, pages 414-434. ACM Press, October 1992.
Published
1997-10-15
SILVA, Dilma M.; SCHWAN, Karsten. A Framework for Developing Configurable Objects. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 11. , 1997, Recife/PE. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1997 . p. 165-179. DOI: https://doi.org/10.5753/sbes.1997.24047.