Multi-tenancy is a term applied to a multi-tenant application environment. It encompasses multi-tenant databases, tenant-aware tools, and applications.
A multi-tenant database is a database that provides support for a number of separate and distinct sets of users, referred to as tenants. All tenants share the same database schema. However, each set of tenant users accesses its own instance (partition) of a given table (tenant data) unless the table is shared by some or all tenants in the database (shared data). This access is transparent for each tenant. That is, each tenant accesses its own and shared tenant data as if they had access to the entire database, and each tenant accesses the database without necessarily having knowledge of any other tenants and their data. In fact, a tenant cannot access another tenant's data at all.
As an enabling technology, multi-tenant databases provide benefits to a SaaS provider by reducing database administration overhead and increasing resource sharing. Two key advantages of the OpenEdge implementation are that:
Tenant support is implemented in the database, removing the requirement that tenancy be managed by the application.
Database utilities and tools are tenant-aware.
Although there are many aspects of multi-tenancy, by implementing tenant support in the database layer, once the tenant identity is asserted, the application code that tenants run when using a multi-tenant database is exactly the same as application code running in a non-tenant configuration. For application users (tenants), once access to the database is authenticated, multi-tenancy is transparent. For application developers, there are very few changes that need to be made to existing applications to support a multi-tenant database. The changes are primarily confined to the areas of security, authorizing users (signing into the application), and database connections. Some applications may have intermingled these types of tasks (security and database connections) into their business logic; however, for most applications, user authentication and security are handled as an independent step when a user initially signs into the application, and the other aspects of an existing application will not need any changes.
For database administrators, many aspects of maintaining an OpenEdge RDBMS are unchanged when a database is enabled for multi-tenancy. Utilities that operate on a database-wide scale, such as PROBKUP, are not changed by multi-tenancy. Database utilities and tools that operate on an object level are tenant aware, that is, the utilities can perform maintenance on tenant-specific data. For example, index maintenance, data dump and load, and object moves, can take place at the tenant level.
Database multi-tenancy is available to customers with an Enterprise RDBMS and an add-on product called OpenEdge Multi-tenant Tables, for deployment. For development, customers with a Development Server license can create and configure multi-tenant databases and develop multi-tenant applications.