OnMind - Internal Projects and Architecture

This is an internal or advanced document that presents OnMind’s design and project portfolio as a basis for technical knowledge of the product, its architecture, as well as technical reference information about the product.

About the Database

OnMind’s database management system

OnMind incorporates or couples one mechanism that manages the data with a scope, this may vary within our platform and cloud service plans. OnMind-EPI is the name given to our database management system, meaning Embedded Processing Implementation, which refers to (1) our top level manager implementation, (2) our API or JSON layer, (3) our abstract data model, (4) our repository with metadata, (5) Java database internally embedded and (6) backup function. Although OnMind-EPI may involve inside an SQL (Structured Query Language) layer its connection is made through API, being classified as NoSQL database. It is design to companion OnMind without graphical user interface and make possible certain auto-administration (other than backups). OnMind-EPI is recommended for database file up to a size of 3GB (usually enough for most plans), approaching that dimension is a sign of reviewing a new plan (such as OnMind Optimus).

In the OnMind Optimus plan it is possible to evaluate a project with a database of specific interest that can be adapted through our Database Adapter Interface called OnMind-DAI (substitute for OnMind-EPI without database). OnMind does not provide the database engine in this last scenario and must be acquired or provisioned, it would only incorporate as a mechanism OnMind-DAI that enables the connectivity of manufacturers databases, currently version designed mainly for MySQL/MariaDB (even Amazon Aurora on AWS), as well as Oracle 18c (even XE or 12c, not lesser). It is thus concluded that, if the requirements exceed the scope of OnMind-EPI should be used OnMind-DAI connecting a third party database adopted or viable to adapt under project. Perhaps our technology can be seen as a layer above the database (supra-database) or multi-engine (such as MySQL or MariaDB), or simply consider OnMind-DAI as a pseudo-database but it’s a management system.

Its added value consists of enabling independence from the database engine (at least not to depend on just one), as well as applying an abstract data model oriented under the OnMind Method that promotes agile projects.

Portfolio of internal projects of a technical nature

To begin with, it is important to understand how OnMind is designed, taking into account the following image.

Understanding that by making use of an ingenious approach a product of a technical nature is conceived, a solid base is obtained on which commercial applications and plans are supported, even a business model. OnMind has focused first on investing in its software infrastructure rather than referring to a specific application, projecting innovation, service and benefit to another level. Let’s take a look at OnMind’s project portfolio below.

Project Description
GUI Static design for the “Apps” UI (frontend). Mix data controls, modules or web components involving the UIK project Currently used internally by ASI.
ASI Application Service Interface (backend). Logical server for static web applications (GUI) and for orchestrating service functions In the case of Linux systems NGinx is linked as reverse proxy.
DAI Database Adapter Interface (dbms-like). Connects adopted databases using JVM and providing API-Rest in JSON.
EPI Embedded Processing Implementation, with respect to ASI (database-alternative). It is a database management system that based on much of DAI uses Java database internally embedded. It can be classified as a NoSQL database, being self-administrable and providing API-Rest in JSON. EPI is the alternative to DAI being mutually exclusive.
CLI Command Line Interface. Useful for indistinct database backup, as well as other utilities.
AVE Application Viewer Environment (“freeware”). It is the viewer “app” of the OnMind platform for mobiles (currently Android) and as a substitute for the browser on the desktop (Windows & macOS).
UIK User Interface Kit. Data controls (or web components) and styles for GUI. It is also supported by community projects (e.g. Fomantic-UI, Riot JS). In the future, under project it could become independent if it is reorganized and presented somewhere as a library of web styles and components, surely OpenSource. This depends on the orientation of the moment and the financial resource to sustain another project.
BOX Frontend + Backend + Database. Refers to our internal server and platform for product testing that combines ASI + EPI without requiring infrastructure nor NGinx. In the future, under project it could become independent if it is reorganized and presented somewhere as a study tool for developer or advanced user. This also depends on the UIK project, the orientation of the moment and the financial resource to sustain an additional project.

OnMind, being a cloud oriented platform, can have exclusive projects for their internal team (e.g. UIK, BOX). In fact, each “app” is an internal project.
"Freeware " or "Freemium " can be translated in this context as free software with license cost for the user, under commercial terms with more limited restrictions, closed source, without any warranty and without support.

With this in mind, OnMind’s software development fronts are as follows:

  1. FrontEnd Common (Web). Javascript (under Browser or Electron), in addition to HTML5 (+CSS3)
  2. FrontEnd Core Components (UI). Javascript, in addition to HTML5 (+CSS3)
  3. FrontEnd for Mobile. Javascript + Ionic-Capacitor (for Native development and a Web wrapper: WebView)
  4. BackEnd Common (Web). Javascript (under Node.js)
  5. BackEnd for Data. Kotlin (under JVM with Vert.x), in addition to SQL
  6. DevOps. Javascript, Kotlin (CLI oriented to Linux)
  7. Customer (others). For some enterprise customizations as specific extensions, ABCode could be considered, and if a project merits it, perhaps Typescript, in addition to Javascript and Kotlin (the latter for projects on the Java virtual machine - JVM).

You can see our Technical Data Sheet.

Understanding that the vision is already wide and a scope is important, managing to cover our needs with languages such as Javascript and Kotlin, even ABCode, if no other language has been mentioned in principle would be out of our radar, being open to someone else for a specific project that significantly merits another approach.

Interesting aspects of our software

OnMind has an application programming interface (API) and internal microservices for business processes, using technologies (Node.js, Vert.x, Nginx) that respond to the so-called “problem of the ten thousand connections” (C10K) and enable projects for the internet of things (IoT). The singular method and layout of our system (or way of conceiving it) also provides a basis for the development of modern, multichannel projects (for the Web and enabling mobile functions), for building custom business processes and for the applications that lead within OnMind.

We visualize OnMind with what we have catalogued as “Management Oriented Data Environment” (MODE), combining a system (such as Linux), a database adapter interface (OnMind-DAI), web microservices and our visual component (with OnMind-AVE or under Supported Browser). In others words, on the basis of a system (such as Linux) is linked our platform with which you can manage your service or procedures, ie, it is possible to integrate and orchestrate business activity, mainly if operated over the Internet and mobile devices are used.

You could think of it as an operable system for the cloud with a suite of applications for business and office.

OnMind, in server version, usually simplifies its security implementation by hosting the accompaniment and good practice of a reverse proxy such as Nginx, avoiding exposing its ports and providing a better routing mode when publishing services locally, the proxy resolves this outward with a single navigation port (443) under secure protocol (https). Hence, security certificates are also managed with Nginx (configuration activity that corresponds to who administers the infrastructure once the certificates are acquired). Even horizontal growth would be possible by acquiring Nginx Plus (Nginx+) license.