Pattern Reification as the Basis for Description-Driven Systems (original) (raw)
Related papers
The Reification of Patterns in the Design of Description-Driven Systems
2001
To address the issues of reusability and evolvability in designing self-describing systems, this paper proposes a pattern-based, object-oriented, description-driven system architecture. The proposed architecture embodies four pillars-first, the adoption of a multi-layered meta-modeling architecture and reflective meta-level architecture, second, the identification of four data modeling relationships that must be made explicit such that they can be examined and modified dynamically, third, the identification of five design patterns which have emerged from practice and have proved essential in providing reusable building blocks for data management, and fourth, the encoding of the structural properties of the five design patterns by means of one pattern, the Graph pattern. The CRISTAL research project served as the basis onto which the pattern-based meta-object approach has been applied. The proposed architecture allows the realization of reusability and adaptability, and is fundamental in the specification of self-describing data management components.
Using Self-Description to Handle Change in Systems
2002
In the web age systems must be flexible, reconfigurable and adaptable in addition to being quick to develop. As a consequence, designing systems to cater for change is becoming not only desirable but required by industry. Allowing systems to be self-describing or description-driven is one way to enable these characteristics. To address the issue of evolvability in designing self-describing systems, this paper proposes a pattern-based, objectoriented, description-driven architecture. The proposed architecture embodies four pillars-first, the adoption of a multi-layered meta-modeling architecture and reflective meta-level architecture, second, the identification of four data modeling relationships that must be made explicit such that they can be examined and modified dynamically, third, the identification of five design patterns which have emerged from practice and have proved essential in providing reusable building blocks for data management, and fourth, the encoding of the structural properties of the five design patterns by means of one pattern, the Graph pattern. In this paper the fundamentals of the description-driven architecture are described-the multi-layered architecture and reflective meta-level architecture, remaining detail can be found in the cited references. A practical example of this architecture is described, demonstrating the use of description-driven data objects in handling system evolution.
Design Patterns for Description-Driven Systems
1999
In data modelling, product information has most often been handled separately from process information. The integration of product and process models in a unified data model could provide the means by which information could be shared across an enterprise throughout the system lifecycle from design through to production. Recently attempts have been made to integrate these two separate views of systems through identifying common data models. This paper relates description-driven systems to multi-layer architectures and reveals where existing design patterns facilitate the integration of product and process models and where patterns are missing or where existing patterns require enrichment for this integration. It reports on the construction of a so-called description-driven system which integrates Product Data Management (PDM) and Workflow Management (WfM) data models through a common meta-model.
Reifying Design Patterns to Facilitate Systems Evolution
Lecture Notes in Computer Science, 2003
In this paper, we propose a schema versioning mechanism to manage the schema evolution in temporal object-oriented databases. The schema evolution management uses an object-oriented data model that supports temporal features and versions definition-the Temporal Versions Model-TVM. One interesting feature of our proposal is that TVM is used to control not only the schema versioning, but also the storage of extensional database and propagation of the changes performed on the objects. The extensional data level supports integration with the existing database, allowing the maintenance of conventional and temporal versioned objects. The instance propagation approach is proposed through the specification of propagation and conversion functions. These functions assure the correct instance propagation and allow the user to handle all instances consistently in both backward and forward schema versions. Finally, the initial requirements concerning data management in the temporal versioning environment, during schema evolution, are presented.
Handling evolving data through the use of a description driven systems architecture
1999
Traditionally product data and their evolving definitions, have been handled separately from process data and their evolving definitions. There is little or no overlap between these two views of systems even though product and process data arc inextricably linked over the complete software lifecycle from design to production. The integration of product and process models in an unified data model provides the means by which data could be shared across an enterprise throughout the lifecycle, even while that data continues to evolve. In integrating these domains, an object oriented approach to data modelling has been adopted by the CRISTAL (Cooperating Repositories and an Information System for Tracking Assembly Lifecycles) project. The model that has been developed is description-driven in nature in that it captures multiple layers of product and process definitions and it provides object persistence, flexibility, reusability, schema evolution and versioning of data elements. This paper describes the model that has been developed in CRISTAL and how descriptive meta-objects in that model have their persistence handled. It concludes that adopting a description-driven approach to modelling, aligned with a use of suitable object persistence, can lead to an integration of product and process models which is sufficiently flexible to cope with evolving data definitions.
European Conference on Pattern …, 2006
Writing patterns is a very important task for leveraging knowledge within an organization or in the software engineering community as a whole. Patterns are more than text, diagrams or source code. Patterns are knowledge that comes from experience. Sharing patterns is sharing knowledge. Currently, an abstract and standardized way for specifying software patterns doesn't exist. There isn't any single meta-definition model that governs patterns description. This leads to the problem of finding a way to represent patterns in a self-contained that leverages the literary information and the implementation information independent of the programming languages and execution platform and a way for sharing those patterns. The creation of a language for pattern meta-specification and a catalog of patterns from different pattern languages described using this language is a clear step towards the solution of this problem. The creation of a web-based visualization tool for the catalog makes this knowledge available to the world, allowing searching, linking and using the patterns in the catalog. In this paper, we will present the advances and results of our research work on meta-specification and cataloging of software patterns.
In the age of the Cloud and so-called 'big data' systems must be increasingly flexible, reconfigurable and adaptable to change in addition to being developed rapidly. As a consequence, designing systems to cater for evolution is becoming critical to their success. To be able to cope with change, systems must have the capability of reuse and the ability to adapt as and when necessary to changes in requirements. Allowing systems to be self-describing is one way to facilitate this. To address the issues of reuse in designing evolvable systems, this paper proposes a so-called description-driven approach to systems design. This approach enables new versions of data structures and processes to be created alongside the old, thereby providing a history of changes to the underlying data models and enabling the capture of provenance data. The efficacy of the description-driven approach is exemplified by the CRISTAL project. CRISTAL is based on description-driven design principles; it uses versions of stored descriptions to define various versions of data which can be stored in diverse forms. This paper discusses the need for capturing holistic system description when modelling large-scale distributed systems.
Meta-data Objects as the Basis for System Evolution
2001
One of the main factors driving object-oriented software development in the Web-age is the need for systems to evolve as user requirements change. A crucial factor in the creation of adaptable systems dealing with changing requirements is the suitability of the underlying technology in allowing the evolution of the system. A reflective system utilizes an open architecture where implicit system aspects are reified to become explicit first-class (metadata) objects. These implicit system aspects are often fundamental structures which are inaccessible and immutable, and their reification as meta-data objects can serve as the basis for changes and extensions to the system, making it self-describing. To address the evolvability issue, this paper proposes a reflective architecture based on two orthogonal abstractions - model abstraction and information abstraction. In this architecture the modeling abstractions allow for the separation of the description meta-data from the system aspects they represent so that they can be managed and versioned independently, asynchronously and explicitly. A practical example of this philosophy, the CRISTAL project, is used to demonstrate the use of meta-data objects to handle system evolution.
A Component Framework for Description-Driven Systems
Software systems are increasingly impinging on new areas in everyday life; competitive market conditions mean that the requirements for such software are subject to frequent change. As a result, there is an increasing need for fast and flexible software development. Meta-objects can be used in multi-layered description-driven systems to represent various levels of information that endow flexibility both to the managed data and to the system design. This position paper identifies those generic system components that together provide a coherent architecture for maintaining system evolution and data complexity in a holistic approach. We argue that these generic components can be used as building blocks of a system at multiple abstraction layers, introducing reuse and extensibility in higher abstractions, and reducing the complexity of the system architecture. To illustrate the judicious use of components in such development, this paper overviews the CRISTAL system as one example of an existing implementation of a system.
A Metamodeling Approach to Pattern Specification
2006
This paper presents the Pattern Modeling Framework (PMF), a new metamodeling approach to pattern specification for MOF-compliant modeling frameworks and languages. Patterns need to be precisely specified before a tool can manipulate them, and though several approaches to pattern specification have been proposed, they do not provide the scalability and flexibility required in practice. PMF provides a pattern specification language called Epattern, which is capable of precisely specifying patterns in MOF-compliant metamodels. The language is defined as an extension to MOF by adding semantics inspired from the UML composite structure diagram. The language also comes with a graphical notation and a recommended iterative specification process. It also contains features to manage the complexity of specifying patterns and simplify their application and detection in user models. Most importantly, the language is implemented using state-of-the-art technologies that are heavily used by major modeling tool vendors, thus facilitating its adoption.