Understanding Metamodels Outline n Understanding metamodels n Applying

  • Slides: 30
Download presentation
Understanding Metamodels

Understanding Metamodels

Outline n Understanding metamodels n Applying reference models n Fundamental metamodel for describing software

Outline n Understanding metamodels n Applying reference models n Fundamental metamodel for describing software components n Content management system reference models

Understanding Metamodels n Metamodels are “models of models”. n A metamodel is a language

Understanding Metamodels n Metamodels are “models of models”. n A metamodel is a language for describing another model. n Its like a grammar for a language. n For example, UML describes the syntax of diagrams expressed in UML.

Three-Layer Model of Knowledge Representation n Ontology layer – contains core concepts of abstractions

Three-Layer Model of Knowledge Representation n Ontology layer – contains core concepts of abstractions and their relationships n Domain layer – contains domain models, such as models of specific business domains n Technology layer – composed of models that are the technology projections of the domain layer

Applying Reference Models n A reference model abstracts software components and expresses the system

Applying Reference Models n A reference model abstracts software components and expresses the system as connectors and components. n Reference models are common in mature domains such as HCI. n A user interface is a type of connecting element and the user and the application are components.

Seeheim Model n The Seeheim reference model for interactive applications is composed of three

Seeheim Model n The Seeheim reference model for interactive applications is composed of three software elements: Application n Dialogue control n Presentation n n A fourth element, the user, interacts with the presentation element only

Seeheim Model (Cont’d) User Presentation Dialogue Control Application

Seeheim Model (Cont’d) User Presentation Dialogue Control Application

Seeheim Model (Cont’d) n The presentation logic is separated so that this component is

Seeheim Model (Cont’d) n The presentation logic is separated so that this component is aware only of presentation technology. It contains lexical knowledge. n Application logic is separated so that this component is only concerned with the application level logic. It contains the semantic knowledge. n In between is the dialogue control which translates user interface commands (lexical actions) into application commands (semantic actions). It ensures that the lexical elements are used in the correct context.

Seeheim Model (Cont’d) n The Seeheim model addresses modifiability and portability qualities. n By

Seeheim Model (Cont’d) n The Seeheim model addresses modifiability and portability qualities. n By separating the presentation layer, the logic could be ported to a different user interface or windowing system. n The separation of the dialog control from the application logic allows for changes in the interaction model without having to modify the application logic itself.

Arch/Slinky Model n This is another metamodel for interactive applications and is composed of

Arch/Slinky Model n This is another metamodel for interactive applications and is composed of five elements: Presentation n Virtual toolkit n Dialogue control n Virtual application n Application n

Arch/Slinky Model (Cont’d) Dialogue Control Virtual Application Virtual Toolkit Presentation

Arch/Slinky Model (Cont’d) Dialogue Control Virtual Application Virtual Toolkit Presentation

Arch/Slinky Model (Cont’d) n The arch/slinky decomposition emphasizes portability and modifiability. n The presentation

Arch/Slinky Model (Cont’d) n The arch/slinky decomposition emphasizes portability and modifiability. n The presentation and virtual toolkit components together correspond to the Seeheim presentation component. n Separating these components allows a presentation component to be ported to a variety of presentation technologies without changing the dialogue.

Enterprise Application Reference Model n Enterprise applications have a common set of archetypal components:

Enterprise Application Reference Model n Enterprise applications have a common set of archetypal components: n n n A data store An application logic layer A presentation layer n The application layer accesses and updates the data store. n The presentation layer interacts with the application layer and potentially requires multiple technologies (e. g. , email, Web, client applications, Web services, etc. ) n The presentation layer provides input and output services to external entities (e. g. , human users, other systems, etc. )

Enterprise Application Reference Model (Cont’d) physical presentation layer virtual toolkit accessor utility dialogue control

Enterprise Application Reference Model (Cont’d) physical presentation layer virtual toolkit accessor utility dialogue control arch/slinky reference model virtual application business layer organization application resource process utility data store/persistence layer organization resource process utility 3 -tier reference model business application ontology

Technology Stacks and Architectural Layers n Although technology stacks are commonly used as architectural

Technology Stacks and Architectural Layers n Although technology stacks are commonly used as architectural descriptions, the architectural layers do not typically line up with technologies. n The use of a technology stack as an architectural description can be a source of confusion. n In the design process, the application of technology should come later rather than sooner.

Fundamental Metamodel for Describing Software Components n Software design axioms of Buhrer’s fundamental design

Fundamental Metamodel for Describing Software Components n Software design axioms of Buhrer’s fundamental design pattern: n n n The software must obtain input data from one or more external (hardware) interfaces. The software must deliver output data to one or more external (hardware) interfaces. The software must maintain internal data to be used and updated on every execution cycle. The software must transform the input data into the output data (possibly using the internal data) The software must perform the data transformations as quickly as possible.

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer defines four design elements that

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer defines four design elements that satisfy the above axioms: Data entity – Data entities represent the software system’s input data, output data, and internal data. This is a data element. n I/O Server – I/O servers encapsulate the external (hardware) interfaces with which the software interacts. This is considered interacting with the hardware because data is stored somewhere like RAM, registers, or on disk. This is a type of connecting element. n

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer defines four design elements that

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer defines four design elements that satisfy the above axioms (cont’d): Transformation server – Transformation servers perform the transformation from input data to output data. This is also known as a processing element. n Data flow manager – Data flow managers obtain input data from the I/O servers, invoke the transformation servers and deliver output data to the I/O servers. They own the internal data. This is a type of connecting element. n

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer describes this model as apattern

Fundamental Metamodel for Describing Software Components (Cont’d) n Buhrer describes this model as apattern upon which other patterns can be described. n This makes it a candidate as a metamodel. n We can use Buhrer’s model as an ontology for implementation components. n All software embodies these capabilities, but that are not always explicitly identified as separate modules, objects, or functions.

Examples: Content Management System Reference Models n Metamodels for a content management and publishing

Examples: Content Management System Reference Models n Metamodels for a content management and publishing application n Reference models that are useful for designing a publishing system.

Domain Model <<organization>> Publishing Enterprise <<organization>> Business Division <<process>> Content Authoring <<resource>> Content <<process>>

Domain Model <<organization>> Publishing Enterprise <<organization>> Business Division <<process>> Content Authoring <<resource>> Content <<process>> Content Publishing <<process>> Content Delivery

Domain Model (Cont’d) n Activities of the content authoring and publishing process: n n

Domain Model (Cont’d) n Activities of the content authoring and publishing process: n n n Authoring/editing/assembling – creating content and source code for an electronic content product and assembling it into a collection. Snapshot (edition) – creating a snapshot of the repository content that defines a product (known as creating an edition). Compilation/production – creating a ready for delivery product. The content comes entirely from a snapshot and is specific to the delivery mode.

Domain Model (Cont’d) n Activities of the content authoring and publishing process (cont’d): n

Domain Model (Cont’d) n Activities of the content authoring and publishing process (cont’d): n n Deployment (manufacturing) – a tangible product is created (a book is printed or content is uploaded to a production Web server. Delivery/consumption – this is where a user receives or gains access to content.

Content Collaboration Reference Model n The work area/staging area/edition model (WSE) n It’s contents

Content Collaboration Reference Model n The work area/staging area/edition model (WSE) n It’s contents are: Managed asset – an atomic unit of versioncontrolled data such as a file or database entity. n Work area – a branch that has a separate life cycle from its corresponding staging area but is periodically merged back into the staging area. n

Content Collaboration Reference Model (Cont’d) n WSE contents are (cont’d): n Staging area –

Content Collaboration Reference Model (Cont’d) n WSE contents are (cont’d): n Staging area – a collection of managed assets. A staging area may have one or more associated work areas. A staging area may also be a work area for another staging area. n Editions – a versioned collection of specific versions of managed assets that can be retrieved at an arbitrary point in time. An edition is a snapshot of a subset of a staging area.

Content Collaboration Reference Model (Cont’d) n The operations of the WSE are: n Create

Content Collaboration Reference Model (Cont’d) n The operations of the WSE are: n Create work area – create a branch off of a staging area with current copies of managed assets. n Submit – copy assets from work area to staging area. n Compare – compare assets in staging area to work area. n Update – copy from staging to work area, also know as synchronizing. n Merge – Combine data in the staging area nad work are versions of an asset and resolve conflicts if present. n Snapshot (edition) – create an edition

Content Management Reference Model n The content management metamodel complements the WSE metamodel with

Content Management Reference Model n The content management metamodel complements the WSE metamodel with the following types of services: n n Content storage – low-level services, including data storage and retrieval, indexing and searching, backup, and data import and export. Version control – version control semantics including asset versioning, locking, rollback, and file differencing. Branching – allows an asset to have several simultaneous versions with different histories, yet can be merged with other versions on different branches. Workflow – allows users to manage specific business processes around the creation and management of assets.

Content Management Reference Model (Cont’d) n The content management metamodel complements the WSE metamodel

Content Management Reference Model (Cont’d) n The content management metamodel complements the WSE metamodel with the following types of services: n n Meta data – used to communicate the structure of data from one system to another Publish and deployment – aggregate assets into sets and define the presentation content Subscription services – allows users to subscribe to syndicated subscriptions. Syndication services – the ability to syndicate content for other systems to consume

Summary n Metamodels are useful tools for describing, understanting, and evaluating architectures. n Metamodels

Summary n Metamodels are useful tools for describing, understanting, and evaluating architectures. n Metamodels are models for describing other models and can be thought of as a grammar for a class of models. n Reference models are a type of metamodel that capture domain knowledge such as HCI and enterprise applications.

Summary (Cont’d) n The arch/slinky reference model describes the components of an interactive application.

Summary (Cont’d) n The arch/slinky reference model describes the components of an interactive application. n The fundamental metamodel for describing software components in composed of a set of primitive building blocks for software components. n The workflow/staging area/edition and content management models are useful reference models for describing content management systems.