A COMAND repository is an object-relational database that combines the features of a:
- File System - Content is named, has metadata and can be organized in a folder hierarchy.
- Relational Database - Content is broken down into fields that store data and relationships.
- Object Database - Content is object-oriented with support for inheritance, methods, etc.
- Version Control System - Content collaboration, locking and versions are supported.
- Cloud Collaboration - Real-time co-authoring and editing with presence indicators.
These features are implemented in PHP on top of a traditional database management system (DBMS) like MySQL. The underlying DBMS is not accessed directly. Instead, repositories are accessed with COMAND Query Languages, PHP API and Web Services to offer a richer feature set.
The high-level features outlined above are broken down into key concepts below. Developers that understand these concepts will get the most out of webCOMAND.
- Objects - Repositories store content as objects, in the object-oriented sense.
- Content Types - Define the schema and functionality of each type of content in the repository.
- Collections - An ordered set of objects that may share a common parent object and field, or query.
- Hierarchy (v2) - Similar to a file system or XML document, a repository offers tree-like organization of content in folders and other hierarchical relationships.
- Inheritance (v2) - Content schemas can inherited properties of existing schemas to help manage complex schemas with common fields.
- Interfaces (v3) - Common functionality can be defined and enforced to unify different types of content.
- Dimensions / Renditions (v3) - A content record can include multiple formats, language translations or other variations.
- Authorizations (v2) - User and software accounts and roles can define fine-grain control over what content can be accessed and modified and what functionality can be invoked and executed.
- Packages & Products (v3) - A modular set of content and functionality that can be easily discovered, distributed, installed and configured.
- Integrations (v4) - Content types can be mapped to other storage systems, such as file systems or databases. For example, content types can be mapped to MIME types to simplify the import and export of content with a traditional file system.
- Temporal (v2) - Repository modifications are recorded in a way that makes point-in-time queries possible. That is, a query can retreive results as if it were processed at a previous point in time.
- Transaction Integrity - Atomic, consistent, isolated and durable (ACID) transactions (v2) and replication (v5).
- Validation (v2) - Content and field level validation rules can be defined and scripted.
- Version Control (v2) - Past versions of content records can be maintained for audit, access and roll-back, and eventually for point-in-time access.
- Collaboration - Features that allow multiple users to work on content at the same time and in a coordinated way.
- Workflow (v4) - Rules to systemize content creation, modification and removal processes.
- Storage Engines (v7) - Systems used to create, query, read, update and delete content from a repository. Storage engines include file systems, relational database management systems (ie. MySQL and MS SQL) and property-object stores (ie. NoSQL and cloud storage).