Conventional object-oriented analysis delivers a business object model, which is transformed during design into collaborating class clusters which implement the business models intent in the chosen software technology. Object persistence provided by Objectstore [8], a leading object-oriented database product, significantly impacts the design phase, driving the definition of implementation classes and their responsibilities, relationships and their implementation in the physical schema. Further, it is not the static characteristics of the database, but the dynamic transaction model which most dramatically shapes the persistent class model. Different transaction models for the same business object clusters lead to very different implementation object models. Failing to appreciate these forces on the design of a persistent schema can result in persistent object-oriented applications with hot-spots of unacceptable and unworkable performance, and equally unacceptable scalability. This paper surveys the experiences of an object database development project, and recommends ways of designing an object database application to avoid these problems.
Index Terms:
Persistence, object-oriented software architectures, architectural patterns.
Citation:
Paul Taylor, "Designing Persistent Object-Oriented Software Architectures," tools, pp.14, Technology of Object-Oriented Languages and Systems, 1998