Skip to content
Ricard Real edited this page May 5, 2025 · 40 revisions

GDMatrix

Introduction

GDMatrix is a modular document management system that provides an integrated set of services and applications designed to meet the requirements of public administrations.

It has a highly customizable web user interface based on JSF and all its functionality is exposed through a web service API to facilitate the integration with other systems.

Features

  • Definition of custom object types amb their metadata through the dictionary module.
  • Inheritance of metadata between object types.
  • Stores all document data (content and properties) into a relational database.
  • Independent of database vendor because data persistence is implemented with JPA.
  • Search for documents by their content (for Oracle databases)
  • Automatic document format identification through the DROID library.
  • Multiple historical schemes of document classification.
  • Advanced policy management module that allows the transfer and re-signing of documents.
  • Workflow module with a web user interface.
  • Suport for XAdES and PAdES signatures.
  • Web content management module based on JSF technology for the creation of web sites.
  • Multi technology reporting module (JasperReports, TemplateReports, etc.).
  • Modular design: module interfaces are designed to admit multiple implementations.
  • Web service interface for all modules implemented with JAX-WS.
  • Multi-platform: supported on all platforms where Java is available.
  • GDMatrix IDE desktop application for developing workflows, forms, scripts, reports and batch tasks.
  • GDMatrix Client desktop application for document editing, signing and scanning.
  • Open source: offered with EUPL1.1 and LGPLv3 licences.

Architecture

GDMatrix architecture

General principles

  • GDMatrix offers a new way to access information, which is standard, comprehensive, technology-neutral, and independent of the underlying infrastructure.
  • The GDMatrix modules are based on a conceptual model (entities) and not on a physical model (tables).
  • These modules are designed to be independent of each other. When a module claims data from another, it has to do so through its web service interface.
  • All entities in a module are identified by a globalId that is represented by a string. The internal format of this globalId is dependant of the module implementation.

Module organization

Base modules

Document management modules

  • doc: documents
  • cases: files (case files)
  • classif : classification schemes
  • policy: document/case management policies
  • signature: digital signature generation and validation

Web management modules

Data processing and analytics modules

  • report: reporting
  • job : batch jobs
  • sql: direct database access

Other modules

Conceptual model

The GDMatrix conceptual model is inspired by the MoReq2 specification.

Conceptual model

Applications

  • GDMatrix web: GDMatrix web environment for object management and website creation developed using JavaServer Faces 2.3.
  • GDMatrix IDE: GDMatrix Integrated Development Environment developed with Java Swing to create documents like workflows, forms, reports, ANT tasks or scripts than run inside GDMatrix.
  • GDMatrix Client: GDMatrix desktop application developed with Java Swing to edit, scan and sign documents.

Development environ

  • GDMatrix is based on Java standards like JSF, JAX-WS, JPA or JDBC to guarantee its longevity.
  • The project is managed with Apache Maven.
  • The GDMatrix team uses Apache Netbeans as the development IDE because it supports all Java standards for free. However, any other IDE that supports maven is suitable for GDMatrix development.

System requirements

  • A server with 4Gb+ RAM.
  • Java version 8 or 11.
  • A relational database with a JDBC driver (like Oracle or Postgres).
  • Apache tomcat 8+ (or other J2EE web container that supports the servlet specification 3.1+). For the latest versions of GDMatrix, Apache Tomcat 9 is recommended.

Releases

Since 2021, two versions are released each year. The first one (YY.1) on April and the second one (YY.2) on October.

Releases page

Clone this wiki locally