The SPOSAD Architectural Style for Multi-tenant Software Applications
|
|
|
- Austen Austin
- 9 years ago
- Views:
Transcription
1 The SPOSAD Architectural Style for Multi-tenant Software s Heiko Koziolek Industrial Software Systems ABB Corporate Research Ladenburg, Germany [email protected] Keywords-Software architecture; Software quality; Software performance; Software maintenance Abstract A multi-tenant software application is a special type of highly scalable, hosted software, in which the application and its infrastructure are shared among multiple tenants to save development and maintenance costs. The limited understanding of the underlying architectural concepts still prevents many software architects from designing such a system. Existing documentation on multi-tenant software architectures is either technology-specific or database-centric. A more technology-independent perspective is required to enable wide-spread adoption of multi-tenant architectures. We propose the SPOSAD architectural style, which describes the components, connectors, and data elements of a multi-tenant architecture as well as constraints imposed on these elements. This paper describes the benefits of a such an architecture and the trade-offs for the related design decisions. To evaluate our proposal, we illustrate how concepts of the style help to make current Platform-as-a-Service (PaaS) environments, such as Force.com, Windows Azure, and Google App Engine scalable and customizable. I. INTRODUCTION The software industry is currently adopting the Softwareas-a-Service (SaaS) deployment model in many application domains [1]. SaaS applications are hosted on Internet servers by a provider instead of being downloaded and installed locally on the user s computer. SaaS applications typically provide licenses on a pay-per-use basis, instead of being bought by a user. A special kind of SaaS offering is a multi-tenant software application [2]. It serves multiple tenants (e.g., companies or non-profit groups) from a single application instance. Furthermore, for all tenants the software runs on the same infrastructure (i.e., containers, virtual machine, operating system, hardware), runs from the same code base, and can thus be maintained centrally. The most popular example for a multi-tenant SaaS application is a customer relationship management (CRM) software by Salesforce [3]. Because of their scalability and efficiency, multi-tenant architectures are considered a critical competitive advantage over classical single-tenant architectures for large-scale systems in specific domains, such as CRM, HR, or financial applications [2]. Despite the emerging platforms for SaaS applications [1], implementing multi-tenant architectures is still not well understood and documented. It is hard for software engineers to develop such a system, because the architectural concepts, the necessary design decisions and their trade-offs require high expertise. Existing attempts on providing a structured documentation of multi-tenancy architectural concepts either focus on restricted aspects (e.g., the database layer [4]) or depend on certain technologies (e.g.,.net [5], IBM/Java [6]). The documented architectures of existing multi-tenant systems (e.g., [3]) are difficult to transfer to other systems. A more abstract and technology-independent perspective is needed to understand the involved design decisions and architectural trade-offs. We propose capturing the architectural concepts of a multi-tenant system as a new architectural style (the so-called SPOSAD style: Shared, Polymorphic, Scalable and Data). Classical architectural styles (e.g., client/server, pipe-and-filter, mobile code, etc.) were documented decades ago, but are still useful to structure new software applications [7]. The SPOSAD style for multitenant applications as described in this paper is an extension of the multi-tier architectural style [7]. The contribution of this paper is the initial proposal of a new architectural style called SPOSAD for multi-tenant software systems. We apply software architecture research concepts and methodologies to multi-tenant software systems to help software architects understand the implications of their design decisions and inevitable trade-offs. We have enhanced the initially sketched concepts from a former paper [8] to comprise multiple architectural views of SPOSAD, detailed descriptions of the involved components, and a refined presentation of the induced architectural constraints. To initially evaluate the style, we compare its architectural concepts with the concepts underlying three Platform-asa-Service (PaaS) environments (i.e., force.com, Windows Azure, and Google App Engine). This paper is organized as follows: Section II briefly recalls some background on architectural styles and describes two recent styles related to SPOSAD. Section III then describes the SPOSAD style with the desired architectural properties, its architectural elements, its induced constraints on these elements, and its trade-offs. Section IV provides an initial evaluation of the style via a relation to current PaaS environments. Finally, Section V discusses related work.
2 II. ARCHITECTURAL STYLES According to Fielding [9], an architectural style is a coordinated set of architectural constraints that restricts the roles of the architectural elements and the allowed relationships among those elements within any architecture that conforms to that style. Compared to the more descriptive design patterns that summarize proven solutions, architectural styles have a more prescriptive character and limit the design space. Basic architectural styles are for example client/server, n-tier, pipe-and-filter, and code on demand. More complex styles, which build on and extend the basic styles, are modelview-controller for GUIs, REST for the WWW [9], and SPIAR for AJAX applications [10]. REST and SPIAR are architectural styles related to multitenant architectures. REST induces a constrained client/server architecture with focus on the communicated data elements. The style prescribes the use of resources (i.e., the target of hyperlinks), resource identifiers (e.g., URLs), representations (e.g., HTML documents, JPEG images), and meta-data. Two constraints for the architecture are a synchronous request/response communication between client and server as well as stateless and context-free interaction for scalability. SPIAR targets client / server architectures with rich user interfaces and was deduced from AJAX applications. The style constraints the architecture by prescribing asynchronous interaction between client and server, deltacommunication (i.e., only state-changes are transferred to reduce network traffic), and component-based user interface for more interactivity. Both the REST and SPIAR style (if stateless) might be used in a multi-tenant architecture. However, they are not sufficient to describe such architectures. Multi-tenancy puts additional constraints on the code to be used at the application tier and the data elements held in the data tier as described in the next section. To describe the architectural concepts in this paper, we use the terminology of Perry and Wolf [11]. They define an architecture as a configuration of architectural elements - processing (i.e., components), connectors, and data - constrained in their relationships in order to achieve a desired set of architectural properties. III. THE SPOSAD STYLE This section first describes the architectural properties targeted by the SPOSAD style (Section III-A), before describing its architectural elements in detail (Section III-B). Then, the architectural constraints imposed by SPOSAD are elaborated (Section III-C) and architectural trade-offs are discussed (Section III-D). The section concludes with a discussion of the style, a short comparison to related approaches, and open issues (Section III-E). A. Architectural Properties The following architectural properties mainly focus on the extra-functional properties to be achieved by the style. They describe the goals of a multi-tenant software architecture and can also be viewed as typical requirements for such a system. Resource Sharing: One central aim of a multi-tenant architecture is cost reduction by sharing resources among a large number of tenants. Resources do not only include hardware devices, such as CPUs, memory, and hard disks, but also software resources, such as application servers, databases, and operating systems. It is the aim to leverage economics of scale and avoid unnecessary overheads for hardware and resources. The total costs of ownership (TCO) shall be reduced for the tenants, because they face lower maintenance costs for patching as well as for up- and down-scaling. Scalability / Elasticity: A multi-tenant system shall serve a large number of tenants with a potentially also large number of clients. Such a system should be able to handle growing amounts of workload without noticeable increasing response times or decreased reliability. Also, reduced amounts of workload shall be handled efficiently and seamlessly.. Due to the inherent limits of scaling up (i.e., adding resources to a single node), the ability to seamlessly scale out (i.e., adding more nodes) is a typical architectural property of a multi-tenant system. Maintainability: In contrast to many hosted, single-tenant software applications, a multi-tenant architecture relies on a shared code basis for all tenants. The developers can fix bugs centrally. Feature updates are available to all tenants. Thus, the costs of maintaining a single system should be dramatically lower than for multiple systems. Besides the code, also the database administration shall be shared among tenants to reduce maintenance costs for databases. Customizability: While a single code base limits a multitenant system for high customization by individual tenants, a limited degree of user extensions and tenant-specific adaptations shall still be possible. This is simply a functional requirement from many tenants, who want to use adaptations of the software for customer-friendliness and competitive advantages. A well-designed multi-tenant architecture effectively trades resource sharing off against user customizability. Usability: Besides changing the business logic and the data of an application, also the user interface shall be configurable through tenant-specific customizations. It allows different tenants to create their own branding for an application. B. Architectural Elements This section describes the architectural elements of the SPOSAD style, namely its components, its connectors, and its data elements according to the template by Perry and Wolf [11] for the description of architectural styles. Mul-
3 tiple views of the SPOSAD style (Fig. 1-4) illustrate the relationships between its elements. 1) Components: The components of the SPOSAD style are arranged as in the classical multi-tier style into several tiers (cf. Fig. 1). This improves the separation of concerns and enables updating certain tiers (e.g., the database tier) during system evolution. Users access the system through the client tier and access the application and database tier through the presentation tier, which is responsible for providing the user interface (e.g., web pages). For business transactions, all computations are made in the application tier, which retrieves and persists the involved data in the database tier. Client Presentation Tier Tier Database Tier Browser Rich Client REST Web Content Asynchronous (shared memory) Metadata Manager Procedure Calls Asynchronous (long queries) Synchronous (short queries) Logic Multi-tenant Database Data Meta Data Figure 1: Functional view of the SPOSAD style comprising components and connectors The following components (Fig. 1) are typical (but not sufficient) for a multi-tenant system: Browser/Rich Client: Users access the system via a web browser as in typical web applications or a rich client application (using HTML/REST). Web Content: The Web Content component is responsible for serving HTTP requests and providing static (via HTML) or dynamic pages (via CGI, servlets, JSPs, ASP.NET, etc.). This component typically spawns several threads (cf. Fig. 2) to handle individual client requests. In the SPOSAD style, the threads of this component are constraint to be stateless to keep them independent from specific clients. Thus, immediately after completing a single request by a user, each thread can serve another user without waiting for input from the first user. For the multi-tenant system conforming to SPOSAD, the viewable content shown by the Web Content component must be customizable, which is not provided by regular web applications. Each tenant may provide a unique arrangement of the user interface, branding, and specialized forms for tenant-specific data. Therefore, the Web Content component may access the meta-data manager within the application tier to provide tenant-specific customizations for the user interface. : Requests directed to the Web Content component and Logic component are routed through one or more load balancers, which ensure a uniform utilization of the respective threads. Different balancing strategies might be useful depending on the expected request profile. LB Process Web Server <<thread>> Web Content Thread {number= 1..n} Web Content Process LB Process Server <<thread>> App Logic Thread {number= 1..m} Logic <<thread>> Manager Thread Metadata Manager DBMS Process MT- Database Figure 2: Concurrency view of the SPOSAD style with processes and threading The load balancers ensure horizontal scaling, so that the application can be adapted to an increased number of requests by adding more machines instead of using more powerful machines. balancers in multi-tenant systems typically also support auto-scaling, which includes shutting down unnecessary machines if the request load decreases ( elasticity ). This can lower the overall power consumption of a data center and lead to substantial financial savings. Logic: The Logic component executes tenant-specific business logic and queries the database for necessary data. Unlike in a single-tenant system, where tenant-specific implementations of the application logic are created and maintained, in a SPOSAD-constrained multitenant system the Logic component is based on the same source code for all tenants. Thus, maintaining the common code benefits all tenants and patches can be applied centrally. Unlike in the classical multi-tier architecture, the Logic might be adapted by the meta-data manager for tenant-specific workflows or computations and thus exhibits a so-called polymorphic behaviour. Constrained by SPOSAD, the threads of the application logic reside in a single container on the same machine to increase resource sharing, but there might be multiple machines hosting instances of the component (Fig. 3). Communication with other components can be handled by middleware. In regular web applications, the application logic may carry client-specific state. However in the SPOSAD style, the Logic must be stateless to ensure scalability. It allows I/O operations to be carried out asynchronously. This enables horizontal scaling. User-specific state must be stored either on the client side or in the database, which can increase the complexity of the application. Balancing Node Web Content Node Web Content Node Web Content Node {number=1..i} Web Content Logic Node Logic Node Logic Node {number=1..j} Metadata Manager Logic Database Node Database Node Database Node {number=1..k} MT-Database Figure 3: Deployment view of the SPOSAD style illustrating one possible component allocation
4 Meta-data Manager: The Meta-data Manager is responsible for customization of the application logic threads and the web content threads. It retreives tenant-specific metadata from the database and adapts the application accordingly. Different implementations are possible: the Meta-data manager can direct meta-data to the application logic and let the application adapt itself or the Meta-data Manager can generate tenant-specific code on-the-fly, which can then serve as the application logic. There may be different scopes of customization per tenant, so that, for example, different business units of a company can be handled differently. According to SPOSAD, the multi-tenant system must allow users to customize the application logic and data model and must provide respective functionalities (e.g., wizards) for this. Multi-tenant Database: The multi-tenant database stores business data as well as meta-data persistently. To maximize resource sharing, a single database should host the data of all tenants. It avoids overheads for memory consumption and administration. A conventional, off-the-shelf database can be used for a multi-tenant system. However, the data needs a special arrangement to enable multi-tenancy. Different options for the data and schema layout for multi-tenant applications are discussed Section III-B3. Hosting a large amount of tenants in the same database results in the need to partition the database and to store the data into multiple physical nodes. Special security mechanisms, such as row level access control, are required to keep the tenant data isolated from each other. Backup procedures can be implemented efficiently by creating table spaces from shared tables for each tenant and making incremental backups [2], [4]. 2) Connectors: The communication between the client and the presentation tier follows a RESTful style. Clients request services from the Web Content component synchronously. Between the presentation tier and the application tier SPOSAD requires the communication to be asynchronous, so that application threads do not have to wait for user inputs. The interaction of other components with the meta-data manager is handled through procedure calls. Between the application tier and the database tier, the communication can be synchronous for short queries and asynchronous for long running queries. With the asynchronous communication, waiting for the query results from the multi-tenant database can be avoided, while the short synchronous queries can be handled immediately. The connections might involve additional resolvers (e.g., DNS lookup) or tunnels (SOCKS, SSL after HTTP) as additional, optional connectors. Because the component topology follows the pipe-and-filter style, the communication can be flexibly extended. 3) Data Elements: Requests exchanged by the components, as well as the data stored in the database tier, represent the most important data elements in the multi-tenant system. Besides the client id, each client request must include also the tenant id, so that tenant-specific customizations and security mechanisms are enabled. In the data tier, as many resources as possible should be shared to decrease operational expenses. For example, when hosting data for a large number of tenants, the memory and processing overheads for keeping their data in separate databases or tables should be avoided. The multi-tenant database stores at least tenant-specific customer data (e.g. accounting information) and tenant-specific meta-data (e.g., customized workflows). There are several trade-offs when implementing a form of sharing in the data tier [5]. The simplest solution is using a separate database per tenant on the same physical nodes, which is straight forward to implement and favorable for security purposes. However, the sharing of resources is limited and costs for hardware, backups, and administration can be high. A shared database with per-tenant schemas reduces memory overheads, hardware costs, and maintenances efforts, because only a single database needs to be managed. Drawbacks are potential security issues and complicated backup procedures, because it is then desired to keep tenant-specific backups. Using a shared databased with a single schema for all clients results in even lower operational expenses because of the reduced memory overheads and low administration costs. However, ensuring security is even more complicated and special mechanisms for query optimization and partitioning are required to manage the potentially large tables. Different schema mapping techniques (i.e., layouts) for multi-tenant databases hosting the data of multiple clients are shown in an information view of the SPOSAD style in Fig. 4 (see also Aulbach et al. [4]). The same data is shown for three different layouts. In a private table layout, each tenant gets its own tables with potentially tenant-specific columns and data types. In Fig. 4a, the tenant ids are 27, 33, and 46 and each tenant has its own table with proprietary columns. Because of the memory overheads for storing tables, this layout is unfavorable when hosting a large number of tenants (e.g., several thousands). In an extension table layout, all common tenant data is stored in a central table, while only tenant-specific extensions are realised by additional tables (Fig. 4b). If many tenants customize the schema, this again results in a high number of required tables and additionally requires joins when accessing the data. The universal table layout stores all tenant data in a single table. The table contains multiple columns with a generic data type (e.g. varchar), which can be filled with tenantspecific data (Fig. 4c). No expensive joins are needed to
5 (a) Private Table Layout (b) Extension Table Layout (c) Universal Table Layout Figure 4: Information view of the SPOSAD style showing data layouts in the multi-tenant database reconstruct the logical schema, but the table might store many null values and type conversion might be required. C. Architectural Constraints The following constraints restrict the architectural elements introduced before and help to avoid design decisions with a negative impact on the desired architectural properties. Single code base: For the web content and application logic components, there must be a single code base shared among all tenants. Tenant-specific extensions to the code are not allowed. Tenant-specific workflows or data must be introduced using meta-data. The single code base including a single configuration management and bug tracking system improves the maintainability of the system. Patches only need to be applied once to the shared code and are then available for all tenants. Shared resources in the database tier: Hosting a dedicated database server per tenant with proprietary data schemas does not comply to the SPOSAD style. Some sharing of data resources as in Fig 4 is required, which also differentiates the SPOSAD style from the n-tier style. Sharing avoids memory overheads and wasted resources for hosting underused database servers. It enables large scalability of the system, because DBMS-specific facilities for partitioning and distributing the data can be used. Customizability via meta-data: The application logic threads, the web content, and the data schema must be customisable using meta-data. While resource sharing is the most desirable property of the SPOSAD style, tenantspecific customizations are a necessity from a business perspective, as tenants will not accept standard solutions in many cases. Stateless application tier: The application tier must not hold client-specific state, such as transactional data or inputs of user forms. This constraint allows for efficient usage of the processing resources, as the application threads do not have to wait for user inputs of a specific client, but can process requests by other users in the mean time. Asynchronous interaction with the application tier: The communication between the presentation tier and the application tier, as well as between the application tier and the database tier must be asynchronous where possible to avoid waiting delays. Besides the listed constraints, the SPOSAD styles inherits all constraints of the multi-tier style [7] (e.g., prohibiting clients from directly accessing the data tier). D. Architectural Trade-offs On the one hand, applying the SPOSAD style results in several trade-offs, which should be carefully considered before deciding to implement a multi-tenant system. On the other hand, the SPOSAD style still leaves several design options open, so that architects have to weigh different requirements and determine their trade-offs themselves. Complexity vs. Time-to-Market: A multi-tenant, hosted application running a single instance for all tenants is significantly more complex to implement than a multi-instance application. Mechanisms for keeping the application customizable have to be found and the database has to be specially prepared. Therefore, a system according to the SPOSAD style requires higher developer skills. Security/Availability vs. Resource Sharing: Because multiple clients of multiple tenants share the same infrastructure in a multi-tenant system, the architects needs to ensure that the clients work in isolation and do not affect each other. Hosting business-critical data of multiple tenants in the same infrastructure or even the same database table requires special measures for keeping the data logically isolated (e.g., using encryption). It has to be ensured that the application threads of one tenant do not interfere with application threads by other tenants and crash the underlying VM or decrease the overall performance. Reliability measures might include application thread replication and the isolation of performance-intensive application tasks onto individual VMs.
6 Customizability vs. Maintainability The architect has to define the degree of customization that the application should support. More customizability implies more complicated development and makes the use of shared resources more difficult. Thus, highly customizable applications are not well suited for a multi-tenant architecture. The architect should identify an adequate number of variation points in the software. E. Discussion It is helpful to delimit multi-tenant architectures from single-tenant, n-tier architectures to make their special features better comprehensible. For example, an application such as Hotmail hosts the data of multiple tenants in the same infrastructure, but does not allow for tenant-specific customizations using meta-data. The SaaS application by SAP for small companies called BusinessByDesign hosts the clients of each tenant on a dedicated physical machine 1. Thus, it can be considered a single-tenant solution. Infrastructure-as-a-Service (IaaS) solutions, such as Amazon EC2 2 offer virtualized servers, but no out-of-the box support for application sharing. Hosted software on Amazon EC2 is usually single-tenant, as dedicated virtual servers and databases are set-up per tenant. Compared to a multitenant application such an approach might lead to a waste of resources, such as memory, disk space, and CPU power, because underutilized servers cannot handle the requests of other tenants. However, such a solution can be easier to implement when dealing with legacy software. Some issues are still open to complete the description of the SPOSAD style and can be considered future work. The role of application servers and middleware needs to be discussed with greater detail. Special requirements for the database in terms of query optimizations and backup procedures need to be documented. Furthermore, facilities for usage-based metering and payment of service per tenant should be addressed with a dedicated component. IV. EVALUATION The evaluation of an architectural style is inherently difficult [9], [10]. Its success depends on whether systems complying to the style in fact show the promised architectural properties, such as scalability or usability. Frameworks need to be created to support developing according to the style. Furthermore, the efforts for an ad-hoc development of a multi-tenant system have to be compared with the efforts for a development based on the style. This requires expensive, repeated controlled experiments across multiple development projects, where the interfering variables are be hard to control. To provide an initial form of evaluation in the scope of this paper, we have investigated currently emerging PaaS 1 goo.gl/cqwd 2 aws.amazon.com/ec2/ environments for their architectural properties. We analyse Force.com in Section IV-A, Windows Azure in Section IV-B, and Google App Engine in Section IV-C. These environments can ease the implementation of multitenant systems and can be considered as frameworks, because their infrastructure is already prepared for high scalability and resource sharing following some principles also present in the SPOSAD style. However, they leave many design options open for developers and do not enforce all architectural constraints bundled in the SPOSAD style. A. Force.com User Screens Runtime Generator Virtual Components Customized Oracle RAC Figure 5: Simplified view on the Force.com architecture With the force.com platform developers may build applications on top of the salesforce.com infrastructure. On a high level of abstraction, the platform is built according to an n-tier architecture [3] comprising a presentation tier, an application tier, and a data tier (Fig. 5). Clients access the application tier of force.com according to the REST style. Each tenant is served by application instances originating from the same code base. Salesforce manages updates of this code base centrally. Tenants can customize the application user interface (forms), business logic (workflows), and data (customized tables) by specifying meta-data stored in the so-called Universal Data Dictionary (UDD). A runtime application generator creates tenant-specific application logic from this meta-data. Thus, the application is considered polymorphic, as it appears and behaves differently for the clients of each tenant. Through the application tier, all tenants access the same logical database in the data tier, which is a customized version of an Oracle database. All tenant data is stored in a single table, which can be partitioned among multiple machines. Besides a tenant id column, the table contains 500 customizable columns (varchar datatype) for storing arbitrary data (i.e., a universal table layout, cf. Fig. 4). Salesforce has claimed that it hosts more than tenants and 1.5 million subscribers on only 1000 servers [12], thus demonstrating the scalability of the architecture. Furthermore, patches are applied weekly to the single code base and thus rolled out to all customers, thereby decreasing maintenance costs. B. Windows Azure The Windows Azure platform by Microsoft allows deploying and running ASP.NET and WCF applications in Microsoft data centers [13]. The data centers run the Windows Azure Hypervisor and modified versions of Windows Server
7 Web Role Worker Role Worker Role Windows Azure Storage Figure 6: Simplified view on the Windows Azure architecture 2008 on a large number of virtual machines. The platform follows a three-tier structure (Fig. 6). Clients, such as browsers or web services, access the application tier using REST or SOAP. In the application tier, applications with a UI are implemented as so-called web-roles, while background applications are implemented as so-called worker-roles. Web-roles and worker-roles may interact asynchronously using queues. Ideally, they are stateless and may be run in a configurable number of instances. balancers can distribute requests among those instances. Tenants can implement UI customizations using MS Silverlight and business logic customizations using Windows Workflows. Web/Worker-roles can either access the non-relational, horizontal scalable Windows Azure storage or slightly customized versions of the MS SQL server (SQL Azure). The Windows Azure storage features blobs, non-relational tables similar to the universal table layout, and queues for data persistency. Queues handle interaction between web- and worker roles by storing data portions. Case studies reported on the Azure website 3 indicate that the platform can support highly scalable applications. For example, the online auction company Adslot successfully ran simulations with more than 100 stateless worker roles and more than 4000 users accessing the system without experiencing performance problems. A single code basis is not enforced by Windows Azure and thus needs to be adhered by the SaaS providers themselves. C. Google App Engine JSP / Python App Engine Services Servlets App Engine DataStore Figure 7: Simplified view on the Google App Engine architecture Google s App Engine (GAE) [14] enables developers to run Java or Python applications in Google s data centers. Several web frameworks, such as Django, Cherrypy, or pylons run on GAE and assist developers in implementing their applications. Again, the architecture features a presentation, application, and data tier (Fig. 7). 3 Clients access the application tier of GAE using REST. Besides responding to web requests, GAE also allows to run so-called scheduled tasks as possibly periodic background tasks. Web applications and background tasks might interact asynchronously using queues. GAE features builtin auto-scaling, load balancing, and fail-over mechanisms between identical implementation instances in the application tier. GAE also allows the management of multiple, tenant-specific namespaces to ease the implementation of multitenancy applications. s may store data in a non-relational structure called Google Big Table, which shall be able to handle largescale applications and store petabytes of data. The GAE storage features a proprietary query engine with the Google Query Language that allows transactions. The Big Table does not have a schema, the structure of the contained data entities must be provided and enforced by the application code. GAE has proven to be scalable during a town hall meeting of US president Obama in 2009 [15]. Using Google Moderator running on GAE, more than 100,000 questions were asked by more than 90,000 users within 1.5 hours, which did not result in significant performance degradation. V. RELATED WORK There is still limited scientific research on multi-tenant architectures. The underlying concepts evolved in SaaS companies and have been used as a competitive advantage. They have hardly been analysed systematically by researchers. Existing documentations of multi-tenant architectures are often technology-specific. Chong and Carraro from Microsoft discuss the business rationale of SaaS applications and describe their high level architectural concepts [2], [5]. However, they do not describe a reusable architectural style. The description by Goldszmidt et al. [6] highlights some architectural concepts of multi-tenant software applications, but is centered around Java and IBM products, such as the Websphere application server or DB2. Weissman [3] provides an overview of the force.com architecture. His description is not easily transferable to other multi-tenant architectures. Aulbach et al. [4] provide a database centric view on multi-tenant architectures. They evaluate the performance properties of different flexible schemas for multi-tenant applications and propose a new, more efficient schema. Their analysis lacks an evaluation of the scalable storage solutions of current PaaS environments. Furthermore, they neglect the application layer of multi-tenant applications. Wang et al. [16] proposed a framework for implementing multi-tenant applications. They describe patterns for security, performance, and administrations isolation in such architectures and sketch customization concepts. However, they neglect the application tier in their investigation.
8 Kwok et al. [17] deal with capacity planning in multitenant applications and propose a method for determining the optimal allocation of application threads to physical nodes. Mietzner et al. [18] extend the service component architecture (SCA) to be able to describe multi-tenant applications. VI. CONCLUSIONS We have initially proposed a new architectural style called SPOSAD for multi-tenant software applications. This paper has defined architectural constraints, discussed trade-offs to consider by the architect. We have analyzed our proposal through a comparison with current PaaS environments. The contribution of this paper is the application of software architecture research concepts and methodologies, such as architectural constraints and style descriptions, on the current practices of efficiently scalable SaaS applications. Ultimately, it shall help software architects to make more informed design decisions and to implement multi-tenant systems more efficiently. The style description in this paper bears many directions for future work. The role of application containers and virtualization techniques needs to be discussed with greater detail. Patterns for security, scalability, and reliability could augment the style description. REFERENCES [1] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, Above the Clouds: A Berkeley View of Cloud Computing, UC Berkeley, Tech. Rep , [2] F. Chong and G. Carraro, Architecture Strategies for Catching the Long Tail, Microsoft Corporation, Tech. Rep., April 2006, last visited [3] C. D. Weissman and S. Bobrowski, The Design of the Force.com Multitenant Internet Development Platform, in Proc. 35th SIGMOD International Conference on Management of Data (SIGMOD 09). New York, NY, USA: ACM, 2009, pp [4] S. Aulbach, T. Grust, D. Jacobs, A. Kemper, and J. Rittinger, Multi-tenant databases for software as a service: schemamapping techniques, in Proc. ACM SIGMOD Int. Conf. on Management of Data (SIGMOD 08). New York, NY, USA: ACM, 2008, pp [5] F. Chong and G. Carraro, Multi-tenant Data Architecture, Microsoft Cooperation, Tech. Rep., June 2006, last visited [Online]. Available: [7] R. N. Taylor, N. Medvidovic, and E. M. Dashofy, Software Architecture: Foundations, Theory, and Practice. Wiley, [8] H. Koziolek, Towards an Architectural Style for Multi-tenant Software s, in Proc. Software Engineering 2010 (SE 10), Fachtagung des GI-Fachbereichs Softwaretechnik, ser. LNI, vol. To appear. GI, February [9] R. T. Fielding and R. N. Taylor, Principled design of the modern Web architecture, ACM Trans. Internet Technol., vol. 2, no. 2, pp , [10] A. Mesbah and A. van Deursen, A component- and pushbased architectural style for AJAX applications, J. Syst. Softw., vol. 81, no. 12, pp , [11] D. Perry and A. Wolf, Foundations for the Study of Software Architecture, ACM SIGSOFT Software Engineering Notes, vol. 17, no. 4, pp , [12] E. Schonfeld, The efficient cloud: All of salesforce runs on only 1,000 servers, March 2009, last visited [13] D. Chappell, Introducing the Windows Azure Platform, DavidChappell & Associates, Tech. Rep., August 2009, last visited [14] Google, App engine, last visited [15] T. Janisch, Obamas online town hall provides better data than answers, May 2009, last visited [16] Z. H. Wang, C. J. Guo, B. Gao, W. Sun, Z. Zhang, and W. H. An, A Study and Performance Evaluation of the Multi-Tenant Data Tier Design Patterns for Service Oriented Computing, in Proc. Int. Conf. on E-Business Enigneering (ICEBE 08). IEEE, 2008, pp [17] T. Kwok and A. Mohindra, Resource calculations with constraints, and placement of tenants and instances for multitenant saas applications, in Proc. 6th Int. Conf. on Service- Oriented Computing (ICSOC 08), 2008, pp [18] R. Mietzner, F. Leymann, and M. P. Papazoglou, Defining Composite Configurable SaaS Packages Using SCA, Variability Descriptors and Multi-tenancy Patterns, in Proc. 3rd Int. Conf. on Internet and Web s and Services (ICIW 08). IEEE Computer Society, 2008, pp [6] G. Goldszmidt and I. Poddar, Develop and Deploy Multi- Tenant Web-delivered Solutions using IBM middleware, April 2008, last visited [Online]. Available:
Architectural Concerns in Multi-Tenant SaaS Applications
Architectural Concerns in Multi-Tenant SaaS Applications Rouven Krebs 1, Christof Momm 1 and Samuel Kounev 2 1 SAP AG, Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany 2 Karlsruhe Institute of Technology,
An Approach Towards Customized Multi- Tenancy
I.J.Modern Education and Computer Science, 2012, 9, 39-44 Published Online September 2012 in MECS (http://www.mecs-press.org/) DOI: 10.5815/ijmecs.2012.09.05 An Approach Towards Customized Multi- Tenancy
Towards an. Architectural Style. for Multi-tenant Software Systems. Dr.-Ing. Heiko Koziolek Industrial Software Systems ABB Corporate Research
Towards an Architectural Style for Multi-tenant Software Systems Dr.-Ing. Heiko Koziolek Industrial Software Systems ABB Corporate Research 1 Source: salesforce.com 2 28.04.2008: SAPs neue Mittelstandssoftware
Multi-Tenant Engineering Architecture in SaaS
Multi-Tenant Engineering Architecture in SaaS Sunil Kumar Khatri Himanshu Singhal Khushboo Bahri ABSTRACT Multi-Tenancy in SaaS (Software as a Service) architecture is the concept leveraging cloud computing
Cloud Computing Architecture: A Survey
Cloud Computing Architecture: A Survey Abstract Now a day s Cloud computing is a complex and very rapidly evolving and emerging area that affects IT infrastructure, network services, data management and
Survey on Multi-Tenant Data Architecture for SaaS
www.ijcsi.org 198 Survey on Multi-Tenant Data Architecture for SaaS Li heng 1, Yang dan 2 and Zhang xiaohong 3 1 College of Computer Science, Chongqing University Chongqing, 401331, China 2 School of Software
Conceptual Approach for Performance Isolation in Multi-Tenant Systems
Conceptual Approach for Performance Isolation in Multi-Tenant Systems Manuel Loesch 1 and Rouven Krebs 2 1 FZI Research Center for Information Technology, Karlsruhe, Germany 2 SAP AG, Global Research and
CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series www.cumulux.com
` CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS Review Business and Technology Series www.cumulux.com Table of Contents Cloud Computing Model...2 Impact on IT Management and
Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications
Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications Rouven Kreb 1 and Manuel Loesch 2 1 SAP AG, Walldorf, Germany 2 FZI Research Center for Information
Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz
Introduction to Cloud Computing Lecture 02 History of Enterprise Computing Kaya Oğuz General Course Information The textbook: Enterprise Cloud Computing by Gautam Shroff (available at bookstore). Course
DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2
DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing Slide 1 Slide 3 A style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet.
BUILDING SAAS APPLICATIONS ON WINDOWS AZURE
David Chappell BUILDING SAAS APPLICATIONS ON WINDOWS AZURE THINGS TO THINK ABOUT BEFORE YOU START Sponsored by Microsoft Corporation Copyright 2012 Chappell & Associates Contents Illustrating SaaP and
White Paper. Cloud Native Advantage: Multi-Tenant, Shared Container PaaS. http://wso2.com Version 1.1 (June 19, 2012)
Cloud Native Advantage: Multi-Tenant, Shared Container PaaS Version 1.1 (June 19, 2012) Table of Contents PaaS Container Partitioning Strategies... 03 Container Tenancy... 04 Multi-tenant Shared Container...
Cloud Computing: What IT Professionals Need to Know
Learning Cloud Computing: What IT Professionals Need to Know Cloud computing promises new career opportunities for IT professionals. In many cases, existing core skill sets transfer directly to cloud technologies.
CLOUD COMPUTING & WINDOWS AZURE
CLOUD COMPUTING & WINDOWS AZURE WORKSHOP Overview This workshop is an introduction to cloud computing and specifically Microsoft s public cloud offering in Windows Azure. Windows Azure has been described
Cloud application services (SaaS) Multi-Tenant Data Architecture Shailesh Paliwal Infosys Technologies Limited
Cloud application services (SaaS) Multi-Tenant Data Architecture Shailesh Paliwal Infosys Technologies Limited The paper starts with a generic discussion on the cloud application services and security
Welcome to the Force.com Developer Day
Welcome to the Force.com Developer Day Sign up for a Developer Edition account at: http://developer.force.com/join Nicola Lalla [email protected] n_lalla nlalla26 Safe Harbor Safe harbor statement under
PLATFORM-AS-A-SERVICE: ADOPTION, STRATEGY, PLANNING AND IMPLEMENTATION
PLATFORM-AS-A-SERVICE: ADOPTION, STRATEGY, PLANNING AND IMPLEMENTATION White Paper May 2012 Abstract Whether enterprises choose to use private, public or hybrid clouds, the availability of a broad range
A Study of Infrastructure Clouds
A Study of Infrastructure Clouds Pothamsetty Nagaraju 1, K.R.R.M.Rao 2 1 Pursuing M.Tech(CSE), Nalanda Institute of Engineering & Technology,Siddharth Nagar, Sattenapalli, Guntur., Affiliated to JNTUK,
Cloud Computing: Making the right choices
Cloud Computing: Making the right choices Kalpak Shah Clogeny Technologies Pvt Ltd 1 About Me Kalpak Shah Founder & CEO, Clogeny Technologies Passionate about economics and technology evolving through
Introduction to Azure: Microsoft s Cloud OS
Introduction to Azure: Microsoft s Cloud OS DI Andreas Schabus Technology Advisor Microsoft Österreich GmbH [email protected] www.codefest.at Version 1.0 Agenda Cloud Computing Fundamentals Windows
Li Sheng. [email protected]. Nowadays, with the booming development of network-based computing, more and more
36326584 Li Sheng Virtual Machine Technology for Cloud Computing Li Sheng [email protected] Abstract: Nowadays, with the booming development of network-based computing, more and more Internet service vendors
Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344
Where We Are Introduction to Data Management CSE 344 Lecture 25: DBMS-as-a-service and NoSQL We learned quite a bit about data management see course calendar Three topics left: DBMS-as-a-service and NoSQL
THE CLOUD AND ITS EFFECTS ON WEB DEVELOPMENT
TREX WORKSHOP 2013 THE CLOUD AND ITS EFFECTS ON WEB DEVELOPMENT Jukka Tupamäki, Relevantum Oy Software Specialist, MSc in Software Engineering (TUT) [email protected] / @tukkajukka 30.10.2013 1 e arrival
Cloud Models and Platforms
Cloud Models and Platforms Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF A Working Definition of Cloud Computing Cloud computing is a model
Multi-Tenancy Performance Benchmark for Web Application Platforms
Multi-Tenancy Performance Benchmark for Web Application Platforms Rouven Krebs, Alexander Wert, and Samuel Kounev SAP AG, Applied Research, Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany {rouven.krebs}@sap.com,
Hard Partitioning and Virtualization with Oracle Virtual Machine. An approach toward cost saving with Oracle Database licenses
Hard Partitioning and Virtualization with Oracle Virtual Machine An approach toward cost saving with Oracle Database licenses JANUARY 2013 Contents Introduction... 2 Hard Partitioning Concepts... 2 Oracle
How To Understand Cloud Computing
Overview of Cloud Computing (ENCS 691K Chapter 1) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Overview of Cloud Computing Towards a definition
Planning, Provisioning and Deploying Enterprise Clouds with Oracle Enterprise Manager 12c Kevin Patterson, Principal Sales Consultant, Enterprise
Planning, Provisioning and Deploying Enterprise Clouds with Oracle Enterprise Manager 12c Kevin Patterson, Principal Sales Consultant, Enterprise Manager Oracle NIST Definition of Cloud Computing Cloud
CMotion: A Framework for Migration of Applications into and between Clouds
Institute of Architecture of Application Systems CMotion: A Framework for Migration of Applications into and between Clouds Tobias Binz, Frank Leymann, David Schumm Institute of Architecture of Application
Holistic Performance Analysis of J2EE Applications
Holistic Performance Analysis of J2EE Applications By Madhu Tanikella In order to identify and resolve performance problems of enterprise Java Applications and reduce the time-to-market, performance analysis
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
THE WINDOWS AZURE PROGRAMMING MODEL
THE WINDOWS AZURE PROGRAMMING MODEL DAVID CHAPPELL OCTOBER 2010 SPONSORED BY MICROSOFT CORPORATION CONTENTS Why Create a New Programming Model?... 3 The Three Rules of the Windows Azure Programming Model...
Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications
Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications by Samuel D. Kounev ([email protected]) Information Technology Transfer Office Abstract Modern e-commerce
Security Considerations for Public Mobile Cloud Computing
Security Considerations for Public Mobile Cloud Computing Ronnie D. Caytiles 1 and Sunguk Lee 2* 1 Society of Science and Engineering Research Support, Korea [email protected] 2 Research Institute of
Performance Management for Cloudbased STC 2012
Performance Management for Cloudbased Applications STC 2012 1 Agenda Context Problem Statement Cloud Architecture Need for Performance in Cloud Performance Challenges in Cloud Generic IaaS / PaaS / SaaS
Oracle Database Cloud Service Rick Greenwald, Director, Product Management, Database Cloud
Oracle Database Cloud Service Rick Greenwald, Director, Product Management, Database Cloud Agenda Oracle Cloud Database Service Overview Cloud taxonomy What is the Database Cloud Service? Architecture
Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence
Exploring Oracle E-Business Suite Load Balancing Options Venkat Perumal IT Convergence Objectives Overview of 11i load balancing techniques Load balancing architecture Scenarios to implement Load Balancing
An Oracle White Paper in Enterprise Architecture August 2009. Architectural Strategies for Cloud Computing
An Oracle White Paper in Enterprise Architecture August 2009 Architectural Strategies for Cloud Computing Disclaimer The following is intended to outline our general product direction. It is intended for
Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise
Cloud Service Model Selecting a cloud service model Different cloud service models within the enterprise Single cloud provider AWS for IaaS Azure for PaaS Force fit all solutions into the cloud service
Web 2.0-based SaaS for Community Resource Sharing
Web 2.0-based SaaS for Community Resource Sharing Corresponding Author Department of Computer Science and Information Engineering, National Formosa University, [email protected] doi : 10.4156/jdcta.vol5.issue5.14
Oracle Applications and Cloud Computing - Future Direction
Oracle Applications and Cloud Computing - Future Direction February 26, 2010 03:00 PM 03:40 PM Presented By Subash Krishnaswamy [email protected] Vijay Tirumalai [email protected]
Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings
Solution Brief Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings Introduction Accelerating time to market, increasing IT agility to enable business strategies, and improving
Public Cloud Offerings and Private Cloud Options. Week 2 Lecture 4. M. Ali Babar
Public Cloud Offerings and Private Cloud Options Week 2 Lecture 4 M. Ali Babar Lecture Outline Public and private clouds Some key public cloud providers (More details in the lab) Private clouds Main Aspects
Software as a Service (SaaS) for Management information system using multiple tenants
Software as a Service (SaaS) for Management information system using multiple tenants Rachana Desale, Purva Kolhatkar, Anju More, Piyush Katira, Vishal Kokane Prof.S.M.Jaybhaye (Department of Information
Cloud computing - Architecting in the cloud
Cloud computing - Architecting in the cloud [email protected] 1 Outline Cloud computing What is? Levels of cloud computing: IaaS, PaaS, SaaS Moving to the cloud? Architecting in the cloud Best practices
The Java EE 7 Platform and Support for the PaaS Model
The Java EE 7 Platform and Support for the PaaS Model 0. Introduction NIST [1] defines cloud computing as follows: Cloud computing is a model for enabling convenient, on-demand network access to a shared
A Web Base Information System Using Cloud Computing
A Web Base Information System Using Cloud Computing Zainab Murtadha, Mohammad Amin Roshanasan Abstract: Cloud Computing is the new field that was invented and developed during a period not so long ago.
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity
Ekartha, Inc. 63 Cutter Mill Road Great Neck, N.Y. 11021 Tel.: (516) 773-3533 Ekartha India Pvt. Ltd. 814/B Law College Road Demech House, 4th Floor Erandwane, Pune, India Email: [email protected] Web:
Elasticity in Multitenant Databases Through Virtual Tenants
Elasticity in Multitenant Databases Through Virtual Tenants 1 Monika Jain, 2 Iti Sharma Career Point University, Kota, Rajasthan, India 1 [email protected], 2 [email protected] Abstract -
Outline. What is cloud computing? History Cloud service models Cloud deployment forms Advantages/disadvantages
Ivan Zapevalov 2 Outline What is cloud computing? History Cloud service models Cloud deployment forms Advantages/disadvantages 3 What is cloud computing? 4 What is cloud computing? Cloud computing is the
SAAS. Best practices for SAAS implementation using an Open Source Portal (JBoss)
SAAS Best practices for SAAS implementation using an Open Source Portal (JBoss) Introduction JBoss Portal is a very popular open source portal offering from Red Hat. It is JSR-168 compliant and provides
Cloud Computing an introduction
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Cloud Computing an introduction January 30, 2012 Netzprogrammierung (Algorithmen und Programmierung V) Our topics
How To Make Money From Cloud Computing
CLOUD COMPUTING DATA ARCHITECTURE Harry Katzan, Jr. Savannah State University ABSTRACT Cloud computing is an application architecture for accessing and hosting computing service over the Internet. Access
Scalable Architecture on Amazon AWS Cloud
Scalable Architecture on Amazon AWS Cloud Kalpak Shah Founder & CEO, Clogeny Technologies [email protected] 1 * http://www.rightscale.com/products/cloud-computing-uses/scalable-website.php 2 Architect
This paper defines as "Classical"
Principles of Transactional Approach in the Classical Web-based Systems and the Cloud Computing Systems - Comparative Analysis Vanya Lazarova * Summary: This article presents a comparative analysis of
CHAPTER 8 CLOUD COMPUTING
CHAPTER 8 CLOUD COMPUTING SE 458 SERVICE ORIENTED ARCHITECTURE Assist. Prof. Dr. Volkan TUNALI Faculty of Engineering and Natural Sciences / Maltepe University Topics 2 Cloud Computing Essential Characteristics
What Is the Java TM 2 Platform, Enterprise Edition?
Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today
CHAPTER 2 THEORETICAL FOUNDATION
CHAPTER 2 THEORETICAL FOUNDATION 2.1 Theoretical Foundation Cloud computing has become the recent trends in nowadays computing technology world. In order to understand the concept of cloud, people should
Introduction to Cloud Computing
Discovery 2015: Cloud Computing Workshop June 20-24, 2011 Berkeley, CA Introduction to Cloud Computing Keith R. Jackson Lawrence Berkeley National Lab What is it? NIST Definition Cloud computing is a model
Software-Defined Networks Powered by VellOS
WHITE PAPER Software-Defined Networks Powered by VellOS Agile, Flexible Networking for Distributed Applications Vello s SDN enables a low-latency, programmable solution resulting in a faster and more flexible
A Standardized Maturity Model for Designing SaaS Service Guideline
A Standardized Maturity Model for Designing SaaS Guideline Seungseok Kang 1, Jaeseok Myung 1, Jongheum Yeon 1, Seong-wook Ha 2, Taehyung Cho 2, Ji-man Chung 2, Sang-goo Lee 1 Department of Computer Science
3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19
3-Tier Architecture Prepared By Channu Kambalyal Page 1 of 19 Table of Contents 1.0 Traditional Host Systems... 3 2.0 Distributed Systems... 4 3.0 Client/Server Model... 5 4.0 Distributed Client/Server
Cloud Computing: Meet the Players. Performance Analysis of Cloud Providers
BASEL UNIVERSITY COMPUTER SCIENCE DEPARTMENT Cloud Computing: Meet the Players. Performance Analysis of Cloud Providers Distributed Information Systems (CS341/HS2010) Report based on D.Kassman, T.Kraska,
Architectural Implications of Cloud Computing
Architectural Implications of Cloud Computing Grace Lewis Research, Technology and Systems Solutions (RTSS) Program Lewis is a senior member of the technical staff at the SEI in the Research, Technology,
White Paper on CLOUD COMPUTING
White Paper on CLOUD COMPUTING INDEX 1. Introduction 2. Features of Cloud Computing 3. Benefits of Cloud computing 4. Service models of Cloud Computing 5. Deployment models of Cloud Computing 6. Examples
User Centric Scaling System for Dynamic Cloud Resource Sharing Environment
User Centric Scaling System for Dynamic Cloud Resource Sharing Environment N.Aishwarya, P.Sivaranjani Abstract With the proliferation of web services providing the same functionality, researches about
Outlook. Corporate Research and Technologies, Munich, Germany. 20 th May 2010
Computing Architecture Computing Introduction Computing Architecture Software Architecture for Outlook Corporate Research and Technologies, Munich, Germany Gerald Kaefer * 4 th Generation Datacenter IEEE
EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT
EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT Dr. Alexander Pons, University of Miami, [email protected] ABSTRACT The deployment of Web applications consisting of dynamic content requires the selection
A SHORT INTRODUCTION TO CLOUD PLATFORMS
A SHORT INTRODUCTION TO CLOUD PLATFORMS AN ENTERPRISE-ORIENTED VIEW DAVID CHAPPELL AUGUST 2008 SPONSORED BY MICROSOFT CORPORATION COPYRIGHT 2008 CHAPPELL & ASSOCIATES CONTENTS Defining Terms: What is a
Oracle Database Cloud
Oracle Database Cloud Shakeeb Rahman Database Cloud Service Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may
IBM 000-281 EXAM QUESTIONS & ANSWERS
IBM 000-281 EXAM QUESTIONS & ANSWERS Number: 000-281 Passing Score: 800 Time Limit: 120 min File Version: 58.8 http://www.gratisexam.com/ IBM 000-281 EXAM QUESTIONS & ANSWERS Exam Name: Foundations of
Versioning for Software as a Service in the context of Multi-Tenancy
Versioning for Software as a Service in the context of Multi-Tenancy Maximilian Schneider and Johan Uhle July 2013 University of Potsdam, Hasso-Plattner-Institute Prof.-Dr.-Helmert-Str. 2-3, 14482 Potsdam,
Performance Management for Cloud-based Applications STC 2012
Performance Management for Cloud-based Applications STC 2012 1 Agenda Context Problem Statement Cloud Architecture Key Performance Challenges in Cloud Challenges & Recommendations 2 Context Cloud Computing
Object Storage: A Growing Opportunity for Service Providers. White Paper. Prepared for: 2012 Neovise, LLC. All Rights Reserved.
Object Storage: A Growing Opportunity for Service Providers Prepared for: White Paper 2012 Neovise, LLC. All Rights Reserved. Introduction For service providers, the rise of cloud computing is both a threat
Advancement in Salesforce using CPQ (Configure Price Quote) Technological Catalyst
Advancement in Salesforce using CPQ (Configure Price Quote) Technological Catalyst Shiv Kumar Goyal 1, Nupoor Narendra Nimbalkar 2 Deputy Head of the Department, Master of Computer Application, Vivekanand
PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM
PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM Akmal Basha 1 Krishna Sagar 2 1 PG Student,Department of Computer Science and Engineering, Madanapalle Institute of Technology & Science, India. 2 Associate
LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS
LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS Venkat Perumal IT Convergence Introduction Any application server based on a certain CPU, memory and other configurations
Scaling Database Performance in Azure
Scaling Database Performance in Azure Results of Microsoft-funded Testing Q1 2015 2015 2014 ScaleArc. All Rights Reserved. 1 Test Goals and Background Info Test Goals and Setup Test goals Microsoft commissioned
Cloud Computing. Chapter 1 Introducing Cloud Computing
Cloud Computing Chapter 1 Introducing Cloud Computing Learning Objectives Understand the abstract nature of cloud computing. Describe evolutionary factors of computing that led to the cloud. Describe virtualization
Optimal Service Pricing for a Cloud Cache
Optimal Service Pricing for a Cloud Cache K.SRAVANTHI Department of Computer Science & Engineering (M.Tech.) Sindura College of Engineering and Technology Ramagundam,Telangana G.LAKSHMI Asst. Professor,
CLOUD COMPUTING. When It's smarter to rent than to buy
CLOUD COMPUTING When It's smarter to rent than to buy Is it new concept? Nothing new In 1990 s, WWW itself Grid Technologies- Scientific applications Online banking websites More convenience Not to visit
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
A Framework for Migrating Traditional Web Applications into Multi-Tenant SaaS
A Framework for Migrating Traditional Web Applications into Multi-Tenant SaaS Eyad Saleh, Nuhad Shaabani, and Christoph Meinel Hasso-Plattner-Institut University of Potsdam Potsdam, Germany {eyad.saleh,
Nessus or Metasploit: Security Assessment of OpenStack Cloud
Nessus or Metasploit: Security Assessment of OpenStack Cloud Aleksandar Donevski, Sasko Ristov and Marjan Gusev Ss. Cyril and Methodius University, Faculty of Information Sciences and Computer Engineering,
Software as a Service (SaaS) and Platform as a Service (PaaS) (ENCS 691K Chapter 1)
Roch Glitho, PhD Software as a Service (SaaS) and Platform as a Service (PaaS) (ENCS 691K Chapter 1) Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Software
A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-based Application Architectures
Universität Stuttgart Fakultät Informatik, Elektrotechnik und Informationstechnik A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-based Application Architectures Christoph Fehling
