Skip to content

Meta Model

The high level architecture of TAPPaaS is modeled in a subset of ArchiMate.

ArchiMate Concepts

We use the following concepts from ArchiMate:

  • Capability - A high-level ability that the organization or system provides
  • Application Component - A modular, deployable unit of software
  • Application Service - A service exposed by an application component

How TAPPaaS Uses These Concepts

In TAPPaaS we use Capabilities to describe what is being delivered, typically at the level where a single general capability is delivered by one TAPPaaS module.

A TAPPaaS module is modeled as an Application Component. If a module implements more than one open source application, we decompose the application component into sub-components.

We model the coarse-grained services that a module delivers, and we create a dependency diagram between modules by indicating which services from other modules a given module depends on.

Example: OpenWebUI Module

The following diagram shows how the OpenWebUI module delivers a Chat capability:

flowchart TB
    subgraph Capabilities
        Chat[Chat Capability]
    end

    subgraph OpenWebUI Module
        OWUI[OpenWebUI Component]
        subgraph Sub-Components
            OWUIApp[OWUI App]
            Redis[Redis App]
            Postgres[Postgres App]
        end
        OWUI --> OWUIApp
        OWUI --> Redis
        OWUI --> Postgres
    end

    subgraph Firewall Module
        FW[Firewall Component]
        ProxyService([Proxy Service])
        FW --> ProxyService
    end

    Chat -.->|realized by| OWUI
    OWUIApp -->|depends on| ProxyService

In this example:

  • The Chat Capability is realized by the OpenWebUI module
  • OpenWebUI is decomposed into three sub-components: OWUI App, Redis, and Postgres
  • The OWUI App depends on the Proxy Service delivered by the Firewall module