Create and deliver personalized experiences across digital properties at scale
Build engaging websites with intuitive web content management
Leverage a complete UI toolbox for web, mobile and desktop development
Build, protect and deploy apps across any platform and mobile device
Build mobile apps for iOS, Android and Windows Phone
Rapidly develop, manage and deploy business apps, delivered as SaaS in the cloud
Automate UI, load and performance testing for web, desktop and mobile
Host, deploy and scale Node.js, Java and .NET Core apps on premise or in the cloud
Optimize data integration with high-performance connectivity
Automate decision processes with a no-code business rules engine
Globally scale websites with innovative content management and infrastructure approaches
Content-focused web and mobile solution for empowering marketers
Faster, tailored mobile experiences for any device and data source
UX and app modernization to powerfully navigate today's digital landscape
Fuel agility with ever-ready applications, built in the cloud
Rich Banville is a Progress® OpenEdge® Fellow at Progress Software. He joined Progress in 1993 with a background in operating system test and development. While working on OpenEdge products, Rich has focused primarily on the database storage manager and the SQL query processor. His areas of interest include performance, concurrent programming, and multi-tenancy. He is also one of the few engineers at Progress who still programs in assembler when the need arises. Rich likes nothing more than discussing potential new features for the database with others. If you've used any new feature of the OpenEdge database in the past 15 years, you can bet that Rich had a hand in its conception, architecture, or development.
Rich's current focus has been on providing multi-tenancy capabilities within OpenEdge. A "shared tenancy" application deployment model was the chosen direction where one copy of the application is shared amongst all tenants who maintain their data in the same database using the same infrastructure. Keeping with the ease of use and adoption philosophy, the goal was to allow existing applications to take advantage of this new direction in application deployment without requiring additional code changes. Through much brainstorming with his colleagues, "multi-tenant tables" within the OpenEdge database was conceived.
Multi-tenant tables in OpenEdge 11.0 provide data access based on tenant identity. While all tenants share the same schema definition within the database for a multi-tenant table, the data associated with each tenant identity is logically and physically separated from each other within the database. The tenant's of the database are shielded from the fact that they are operating in a purely shared vs. isolated tenancy model. Thus different tenants running the exact same query on a multi-tenant table will only retrieve data associated with their asserted tenant identity.
Implementing shared tenancy without multi-tenant tables is significantly more complex. Without multi-tenant tables a tenant identity column must be added to each table which is to be shared across tenants within the application. Implementing shared tenancy in that way increases maintenance costs due to the need for specialized code performing complex queries, careful data insertion, and tenant specific updates. Additionally, it's error prone, open to security violations and performs poorly.
Multi-tenant tables in OpenEdge circumvent all that. The implementation of multi-tenant tables within OpenEdge from the application provider's perspective greatly reduces development, deployment, and maintenance costs when delivering a multi-tenant application. There is one database, one schema definition and one application instance that are shared by all tenants.
One copy of the database yields better utilization of system resources and reduced operational maintenance costs. One schema definition provides a consistent table layout amongst all tenants allowing future table definition changes to be made once and immediately experienced by all tenants. One copy of the application means that development, maintenance, and deployment versioning is simplified.
Although there is one copy of the application, tenant based customizations within the application can easily be implemented based on the tenant identity asserted at runtime. In addition to the application deployment, security and performance benefits of multi-tenant tables, the database operational maintenance and analysis activities can efficiently be performed on a per tenant basis as well database wide.
While multi-tenant tables are vital for SaaS type deployments, they are also very useful for anyone building and deploying applications in a multi-organization environment. A tenant is after all just a grouping of users with separate data access requirements.
Join Rich in his session "Meet the Multi-tenant Database" on Wednesday, September 15, 2010 at 9:00 a.m. EDT to learn everything there is to know about this fascinating new OpenEdge feature. To register for Progress Exchange Online 2010, go to www.progress.com/exchange2010.
View all posts from Ken Wilner on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.
Copyright © 2016, Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.