Arquitectura
Diagrama que describe los diferentes componentes que forman parte de la aplicación, cómo interactúan entre sí y cómo se comunican.
Interfaz de usuario
Permite el acceso a la aplicación mediante un navegador web, así como una interfaz específica para dispositivos móbiles, Addins para Microsoft Office o el protocolo FTP entre otros.
API
Completa API a través de Webservices REST que cuenta con casi 500 tipos de solicitudes distintas (request) y puede utilizarse como punto de integración con terceras aplicaciones.
Para el desarrollo de aplicaciones se encuentran disponibles los SDK's (Software Development Kit) para Java y .NET que permiten acceder de una forma sencilla al API de OpenKM.
Capa de seguridad
OpenKM es una aplicación Java EE que utiliza Spring Framework. El módulo más relevante es la capa de seguridad - Spring Security - que centraliza la gestión de los accesos permitidos a los usuarios, en función de sus credenciales. El control de la seguridad recae en un módulo AccessManager, que implementa la lógica de evaluación de la seguridad en la aplicación. La arquitectura Java EE implementada en OpenKM permite implementar lógicas de seguridad a medida.
El proceso de autentificación puede realizarse con LDAP, a través de la propia base de datos de OpenKM o mediante módulos específicos (por ejemplo OAUTH).
Core
El Core de OpenKM centraliza e implementa la lógica de gestión y procesamiento de los distintos tipos de objetos que se almacenan en el repositorio. Estos objetos son nodos de tipo documento, carpeta, correos electrónico y registros, así como el conjunto formado por las estructuras de metadatos.
Motor de workflow
OpenKM incorpora por defecto el motor de Workflow JBPM. OpenKM puede integrarse con cualquier motor de workflow.
Almacenamiento
OpenKM utiliza Hibernate para el mapeo de datos OMR (Object Relation Mapping), soportando distintas bases de datos relacionales (DBMS) tales como PostgreSQL, MySQL, Oracle o MS SQL Server. El conjunto de la capa de metadatos se almacena en una base de datos (DBMS), mientras que los objetos binarios (documentos) se almacenan en el sistema de ficheros definido por el datastore.
Motor de búsqueda
El motor de búsqueda permite localizar rápidamente la información. OpenKM utiliza Lucene o Elastic Search como motor de búsqueda. Todos los objetos con los que trabaja OpenKM, sean o no binarios, son indexados por el motor de búsqueda.
Catalogación y metadatos
Permite la catalogación inteligente de documentos integrandose con diversos motores de OCR open source (como Tesseract) y comerciales (como Chronoscan, Abby o Kofax entre otros).
Las tareas inteligentes (Smart Task), el planificador de tareas (Crontab) y los reports (Jasper Reports) permiten planificar, ejecutar y controlar el proceso de captura automática de metadatos, así como automatizar procesos complejos de una forma totalmente transparente para el usuario.
Antivirus
OpenKM puede integrarse con la mayoría de antivirus. Todos los objetos binarios son procesados por el motor de antivirus garantizando la integridad del repositorio y la seguridad de los usuarios en el uso diario de la documentación.
Estadísticas y reports
El sistema de estadísticas y reports de OpenKM pone en manos de los administradores una potente fuente de información, mediante la cual controlar el estado de la aplicación. Para ello, OpenKM permite analizar valores relativos al uso de la capa de Hibernate, relativos a las caché de segundo nivel así como métricas relativas a métodos del API y del core.