Rollbase Architecture

Under the Hood: Scalable Multi-tenant Cloud

Progress Rollbase consists of a number of multi-tenant components that can be spread across multiple physical or virtual servers for scaling purposes or consolidated on the same server for smaller loads. The following table briefly describes each type of Progress Rollbase component that makes up a full Progress Rollbase instance. Each component can be isolated on its own server or combined with any other group of components on a shared server:

Progress Rollbase Components

Master System monitoring, tenant provisioning, subscriber management, published application management, etc.
Production 1-N production servers; tenants are dynamically loaded onto the production server with the least load.
Database 1-N database servers; MySQL, OpenEdge RDBMS, Oracle or SQL Server; each tenant's data resides in a shared database.
Workflow Manages all scheduled workflow event processes and automation.
Router Manages all user authentication and routing of requests to the appropriate production server.
Search A Lucene-based search engine that manages all indexing and search activity.
Storage Manages all document and file storage either directly or via Amazon S3.
SOAP Manages all SOAP API requests.
REST Manages all REST API requests.
RSS Manages all RSS feeds.

How It Works

While all of these components can, and by default do, run on the same physical or virtual server, a unique advantage of Progress Rollbase is that any one of them can be moved to its own dedicated physical or virtual server for scalability purposes with a minimum amount of configuration changes and minimal interruption to the Rollbase runtime. All Progress Rollbase components communicate with each other via streamlined XML messaging. The Master component monitors the current status of all other components and can raise alerts when issues arise.

Add Multi-tenant App Servers as Needed

Progress Rollbase supports an arbitrary number of production components (i.e. app servers) allowing customers to scale to support as many concurrent users and tenants (i.e. customers) as needed. Tenants are not assigned to any particular production component. Rather, Progress Rollbase dynamically loads tenants onto the available production component with the lowest current resource utilization and load balances users across all available production components. Tenants are dynamically unloaded from production components after a configurable period of inactivity to minimize resource consumption. The dynamic tenant loading process consistently clocks in at sub-second times on the order of 700ms.

Add Multi-tenant Databases as Needed

Progress Rollbase also supports multiple databases allowing the infrastructure to scale as needed. Each tenant's data resides in a single shared or dedicated database and can be easily moved to another database instance using administrative tools in the Master component's user interface. In addition, tenants can be copied for testing and sandboxing purposes.

Application Publishing and Installation

Applications developed by tenants can be published in a proprietary XML format and stored in the Master component. Based on permissions, other tenants may install published applications into their own accounts. The application installation process involves parsing this XML and creating all of the appropriate application metadata and seed data in the tenant's account. All application components are tagged with unique identifiers allowing applications to intelligently receive updates as well as share components (such as object definitions) among multiple applications without causing conflicts or overwriting tenant-specific customizations.

Progress Rollbase User's Guide: The Fast Path to SaaS

A Complete Guide to Developing and Delivering Custom SaaS Applications with Rollbase.

All chapters in one searchable PDF. Over 820 pages of detailed documentation.

Download the Book

Extend Your OpenEdge Application

Use Progress Rollbase to extend your OpenEdge application to the cloud. From your browser, you can design and develop full-featured, collaborative, web-based applications that can be quickly deployed to your team or rolled out to your clients.

Learn more