ABSTRACT

Multitenancy is one of the basic principles of Cloud Computing. Sharing resources is one of the main advantages of the Cloud Computing paradigm and multitenancy technology is one of the most effective cornerstones from a Software Architecture perspective. Cloud Computing has provided a reliable, cost-efficient, cutting-edge infrastructure for advanced software delivery models such as Software-as-a-Service (SaaS). Most SaaS platforms are built on Multi-Tenant Architectures (MTA), which allows modeling and exploiting efficiently huge amounts of computing resources and large data management 262structures, such as databases. As a result of the Multi-Tenancy model, the Cloud can be used in a more efficient way, changing the increase of the profits for the sellers and the decrease of the prices for the customers due to the economy of scale. Nevertheless, from a software engineering standpoint, the need for flexible, context-aware and dynamic Multi-Tenant Architectures is gaining momentum, particularly because when dealing with Business Information Systems (BIS) scenario requirements such as Customer Relationship Management (CRM) or Enterprise Resource Planning (ERP) systems, which require the capability for extending Data Models inside the MTA and also provide more knowledge-oriented metadata-driven approaches such as inference, where data relationships can be entailed.