In this paper we will discuss our experiences in developing the framework with regard to the method of software development employed, recurrent patterns in the design of components, and, on an architectural level, the problems in supporting multiple languages and distribution.
We will discuss the scope of our framework and the approach taken in its realization as a collection of classes. In particular we will delineate the recurrent patterns that we employed in its design and, on an architectural level, the idioms we employed for the concrete realization of the basic concepts underlying the framework. To illustrate the role of the patterns and their associated idioms in our framework, we will discuss the construction of our Web components.
We observe that there is a tension between defining a clean object model and providing the flexibility needed to support a multiparadigm approach. We resolved this tension by choosing to differentiate between the object model (that is class interfaces) offered to the average user of the framework and the object model offered to advanced users and system-level developers.
In our work, idioms play a central role, that is we achieved the desired flexibility by systematically employing a limited number of basic idioms. We succeeded in hiding these idioms from the average user of the framework. However, the simplicity of our original object model is only apparent. Advanced or system-level developers who intend to define extensions to the framework must be well aware of the patterns underlying the basic concepts, that is the functionality requirements of the classes involved, and the idioms employed in realizing these requirements.
Patterns and their associated idioms have guided us in defining an architecture that allows for transparently extending the functionality of our framework. However, with respect to issues of distribution, the idioms employed provide only a partial solution. To realize a framework for distributed applications, we have felt the need to provide additional language support as well, that is by extending existing O-O languages with support for parallelism and distribution.
Our framework has evolved gradually over the years. Reflecting on the approach we have taken and the problems encountered, we will evaluate the relative merits of employing patterns and indicate the costs, in terms of development efforts, incurred by using them in the realization of our framework.
Keywords and phrases: object-oriented framework, multiparadigm, distributed hypermedia, web-based applications, patterns, idioms, languages, development costs