Dolmen – a unified IT-platform to build business applications
Global market today is crowded by IT-solutions for various industrial niches. However, virtually every one of them do have their weak points, like:
- Long time to market
- Overcomplicated solution not allowing for customization
- Costly or impossible integration
- High qualification requirements for development and support staff
The reason is that most products are developed from scratch, IT companies being forced to create their own foundation for the business application, according to their own standards.
We offer a proprietary Dolmen business automation platform with the following features:
// IT-platform (ecosystem)
to develop business applications that easily interact with each other, as well as with any external systems.
// Low entry threshold, high development speed and easy changes
// Not depending on a particular database type
Allowing to migrate to distributed storage systems in future, if data volumes grow exponentially
// System processes are maximally separated from the application business logic
Resulting applications include just declarative description of database structure and web-screens, as well as business logic written in Java/Kotlin. Dolmen Platform will handle all the rest, including deployment of new releases.
// Easy customizations by the client (both logic and interface)
Key Platform Features
// Modular Principle
Dolmen System is built on a modular principle. This allows to replace components with the latest ones, as technology evolves. All applications built on Dolmen Platform are created as independent modules, being distributed and versioned separately. Applications are so isolated from system processes that they will stay operational even if the database or the application server are replaced.
// Cross-platform ability
Dolmen servers run on Windows and Linux, while user application can run on any modern internet browser.
Dolmen addresses database or operation system specifics only in designated adaptors accessible on system level. Dolmen interfaces are used at the application level, that are independent from the database structure specifics.
This relates to everything:
- data types,
- request language,
- table indexing,
- program code.
Thus, Dolmen will be always able to support the most modern database, provided it has indexes and transactions. Moreover, Dolmen choice is not limited to relational databases – its data storage and processing mechanism will allow to use NoSQL solutions without any need to modify existing applications.
// Data stored as objects. Nested tables.
Table rows are stored in the database as binary objects (list of fields, serialized with Google Protocol Buffers). Thus a change in a table structure does not require rebuilding the table in the database – only indexes are modified if necessary.
Dolmen tables may be hierarchical objects and contain nested tables. This significantly speeds-up the work with complex structures, since reading or updating of the whole object in the database is performed in a single operation.
// Fast start and Low-Code development
Dolmen Platform is designated for fast development of new business applications and their further evolution according to new business requirements. For this, Dolmen implements Low-Code, as well as Pro-Code principles. The system takes care of all complications related to SQL, transactions, parallel processing synchronization.
Dolmen Platform provides simple interfaces to access data, while looking after database connects, transactions and translation of table select conditions to the database language. To create or modify a table one has just to describe (or modify) its structure in a JSON format descriptor. User WEB screens are created in a visual editor and stored as JSON files, which are also modifiable.
Program code is required only to implement business processes related to data processing. If there is no data processing (e.g. application to input a document and fill in its items) – there will be no program code. To be able to describe business logic, one has just to manage basic Java/Kotlin coding and know several Dolmen API functions for CRUD operations. This modest set of qualification requirements allows application developer to fully concentrate on application architecture and forget about technical issues.
// Screen customization
Dolmen allows to re-define WEB-screens at the user level. This might be useful when a client needs a new function, though this function shall not be included in the standard application. When a new application version is installed, the re-defined (custom) client screens will re-define the new standard ones. With this approach, it is possible to develop the main application line and customize it for each client, when necessary.
// Comparing several versions of an application
Should a developer company have many clients and many customizations of an application for each client, it becomes critical to compare and consolidate (merge) new versions with each particular client customization quickly and efficiently. Since all Dolmen applications consist of a declarative table structure description (in JSON format), WEB-screens description (in JSON format) and business logic (in Java/Kotlin), all differences between several versions of the same application can be done by simply comparing text files.
// Installing applications
To install a Dolmen application, no SQL-scripts or upgrade scripts would be necessary – all changes will be applied to the database automatically at the time of installation. At that, Dolmen will analyze the current database structure, as well as the updated one described in the application, and apply all changes automatically.
The principle of serialization of fields in the object allows for a quick automatic upgrade and removes limitations on types of table structure modifications characteristic of large systems with strict upgrade downtime requirements.
Dolmen easily connects to other systems of an enterprise – automation systems, databases, etc. For example, list of users may be taken from Microsoft Active Directory, other LDAP-server or JDBC database.
One of Dolmen unique features is its ability to access external systems in the same way as it accesses its own tables. At that, search, adding or modification of data in external systems will be implemented via a standard Dolmen API, as for tables in the local database. This approach allows to use such “virtual tables” in programs and screens – wherever normal Dolmen tables would be used.
One can also build complex WEB-screens using data collected simultaneously from the local database and external systems, link them “on the fly”, grant user rights, edit data. At that, the real data storage location would be irrelevant for screen editor and business logic, and the whole thing will work absolutely seamlessly. Moreover, a special Interface Module system would allow to separate data access into a separate module and even create several implementations thereof.
- Dolmen has an embedded user notification system with a number of delivery channels (e.g. E-mail and Telegram). New custom delivery channels can be added, naturally. At that, Dolmen applications need to know nothing about these delivery channels.
- To send a notification, one has imply to create a message, indicate its thematic channel and recipient list. The Platform will deliver the message in accordance with user subscription to channels, using delivery channel indicated by sender.
- Mass, group and individual mailings are processed in this way. Pop-up and error messages are also available for applications.
// On-line editing of office documents
Dolmen platform is integrated with ONLYOFFICE Docs server to allow for on-line editing of office documents. This server may be installed locally (for total control and security) or in the cloud. Access to document viewing and editing is controlled at the Dolmen level, files may be stored in Dolmen tables or any external system. By means of Dolmen screen editor, document viewing and editing may be embedded in any WEB-screen as a graphic element. Co-authoring mode and change tracking are also available.
// Full text search
For document full text search Dolmen is integrated with Elasticsearch server, where by means of Apache Tika library it can index multiple text formats, including office documents. Formats are automatically distinguished by languages to choose the right morphology.
Paid and free opensource versions of Elasticsearch are available (e.g. at Amazon) – both for local installation and as a cloud service. To configure a search, developer just has to indicate which fields are included in the search and which WEB-screens are to be opened by the link – all the rest will be done by Dolmen automatically.
// Application branding
Dolmen allows to modify WEB-interface of main applications even for modules developed by third-parties. One can reconfigure screens, add or remove visualized data and processing buttons. Various themes are available for WEB screens – custom screen designs can be also created (layout design and CSS skills required in this case).
// Security and control
Dolmen supports one- and two-factor authentication (TOTP technology), as well as operates via SSO (Single Sign-On for a domain, based on Microsoft Active Directory). One can configure user roles and grant rights to screens and operations therein – Dolmen will automatically convert these rights into privileges to tables and actions (particular procedure calls from business logic description). Additionally, one can delimit data access at the table row level, e.g. to process data of different companies in the same database.
// Housekeeping (handling outdated data)
Over time, excess outdated data may accumulate in the database – these are to be removed or archived. Outdated data selection conditions may be set for Dolmen tables, specifying desired storage time, as well as other unnecessary (intermediate or temporary) data selection criteria. Such data will be automatically unloaded to files and purged from the database according to a pre-configured schedule. This is normally required for databases processing big volumes of actual operative information, while past-period reporting is not required.
// Technology stack
Dolmen applications are developed in JetBrains IDEA IDE – a special plugin have been created for it, which generates classes (to describe tables in JSON files) and builds the whole project to a JAR-file distributive.
The resulting distribution kit includes all application-related information:
- data structure,
- documentation in MarkDown or HTML format,
- language localization files.
Full-scale module debugging works in the usual IDE mode. To run a module locally one has just to click the plugin button, while to install it remotely – copy JAR with the module to the Dolmen server.
// Application development specifics
- Dolmen Platform allows to create complex high-load applications within a very short time and with limited effort. A typical team would include business analysts with some experience in coding, rather than Java system developers. This is practically important, since system developers are more oriented to system programming, than solving business tasks – hence, the project becomes overgrown with various managers and architects, this boosting project management costs.
- Dolmen application development may involve clients, results being demonstrated immediately and requirements formulated and refined iteratively. The fact that Dolmen applications are isolated from technical details, as well as declarative description of data structure and screens, significantly facilitates team development and reduces implementation and support workload by an order of magnitude.
- Dolmen provides applications that are simple, transparent and customer- modifiable – a big difference from many “black box” solutions existing on the market.