Permite o acesso à aplicação através de um navegador Web, bem como uma interface específica para dispositivos móveis, suplementos para o Microsoft Office ou o protocolo FTP, entre outros.
API abrangente através de serviços Web RESTful com cerca de 500 tipos de pedidos diferentes e que pode ser utilizada como ponto de integração com aplicações de terceiros.
Para o desenvolvimento de aplicações, estão disponíveis SDKs (Software Development Kits) para Java e .NET, que permitem um acesso fácil à API do OpenKM.
O OpenKM é uma aplicação Java EE que utiliza o Spring Framework. O módulo mais relevante é a camada de segurança - Spring Security - que centraliza a gestão do acesso dos utilizadores com base nas suas credenciais. O controlo de segurança encontra-se num módulo AccessManager, que implementa a lógica de avaliação de segurança na aplicação. A arquitetura Java EE implementada no OpenKM permite uma lógica de segurança personalizada.
A autenticação pode ser efectuada com LDAP, através da própria base de dados do OpenKM, ou através de módulos específicos (e.g., OAUTH).
O OpenKM Core centraliza e implementa a lógica de gestão e processamento de diferentes tipos de objectos que são armazenados no repositório. Estes objectos são do tipo documento, pasta, emails e registos, bem como a combinação de estruturas de metadados.
O OpenKM incorpora por padrão o mecanismo de workflow JBPM. A arquitetura Java EE implementada no OpenKM permite trabalhar - conectar - com outros mecanismos de Workflows de forma transparente.
O OpenKM usa Hibernate para mapeamento de dados OMR (Object Relation Mapping) e suporta diferentes bases de dados relacionais (DBMS) como o PostgreSQL, MySQL, Oracle, MS SQL Server, DB2 entre outros. Toda a camada de metadados é armazenada em base de dados DBMS. Os objetos binários (documentos), são armazenados no sistema de arquivos, em base de dados ou numa implementação específica do DataStore. Graças à arquitetura Java EE implementada no OpenKM, podem-se criar DataStore específicos.
O OpenKM usa Lucene como mecanismo de pesquisa. Todos os objetos que o OpenKM trabalha, sejam binários ou não, são indexados pelo motor de busca. Os objetos binários, como documentos do Microsoft Office, PDFs ou imagens, etc., são adicionados a uma fila de indexação.
Antes de serem processados pelo Lucene, os documentos são analisados por extratores de texto (Text Extractors). Por exemplo, no caso de imagens, elas são processadas por um mecanismo de OCR para identificação de strings de texto, que serão utilizadas durante o processo de indexação do Lucene. Os resultados do mecanismo de pesquisa são filtrados pelo Security Manager. Os utilizadores só podem acessar as informações para as quais têm privilégios.
Barcode Engine permite identificar e ler códigos de barras nos documentos. A arquitetura Java EE implementada no OpenKM permite ampliar a capacidade de leitura e processamento de formatos de código de barras.
O OpenKM está integrado com vários motores OCR open source (ex: Tesseract, Cuneiform) mas também aplicações comerciais (ex: Abby, Kofax, Cognitive, entre outros).
Scripting - Shell Bean - aliado ao sistema de eventos, smart tasks, task scheduler (Crontab) e relatórios (Jasper Reports) permitem planear, implementar e controlar o processo de captura automática de metadados e automatizar processos complexos de forma totalmente transparente para o utilizador.
OpenKM pode ser integrado com a maioria dos antivírus. Todos os objetos binários são processados pelo mecanismo antivírus, garantindo a integridade do repositório e a segurança dos utilizadores na documentação de uso diário.
O sistema de estatísticas e relatórios OpenKM põe nas mãos dos administradores uma poderosa fonte de informação para controlar o estado da aplicação. Assim, pode ser analisado um conjunto de valores: quanto ao uso da camada Hibernate, as métricas de cache de segundo nível e métodos referentes à API e ao núcleo.
Essas informações auxiliam na tomada de decisões para estabelecer os valores ótimos para os objetos na cache de segundo nível, a parametrização dos recursos utilizados pelo SGBD e como eles são utilizados, antecipando problemas que possam surgir no futuro, por exemplo a nível de hardware, entre outros.