Skip to content

0042 Software Capabilities

Software capabilities are the capabilities implemented in software and supported by ITInfrastructure such as hosts, software server platforms and software servers. They are composed of, support and/or consume various digital resources represented as Asset entities. They are linked together using the ServerAssetUse relationship.


SoftwareCapability entity

IT Infrastructure contains many capabilities. Each capability can be catalogued using the SoftwareCapability entity and linked to the hosting ITInfrastructure entity using the SupportedSoftwareCapability relationship.

Different organizations and tools can choose the granularity in which the capabilities are catalogued in order to provide appropriate context to assets that are managed by the capabilities and the decisions made around them.

These are the subtypes of software capabilities defined in the open metadata types:

  • SoftwareServerCapability - A capability that typically resides in a SoftwareServer.
  • AccessControlManager - A capability that manages access to specific resources.
  • APIManager - A capability that manages callable APIs that typically delegate onto Software Services.
  • Application - A capability supporting a specific business function.
  • Catalog - A capability that manages collections of descriptions about people, places, digital assets, things, ...
  • DataManager - A capability that manages collections of data.
    • DatabaseManager - A capability that manages data organized as relational schemas. Also known as a Database Management System (DBMS).
  • Engine - A programmable engine for running automated processes.
    • WorkflowEngine - An engine capable of running a mixture of human and automated tasks as part of a workflow process.
    • ReportingEngine - An engine capable of creating reports by combining information from multiple data sets.
    • AnalyticsEngine - An engine capable of running analytics models using data from one or more data sets.
    • DataMovementEngine - An engine capable of copying data from one data store to another.
    • DataVirtualizationEngine - An engine capable of creating new data sets by dynamically combining data from one or more data stores or data sets.
  • EventBroker - A capability that supports event-based services, typically around topics.
  • SoftwareService - A capability that provides externally callable functions to other services.
  • NetworkGateway - A connection point enabling network traffic to pass between two networks.
  • EnterpriseAccessLayer - Repository services for the Open Metadata Access Services (OMAS) supporting federated queries and aggregated events from the connected cohorts.
  • CohortMember - A capability enabling a server to access an open metadata repository cohort.
  • GovernanceEngine - A collection of related governance services of the same type.
    • GovernanceActionEngine - A collection of related governance services supporting the Governance Action Framework (GAF).
    • OpenDiscoveryEngine - A collection of related governance services supporting the Open Discovery Framework (ODF).
  • ArchiveEngine - A collection of related governance services supporting maintenance of Open Metadata Archives.

In addition, it is possible to augment software capabilities with the following classifications:

  • CloudService - A capability enabled for a tenant on a cloud platform.
  • ContentCollectionManager - A manager of controlled documents and related media.
  • FileSystem - A capability that supports a store of files organized into a hierarchy of file folders for general use.
  • FileManager - A manager of a collection of files and folders.
  • NotificationManager - A software capability that is distributing events from a topic to its subscriber list.

SupportedSoftwareCapability relationship

Defines the relationship between a SoftwareCapability and the ITInfrastructure entity that hosts it. This relationship, plus the attached SoftwareCapability entity, help to build out a picture of the capabilities of a particular deployed host, software server platform or software server. Together they help to describe where and how various IT capabilities are delivered to the owning organization. This model can form the basis of traceability from business function to IT Infrastructure, particularly when combined with location information and links to the data assets and APIs.

ProcessingState classification

Defines a classification for a SoftwareCapability. The ProcessingState can be used to describe additional runtime processing information used by the component represented by the SoftwareCapability entity.

Deprecated types
  • SoftwareServerSupportedCapability is deprecated in favour of the SupportedSoftwareCapability relationship.

Raise an issue or comment below