Architecture of a d.3ecm system environment (basics)
We in d.velop AG focus on a modern software architecture based on microservices amongst others.
For example, d.3one is a collection of single microservices that interact and provide the user with DMS functionality in the user interface. Each microservice is a standalone application.
In the d.3ecm architecture, a microservice is referred to as app.
Each d.velop product consists of its own apps which are specific for the product and which are installed using a product-specific setup. If, for example, an app was installed several times as separate app instances (e.g. for cluster operations or scaling purposes), all apps must have the same version.
Based on this architecture, you can decide freely according to the requirements of your server environment, which app should to be install on which host how many times in the d.3ecm environment. This architecture design offers you the maximum freedom to consider your specific requirements for the IT environment.
Besides the product-specific apps, there are the core apps that you need to consider separately.
Core apps in the d.3ecm architecture
There are a number of apps that are of crucial importance for many d.velop AG products in the d.3ecm system landscape. All the apps below are installed as infrastructure products using d.velop software manager and are not part of other d.velop products:
d.ecs http gateway
The d.ecs http gateway app is the core HTTP interface to all app in a d.3ecm environment. Any HTTP communication is done by using this app. From a technical point of view, this is a reverse proxy. Each app is registered in the d.ecs http gateway app. The newly registered app can then be accessed by all the other apps under https://<BaseUri>/<AppName>. If there must be run several d.ecs http gateway apps in a d.3ecm environment, all d.ecs http gateway apps must be accessed under the identical base address. Per each d.3ecm environment, there must be only a single base address.
d.ecs jstore
The d.ecs jstore app is a NoSQL database, which caches frequently requested data from the d.3 server in the memory of the application server, such data are e.g. property values for frequently used documents. Thus the requested database accesses on the d.3 database are reduced and therefore the performance of the whole system is increased.
In addition, d.ecs jstore is used by the different d.velop components (e.g. d.3one, d.ecs monitor) to store data permanently.
d.ecs jstore is based on Redis (Remote Dictionary Server) and replaces Couchbase as cache storage, which was used until d.3ecm Version 8.0. Amongst others, the app is easier to configure and, thus provides considerable advantages compared to the latest solution.
The d.ecs jstore app is installed on each Windows host, on which a d.velop app is run.
In a d.3ecm environment, each single d.ecs jstore instance on a Windows host must be clustered in order to allow data communication.
d.ecs identity provider
The d.ecs identity provider app authenticates the users on behalf of each app. You can use systems like the Windows Active Directory service for authentication. The authorization of a user is done by each app.
d.ecs shell
The d.ecs shell app provides the common frame for the HTML interface of each app and implements a uniform look & feel user experience so that the interface of the apps is consistent and appears to be made in one piece. The app also provides access to the native functions of the host. In this context a host is for example an e-mail application, an ERP application or even a browser.
Potential scenarios for a d.3ecm environment with d.3one
You can design your d.3ecm environment especially according to the requirements of your enterprise or organization. You can either use at least a single core application server or you can distribute the apps on different application servers. You can choose and decide according to your needs and requests related to your IT environment how to organize your d.3ecm environment.
Example 1
The core apps were installed on a single application server, while the product-specific apps are installed on a different application server.
Example 2
The core apps are distributed on two application servers and the d.ecs http gateway app exists two times in the d.3ecm environment.
If there are questions regarding the cluster operation or scaling, contact your d.velop representative.