Technical Architecture Overview

The ReadiNow platform is a web-based service that empowers customers to solve their own business problems by creating or customising their own web application without the need for computer programming or other technical knowledge. The ReadiNow platform also relieves the burden of important, but distracting, activities such as backup, security, scalability, and so on by providing these services within the platform itself.

Applications

Applications can be built by customers themselves, or they can be chosen from a suite of pre-written applications and then customised. They can be as varied as imagination permits, from customer relationship management, to business continuity management, to expense tracking and so on.

Applications consist of various pieces that logically make up a software experience, such as dashboards, data entry forms, reports, charts and other visualisations, as well as interactivity such as running workflows, triggering business processes, importing and exporting data, template document generation, email notifications and so on.

Construction

The design of the ReadiNow platform is considered at the following levels:

  1. The physical infrastructure and the hosted software processes
  2. The functional software services
  3. Multi-tenancy and application hosting
  4. The logical structure of the entity-relationship database
  5. Client-side code

Physical infrastructure

The physical infrastructure is arranged in a typical N-tier architecture. Web requests are received by a virtual traffic manager that routes these requests to a pool of front-end web servers. A SQL database server houses record data and a File server houses document data. A Redis service is used for caching and as the backplane communication channel between the web servers. Additionally, the AWS Elasticsearch service is used to index record and document data for searching.


Functional software services

The majority of the platform software resides on the front-end web servers. The platform software contains number of modules to support various internal and customer facing features.  In many cases modules are interconnected with each other and depend on each other.

Multi-tenancy and application hosting

The SQL database hosts multiple tenants (clients). Each can have different versions of different applications installed. Separate from the tenants, an application library hosts every available version of every available application. Customer data is stored within each tenant. Each tenant is isolated from every other tenant. For discussion of how co-hosted customers are isolated refer to the “ReadiNow Tenant Isolation Model” whitepaper.  

A single set of database tables holds all entity-relationship data for all tenants, with every record containing a tenant ID.

Entity-relationship database

At the heart of the ReadiNow platform is a purpose-built entity-relationship database. All data is modelled as entities. For example, employees, projects, clients, contracts, and risks, are all entities. Each entity can have a group of flat field data attached to it, such as names, dates, amounts.

Any entity can be related to any other entity. For example, employees can be related to projects, which can be related to clients and contracts. ReadiNow customers' can configure their own new types of relationships between distinct applications to build an interconnected web of data.

These relationships can then be traversed when presenting reports, running workflows, and by other application features.

Additionally, all application components are also described in the entity-relationship database. For example, a report may have columns and filters and formatting rules. These are all described as entities, and a report is connected to its columns, its filters, data source, and so on with relationships. Moreover, the schema (or metadata) about the application is also described using entities and relationships. The types of entities that are possible; the fields that they may possess; the relationship types that are defined; rules for validating input – these are all described using entities and relationships. This unique structure means that all modules written to power the platform equally enrich the customer’s applications, and vice versa.

Finally, all customer data is represented as entities and relationships, as described above.

Client-side code

The above systems run on the ReadiNow platform servers. Additionally, a body of code is sent to and runs on the client's web browser. This code provides the user interface for the dynamically generated applications. For application developers, this code supports application building.

The client is structured as a single page application (SPA), whereby all code is loaded up front, and then communication only goes back to the servers to fetch or modify data. 

Key Feature Areas

The following is a list of the more significant customer-facing feature areas.

Console

A web-based SPA (single-paged application) that the user logs into to use the platform. This includes the ability to access multiple platform applications; as well as a variety of navigation services.

Reports

Creating and running tabular reports of data. This includes basic and advanced searching, following relationships, aggregates, roll-up groupings, conditional formatting, exporting, sorting, paging, and stylistic configurations.

Forms

Dynamically constructed forms for viewing and editing individual records. Supports configurable layout, various control types, embedded reports of related data, and data validation.

Charts

Configurable charts and other visualisations based on report data. Features include various chart types; automatic data pivoting; drill-down.

Screens

Composed dashboards based on multiple reports, charts, and forms, which can be linked together.

Workflows

Designable workflows that perform sequences of actions. These can either process data directly, or involve user tasks, that include the user in the workflow for applications such as approvals. Workflows can be triggered on data change, schedules, or directly invoked.

Document Templates

Generation of Word documents using a ‘mail merge’ style template.  Embedded macros are based on an extension of the expression engine, allowing for rich calculations that support relationships, etc. 

Actions

A configurable mechanism for determining what actions, workflows and document templates, etc, may be performed in various contexts, such as screens and reports.

Administration

A tenant administration area for managing various aspects of the product, including: access control rules, theme settings, email notification settings, to name a few.

Application Library

A way for tenants to select platform applications to be deployed into their tenancy, upgraded, removed. Similarly for application builders to publish their applications.

Builders

Builder interfaces are provided for each of the key component areas: reports, screens, forms, schema, charts, navigation, and workflows. These allow application authors or tenant administrators to customise applications to meet their needs.

Access Control

A configurable security mechanism allows custom rules that can dynamically grant access to resources.

Import

Mechanism for importing data via Excel. Supports both FTPS and SFTP.

Export

Mechanism for exporting data. Supports Excel, Word and CSV formats.

Data Connectors

Web-based APIs can be built directly into tenant applications.

Scheduling

Separate service that triggers workflows at configurable intervals.

Calculation engine

Parses and processes user-entered calculation scripts.   Supports reports, forms, workflows, and document templates.

Analytics engine

The analytics engine is a flexible charting and visualisation system that is capable of intuitively leveraging and pivoting the interconnected data gathered from the entity model and reporting engine.