Academia.eduAcademia.edu

Economic Perspective on Cloud Computing: Three Essays

2013

This is probably the most enjoyable part of writing the dissertation. I would like to acknowledge the support of a number of individuals who made completion of this dissertation a reality. First, thanks go to my dissertation chair, Dr. Hemant K. Jain. Dr. Jain, you provided me with unconditional support while I struggled through my research. You have been a mentor to me, guiding me intellectually and personally during this wonderful as well as sometimes very frustrating journey. You gave me complete independence and at the same time you were there to help me whenever I needed. As I lived far away from Milwaukee, you made extra effort to guide me. You were always there whenever I needed any help. I also would like to thank the other members of my dissertation committee-Dr.

University of Wisconsin Milwaukee UWM Digital Commons Theses and Dissertations August 2013 Economic Perspective on Cloud Computing: Three Essays Abhijit Dutt University of Wisconsin-Milwaukee Follow this and additional works at: https://dc.uwm.edu/etd Part of the Databases and Information Systems Commons, and the Human Resources Management Commons Recommended Citation Dutt, Abhijit, "Economic Perspective on Cloud Computing: Three Essays" (2013). Theses and Dissertations. 245. https://dc.uwm.edu/etd/245 This Dissertation is brought to you for free and open access by UWM Digital Commons. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of UWM Digital Commons. For more information, please contact [email protected]. ECONOMIC PERSPECTIVE ON CLOUD COMPUTING: THREE ESSAYS by Abhijit Dutt A Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Management Science at The University of Wisconsin-Milwaukee August, 2013 ABSTRACT ECONOMIC PERSPECTIVE ON CLOUD COMPUTING: THREE ESSAYS by Abhijit Dutt The University of Wisconsin-Milwaukee, 2013 Under the Supervision of Professor Hemant Jain Improvements in Information Technology (IT) infrastructure and standardization of interoperability standards among heterogeneous Information System (IS) applications have brought a paradigm shift in the way an IS application could be used and delivered. Not only an IS application can be built using standardized component but also parts of it can be hosted by different organizations in different locations provided it can be accessed using the Internet. This dissertation is an attempt to uncover unique aspects of this phenomenon known as Software as a Service (SaaS). The first essay examines design decision making by SaaS providers by analyzing effects of two non-functional attributes of an IS Application – modularity and architectural performance. We model the relationship of the two attributes with factors such as demand, price, and user’s preference. The model includes marginal cost and maintenance cost to recognize the service aspect of SaaS. Our ii results show the optimal values of various decision variables while taking into account user’s sensitivity to modularity, architectural performance and price. The service component in cloud computing necessitates that the service providers plan for requisite delivery capacity. The second essay addresses optimal infrastructure capacity planning while taking into account the opportunity cost of having low capacity and cost of unused capacity in the case of high capacity. We develop a model which provides insight to a SaaS provider on optimal capacity planning of IT infrastructure when faced with a variable demand and performance expectations. The third essay focuses on financial risks faced by SaaS providers in the context of provider’s risk tolerance. We analyze the financial risk of provider’s decision making on pricing, capacity and other factors that may lead to financial risk as they are based on incomplete information. We built a model using Mean Variance Analysis theory for investigating the effect of provider’s risk tolerance on infrastructure capacity planning while taking into account modularity in software architecture and operational performance. This dissertation extends our understanding of significant issues facing a SaaS provider. The models presented here can form the basis for an extensive iii exploration of the phenomenon of SaaS specifically and Cloud Computing in general. iv © Copyright by Abhijit Dutt, 2013 All Rights Reserved v This dissertation is dedicated to the memory of my mother Mrs. Anima Dutt and my father Mr. Alok Kumar Dutt vi ACKNOWLEDGEMENTS This is probably the most enjoyable part of writing the dissertation. I would like to acknowledge the support of a number of individuals who made completion of this dissertation a reality. First, thanks go to my dissertation chair, Dr. Hemant K. Jain. Dr. Jain, you provided me with unconditional support while I struggled through my research. You have been a mentor to me, guiding me intellectually and personally during this wonderful as well as sometimes very frustrating journey. You gave me complete independence and at the same time you were there to help me whenever I needed. As I lived far away from Milwaukee, you made extra effort to guide me. You were always there whenever I needed any help. I also would like to thank the other members of my dissertation committee- Dr. Huimin Zhao, Dr. Amit Bhatnagar, Dr. Sanjeev Kumar, and Dr. Sanjoy Ghose for providing valuable feedback on my dissertation. I also appreciate all your encouragement and support. Special thanks go to Dr. Kumar, you gave detailed, thoughtful and constructive comments that were extremely valuable. I really appreciate the amount of time you took to help me complete my dissertation. There are a few individuals who helped in many different ways. First, I would like to thank Dr. Samar Mukhopadhyay. He introduced me to the area of theoretical modeling. Second, I would like to thank my fellow UW-Milwaukee doctoral alumni Dr. Robert Setaputra. Bob, I really appreciate many discussions we had over coffee and your support and help in this research. vii I would like to acknowledge the two most important girls in my life. My daughter Bela was born while I was working on my dissertation. Her smile and love enabled to me to forget all the pressure and frustration; I know you are looking forward to spending more time with me. Finally, I want to acknowledge my wife Paula; without her love and unwavering belief in me I would not have been able to finish this dissertation. I really appreciate your sacrifice and I know you are looking forward to the day when I will not be working on my dissertation any more. You patiently endured many long hours alone, took care of our daughter Bela by yourself, moved to new areas twice while I worked on my dissertation. There are no words that can express my gratitude and appreciation for all you have done for me. viii Table of Contents Chapter 1: Introduction............................................................................................................... 1 Chapter 2: Essay One - Modularity and Performance in Cloud Computing: An Economic Perspective ............................................................................................................................... 11 2.1 Introduction .............................................................................................................. 11 2.2 Motivation and Research Questions .......................................................................... 12 2.3 Background and Previous Research ........................................................................... 20 2.3.1 Cloud Computing ............................................................................................... 20 2.3.2 Modularity ......................................................................................................... 24 2.3.3 Performance ...................................................................................................... 27 2.4 Previous Research ..................................................................................................... 29 2.5 Model Formulation: ................................................................................................... 35 2.6 Results:...................................................................................................................... 45 2.6.1 Case 1: Modularity (m) and Architectural Performance (s) are not related ......... 45 2.6.2 Case 2: Modularity (m) and Performance (s) are related.................................... 55 2.7 Discussions of Results and Implications...................................................................... 66 2.8 Limitations................................................................................................................. 68 2.9 Future Directions ....................................................................................................... 68 Chapter 3: Essay Two - Demand Planning for Cloud Computing: Effect of Random Variation in Demand .................................................................................................................................... 70 3.1 Introduction .............................................................................................................. 70 3.2 Motivation and Research Questions .......................................................................... 71 3.3 Literature Review ...................................................................................................... 75 3.4 Model Formulation .................................................................................................... 78 3.5 Theoretical Results .................................................................................................... 82 3.6 Numerical Results: ..................................................................................................... 93 3.7 Discussions ................................................................................................................ 96 3.8 Limitations:................................................................................................................ 96 3.9 Conclusions and Contributions: ................................................................................. 97 3.10 Future Directions ....................................................................................................... 98 Chapter 4: Essay Three - A Financial Risk Model for Cloud Computing ....................................... 99 4.1 Introduction: ............................................................................................................. 99 4.2 Introduction to Risk Management ........................................................................... 102 4.3 Literature Review .................................................................................................... 105 4.4 Capacity Planning Framework: ................................................................................. 106 ix 4.5 Modularity and Model Formulation ......................................................................... 107 4.5.1 Modularity ....................................................................................................... 107 4.5.2 Model Formulation .......................................................................................... 110 4.6 Results..................................................................................................................... 124 4.7 Limitations............................................................................................................... 128 4.8 Future research ....................................................................................................... 129 Chapter 5: Contributions ......................................................................................................... 131 5.1 Research Contributions ........................................................................................... 131 5.2 Contributions to Practice ......................................................................................... 133 Bibliography............................................................................................................................ 135 x List of Figures Chapter 2: Figure 2.1: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to customer sensitivity to modularity in the IS application architecture … 50 Figure 2.2: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in fixed cost for introducing modularity into the system ……… 53 Figure 2.3: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in sensitivity to modularity………………………………………………… 61 Figure 2.4: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in maximum architectural performance …………………………….. 65 Chapter 3: Figure 3.1: Graph showing the relationship between optimal capacity (Q) and ω …………..….. 94 Figure 3.2: Graph showing the relationship between Average profit and Standard deviation of profit with respect to capacity …………………….…………………………………………………………………… 95 Chapter 4: Figure 4.1: Graph showing the effect of change in planned capacity on Average profit for risk neutral (red line) and risk averse (blue line) providers and Standard deviation of profit ……… 125 Figure 4.2: Graph showing the relationship between optimal capacity and risk averseness factor ε for different values of ω ………………………………………………………………….………………………... 127 xi 1 Chapter 1: Introduction Wide acceptance of computing and computing enabled artifacts in everyday life is changing the way we live. As an example, we are seeing an explosive growth in the adoption of Smartphones, tablet computers etc. These devices are fundamentally different from traditional computers. First, these devices are able to access the Internet using mobile networks. Second, these devices run on many different types of operating systems. Third, these devices have less memory and slower processors. However, the traditional computers are still available and are used and in most cases they run on different operating system platform. Wide use of different end user devices that ranges from traditional computers to smartphones makes it imperative for providers of cloud applications to develop IS applications in such a way that a user could access same IS applications using many different types of hardware from different locations that are outside the enterprise (Yoo, Henfridsson, & Lyytinen, 2010). We are also observing wide adoption and use of social networking sites such as LinkedIn, Facebook, and MySpace for personal as well as for business use. The advent of services such as Skype, Google Hangout is also changing the way we make telephone calls and it is opening up different innovative ways to communicate; it is no longer necessary to have expensive specialized 2 equipment for video conferencing. People are writing and sharing documents using different services such as Google Doc, dropbox using the Internet. From a technological point of view we can identify the following two reasons that are responsible for the above mentioned innovations. First, there have been significant improvements in Information Technology (IT) and networking infrastructure such as availability of very high speed Internet connection. Second, standardization of protocols such as SOAP has made it possible for different IS applications to interoperate with one another seamlessly. Hence, it is no longer necessary to have computing restricted within an enterprise. It does not matter where software and hardware is located, a user or an Information System (IS) application can access the necessary resources (another IS application, other software, hardware etc.) as long as those resources are connected to the Internet (Carr, 2005). This phenomenon is known by many different names such as cloud computing, service oriented computing, utility computing (Vaquero, Rodero-Merion, Caceres, & Lindner, 2009). It is a great opportunity for IS researchers to understand and study this complex evolving phenomenon; however such investigations require a new perspective (Yoo, 2010). This dissertation is an attempt to accomplish that. Success of IS applications in organizations have been studied using two main perspectives – the users’ perspective and the developers’ perspective. Taking users’ perspective, acceptance of IS application has been studied focusing on 3 different themes; however, there is a commonality among these themes; it was hypothesized that success or failure of an IS application (or IS innovation) depended on the organization’s attribute (Fichman, 2004). Taking the perspectives of developers, researchers in the areas of computer science and Information Systems studied IS applications focusing mainly on development methodologies, processes, modeling etc. The established areas of “Software Engineering” and “System Analysis and Design” are devoted to this area of research. Uncovering of functional attributes of a proposed IS application has been considered one of the most important steps during development of an IS application. These approaches were appropriate, as most IS applications were built to solve very specific business problems. Hence, it is fair to conclude that most IS applications were treated as customized products. However, cloud computing applications need to be more general in nature so that these applications are useful to diverse group of users. Hence, it is no longer possible to assume that the IS applications are customized products. According to National Institute of Standards and Technology (NIST) guideline published in 2011, “Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” (Mell & Grance, 2011). In 4 this definition, we note the use of word “service” and the word “configurable”. The word “configurable” does have a very important implication. It is not necessary to build a configurable IS application; unless it is envisaged that many different customers will use it. Hence we conclude, unlike a traditional IS application which is a customized product, an IS application in a cloud computing domain is a combination of product (not customized) and service (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). It is very likely, in future most businesses will purchase Information Technology (IT) services in the same way they purchase telephone services and there will be little need for businesses to invest on real IT asset such as purchasing hardware and software. Not only it is a fundamental change for every user of IS applications but also it has a major impact on developers of IS applications. We noted earlier that most traditional IS applications were customized products. However, cloud enabled IS applications need to be useful to many different types of users. Hence, it is fair to conclude that cloud computing is changing a typical IS application from a customized product to mix of (non-customized) product and service. This phenomenon has been described as industrialization of IT. In this dissertation we study the effects of industrialization of IT from the perspectives of developers of IS applications. The term cloud computing is actually an umbrella term; there are many different types of cloud computing solutions. Cloud computing could be 5 classified into three different types of services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) (Fouquet, Niedermayer, & Carle, 2009; Sridhar, 2011; Vaquero, Rodero-Merion, Caceres, & Lindner, 2009). A typical IaaS provides low-level computing resources using hardware virtualization technologies. It gives customers full control over the operating systems and installed applications. Amazon EC2 is an example of an IaaS (Amazon.com). A typical PaaS exposes appropriate Application Programming Interfaces (API) that can be used by application developers to create applications. Google App Engine is an example of a PaaS (Google). A typical SaaS provides users direct access to an IS application. Salesforce.com’s Sales Cloud is an example of a SaaS (Salesforce.com). In this dissertation, we focus on development of SaaS applications. In the next chapter, we discuss in detail different types of cloud computing and also why this dissertation focuses on SaaS applications. The number of companies who are offering SaaS solutions is growing rapidly and most established computing companies such as Microsoft, SAP have also entered this space. The SaaS companies are also increasing their offerings. A quick look at the customer lists of different SaaS providers such as Amazon, Google, Salesforce.com, and Microsoft shows a rapid increase in their customer base. As we discussed above, we recognize that a cloud computing IS application such as a SaaS application is a mixture of product and service. In 6 order to understand and analyze this new development it is necessary to take a look at some nontraditional IS areas such as service science (Demirkan, Kauffman, Vayghan, Fill, Karagiannis, & Maglio, 2008) and new product development (Nambisan & Wilemon, 2000). In the marketing literature product is defined as an entity that has complex bundle of attributes which provide core benefits, tangible benefits and intangible benefits to the consumers (Krishnan & Ulrich, 2001). We use this definition of product, and we define an IS application as an entity that has many attributes. The attributes which are directly related to the functionality of the application are defined as functional attributes. The attributes that are not directly related to the functionality of an IS application are defined as nonfunctional attributes. In the IS discipline, non-functional attributes such as modularity, performance, security have not received sufficient attention (Chung & Sampaio do Prado Leite, 2009). As a typical IS application is morphing into a product service, it is no longer possible to ignore the important roles the nonfunctional attributes could play for determining the efficacy of a SaaS application. Service could be defined as a relationship between a producer and a consumer that creates and captures value and where the consumer participates actively (Gadrey, 2000; IBM). In other words, in the case of services, the consumers could be considered as co-producers (Fitzsimmons & Fitzsimmons, 2004). 7 Based on previous discussions we conclude that there are some fundamental differences between a traditional IS application and a cloud computing enabled IS application such as a SaaS application. Taking a perspective of SaaS application developers, we develop an analytical framework that would help managers make different decisions during development of SaaS applications. This dissertation is formatted as three essays and we summarize them here. In the first essay, we investigate the role two important non-functional attributes of IS applications – modularity and performance in software architecture play on optimal profit, price and demand. Using unconstrained optimization, we model the profit function that includes marginal and maintenance costs. First, we consider that modularity and performance in software architecture are independent of each other. Second, we assume that there is a relationship between them; increase in modularity leads to decrease in performance in software architecture. In the case of a traditional IS application in an enterprise setting, it is the customer’s responsibility to arrange for the infrastructure such as hardware and networking devices and to install and maintain the IS applications. However, in the context of a SaaS application the relationship between a producer and consumer is different because of the service aspect of a SaaS application. It is the developer’s (SaaS provider’s) responsibility to arrange for infrastructure so 8 that SaaS could be consumed by its customers. Developers of SaaS applications need to make provision for necessary hardware and software components so that they can offer their services at an acceptable level to their customers. The second essay focuses on capacity planning. Here, we investigate how SaaS application providers can determine the necessary optimal capacity for their applications. The demand of a SaaS application could be predicted on the basis of price and other attributes such as operational performance. However, it is likely that there would be random variation in demand that cannot be predicted. So a SaaS application provider could face two different scenarios. In the first case, the demand is higher than the anticipated demand. In that case, a provider would not be able to satisfy all the potential customers and would lose potential revenue. This loss might become more costly to a provider as some of its potential customers might decide to go with competitors for all their future needs. In the second case, the demand is lower than the anticipated demand. In that case, the provider will not be able to use all its capacity and will unnecessarily incur cost for infrastructure that will not be used. In order to accurately plan for capacity, it is necessary to incorporate random variations in demand in the model. In this essay, we take a two-step innovative approach for demand prediction. First, we calculate optimal price and demand 9 using profit maximization model for vendors. Second, we model a stochastic profit maximization problem where demand follows a Gaussian probability distribution function with a mean optimal demand as calculated in the previous step. We assume that there is no change in price because of random variation in demand, and the producers will charge the optimal price that was obtained in previous step. We investigate how the optimal capacity varies under various circumstances. We also investigate the role operational performance plays in this context. In the second essay, we introduced importance of capacity planning for the providers of SaaS applications and we presented a method to calculate optimal capacity. However, one size fits all methodology may not be appropriate for all. There will be providers who would prefer to plan for lesser capacity so that the probability of loss from excess capacity is less. On the other end of the spectrum there will be providers who would like to have larger capacity so that they will not lose out in case of higher demand. In addition to this uncertainty, prior research has observed that IT investments in general are riskier than other capital investments (Dewan, Shi, & Gurbaxani, 2007). The third essay investigates how financial risk tolerance of SaaS application providers would affect capacity planning for SaaS applications. Using Markowitz’s mean variance analysis model (Markowitz, 1959), we build a financial risk model so that the SaaS application providers could make appropriate decisions based on their 10 individual risk tolerance. We shall also investigate the relationship of financial risk tolerance with expected (average) values of different decision parameters. 11 Chapter 2: Essay One - Modularity and Performance in Cloud Computing: An Economic Perspective 2.1 Introduction Cloud computing is fundamentally changing the way computing resources are developed, provided and used. Some of the observed changes are how an IS application is accessed; how the applications are set up etc. Advent of networking in the early 70s made it possible to connect many computing devices together. As a result of that it was possible for businesses to network smaller powered computers and use them instead of using a bigger and more powerful mainframe computer. It was no longer necessary to replace a computer when there was a need for higher computing power; another computer could be added to the enterprise. It gave rise to client server computing, that we are still using today. It made computing scalable and more efficient. Cloud computing has already changed computing significantly and this trend will continue. In this essay, first we identify some of the important changes that are occurring because of the advent of cloud computing. Second, using unconstrained optimization, we find relationships among price, modularity and architectural performance of a SaaS application under the condition of profit maximization of its developer. The rest of the essay is organized in the following way. In the next section, we discuss in detail the motivation for this research. Next, we define cloud computing, 12 modularity and performance. A review of relevant literature is presented after this. We then formulate our profit maximization model which is followed by presentation of results of theoretical analysis. The last section discusses the results and presents possible future work in the area. 2.2 Motivation and Research Questions In this section we discuss in detail how cloud computing is bringing a paradigm shift in computing. First, an IS application hosted in the cloud could be accessed from anywhere as long as there is a network connection. It is no longer necessary that users of an IS application are in the same enterprise where the IS application is hosted. Wide acceptance and use of different types of mobile computing devices such as smartphones, tablets is one of the effects of cloud computing. Second, the concept of ownership of cloud computing applications is different from traditional computing applications. Instead of making outright purchase, businesses purchase Information Technology (IT) services in the same way they purchase different utility services such as telephone service, network connection service etc. As a result of the service component, delivery and use of cloud computing applications involves three distinct groups – developers of IS applications, service providers of IS applications and users of IS applications. Traditionally, the service providers and users were same as the 13 organizations installed the IS applications themselves and they owned the underlying IT infrastructure. In a cloud computing model, in many cases it is possible that same organizations could develop and provide the service; however the role of users of an IS application is significantly different. It is also important to note that in the cloud computing model the application provider and user will have a long term business relationship as the users are no longer purchasing the software outright. Third, from a financial perspective as businesses start using cloud computing it is no longer necessary for them to make huge capital investment in IT infrastructure, such as hardware, software etc. The IS application providers either build their own IT infrastructure or they purchase it from another IT infrastructure service provider; in either case the users need not worry about the IT infrastructure issues. As an example, the social networking site Foursquare rents its IT infrastructure from Amazon.com. Fourth, most traditional IS applications were built for solving a specific business problem of an organization. However, cloud computing enabled IS applications are no longer constrained to operate in a specific enterprise or a business; it becomes necessary that the developers of these IS applications build them focusing on a diverse group of users from a diverse group of businesses from many industries. As an example, the customer relationship 14 management (CRM) service provider Salesforce.com provides similar services to a diverse group of businesses. Hence, these IS applications need to solve problems in a generalized way; so it can be argued that unlike a traditional IS application which is a customized product, a cloud computing application is a combination of generalized (not customized) product and service (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). This phenomenon has also been described as industrialization of IT. Traditionally software is considered a developmentally intensive product, because software has substantial development costs and small marginal cost for production (Krishnan & Zhu, 2006). However, cloud computing applications are different in that respect. Not only cloud computing applications have a substantial development costs but also a producer of cloud computing applications incurs a significant marginal cost of providing the service, because the consumer producer relationship could last throughout the lifetime of the product. Although Cloud computing has received lot of attention in the industry, there are very few academic articles on cloud computing. Choudhary compared how software quality could be different under perpetual licensing scheme (traditional software product) and Software as a Service (SaaS) (Choudhary, 2007). However, he did not define software quality and he implicitly assumed that meaning of software quality in the two scenarios were same. Zhang and 15 Seidman investigated the difference between the above two scenarios under quality uncertainty and network externality effects (Zhang & Seidmann, 2010). They defined software quality as an attribute with many different dimensions such as features, speed, functionalities etc.; their definition of software quality used the fact that software quality could be defined in terms of functional attributes (Agrawal & Chari, 2007) as well as in terms of nonfunctional or structural attributes (Capra, Francalanci, & Merlo, 2008) of software. Although there is a rich literature on software quality, the meaning of software quality has changed over time (Agrawal & Chari, 2007). Recently, the Software Engineering Institute (SEI) at Carnegie Mellon University, and the Object Management Group have jointly formed a Consortium of Software Quality (CISQ) to investigate issues in software quality. The group’s main focus is to devise metrics which could be used for measuring software quality; hence it is fair to conclude it is difficult to measure software quality accurately. Hence, in this dissertation we focus on tangible nonfunctional attributes. In order to understand and analyze this new development it is necessary to take a look at some nontraditional IS areas such as service science (Demirkan, Kauffman, Vayghan, Fill, Karagiannis, & Maglio, 2008). Although literature has recognized the service aspect of cloud computing, to our 16 knowledge there is no analytical model for cloud computing applications which include any specific service characteristics such as marginal or maintenance cost of the service. Most researchers have treated cloud computing applications as developmentally intensive products (Krishnan & Zhu, 2006). In this essay, we intend to address the specific gaps in research as indicated above. In this research, we focus on non-functional attributes of a cloud computing application. Although, we recognize that functional attributes are the most important characteristics of any product, the functional attributes are specific to a particular product. On the other hand, non-functional attributes such as quality and usability are applicable to all products. Also in a cloud computing model, it is possible that many providers will offer similar service in terms of functional attributes. However those providers could compete by offering different levels of non-functional attributes. Hence, we only include nonfunctional attributes in our model, and as a result of that our model is relevant to any cloud computing applications. It will enable us to uncover important insights into a typical cloud computing application and it will help us understand the phenomenon of cloud computing and uncover important common features among different types of cloud computing applications. 17 We focus our attention on specific and meaningful non-functional attributes of IS that could be operationalized in future; however operationalization of attributes is beyond the scope of this essay. Our work is different from the other works in the cloud computing area in the following ways. First, we focus on two important and specific non-functional attributes of an IS – modularity and performance which have been identified as important dimensions of software quality (Joglekar & Rosenthal, 2003; Agrawal & Chari, 2007). Second, we recognize the service aspect of cloud computing applications by including both marginal production and recurring cost of providing the service in the model. Modularity is considered to be one of the most important non-functional attributes of an IS application (Parnas, 1972; Parnas, Clements, & Weiss, 1985). We define and discuss modularity in a following section. It has been observed that there is an optimal level of modularity in an IS application; too little or too much modularity could be detrimental, because increase in modularity in some cases may reduce the performance of an IS application (Banker, Datar, Kemerer, & Zweig, 1993). In a recent commentary, Yoo et al have opined that recent developments necessitate considering the importance of modularity in software architecture (Yoo, Henfridsson, & Lyytinen, 2010). 18 Performance is another important non-functional attribute. Performance is always considered an important part of Service Level Agreements (SLA). In the cloud computing area, SLAs are important as they formalize the relationship of service provider and service consumer (Demirkan, Kauffman, Vayghan, Fill, Karagiannis, & Maglio, 2008). Cloud computing could be classified into three different types of services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) (Fouquet, Niedermayer, & Carle, 2009; Sridhar, 2011). We provide a detailed definition of all of them in a following section. In this essay, we focus on SaaS applications because of the following reasons. First, a SaaS application is similar to traditional IS application and the consumers of such applications are very similar to traditional IS application users. Second, a SaaS application developer faces some of the similar challenges as a traditional IS application developer. Hence, focusing on SaaS will help us uncover and study the paradigm shift cloud computing is bringing to the area of IS application. We investigate specifically the roles of modularity and performance in a SaaS application architecture. Taking the perspective of a SaaS application provider we investigate the following three research questions. 19 1. While developing a SaaS application, what are the optimal levels of price, performance and modularity that will lead to maximum profit for software developers? How are the above three attributes related to one another? 2. How does a change in SaaS application users’ sensitivity to different parameters such as price, modularity and performance affect optimal values of demand and profit under the condition of profit maximization? 3. What are the effects of different costs incurred by the cloud computing application providers such as fixed cost, marginal cost and maintenance cost on different parameters such as price, demand and modularity under the condition of profit maximization of the producers? We do the above analysis under two scenarios. In the first scenario, we assume that there is no relationship between performance and modularity. In the second scenario, we assume an inverse relationship between performance and modularity as prior research has shown that increase in modularity leads to decrease in performance (Clark, 1982). 20 2.3 Background and Previous Research As cloud computing is a new phenomenon, the definitions of different concepts related to this area are still evolving. In this section, we review the available definitions of cloud computing, SaaS, modularity and performance. 2.3.1 Cloud Computing National Institute of Standards and Technology (NIST) published a guideline in 2011 that included a definition for cloud computing. The definition states that “Cloud computing is a model for enabling ubiquitous, convenient, ondemand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” (Mell & Grance, 2011). There are a few more definitions of cloud computing in the literature. According to (Vaquero, Rodero-Merion, Caceres, & Lindner, 2009) cloud computing could be defined as “Clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized SLAs”. In this essay, we use the NIST definition of cloud computing. 21 From the above definitions, we observe that cloud computing involves a service provider and consumers of services. The service provider provides different types of computing services, such as computing infrastructure, computing platform or just an IS application. The consumer uses the above services according to specific Service Level Agreements (SLA). The service could be offered at different levels of abstraction depending on the type of specific access and control a consumer has. So far three distinct abstractions have been identified and they are discussed below. 2.3.1.1 Infrastructure as a Service (IaaS) These are services where consumers directly use infrastructure resources such as data storage, networking equipment, computer hardware from service providers. These services enable consumers to have lower level access to the IT infrastructure such as deploying software, changing hardware configuration. However the consumers are not responsible for the maintenance of the resources. Outsourcing of data center is an example of this. These types of services are known as IaaS. There are other alternative names such as utility computing. The first known reference to utility computing could be found in a lecture delivered by Dr. John McCarthy in 1961 at MIT. According to him “If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility... The computer utility could become the basis of a new and important industry.” 22 2.3.1.2 Platform as a Service (PaaS) Platform as a Service (PaaS) enables a user to develop, install and use an IS application using a cloud application provider’s infrastructure. Although the developers have access to development environment in a providers’ infrastructure; developers need not worry about any other infrastructure requirements. Some of the existing platforms which provide this type of services are Salesforce.com’s Force, Microsoft’s Azure, and Google’s Apps Engine. 2.3.1.3 Software as a Service (SaaS) In the literature, SaaS is defined as an IS application which is hosted in a vendor site and could be accessed by users through the Internet either using standardized protocols such as SOAP, REST or using proprietary protocols such as the one offered by Salesforce.com. SaaS enables a provider to offer IS application as a service to consumers by hosting the IS application in their own IT infrastructure; consumers need minimal IT infrastructure for consuming the service (Wikipedia). Salesforce.com’s CRM application, Amazon’s storage application and Google’s Apps are examples of SaaS offerings. Here the consumers only need to focus on functionality of the application and they might be responsible for minimal configuration decisions. As we can see all the three different types of service have many similarities. First, in each case the consumers rent the needed functionalities instead of 23 either developing it in house or purchasing it outright. Second, consumers are not responsible for maintaining the underlying infrastructure necessary for using the service. The main difference among the three services is in the level of abstraction. First, SaaS is at the highest level of abstraction as the consumers are provided with access to an IS application. Second, the PaaS is at the middle level of abstraction; here the consumers are provided with access to application development environment. Third, IaaS is at the lowest level of abstraction; here consumers are provided with access to different lower level infrastructure necessary for computing. Taking another perspective, we observe that SaaS, PaaS, IaaS are similar to software applications, software development environments and basic computing infrastructure respectively; the main difference is that they are offered as services. This could lead to following possible scenario; it is possible for SaaS providers to develop SaaS applications using PaaS platforms from PaaS providers and then offer those applications as SaaS solutions to their customers. It is easy to see that use of cloud computing could make a supply chain of customers and vendors where vendor at one point is a customer at another. The outsourcing of a business’s logistical functions such as transportation, warehousing, product returns to another organization is known as Third-party logistics (3PL or TPL); the organizations which provide this type of services are known as Third-party logistics providers or Third- 24 party service providers (3PSP) (Vitasek, 2010). The SaaS applications are somewhat similar to 3PL. 2.3.2 Modularity Modularity is not a new concept. There is a long history of using modularity in product design. It is claimed that the Terracotta army figures in the mausoleum of the first Chinese emperor Qin Shi Huang were constructed using the principles of modularity in the third century BC. The head, arms, legs and torsos were created separately and then they were glued together. Using the concepts of modularity, the Venetian Arsenal was able to produce about one ship a day during 16th century; they employed about 16,000 people (Wikipedia). The idea that an IS application should consist of many modules was first proposed by Parnas while introducing the concept of information hiding (Parnas, 1972). The concept of information hiding or encapsulation is based on the fundamental economic concept of division of labor, where tasks are divided into many tasks that could be performed by different people. However, especially in the area of intellectual division of labor, the effective coordination becomes an important issue and that takes away some of the benefit of division of labor. As an example, it has been observed that dividing a software product into modules required a significant effort in coordination and communication among the developers of different modules neutralizing some of the benefits of modularization. Hence it was 25 realized that in order to extract benefit from modularization, it is necessary to design modules in a way that required least amount of communication among the modules (Langlois & Garzarelli, 2008). It has been noted in literature that there is no uniform definition of modularity (MacCormack, Rusnak, & Baldwin, 2006; Fixson & Clark, 2002; Fixson S. K., 2003; Bask, Lipponen, Rajahonka, & Tinnila, 2010). According to Campagnolo and Camuffo, “Modularity is an attribute of a complex system that advocates designing structures based on minimizing interdependence between modules and maximizing interdependence within them that can be mixed and matched in order to obtain new configurations without loss of the system’s functionality or performance” (Campagnolo & Camuffo, 2010). Booch defined modularity as, “Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules” (Booch, 1994). Coupling is defined as how inter dependent two modules are and cohesion is defined as how single minded a module is (Yourdon & Constantine, 1979). We recognize that it is difficult to come up with an absolute definition of modularity; on the other hand it is easy to conceptualize modularity. In this essay, we define modularity as a relative term. As an IS application is sub divided into more and more modules its modularity increases. Since, we are 26 only interested to investigate the effects of increase and decrease of our decision variables, it is not necessary to come up with an absolute definition of modularity. For a highly integral design (few modules and low modularity) cohesion of each module is low and coupling among the modules is also low. On the other hand, for highly modular design (many modules and high modularity) cohesion of each module is high, however coupling among modules also tend to be high. So we can infer that as modularity increases, coupling and cohesion also increases. Although operationalization and measurement of modularity is beyond the scope of this essay, we note that it is easy to measure effects of modularity indirectly through coupling and cohesion. Chidamber and Kemerer introduced specific metrics such as “Lack of Cohesion of Methods (LOCM)”, “Coupling between Objects (CBO)” that could be used for measuring cohesion and coupling (Chidamber & Kemerer, 1994). Some application development tools such as Eclipse allows developers to calculate those metrics (Sourceforge.net). Ideally, it is best to have high cohesion and low coupling (Booch, 1994). We introduced the concept of modularity using the figures in the mausoleum of the first Chinese emperor Qin Shi Huang. Instead of just constructing head, arms, legs and torsos separately, the artists could have increased the number of modules by constructing fingers separately. In that case both cohesion of a module and coupling among the modules would have been higher. Intuitively we can sense that the product would have been less robust, as it would have been 27 harder to glue all the modules together. Hence neither too little modularity nor too much modularity is good. Hence, we conclude that there is an optimum modularity, which is neither too high nor too low. As high modularity corresponds to high cohesion and high coupling we can also assume that optimal modularity leads to high cohesion and low coupling. 2.3.3 Performance Performance has been recognized as another important non-functional attribute of a software application (Devaraj, Kumar, Kavi, & Kanth, 2011). Also, performance and quality of service are two related constructs that are considered important attributes of telecommunication and networking services. A quick analysis of the Internet Service Providers (ISP) shows that ISPs charge higher price for products with higher performance as measured in upload and download speeds. We also observe the CPU manufacturers such as Intel and AMD advertise about the speeds of their CPUs. In the traditional IS area, performance is considered a runtime construct; hence during development of traditional IS applications performance did not receive much importance; it was assumed that performance issues could be addressed later (Balsamo, Di Marco, Inverardi, & Simeoni, 2004). However, in the data networking area during development of protocols, performance was considered an important attribute (Clark, 1982). In the area of scientific computing, considerable effort is made to develop software with higher performance (Diaz & Dutt, 1992). Also in the software development, there 28 are specific programming techniques that are used for improving performance of software under specific conditions. As an example data structure tree is used for data that does not change often to improve performance in searching. Hence performance should not be considered only a runtime construct and the role performance plays in software architecture during development should also be recognized. We recognize that by assuming that performance attribute of any IS application consists of two parts – architectural performance (s) and operational performance (o) so that the role of performance in the above contexts could be recognized. We define architectural performance (s) as the component of performance of an IS application that is due to design decisions and choices made during design and development of the IS application. A good example is a decision whether to use a specific data structure. We define operational performance as the component of performance of an IS application arising from the decisions made during run time of an IS application. Operational performance is the performance as observed by a user of a SaaS application (Transaction Processing Performance Council (TPC), 2012). So the operational performance depends on the decisions made during installation of IT infrastructure, such as type of hardware, amount of memory of the servers, they networking link that connects the servers etc. 29 For SaaS applications, the end users are not necessarily in the same enterprise where the application is hosted. Hence, the users of such applications could experience lower operational performance because of network delay, network attacks etc. A higher architectural performance could compensate for that. Also two similar SaaS products could be differentiated on the basis of performance, and a quick review of popular SaaS products show the importance SaaS providers give to the performance issue. Hence, we include architectural performance (s) as a decision variable in our model. However, we are only interested in relative changes in architectural performance and hence operationalization of architectural performance is beyond the scope of this essay. However, metrics such as TPC-W metrics (Transaction Processing Performance Council) has been used for measuring performance in the cloud computing area (Kossmann, Kraska, & Loesing, 2010). 2.4 Previous Research A search on many popular databases such as “Web of Science”, “ABI Inform” revealed a paucity of peer reviewed research papers on “Cloud Computing”. As the focus of this paper is on SaaS, we have given more emphasis on SaaS literature. However, we have reviewed literature in other related areas of cloud computing also. In order to understand modularity and performance we have done an extensive review of those constructs in different areas. 30 Cloud computing in general and SaaS in particular have created a need for IS researchers to understand and use service science (Vaquero, Rodero-Merion, Caceres, & Lindner, 2009). Demirkan et al discussed importance of service orientation in IS applications and suggested some guidelines for developing and adopting IS applications based on service oriented architecture (Demirkan, Kauffman, Vayghan, Fill, Karagiannis, & Maglio, 2008). Bardhan et al confirmed that IT services were becoming more and more important in the IS area. They emphasized the importance of looking into service science for understanding the phenomenon and the need for joint research among different disciplines (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). Recently, Susarla et al investigated on the suitability of high powered versus low powered incentives in the contract between a SaaS provider and a SaaS consumer. From the point of view of SaaS providers, it is more beneficial to have high powered incentive contract (as an example fixed price contract, giving the provider flexibility) instead of a low powered incentive contract (where the contract describes in detail different terms and conditions) between a SaaS application provider and a consumer for SaaS applications. It was observed that lack of flexibility in the contracts was one of the problems faced by Application Service Providers (ASP) (Susarla, Barua, & Whinston, 31 2009). They observed that modularity in SaaS application lowers the process specificity between consumers and producers and as a result of that makes it beneficial for SaaS providers to have high powered incentive contract with the consumers (Susarla, Barua, & Whinston, 2010). Zhang and Seidman compared the subscription licensing model (similar to SaaS model), perpetual licensing model and a hybrid model that includes both types of licensing models for delivery of software. Although in some cases subscription licensing model was beneficial to software vendors, when the network effect is significant it was more profitable for vendors to provide both subscription licensing model and hybrid model (Zhang & Seidmann, 2010). Choudhary examined the impact of SaaS licensing scheme on software quality and he observed that SaaS licensing scheme leads to better software quality (Choudhary, 2007); because this licensing scheme encourages the producers to make more investment during software development and maintenance (Choudhary, 2007). Demirkan et al studied different coordination strategies among different players in a supply chain of SaaS providers. They noted that two distinct roles have evolved for SaaS application providers – that of Application Service Providers (ASP) and of Application Infrastructure Providers (AIP). In order to provide SaaS, an ASP and an AIP can form a supply chain network. They 32 observed although an ASP and an AIP have different incentives, it is possible to create a coordination strategy with an incentive that will result in the same overall surplus as that could be achieved by a central planner (Demirkan, Cheng, & Bandyopadhyay, 2010). Benlian et al investigated drivers for adoption of SaaS applications. They found adoption of SaaS application depends on the type of specific application; however they found no relationship between SaaS adoption and the size of the adopting organizations. In other words SaaS vendors should not limit their marketing efforts based on the size of the consumer organizations (Benlian, Hess, & Buxman, 2009). The concept of modularity in the area of management science has a long history. Modularity has been studied in three different areas – product design, production systems and organizations (Campagnolo & Camuffo, 2010). Parnas uncovered the importance of modularity in software architecture while discussing information hiding (Parnas, 1972). It was confirmed in many other studies that modular software is better software (Booch, 1991; Boehm & Sullivan, 2000; Cai, 2006; McConnell, 2000; Wasserman, 1996). For mainstream products, Joglekar and Rosenthal observed that use of modularity in software architecture improved outcomes of mainstream product which has added software components (Joglekar & Rosenthal, 2003), or in other words products with modular architecture are better products. Dewan et al investigated mass customization of product; they observed that 33 using mass customization, it was possible for a producer to offer different variations of a product at different prices leading to increased profit by making the product attractive to a more diverse group of consumers (Dewan, Jing, & Seidmann, 2003). Kumar observed that modularity in product design enables a producer to offer mass customized product (Kumar, 2004). Hence, it is widely accepted that increase in modularity leads to increase in product flexibility (Schilling, 2000). Modularity is also one of the driving forces for refactoring and restructuring of software (Mens & Tourwe, 2004). MacCormack et al observed modularity in design led to more flexibility in changing products and that increased agility (MacCormack, Verganti, & Iansiti, 2001). It was also observed that maintenance cost was proportional to size of the modules amongst others; it was more expensive to maintain a non-modular product (Banker, Datar, Kemerer, & Zweig, 1993) or in other words the cost for maintaining a modular product is less. However, many researchers in different fields have observed that modularity in product architecture leads to higher product complexity (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010; Baldwin & Clark, 2000). Pekkarinen and Ulkuniemi studied how modularity could be introduced during development of business services. They developed a modular services platform where they identified four distinct areas of a typical business process - service, process, organisational and customer 34 interface. They showed it was possible to introduce modularity in all the four areas and improve the overal business process (Pekkarinen & Ulkuniemi, 2008). The literature on architectural performance of software product is not extensive. Jain and Kannan showed that in a software service environment, price is related to performance and producers charge higher price for higher performing product (Jain & Kannan, 2002). Hosanger et al studied the role of performance on a specific IS service namely cache service in the context of consumer vendor relationship. They showed that it was possible for vendors to charge for a premium service even when a best effort free service was available to consumers (Hosangar, Krishnan, Chuang, & Choudhary, 2005) . Hanmer and Letourneau described some of the best practices for developing a high performing product (Hanmer & Letourneau, 2003). The importance of service in IS applications is evident from another perspective. Service Oriented Architecture (SOA) has become a very popular IS architecture; SOA could be defined as an architectural style where each component of an IS is perceived as a service. SOA architecture enables applications built using modular structure to work together. A logical next step is to extend SOA outside of the enterprise to the cloud (Linthicum, 2009). Hence, it has been suggested that for building cloud computing 35 enabled IS applications, SOA is the most appropriate architecture (Demirkan H. , 2008). 2.5 Model Formulation: We use theoretical (analytical) modeling technique for our model formulation. In this technique researchers build theoretical models which consist of appropriate variables for the phenomenon which is being modeled as well as realistic assumptions among the variables. A typical assumption could be an assumption of profit maximization. They do theoretical experiments using the model by examining effects of change of some of the variables. From the results of the experiments, propositions are developed and managerial implications of the phenomenon are uncovered from the propositions (Moorthy, 1993). Theoretical modeling has been an effective tool for uncovering many useful insights into complex business phenomena (Raju, 1995). We first model our demand function. We assume a monopolist vendor and we consider a fixed period during which the SaaS application is being offered. We model the effects of modularity and performance in SaaS architecture on demand. Consistent with the literature, we assume that modularity and performance have positive effects on the demand. Bakos and Brynjolfsson observed that especially in the case of Information System products, bundling 36 leads to higher profit for producers (Bakos & Brynjolfsson, 1999); modularity in product architecture leads to ease in bundling. In other words, modularity in product architecture will enable a SaaS provider to create and customize their services faster for the consumers (Sambamurthy, Bharadwaj, & Grover, 2003). Joglekar and Rosenthal observed that use of modularity in software architecture improved outcomes of mainstream product which has added software components (Joglekar & Rosenthal, 2003). Modularity would also support mass customization strategy which allows a producer to offer their product to a more diverse group of customers (Dewan, Jing, & Seidmann, 2003). Therefore, an increase in modularity of a product will lead to increase in demand if everything else remains the same. One of the most successful cloud computing application providers is Salesforce.com. Salesforce.com has seen a steady increase in their sales and customer base that has been attributed to the flexibility of its Application Programming Interface (API) Force.com that allows users to develop their own applications. According to Salesforce.com website, “Force.com comes with 60 predefined components that can be assembled with minimal coding in building-block fashion. Some of these components implement common Salesforce interface elements and others make new features available, such as AJAX-based partial page refreshes” (Salesforce.com). In other words, 37 modularity in their products makes it easy for customers to develop their own application leading to Salesforce.com’s success. Another success story in the area of cloud computing is popularity of Amazon Web Services. According to Adam Selipsky, vice president of Product Management and Developer Relations, Amazon Web Services, “in making its capabilities accessible to outside developers, Amazon broke its process into many modular services. This modularity has allowed Amazon to extend its business all the way to providing a complete online retailing environment for Target.com, Marks & Spencer, and others.” Hence, it follows that introduction of modularity in Amazon’s processes led to increase in number of their customers. According to Catalyst Resources a SaaS consulting firm, modular design in SaaS leads to order of magnitude profit increase for SaaS developers. They gave an example, where a client of theirs opted for a non-modular design resulting in loss of profit – “A company we work with had a very compelling piece of software for transportation asset management. However, all functionality in the application was bolted together. All configuration was in one area, all reports were in one area, all routing & logistics were in one area, etc. This meant the company was limited to selling their SaaS offerings as a single product at a single subscription price. Ideally with SaaS however, 38 you want is to be able to break your functionality into pieces that can be sold separately. The modular pieces become separate profit streams that sum to more than the profit from a single monolithic SaaS.” On the effect of performance and demand level it has been argued that higher performance will mean higher demand if everything else remains the same. Hosangar et al confirmed that indirectly in a recent study (Hosangar, Krishnan, Chuang, & Choudhary, 2005). Kossman et al compared the performances of different cloud computing services such as Amazon Web Services (AWS), Google’s AppEngine, Microsoft’s Azure with respect to the price of those services. They used TPC-W metrics of the Transaction Processing Performance Council (Transaction Processing Performance Council). The performance was measured in WIPS (Web Interactions per Second). They observed that providers charge higher prices for higher performing product (Kossmann, Kraska, & Loesing, 2010). From the fundamental laws of economics we note that, lower prices lead to higher demands. Hence, we argue if everything else remains same higher architectural performance will lead to higher overall performance and that will lead to higher demand if the price remains unchanged as that would be effectively lowering of prices. 39 Some of the examples from industry as discussed above clearly indicate that modularity in product leads to increase in demand and lack of modularity in product leads to decrease in demand. The literature predicts similar trend for performance. We assume a linear demand function and we include the sensitivity in demand from modularity and architectural performance as discussed earlier. Although linear demand function has some limitations, linear demand function is widely used in the literature (Barua, Kriebel, & Mukhopadhyay, 1991; Choudhary, 2007). We also assume both demands and price to be amortized over the lifetime of the product. If a consumer subscribes to the service throughout its lifetime, the price is the total amount the consumer will pay and correspondingly demand will be one unit. Hence both demand and price could be fractions. This is how a service is different from product. A consumer can only purchase or not purchase a product. On the other hand, a consumer can subscribe to a service for a limited period of time and not throughout the lifetime of the service. In that case, a consumer will pay less than the full price and demand will be recognized as less than 1. 40 Thus, demand can be modeled as: = − + + (1) where p is price of the SaaS application amortized over its lifetime, m is the modularity level of the SaaS application, and s is the performance level of the SaaS application. is primary demand due to functional attributes of the SaaS application and other non-functional attributes such as quality (except modularity and performance), brand image, general economic fact that are outside the scope of this paper. β represents price sensitivity of the demand, represents increase in demand from increase in modularity, and δ represents increase in demand from increase in performance. , β, , and δ are assumed to be greater than zero. Our next step is to formulate the cost function. A provider of SaaS application incurs three different types of costs. First, there is a fixed cost which involves the cost of developing the product as well as costs for setting up the necessary IT infrastructure so that the SaaS application could be offered to the customers. Second, the providers also incur a marginal cost per service because in order to provide larger number of services to larger number of customers, it is necessary to have a larger IT infrastructure. The marginal cost also consists of two parts. There could be a onetime cost of purchasing the infrastructure and a variable personnel cost of maintaining the 41 infrastructure and providing the service. Alternatively, the infrastructure could be rented from an IaaS provider and in that case the marginal cost will only consist of a variable component. Third, there will be a cost for maintaining the SaaS application. In our model, we include both maintenance cost and marginal cost per product as amortized over the lifetime of the product. Prior research has shown that modularity in product architecture leads to higher product development complexity (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). Hence we can infer production of modular software will require more production cost for vendors (i.e. higher upfront (fixed) cost) (Bush, Tiwana, & Rai, 2010). We assumed that fixed cost (C1) arising from increased modularity and performance to be a quadratic function of modularity (m) and performance (s) respectively. This is in line with the standard practice in the IS literature; fixed costs incurred to improve quality of a product is a convex function of the slope of product improvement curve (Choudhary, 2007). Therefore C1 can be expressed as: = where + + is the fixed cost arising from factors other than modularity and performance, C is the parameter related to modularity during design and development of the application, and D is the parameter related to performance during design and development of the application. (2) 42 Modularity in design also leads to better flexibility in changing products leading to agility (MacCormack, Verganti, & Iansiti, 2001). It was more expensive to maintain a non-modular product compared to a modular product (Banker, Datar, Kemerer, & Zweig, 1993; Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). We treat maintenance cost (C2) as amortized over the lifetime of the product. Hence, C2 can be expressed as: = − where (3) is the amortized maintenance cost over the lifetime of the product and B, is the parameter related to modularity showing the saving in maintenance cost arising from modular design also amortized over the lifetime of the product. Unlike a traditional software vendor, a SaaS application provider will also incur marginal cost for providing services. This marginal cost (C3) will include both the cost for setting up infrastructure such as hardware, software as well as the amortized cost for providing the service. This cost will be proportional to demand. Hence, C3 can be expressed as: C3 = Z d (4) where, d is the amortized demand of the service , and Z is the marginal cost per application amortized over the total lifetime of the service. 43 Adding (2), (3), and (4), our total cost function can be expressed as: = − where = + + + + Profit for a software producer = (5) could be represented as: − Using (1) and (5), the above profit can be rewritten as: = – + + − − − + + (6) Our objectives are to find optimal values of price (p), modularity (m) and software performance (s) that will maximize the above profit function. Boundary Condition: We assume the boundary condition that Primary demand of a product α is greater than product of marginal cost Z and price sensitivity β or > In any IS application, it is fair to assume that functional attributes are much more important than non-functional attributes. Although non- functional attributes are important in this case, it is unlikely that importance of nonfunctional attributes such as modularity and performance will be more than those of functional attributes and other non-functional attributes (except modularity and performance). It is unlikely that a producer will produce a 44 product based on only modularity and performance and without any regard to its functionality. We consider a case where both performance sensitivity (δ) and modularity sensitivity (γ) are close to zero or in other words, the customers do not care about the product’s modularity and performance. Following equation (1), we can rewrite the demand function as = − In the above case, it is unlikely that a producer will produce product that does not have a projected positive demand. Hence, we assume that in this simplistic situation also demand should be positive. Hence, we obtain > As Z is the unit marginal cost, it is fair to assume that p must always be greater than Z, since otherwise it does not make sense for a producer to produce any product. As we are modeling the situation during design and production phase, we exclude the possibility of a fire sale. Hence it follows > We shall assume the above boundary condition in our model. (7) 45 2.6 Results: In this section, we present our results. We consider two cases. In the first case we assume no relationship among the decision variables. In the second case, we assume a relationship between modularity (m) and architectural performance (s) where increase of one leads to decrease of the other. 2.6.1 Case 1: Modularity (m) and Architectural Performance (s) are not related In this case, we assume modularity in software architecture and the architectural performance are independent of each other. In order to find optimal values for our decision variables that will maximize the profit function, we differentiate profit (Equation 6) partially with respect to p, m, and s, set them equal to zero, and express them as p*, m*, and s*. After making some simplifications, we obtain the following expressions. ∗ ∗ "#$ %# & ' # ( ) = ∗ = = (8) % *# & +,$ ( +,$ (9) - (10) . Solving above equations by substituting ∗ , ∗ and ∗ for , and respectively, we obtain the optimal values of decision variables as expressed below. ∗ = -."#*.&#$ -.%,.&0 ,-(0 1 - . %, . &0 , - ( 0 = 1 - . %, . &0 , - (0 + -. ",$% #*.& (11) 46 ∗ ∗ = = 1* . %# . " &, .$%&, *( 0 (12) ( - "#* &, -$%)( (13) (1 - . %, . &0 , - (0 ) (1 - . % , . &0 , - (0 ) Substituting (8), (9), and (10) to (1) and (6), optimal demand and profit can be expressed as: ∗ = .%( -(",$%)#*&, - ) ∗ = 1.(",$%)(*&#-(",$%))#*0 (1.%,( 0 ) 1(1 -.%,.&0 ,-( 0 ) (14) (1 - . % , . & 0 , - ( 0 ) − (15) Lemma 1: All the decision variables as well as the optimal demand and profit have positive values when 4 > ( + ). Proof: The above condition is derived from the hessian matrix. The hessian matrix is the second-order partial derivative of the profit function with respect to the variables p, m and s in the present case. −2 4= 5 −2 0 0 8 −2 47 To ensure that profit has a local maximum the determinants of the Hessian matrix need to be negative semi definite. A matrix is negative semi definite when its leading principal minors of different orders alternate in sign, starting with negative for the first leading principal minor (Winston, 1993). Hence the principal minor of order 3 has to be negative. The only principal minor of order three is the determinant of the matrix itself which is 2 −4 + + , and that leads to the following condition. 4 > + (16) We note that first principal minor of second order is 4 − . However, it is positive when Equation (16) is assumed. Using Equation (16) as well as the boundary condition, the numerators and denominators in Equations (11), (12), (13), (14), and (15) are all positives. ∎ Next, we study the effect of various sensitivity parameters to our decision variables as well as to our optimal profit. 48 Proposition 1: In a market where customer demand is such that it is more sensitive to modularity (i.e. higher ), the vendors will be able to charge a higher price. Proof: Taking the partial derivative of optimal p* with respect to γ, we obtain : : ∗ 4 = 4 + − − − +4 – The denominator of the above equation is always positive as it is a square of an expression. From Lemma 1 and boundary condition of equation (7), we find 4 − > 0 and − > 0 respectively. Hence the numerator is always positive. Therefore, ∎ ;+∗ ;& > 0. Hence, we conclude that if all the other parameters remain the same, increase in customer preference for modularity will enable vendors to charge a higher price. 49 Proposition 2: In a market where customer demand is such that it is more sensitive to modularity (i.e. higher ), the vendors will offer a product that is more modular. Proof: Taking the partial derivative of optimal m* with respect to γ we obtain : : ∗ 4 = − − − 4 + − + – The denominator of the above equation is always positive as it is a square of an expression. From Lemma 1, since 4 > − . &0 - , the numerator can be rewritten to < . &0 - = − + From Lemma 1 we find + − − . is positive; hence the numerator is always positive. Therefore, ;'∗ ;& >0 ∎ Hence, we can conclude that if all the other parameters remain same, increase in customer preference for modularity will lead to vendors making the SaaS applications more modular. However, we also need to remember that the optimal modularity level depends on many other factors such as the cost for introducing modularity; hence the implication of this proposition will be clearer as we develop other propositions. We show the above results graphically in the next page. 50 Figure 2.1: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to customer sensitivity to modularity in the IS application architecture Our numerical results confirm our analytical results obtained in propositions and lemma 1. We also find that propositions (1) and (2) are consistent. Increase in customer preference for modularity will lead to vendors making the SaaS applications more modular and as a result of that they will be able to charge a higher price. 51 Proposition 3: As the cost of introducing modularity in the product increases, a vendor will be required to lower the optimal price. Proof: Taking the partial derivative of optimal p* with respect to C we obtain : : ∗ 4 = − + 2 − 4 − − 2 − The denominator of the above equation is always positive as it is a square of an expression. Next, we can rewrite the numerator to: = − 4 = − 4 + 2 − − + 2 − − 2 Using Lemma 1 and the boundary condition, it can be shown that the numerator will be negative. Therefore, ;+∗ ;- < 0. ∎ Proposition 4: As the cost for introducing modularity in the product increases, a vendor will be required to lower the optimal modularity level as well as the optimal performance level. Proof: By taking the partial derivative of optimal m* with respect to C we obtain : : ∗ = − 4 − 2 2 4 = − 4 4 − − − − + − ∗ − 4 − 52 Using Lemma 1, we observe both numerator (4 4 − − are positive. Hence, − ;'∗ ) ∗ and denominator is negative of a positive ;- quantity. Therefore, ;'∗ ;- < 0. By taking the partial derivative of optimal s* with respect to C, we obtain : : ∗ 2 2 4 = − − − + 4 − − = − 4 ∗ Using Lemma 1, we observe that numerator 4 − − are positive. Hence, ;) ∗ ;- − ∗ − and denominator is negative of a positive quantity. Therefore, ;) ∗ ;- < 0. ∎ Propositions (3) and (4) are very interesting. As the cost of introducing modularity increases, the price as well as the optimal modularity and performance levels decrease. Actually, proposition (4) explains proposition (3). If the cost of introducing modularity becomes higher then ceteris paribus, a vendor will not benefit by making the product more modular; instead the vendor will produce a product with lower modularity and performance levels. As a result of that a vendor will be required to lower price at the same time. Following figures show above results graphically. 53 Figure 2.2: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in fixed cost for introducing modularity into the system 54 Proposition 5: As the marginal cost Z increases the producers need to (a) increase optimal price if (b) decrease optimal price if > < &0 (0 + - &0 (c) keep optimal price unchanged if - + = . (0 . &0 - + (0 . Proof: By taking the partial derivative of optimal p* with respect to Z, we obtain : : ∗ = 2 4 − − − − From Lemma 1, we conclude that denominator is always positive. Depending ;+∗ on the numerator, becomes positive, negative or zero. Numerator = 2 If > If If = ∎ &0 - < &0 - + (0 + (0 &0 . + - . ;$ − &0 − - (0 . , then numerator is positive. (0 . , then numerator is negative. , then numerator is zero. Proposition 5 has a very important managerial implication. It can be shown that with increase in marginal cost, all the decision variables except optimal price decrease. Depending on different conditions as indicated above between sensitivities and fixed costs, optimal price may remain unchanged, increase or decrease. 55 2.6.2 Case 2: Modularity (m) and Performance (s) are related In the literature it has been observed that increase in modularity leads to decrease in performance (Ulrich, 1995). Lau Antonio et al found that although modularity in product design is considered a key enabler of product success, modularity does not necessarily improve all the attributes of a product (LauAntonio, Yam, & Tang, 2007). While discussing modularity and performance in protocol implementation Clark observed in Request For Comments (RFC) 817 published by the Internet Engineering Task Force (IETF) that “modularity is one of the chief villains in attempting to obtain good performance, so that the designer is faced with a delicate and inevitable tradeoff between good structure and good performance” (Clark, 1982). We modify our above model to include an inverse relationship between performance , and modularity; an increase in modularity leads to decrease in performance and vice versa. Hence we assume, = ? −@ (17) where X and Y are parameters. X shows the maximum performance level and Y shows the ratio of change in s to change in m. It also follows that maximum value of m is X/Y (when s is zero). We also note that neither X nor Y is fixed. 56 Using equation (1) and eliminating s using equation (17) we can rewrite our linear demand function as = − + − @ +? (18) Using (6) and (17), we can reformulate our profit function as = = − ? – + + − @ + +? − − − − − – + + 2 ?@ + + ? −@ + @ + (19) We differentiate profit partially with respect to p and m, set them equal to zero, and solve for p and m. After making some simplifications, we obtain the following expressions for optimal price and modularity. ∗ ') = "#$% -#. A 0 , $ &,A( 0 # B - (#. A & # * &,A( ∗ ') = ", $% -#. A 0 # B - (#. A & # * &,A( ∗ ') 1 % -#.A 0 , &,A( 0 = 1 % -#.A 0 , &,A( 0 + *%#1.BA%# ",$%#B( &,A( 1 % -#.A 0 , &,A( 0 (20) (21) Using equations (17) and (21), we can express optimal performance as ∗ ') =?− ∗ ') = A *%#1.BA%# ",$%#B( &,A( 1 % -#.A 0 , &,A( 0 1 %B-, %A*, &,A( A ",$% #B& 1 % -#.A 0 , &,A( 0 (22) 57 Substituting (20), (21), and (22) to (18) and (19), our optimal demand and profit can be expressed as: ∗ ') ∗ ') = ",$% -#.A 0 # B A&.#- #* &,A( % (23) 1 % -#.A 0 , &,A( 0 = * 0 %#C &,A( 0 #* ",$%#B( &,A( # . < A ", $% #B& 0 , 1 % A CA,B* =# - ",$%#B( 0 , 1% C#. B 0 1 % -#.A 0 , &,A( 0 = * 0 %#* ",$%#B( &,A( # . A ", $% #B& 0 # 1 % B A * # - ",$%#B( 0 , 1%. B 0 1 % -#.A 0 , &,A( 0 – (24) Boundary Conditions: We make the following assumptions regarding this model. 1. As in case 1, we assume equation (7) or α > β 2. We observe from equation (18), that the demand function has − @ as the effective sensitivity for modularity. It is fair to assume that sensitivity for modularity is never negative, or ≥ @ (25) 58 Lemma 2: All the decision variables as well as the optimal demand and profit have positive values when 4 + @ > −@ Proof: The Hessian matrix is H=F −2 −@ −@ G −2 − 2 @ To ensure that profit has a local maximum the Hessian matrix needs to be negative semi definite. A matrix is negative semi definite when its leading principal minors of different orders alternate in sign starting with negative (Winston, 1993). Hence the leading principal minor of order 2 needs to be positive. Hence, we obtain 4 + @ > −@ (26) Using Equation (26) as well as above boundary conditions, the numerators and denominators in Equations (20), (21), (23), and (24) are all positives. We also assumed that maximum value of m is X/Y. Hence, ∗ ') = *%#1.BA%# ",$%#B( &,A( 1% -#.A 0 , &,A( 0 < B A 59 From the above inequality, we obtain the following expressions ? 4 4 + @ ? >2 @ − −@ + @ − > @ 2 +? + 4 ?@ + − +? −@ −@ Above inequality shows, that the numerator of equation (22) is positive. Hence, ∎ ∗ ') is also positive. Proposition 6: In a market where customer demand is such that it is more sensitive to modularity (i.e. higher ), the vendors will be able to charge a higher price, by increasing modularity in the IS application architecture. It will also lead to higher demand and higher profit for the producers. Proof: In order to examine the variation in the optimal decision variables with respect to we differentiate ∗ ') , ∗ ') , ∗ ') and π∗IJ with respect to . We obtain : : : ∗ ') : ∗ ') = 4 2 ?@ + − +? −@ + 4 +4 @ + +2 @ 4 ?@ + − @ ? + @ 2 − 2 + ? 4 + @ − −@ 4 2 ?@ + − +? −@ + 4 +4 @ + −@ +2 @ 4 ?@ + − @ ? + @ 2 − 2 = 4 + @ − −@ +? −@ 60 : : : : ∗ ') ∗ ') (2( − @ )(2 @(@ − @ + ? ) + 2 ( − +? ) + ( − @ )) + ( + 2 ?@)(4 + 4 @ − ( − @ ) )) = (4 ( + @ ) − ( − @ ) ) = 2 @ @ −@ +? 4 +2 − +? + + @ − −@ −@ ∗ ∗ ') The denominator is always positive as it is a square of an expression. By carefully examining the numerators in all the above four cases, we find that the only way the numerator could be negative in each case if α < or γ < @ or both. According to our boundary conditions, we have α > and γ > @ . Hence, we conclude ∎ ∗ ;+MN ;& > 0, ∗ ;'MN ;& > 0, ∗ ;OMN ;& > 0, and PQ∗RS P& > 0. 61 Figure 2.3: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in sensitivity to modularity. 62 Proposition 7: When modularity and architectural performance are related to each other, the producer’s profit is maximum with respect to both X and Y when ?= 2 − @ + 2 4 − + 4 @ + − −@ In the above case, all the decision variables are equal to their values as in the case where modularity and performance are not related. Proof: By taking the partial derivative of optimal π∗IJ with respect to X, we obtain : = ∗ ') :? 2 − @ + + 4 4 @ + +4 @ −@ + 2? − −@ ∗ ') By taking the partial derivative of optimal : ∗ ') :@ 2 = − + 4 ?@ + 4 @ + − +? −@ 4 −@ + 2? +4 @ − : ∗ ') 2 + −@ + −4 with respect to Y, we obtain − −4 @ + + We observe, : ∗ ') =− ∗ ') We note, as ∗ ') :@ :? is always positive, hence both ∗ ; TMN ;A and ∗ ; TMN opposite signs and if one is zero then the other is zero too. ;B always have 63 We observe using Lemma 2, denominator of P(Q∗RS ) PU is always positive. However, the numerator could be positive, negative or zero depending on the relationship between X and other parameters. We observe, when (",$%)(.A&#-()#*(1.A%#((&,A()) ?< ∗ ) ;(TMN ;B , (1-.%,.&0 ,-( 0 ) >0 ∗ ') That means will increase as X increases. However, when (",$%)(.A&#-()#*(1.A%#((&,A()) ?> , (1-.%,.&0 ,-( 0 ) Which means Hence, ∗ ') 2( − ?= ∗ ') ∗ ) ;(TMN ;B <0 will decrease as X increases. will be maximum with respect to X and Y, when )( @ + 2(4 ) + (4 @ + ( − @ )) − ) − We also find from equations 20-24, for the above value of X, the optimal decision variables become -.(",$%) #*.& ∗ ') = 1 - . %, . & 0 , - ( 0 ∗ ') ∗ ') = = − = ∗ 1* . %# . " &, .$%&, *( 0 = (1 - . %, . &0 , - ( 0 ) ( - "#* &, -$%)( (1 - . % , . &0 , - ( 0 ) = ∗ ∗ 64 ∗ ') ∗ ') ∎ = = .% - ",$% #*&, - 1 - . % , . &0 , - (0 = ∗ 1. ",$% *&#- ",$% #*0 1.%,( 0 1 1 -.%,.&0 ,-( 0 − = ∗ − The above proposition has a very important managerial implication. If a producer set X as above; then optimal values of all the decision variables are independent of both X and Y and have exactly the same form as in case 1. It should also be noted that X and Y are related. So a producer can first determine the independent variable Y (rate of change of s with respect to m) ∗ and can easily determine optimal XIJ . As we shall discuss later, it is not always necessary for the producer to consider case 2. 65 Figure 2.4: Graph showing how modularity (m), performance (s), price (p), demand and profit change with respect to change in maximum architectural performance. The above graph also shows that unlike some other decision variables, increase in total possible architectural performance does not necessarily lead to increase in profit. 66 2.7 Discussions of Results and Implications We discussed the results while we presented them. However, some of the results we obtained have significant managerial implications. In our modeling we assumed two different cases. In case 1, we assumed that there is no relationship between modularity and performance. In case 2, we assumed an inverse relationship between modularity and performance. One of the most significant findings in this essay is that we found a condition where there is no difference in the values of parameters between the above two cases. As the case 2 is more realistic, it has an immense managerial implication. For maximizing profit, if the producer is able to vary both X and Y freely, then the optimal modularity and performance levels are identical to as in case 1 (architectural performance and modularity are unconstrained) and they are independent of X and Y. So it is not necessary for a provider to include X and Y in the modeling, unless it is not feasible to build an application with the optimal performance and modularity levels suggested in case 1; only then case 2 (performance and modularity are related inversely) becomes relevant. In that case, it is possible to estimate X and Y corresponding to feasible maximum modularization and performance levels in the IS application architecture. Although it will be possible to fix X and Y as suggested in proposition 7, however the producer could try to come as close to it as possible. Apart from this valuable insight, we also described how 67 optimal values change with respect to change in different values in parameter. The importance of cloud computing in the IS area is now well established. This essay is an attempt towards understanding the phenomena from an economics perspective without making any simplistic assumption. We built a robust economic model of cloud computing and this model could be extended in many different ways. First, in our model we included two very important non-functional attributes which could be easily operationalized for future research. Second, we introduced the concept of two dimensional performance – architectural and operational. Third, we recognized the service aspect of a SaaS application by including marginal cost in our model. Fourth, we uncovered the important roles modularity and architectural performance play in a SaaS application architecture design and their relationship with the profit of a SaaS provider. It has been suggested that there is an inverse relationship between modularity and performance (Clark, 1982). We analyzed two cases; we assumed in the first case that modularity and architectural performance are independent of each other and in the second case modularity and architectural performance are inversely related. We compared the results from both the cases and we observed that in most cases for determining optimal values of the decision 68 variables it is not necessary to consider the relationship between modularity and architectural performance. 2.8 Limitations Although our models are more realistic as we do not ignore the service aspect of cloud computing, as in every research we have several limitations. First, we have not accounted completely the pricing structure of a service. Instead, we amortized the pricing over the lifetime of the product. Second, we only focused on the architectural performance that is relevant only to the architecture of our application. We excluded the effect of operational performance during the delivery or functional phase of the service. Third, we also did not account for competition in the market place. Fourth, we considered a linear demand function and it may not be very realistic. 2.9 Future Directions This research could be extended in many different ways. First, some of the limitations discussed in previous section could be addressed in the extended model. Second, it will be interesting to investigate when there is more than one producer in the marketplace how does it affect profit maximization. Third, another way to extend this research will be to consider the effect of 69 complimentary services. Fourth, operational performance could be included in the model. 70 Chapter 3: Essay Two - Demand Planning for Cloud Computing: Effect of Random Variation in Demand 3.1 Introduction In the previous chapters we uncovered many differences between a traditional IS application and a cloud enabled IS applications. We noted that traditional IS applications were customized products that were developed to solve a specific business problem for an organization. On the other hand, cloud computing enabled IS applications are a combination of (not customized) product and service. One of the main differences between a traditional IS application and a cloud enabled IS applications is how the users use it. Traditionally, the responsibilities of IS application developers are to uncover requirements for the proposed IS application and based on those requirements to develop the IS application; users are responsible for building the IT infrastructure and then to install and maintain the IS applications. In the context of cloud computing, the developers are also responsible for building the IT infrastructure and for installing and maintaining the IS application. In most cases it is consumers’ responsibility to arrange for hardware and other infrastructure. Hence in cloud computing, it is important to recognize the service aspect of IS applications (Demirkan H. , 2008; Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010; Demirkan, Kauffman, Vayghan, Fill, Karagiannis, & Maglio, 2008). 71 However there is a paucity of research in service science in general and we are not aware of any specific research in the IS area that focuses on the service perspective of an IS application. Before the advent of cloud computing it was not necessary to consider demand planning for software vendors, as installation of infrastructure and day to day maintenance of IS applications were the responsibilities of consumers. Hence, demand planning was not important during the development of an IS application and researchers did not pay much attention to this topic in the context of IS applications. This work is an attempt to fill the void in this area. Here, we study how a SaaS application provider will determine the capacity of the IT infrastructure that needs to be planned for providing services at acceptable level to the users. 3.2 Motivation and Research Questions During our previous discussions, we noted that one of the fundamental differences between a traditional IS application and a Cloud computing solution such as a SaaS application is that the latter is a combination of product and service. In the literature, there is some confusion in how product is defined. The words products and goods are often used interchangeably; however in the marketing literature product is defined as a combination of goods and services (Scheuing, 1989). We consider products 72 and goods as same. In order to plan for the capacity of the IT infrastructure for a SaaS application we look into the literature for both products and services and we first identify the key differences between a product and a service that is relevant for our specific problem. Goods could be defined as “tangible economic products that are capable of being seen touched and may or may not be tasted, heard or smelled” (Rathmell, 1966, p. 32). Service is defined as a relationship between a producer and a consumer that creates and captures value and where the consumer participates actively (Gadrey, 2000; IBM; Fitzsimmons & Fitzsimmons, 2004). In other words, in the case of services, the consumers could be considered as co-producers. Another important characteristic of service is simultaneity of production and consumption or in other words, production and consumption of services occur at the same time. For products, consumers can wait to receive products and products could be produced and stored in an inventory, however for a service storage is not an option (Menor, Tatikonda, & Sampson, 2002; Rust & Chung, 2006). Hence, it is necessary for SaaS application providers to build IT infrastructure of appropriate capacity so that they are able to provide the service to the consumers. This brings up an additional challenge for SaaS application providers; they have to plan and make arrangements for infrastructure during development of SaaS applications in addition to deciding on optimal pricing. 73 Although capacity planning could involve many issues (Menasce & Ngo, 2009); we posit that demand planning will be one of those. Although demand could be predicted on the basis of price and other attributes, it is likely that there could be random variation in demand. So a vendor may face two different scenarios. In the first case, the actual demand is higher than the anticipated demand. In that case, a vendor will not be able to provide service to all the potential customers and will lose potential revenue. It is also possible in that situation potential customers will be forced to obtain service from a competitor and hence the service provider will not only lose the potential additional revenue but also they will lose any chance of future revenue. So we can conclude that it is possible that a vendor’s loss could be even more than just the potential revenue. In the second case, if the demand is lower than the anticipated demand, the service provider will not be able use all its capacity and will unnecessarily incur cost for over capacity. Many SaaS providers use cloud infrastructure services for their needs instead of making capital expenditure and purchasing and managing their own hardware. As an example, social networking company FourSquare uses Amazon’s Elastic computing services. Even in that case accurate planning of capacity is important. Amazon provides significant saving to its customers 74 who could predict their need accurately and purchase reserved instances of Amazon’s Elastic computing services. We introduce a term planned capacity. Planned capacity is defined as the capacity a producer should plan for and in most cases that will be different from optimal demand. We uncover the reason behind it. As we discussed earlier, we identified two dimensions of the attribute performance – architectural and operational; operational performance is the performance as observed by a user of a SaaS application (Transaction Processing Performance Council (TPC), 2012). We take an innovative two step approach for accurate prediction of planned capacity. First, we calculate optimal price and optimal demand using profit maximization model for producers. Second, we model a stochastic profit maximization problem where demand follows a certain probability distribution function; we assume that the mean of such probability distribution is equal to the optimal demand that we obtained from the previous step. We assume that there is no change in price because of random variation in demand, and the producers will charge the optimal price that was obtained in previous step. We then investigate how the planned capacity changes under various circumstances. We specifically focus on the following research questions. 75 1. How planned capacity (to be provisioned by a cloud computing application provider) would change from random variation in demand, when the random variation is small with respect to optimal demand? 2. How planned capacity depends on different strategies used by a SaaS application provider? 3. How planned capacity is related to operational performance of the service? The rest of the essay is organized in the following way. In the next section we present a review of relevant literature. We then formulate our model for prediction of planned demand, followed by presentation of results of theoretical analysis. The last section discusses the results and presents possible future work in the area. 3.3 Literature Review In the first essay we discussed in detail the importance of service component in a cloud computing application. The importance of demand planning in a cloud computing application arises from its service perspective. It is possible to delay a product shipment if there are too many orders, if it is acceptable to the consumers. However, for a service, a delay is not feasible and lower capacity could bring up many negative consequences. 76 Academic research in the general area of service management started a long time ago (Rathmell, 1966). However, because of numerous technological innovations service management has gone through a paradigm shift. Service always used to involve human interaction; however inventions such as selfservice kiosk in the airports have changed that (Bitner & Brown, 2006). Spohrer et al discussed that the service science area lacks standards; they also discussed some of the important ideas that could lead to a theory of service systems (Spohrer, Maglio, Bailey, & Gruhl, 2007). Parasuraman et al introduced a scale for assessing quality of electronic service (Parasuraman, Zeithaml, & Malhotra, 2005). Rust and Chung discussed the importance of development of service models which could help efficient management of services (Rust & Chung, 2006). Maglio and Spohrer emphasized that servicedominant logic should be the philosophical basis of service science (Maglio & Spohrer, 2008). The research in development of service on the other hand is rare; there are only a few works that discusses development of service in the context of IS. Never the less, the issue of service orientation has become very important in the IS area because of Service Oriented Architecture (MAS Research Roadmap Project, 2005). Cowell opined that although most of the western economy is service based, New Service Development (NSD) has been neglected in the literature (Cowell, 1988). According to Menor et al “Until 77 recently, the generally accepted principle behind NSD was that “new services happen” rather than occurring through formal development processes” (Menor, Tatikonda, & Sampson, 2002, p. 136). Magnusson et al observed that user involvement during service innovation is beneficial (Magnusson, Matthing, & Kristensson, 2003). Bolton et al investigated maintenance of business-to-business service relationship (Bolton, Smith, & Wagner, 2003). Hull investigated whether concurrent product development method is also applicable to services development. He found that service development could also benefit from the concurrent product development method model (Hull, 2004). Heim and Sinha presented a taxonomic analysis of Electronic Food Retailers (Heim & Sinha, 2002; Heim & Sinha, 2005). Capacity planning has also been investigated in telecommunications area. Advent of IS based planning system made it possible to achieve productivity improvement from efficient capacity panning. Smunt investigated efficacy of learning curve analysis for capacity planning (Smunt, 1996). Laguna developed an Excel based decision support system for telecommunication providers to help them plan for expansion (Laguna, 1998). Papazoglou and den Heuvel introduced a web services management framework that included capacity planning (Papazoglou & den Heuvel, 2005). Ueno and Tatsubori emphasized the need for capacity planning for IS applications built using SOA architecture during early stages of system development lifecycle; they 78 investigated capacity planning of an Enterprise Service Bus in a web services based IS application (Ueno & Tatsubori, 2009). Zhang et al investigated capacity issues while modeling price competition between two web services based application providers (Zhang, Tan, & Dey, 2009). Li and Lee investigated capacity planning in the context of pricing of peer-produced services for online communities (Li & Lee, 2010). 3.4 Model Formulation As mentioned in the previous section, we model the problem in two steps. In the first step, we need to determine the demand level where the producer should set their initial demand forecast. In this step, we assume that there is no uncertainty in the demand. We first model our demand function. We assume a monopolist vendor and we consider a fixed period during which the IS application is being offered. Consistent with the literature, we assume that operational performance has positive effects on demand. We assume a linear demand function and we include the sensitivity of demand related to price and operational performance d=α–βp+ Y where p is price of the SaaS application amortized over its lifetime, o is the operational performance level of the SaaS application. (1) 79 α is primary demand due to functional attributes of the SaaS application and other non-functional attributes such as quality (except operational performance), brand image, performance, general economic fact that are outside the scope of this essay. β represents price sensitivity of the demand, represents increase in demand from increase in operational performance. α, β, and γ are assumed to be greater than zero. Our next step is to formulate the cost function. Our cost consists of three parts i.e. fixed cost, maintenance cost amortized over the lifetime of the service, and marginal cost per product also amortized over the lifetime of the product. We assume that fixed cost arising from increased operational performance to be a quadratic function of operational performance (o). This is in line with the standard practice in the IS literature; fixed costs incurred to improve quality of a product is a convex function of the slope of product improvement curve (Choudhary, 2007). We assume that cost (C1) consists of fixed as well as the variable maintenance cost amortized over the lifetime of the service. Therefore C1 can be expressed as: = + Y (2) Where, A is the fixed cost arising from factors other than operational performance and it also includes general amortized maintenance cost over the lifetime of the product, D is the parameter related to operational 80 performance during initial setup of the service that cannot be changed very easily. As an example, in order to improve performance it is possible to increase capacity of the servers and the underlying hardware could be replaced. However, other infrastructure such as the room where the servers would be installed cannot be changed easily. Unlike a traditional software vendor, a cloud computing application provider will also incur marginal cost for providing services. This marginal cost (C2) will include both the cost for setting up infrastructure such as hardware, software as well as the amortized cost for providing the service. We further introduce a scaling factor ω (ω < 1); and we assume that ω Z represents the amortized infrastructure cost necessary for setting up the service; (1- ω) Z represents the variable cost, per unit of service offered. We assume that service is being set up for a capacity d and we also assume that the actual demand is also d. However we shall show later that depending on the variation in demand, the first part will remain unchanged whereas second part will change. Also the random demand could be less than planned capacity; however if it is larger than the planned capacity then the providers will not be able to meet the total demand. We assume that d is not greater than the planned capacity and we obtain the following equation. = Z + (1 − Z) = (3) 81 where d is the number of instances that could be serviced by the vendor or in other words the demand subject to the constraint as discussed above, and Z is the marginal cost per application amortized over the lifetime of the product. Adding (2), and (3), our total cost function can be expressed as: = + Y + (4) Profit for a producer = could be represented as: − Using (1) and (5), the above profit can be rewritten as: = – + Y − − + Y (5) Boundary Condition: We assume the boundary condition that Primary demand of a product greater than product of marginal cost Z and price sensitivity β or is > In any IS application, it is fair to assume that functional attributes are much more important than non-functional attributes. It is unlikely that importance of non-functional attribute performance will be more than sum of functional attributes and other non-functional attributes (except performance). It is unlikely that a producer will produce a product based on only performance and without any regard to its functionality. We consider a case where performance sensitivity (δ) is close to zero or in other words, the customers 82 do not care about the product’s performance. Following equation (1), we can rewrite the demand function as = − In the above case, it is unlikely that a producer will produce product which does not have a projected positive demand. Hence, we assume that in this simplistic situation also demand should be positive. Hence, we obtain > As Z is the unit marginal cost, it is fair to assume that p must always be greater than Z, since otherwise it does not make sense for a producer to produce any product. As we are modeling the situation during design and production phase, we exclude the possibility of a fire sale. Hence it follows > (6) We shall assume the above boundary condition in our model. 3.5 Theoretical Results In this section, we present our results. Our objective is to find optimal price (p), and architectural performance (o) that will maximize the profit function (5), subject to the boundary condition 6. After making some simplification, we find the optimal values for our decision variables 83 ∗ = Y∗ = .("#$%),$( 0 = 1.%,( 0 ",$% ( . ",$% 1.%,( 0 + (7) (8) 1.%,(0 and that leads to optimum demand ∗ = .% ",$% (9) 1.%,( 0 and to optimum profit ∗ = . ",$% 0 1.%,( 0 − (10) We observe a relationship between optimal demand ( performance ∗ ∗ = = ∗ , price = and ∗ .% \ ∗ O∗ % ( + = . \∗ ( + We also observe a relationship between optimal demand ( ∗ ∗ ∗ − 2 − ∗ and profit ∗ 84 Lemma 1: All the optimal decision variables as well as the optimal demand have positive values when 4 > . Proof: The above condition is derived from the hessian matrix. The Hessian matrix is the second-order partial derivative of the profit function with respect to the variables p and s in the present case. The Hessian matrix H is shown under. H=< −2 −2 = A matrix is negative semi definite when its leading principal minors of different orders alternate in sign, starting with negative for the first leading principal minor of order 1 (Winston, 1993). Hence, we obtain the two following conditions: −2 4 < 0 − >0 The first condition is trivial, since is positive. To ensure that second condition is met, we assume 4 > (11) Assumption of equations (11) along with the boundary condition equation (6) ensures that both numerators and denominators of equations (7), (8) and (9) are positive. ∎ 85 In a world where there is no random variation in demand, a provider of a SaaS application will plan for a capacity that is equal to the optimal demand as shown in equation (8). Such provider will charge the customers an optimal price as given in equation (6). However, in actual cases, demand will include a random component. Next, we examine how the demand uncertainty would impact producer’s profit. We assume that random demand of the product is x, and it is distributed with a probability distribution function (pdf) f(x) and cumulative distribution function (cdf) F(x). We also assume a service provider has planned for a capacity Q instances of the service. If actual demand turns out to be less than the planned capacity Q, the service providers will not get appropriate returns on their investment. On the other hand, if the random demand x is greater than capacity Q, the service providers will miss out on additional profit as they will not be able to serve all the potential customers. We introduce a variable opportunity cost (u) per missed customer into our model. The opportunity cost measures the cost to the service providers when they miss out on making profit because they planned for a lower capacity. If the random demand is x and the planned capacity is Q and where x > Q, we assume that the total opportunity cost will be (x-Q) u. Different strategies could be used for modeling u. The opportunity cost (u) could be considered as the difference between price (p) and total marginal cost (Z). So, we assume u = (p-Z) (12) 86 However, there could be several additional factors that could make above formulation of u inaccurate. Inability to provide service because of lower planned capacity could be detrimental to the interest of a service provider in many different ways. First, the service provider will not be able to earn additional profit and failure to earn additional profit could be formulated as cost. Second, the provider can incur loss of goodwill. As a prospective customer could not be served because of less capacity, it is possible that the customers may decide to go with another producer. In that case, the potential loss to a producer will be much more than (p-Z). In this essay, we assume a very simple formulation for u as given in equation (12). Proposition 1: In a market where customer demand is such that it is subject to small random variation, the optimal capacity Q* a producer should plan for, satisfies the following relationship and in most cases it is different from average demand. ] (^ ∗ ) = 1 − $_ 1.%,( 0 . "#$%# % ` ,( 0 $#` (12) 87 Proof: As we discussed above, we assume that random demand x is distributed with a pdf f(x) and cdf F(x). We assume that the average demand (expectation of demand) is same as optimal demand d* as given in Equation (9). a(b) = d*= .%(",$%) (13) 1.%,( 0 Third, we also assume that random variation in demand is much smaller compared with the actual demand. This assumption is very important and necessary so that we can still use the optimal values of the decision variables we derived, without considering random variation in demand. This assumption is mathematically represented as V(x) << a(b) = d* (14) Assuming random demand x is distributed with a pdf f(x) and cdf F(x), the expected demand E(x) can be calculated as, E(x) = fi b g(b ) b = fi b ( h h Oj(k) Ok ) b Where a and b are the minimum and maximum values the demand variable x can take. We assume that theoretically the lowest and highest demand levels are 0 and infinite; the above expression can be rewritten as 88 l a(b) = fm b g b b = l fm b Oj k Ok b (15) Next, we derive the function for random profit using the random demand x. We have to recognize some constraints that should be included in the model. Let us assume that a vendor has planned for a demand Q and that is different from d*. First, at a maximum, vendors can only sell up to the capacity they have planned for. Second, if the random demand is less than the planned capacity, a vendor will still incur the cost of setting up the infrastructure for the planned demand Q. Hence, a vendor will always incur the cost ZωQ no matter what the random demand x is; however, the other part of the marginal cost is only proportional to the random demand x. We also assume an opportunity cost u. As we discussed earlier, an opportunity cost arises when the demand is greater than the capacity and a vendor could not provide the service because of not having enough capacity. Hence, the random profit of a vendor for a maximum capacity Q could be formulated as ^, b = + ∗ ∗ no ^, b − p qb b − ^, 0 – Z^− 1−Z no ^, b − (16) We note that the first term gives the actual revenue and we have ensured that actual revenue never exceeds p* Q. The second term describes the opportunity cost for lost revenue when x > Q. The third term describes the 89 marginal cost arising for setting up the infrastructure for a capacity Q. The fourth term describes the marginal cost that is only dependent on random demand x and we ensure that we cannot offer service greater than Q. The last term within bracket is the fixed cost of developing the service. In order to find optimal value of Q, many different strategies could be taken. We consider the strategy of profit maximization by the producer. We assume that the producer will try to maximize average profit. We note that there are several other strategies that could be used, such as minimization of cost, minimization of loss of goodwill etc. Keeping Q constant, we can find the expectation of the profit (average profit) using equation (16) as E[ (Q, x)] = u fm b g(b) b + ∗ u ∗ l l ^ fu g(b ) b – p fu (b − ^ ) g (b) b – Z ^ − l (1 − Z) fm b g(b ) b – (1 − Z)^ fu g(b ) b l −( = ∗ + (Y ∗ ) ) fm g (b) b u fm b g (b) b + u ∗ (17) l l ^ fu g(b ) b – p fu (b − ^ ) g (b) b – Z ^ − l (1 − Z) fm b g(b) b − (1 − Z)^ fu g(b) b − ( = ( ∗ u − (1 − Z)) fm b g(b) b + ( l − p v b g (b) b – Z ^ − ( u ∗ + (Y ∗ ) ) l + p − (1 − Z)) ^ fu g(b ) b + (Y ∗ ) ) 90 =( ∗ +p− u 1−Z l −pv b g b m b + fm b g b b − Z^− l We recognize fm b g b + ∗ +p− 1−Z l ^ fu g b b Y∗ b is the expectation of demand or average demand. According to our assumption from equation 13, we have d* = fm b g b l b Next, we simplify the expression of E[ Q, x ] We observe, ∗ +p− l 1−Z ^ fu g b b=- ∗ +p− 1−Z ^ ] ^ − 1 Using integration by parts, we can make the following simplification and we note g b = < ∗ = = = +p− ∗ ∗ ∗ Ok 1−Z +p− +p− +p− Oj k = u vbg b m 1−Z 1−Z 1−Z u vb m b ] b b b wb ] b − v ] b u [^ ] ^ − v ] b m b x u m b ] 91 Therefore the expected profit can be rewritten as a[ ^, b ] = − 1−Z ∗ ^– p ∗ +p− − + 1−Z Y∗ u fm ] b b + ∗ +p− Z − (18) In order to find optimal planned demand Q∗ that will maximize the expected profit, we differentiate E[ O Ou a[ ^, b ] = − ∗ Q, x ] with respect to Q and set it to zero +p− 1−Z ] ^ + ∗ +p− =0 From the above equation we derive a formula for optimal capacity Q* that will maximize the average profit of a producer, ] ^∗ = +∗ #`, $ +∗ #`,$ ] ^∗ = 1 − (19) ,_ $_ +∗ #`,$ ,_ Next, we test the consistency of the above equation. A cdf can only be in a range between 1 and 0. We carefully inspect equation 19. We know all the items are positive and ω is less than 1 and also positive. Hence the numerator is always less than the denominator. That ensures ] ^ ∗ varies between 0 and 1 as it should. also 92 Next, substituting the value of ] (^ ∗ ) = 1 − = 1 − $_ 0y z{|} ~|•0 €y}~•0 #`,$ ∗ from equation (4) yields, ,_ $_ 1.%,( 0 (20) . "#$_%# % ` ,( 0 $_#` From equation we observe that there are only few cases where F(Q*) = .5 or Q* will be same as average demand. In most cases Q* will be different from optimal (average) demand. ∎ Although we could not obtain a closed solution for Q*, we can still obtain some valuable insights from equation (20) by assuming how random demand will be distributed. Lemma 2: As the ratio of marginal infrastructure setup cost to marginal variable cost for providing service _ ,_ increases, the optimal capacity (Q*) decreases if all other parameters remain same. Proof: As the value of ω lies between 1 and 0, we see as ω increases, numerator of _ ,_ increases and denominator of we conclude _ ,_ _ ,_ decreases and _ ,_ increases. So, increases, only when ω increases. From equation (19) we 93 observe, as ω increases the denominator increases and as a result of that ] (^ ∗ ) decreases. Decrease of ] (^ ∗ ) implies decrease of planned optimal capacity Q*. 3.6 Numerical Results: In order to get further insight into the equation 20 that shows a relationship between optimal capacity Q* and other parameters we solve the equation numerically. We assume that the random demand x is normally distributed with a mean d* and standard deviation v d*, where v is a positive number much less than 1. In order to calculate, optimal capacity it is necessary to calculate inverse of cumulative distribution function. We use the algorithm based on the algorithm suggested by Marsaglia (Marsaglia, 2004). The source code is in the appendix. 94 Figure 3.1: Graph showing the relationship between optimal capacity (Q) and ω The relationship between ω and optimal capacity (Q) is shown above. We observe as ω increases optimal capacity decreases. However, in this case optimal capacity is always greater than optimal demand as shown by the red line. We keep the variance fixed at 1%, 5% and 10%. It shows for lower ω, optimal capacity changes with variance significantly. However, in all cases optimal capacity is greater than optimal demand (shown by the straight black line). 95 Next, we study the relationship between capacity and average profit and standard deviation of average profit. We set the variance in demand at 10%. We set ω at .3. As the capacity increases, the average profit first increases and then decreases. The average profit is maximum, when the capacity is equal to optimal capacity. However the standard deviation of profit keeps on increasing with increase of capacity. Figure 3.2: Graph showing the relationship between Average profit and Standard deviation of profit with respect to capacity 96 3.7 Discussions We obtained important some important managerial implications from the above results. First, we uncovered that a SaaS application provider should always plan for a capacity which is greater than average demand in all cases. Second, we observed that as the ratio of cost of setting up infrastructure to variable cost for providing service increases the providers should plan for lower capacity. Third, we observed as a provider increases the planned capacity, the standard deviation of the average profit increases. 3.8 Limitations: Some the limitations of this model are described here. First, in this model we have assumed that average demand is equal to the optimal demand. Although probably our assumption is correct, we have not offered any proof. Second, we have not fully developed the construct operational performance. In our model, we have not included any direct relationship between operational performance, random demand and capacity. However, we know that is not the case. For a fixed capacity decrease in random demand will lead to increase in operational performance. Third, we have used a single optimal value for operational performance. However, for most services the 97 providers offer different levels of performance and charge accordingly. Our model does not address that. Fourth, our model does not include that there could be more than one producers. We are sure that will have significant effect on capacity planning. Fifth, we have only showed numerical results where the random demand is normally distributed. Although normal distribution is probably the most appropriate one to use, we have not offered any support for that. Sixth, we formulated opportunity cost simplistically. 3.9 Conclusions and Contributions: We recognized the service aspect of cloud computing. Unlike traditional products a service, cannot be stored in an inventory. Hence, the capacity planning is especially important in this context. We introduced a very innovative way of modeling services for the purpose of capacity planning. However, this is only a start. We discuss in the next section how this could be expanded. We envisage that using this approach many important managerial insights could be uncovered. We also showed a few important results. First, we clearly showed that in most cases optimal capacity is different from optimal demand. Second, for different parameters we showed the change of their effects on planned capacity analytically and numerically. Third, using numerical simulation we showed the consistency of our findings. 98 3.10 Future Directions As we alluded to earlier this work could be extended in many different ways. 1. We took a very simplistic approach for coming up with random variation in demand. In order to make the model more realistic, it is necessary to introduce a concept of customers and each customer will have random variation in demand. That will give a more realistic and accurate picture. 2. We looked at operational performance as an abstract attribute. However, operational performance could be operationalized as transactions during a time fixed period. That will enable us to clearly model a relationship between performance and capacity. Hence, it should be investigated how increased capacity could lead to increase operational performance and increased profit. We completely neglected that in our model. 3. We also did not consider any tolerance in our demand. So our assumption is either a provider can provide a service or not. That is definitely not realistic. 99 Chapter 4: Essay Three - A Financial Risk Model for Cloud Computing 4.1 Introduction: Most business decisions are made based on incomplete information and on assumptions which may not be accurate; as a result it is uncertain whether expected outcome will be achieved. In most cases, not achieving expected outcome could be considered a loss and hence it is fair to say that most decisions involve risk. A cloud computing application provider is required to make many different decisions based on incomplete information during different phases of the product lifecycle such as price of the application, the infrastructure capacity, software architecture etc. Unlike other Information Systems (IS) applications, a cloud computing application is a mix of product and service and as a result of that vendors need to make more complex decisions and they have more responsibilities. As an example, it is essential for a vendor to make provisions for offering applications in such a way that the infrastructure is used efficiently and at the same time all the demands are met or in other words the vendors do not incur a stock out cost; in this essay we model the cost arising from stock out as opportunity cost. Hence, it follows that a cloud computing application provider has to take financial risk while making decision on capital investment of IT infrastructure. In addition to that, in the 100 literature it has been observed that IT investments in general are riskier than other capital investments (Dewan, Shi, & Gurbaxani, 2007). In this essay we develop a mathematical model that will enable cloud computing application providers to make decisions on capacity planning based on their risk tolerance. Study of security and risk analysis in the IS area has a long history. The IS risk management takes an asset based approach and mainly focuses on risk emanating from data asset based on CIA Triangle and McCumber cube (National Security Telecommunications and Information Systems Security Committee, 1994) by identifying the vulnerabilities. Data Confidentiality model such as Bell-LaPadula security model was introduced in the early 1970s. Data Integrity models such as Biba Security models were introduced in late 1970 and Clark-Wilson Security model was introduced in the 1980s (Conklin, White, Williams, Davis, & Cothren, 2010). However, the risk in IS literature has mostly been studied by focusing on risk from security vulnerability or on risk associated during development of IS applications. These models only provide technical roadmaps for minimizing risks and these models cannot be used for estimating financial risks for cloud computing provider. For quantifying risks in the IS area, cost benefit analysis is the most popular methodology (Whitman & Mattord, 2009). The cost benefit analysis gives a vague guidance whether or not to install a control; it does not offer any 101 customized guidance based on the risk tolerance of an application provider. Hence, it is fair to conclude that no comprehensive model for IS risk analysis is available (Alter & Sherer, 2004; Yue, Çakanyıldırım, Ryu, & Liu, 2007). In the finance area, Modern Portfolio theory offers a clear roadmap for minimizing financial risk taking into account risk tolerance (Markowitz, 1959). We posit that in order to solve the capacity planning problem, as a first step it is necessary to follow the risk management process and uncover the risks involved in the capacity planning process. We describe the risk management process in the following section. However, traditional risk management process needs to be modified in the cost benefit analysis phase by introducing risk tolerance concepts. We take the perspective of application developers and service providers. In this essay, we provide a framework that will help us study the following specific issues. 1. The effect of financial risk tolerance of SaaS application providers on capacity and price of the service. 2. The mediating effect of financial risk tolerance of cloud computing application providers on the relationship between different decision variables such as optimal capacity, optimal price etc. 3. The effect of modularity in software architecture on risk. The rest of the essay is organized in the following way. In the next section, first we provide an introduction to the risk management area. Second, we do 102 a comprehensive review of relevant literature. Third, we develop theoretical financial risk model. Fourth, we numerically solve the financial risk model and present the results. Fifth, we discuss conclusions and finally we discuss possible extensions and contributions. 4.2 Introduction to Risk Management Risk is defined as “potential harm that may arise from a future event, which may accrue either from incurring a cost ("downside risk") or by failing to attain some benefit ("upside risk")” (Wikipedia.org; Conklin, White, Williams, Davis, & Cothren, 2010; Whitman & Mattord, 2009). Risk could be measured using the probability of occurrence of an undesirable event and possible loss incurred as a consequence of that (Katsikas, 2009). However, measuring risk is difficult and inaccurate in general (Bojanc & Jerman-Blazˇicˇ, 2008). For measurement of risk qualitative, quantitative or a hybrid of both approaches could be taken. Specifically, quantitative evaluation of risk is more difficult (Bodin, Gordon, & Loeb, 2008). However quantitative assessment of risks is easier to interpret (Bashir & Christin, 2008). Risk management is the complete decision making process which involves clearly identifying and possibly quantifying risks, identifying possible risk mitigation techniques and analyzing efficacy of those techniques (Peltier, 2005; Conklin, White, Williams, Davis, & Cothren, 2010). The main theme of IS risk management area has been security of data and vulnerabilities in an 103 IS application emanating from data insecurity. The most popular methodology is cost benefit analysis (CBA). The IS risk management takes an asset based approach and mainly focuses on risk emanating from data asset based on CIA Triangle and McCumber cube (National Security Telecommunications and Information Systems Security Committee, 1994) by identifying the vulnerabilities. Next appropriate controls are identified that could eliminate or mitigate the risk. Finally, using cost-benefit analysis decisions are made whether or not to install the controls identified above and then monitoring is necessary to ensure that the process is working fine. The above phases are described below in detail (Bandyopadhyay, Mykytyn, & Mykytyn, 1999; Landoll, 2006; Mead, et al., 2009): 1. Risk identification: This is the first phase in the risk management. First, assets and important business processes are identified, classified and prioritized. Second possible threats to the assets are identified. Third, vulnerabilities in the assets are uncovered. Finally, possible impacts to the assets are identified when a threat is able to use the vulnerabilities in the asset and is able to successfully attack the asset. 2. Risk assessment: This phase involves quantifying risks using some metrics, prioritizing the risks and identifying the appropriate control methods. Both quantitative and qualitative approaches could be taken. 104 3. Risk analysis: This phase involves doing cost analysis of the possible controls using cost benefit analysis (CBA). The CBA involves estimating and quantifying the risks faced by an organization from business impacts of attacks, the probability of occurrence of attacks that could result from the vulnerabilities which were identified in the previous phase and how the proposed controls could reduce the possible loss and the cost of proposed control (Whitman & Mattord, 2009). Based on the results of cost benefit analysis (CBA) a final decision is made whether or not to implement the control. 4. Risk mitigation: This phase involves installation of appropriate controls for risk reduction as identified during CBA. 5. Risk monitoring: Finally this is the maintenance phase. Here appropriate data is collected and analyzed to ensure that the controls are meeting expectations and the initial assumptions made during CBA were accurate. If they are not then appropriate changes are made by identifying and analyzing the vulnerabilities. It has also been noted that the above phases usually contain many atomic processes (Stoneburner, Goguen, & Feringa, 2002; Gregory, 2010). CERT has developed a framework for efficient risk assessment named Operationally Critical Threat, Asset, and Vulnerability Evaluation (OCTAVE) (Alberts & Dorofee, 2001). This framework was updated in 2007 and that was named OCTAVE Allegro (Caralli, Stevens, Young, & Wilson, 2007). 105 4.3 Literature Review Risk management has been studied extensively in finance literature using different techniques (Focardi & Jonas, 1998) such as option pricing model, Modern Portfolio Theory (MPT) based on Markowitz’s mean variance analysis model (Markowitz, 1959). Although in recent years many concerns have been raised about the validity of the mean variance analysis model (Taleb, Goldstein, & Spitznagel, 2009), it is still used extensively in finance for risk management. In the Decision Science literature, risk is viewed as the probability distribution of outcomes both positive and negative; it has been suggested that for building systems which could help managers in risk management the concepts of Bayesian networks could be used (Miller, 2004). Markowitz’s mean variance analysis model has also been used in the operation research area (Wu, Li, Wang, & Cheng, 2009). Yue et al studied the effect of system interdependence and layered protection strategies for IT security risk management (Yue, Çakanyıldırım, Ryu, & Liu, 2007). Researchers in the IS area still use cost benefit analysis extensively during risk analysis (Arora, Hall, Pinto, Ramsey, & Telang, 2004), it has been observed that in many cases the traditional cost-benefit analysis based risk management is not adequate for making risk related decisions. Wang et al argued that use of traditional methods such as annual loss expectancy during cost benefit analysis could overlook important trends and they suggested use 106 of value-at-risk approach (Wang, Chaudhury, & Rao, 2008). Alternative methods such as use of option pricing models (Taudes, Feurstein, & Mild, 2000; Dewan, Shi, & Gurbaxani, 2007) or of Markowitz’s mean variance analysis model (Wu & Ong, 2008), both adopted from the finance area have been found to be more effective. 4.4 Capacity Planning Framework: We summarized the risk management process in section 4.2. As a first step towards capacity planning we need to follow those steps. 1. Risk identification in capacity planning: For this particular case, it is necessary to first uncover the risks which are involved in capacity planning. The two main risks are over capacity where a vendor plans for too much capacity and the infrastructure remains under-utilized and too little capacity where a vendor is unable to serve all the potential customers. In both cases, there could be many other factors in play such as dependence on another SaaS application, other security vulnerabilities etc. Those issues currently are out of the scope of this essay and we only focus on over or under capacity. 2. Risk assessment in capacity planning: This phase involves quantifying risks using some metrics. For over-capacity the additional cost incurred for excess capacity could be considered as potential loss. However, there may be many other factors which need to be considered. In some cases it may not be possible to plan for a very 107 specific amount. As an example, the servers come in specific sizes. It is not possible to purchase 1.5 servers. The same issues exist for under capacity. In this essay, we estimate under capacity as opportunity cost. How the opportunity cost is defined could depend on other risks also. It is also possible that some risks could be mitigated by planning for over capacity. 3. Risk analysis in capacity planning: This phase needs most modification and this is the main focus of our essay. We propose a quantitative analysis that includes risk tolerance. 4. Risk mitigation in capacity planning: This phase is pretty straight forward. This involves implementing the decisions made in previous phase. In our case, it involves installation of hardware application that measures actual usage levels etc. 5. Risk monitoring: The monitoring phase in capacity planning involves monitoring whether the decisions made regarding capacity need any further modification. 4.5 Modularity and Model Formulation 4.5.1 Modularity 108 Recently, there has been an immense shift in the architecture of data centers. In order to be competitive, organizations are introducing modularity into data center architecture. We recognize that, this phenomenon is very relevant to our case. As an example, IBM has developed a family of portable modular data center. It offers comprehensive data center assessment, design, build, and relocation services to meet the unique needs of any organization. It allows company to easily expand existing data-processing capability in remote or temporary environments. It also enables improved performance, higher density computing and greater cost-efficiency. It is vendor neutral and tries to minimize risk the customers will face because of technology obsolescence. So it is easy to see, by introducing modularity into data center architecture IBM is able to reduce risks for its customers. We also note capacity planning involves risk. One of the most significant events in the area of cloud computing in recent history was the crash of Amazon’s cloud. Social networking company FourSquare that depends on Amazon for providing service was totally unavailable for a period of time. In a later press release Amazon indicated among others a need to increase its infrastructure capacity to avoid future crashes. The business examples above uncover a few relevant issues. First, it clearly demonstrates that decisions made about capacity planning could be risky. Second, modularity in architecture could lead to lesser risk. In chapter 3, we 109 investigated the relationship between optimal capacity and other decision variable under the condition of maximization of average profit. We observed an interesting trend in figure 3.2. We saw as a producer increases capacity, initially both average profit and standard deviation of profit increases till the capacity is equal to optimal capacity. After that as expected average profit decreases and standard deviation of profit increases. Although optimal capacity leads to the highest average profit that also leads to higher variance in profit and for some service provider higher variance in profit may not be acceptable as they may not like the additional risk. Prior research has shown that introduction of modularity into product architecture leads to higher demand in products. Modularity has also enabled producers to offer mass customized product. Focusing on supply chain management area, Weng showed that modularity in product architecture reduced system cost by employing joint buffer stock for a group of products in a two-echelon distribution system with multiple retailers (Weng, 1999). Similarly, we posit that introducing modularity in architecture will enable a producer to use same module in more than one product and that would lead to reduction invariance in demand. We know if there are two variables X1 and X2 that are normally distributed with mean and standard deviation X1 (• , ‚ ) and X2(• , ‚ ) then the sum of them would be normally distributed as X ((• + • ), ƒ‚ + ‚ . It can be shown that 110 „…†0 # …00 ‡† #‡0 ‡ is less than maximum of ( † , ‡0 …† …0 so it is fair to assume that if we can use same module for more than one product then the total variation of demand will be less than the maximum of original variation of demand in either cases. This theoretical background supports the conclusion found by (Weng, 1999). 4.5.2 Model Formulation If a producer has more than one service offering and if a specific modular component could be used in more than one service then it might be easier to plan for capacity. Variation in demand of one product could be compensated by other product’s variation in demand. A complete discussion of two products is beyond the scope of this essay. However, we shall recognize this specific property of modularity by including a parameter in the random demand function; more modular a service is, the standard deviation of its random demand decreases. Although, we understand this is a little bit simplistic assumption however it will give us important insights. Hence, we posit that modularity in software architecture of an IS application can play a special role in capacity planning. As a first step towards building risk model that includes modularity, we modify our demand function that we used in chapter 3. 111 Consistent with the literature and experiences from industry we assume that modularity has positive effects on demand. Joglekar and Rosenthal observed that use of modularity in software architecture improved outcomes of mainstream product which has added software components (Joglekar & Rosenthal, 2003). Modularity would also support mass customization strategy which allows producers to offer their products to a more diverse group of customers (Dewan, Jing, & Seidmann, 2003). We assume a linear demand function and we include the sensitivity in demand from modularity d=α–βp+γm+ Y (8) where p is price of the SaaS application amortized over its lifetime, m is the modularity level of the SaaS application o is the operational performance level of the SaaS application α is primary demand due to functional attributes of the SaaS application and other non-functional attributes such as quality (except modularity and operational performance), brand image, performance and general economic condition β represents price sensitivity of the demand, γ represents increase in demand from increase in modularity δ represents increase in demand from increase in operational performance 112 α, β, γ and δ are assumed to be greater than zero. Our cost consists of three parts i.e. fixed cost, maintenance cost amortized over the lifetime of the product, and marginal cost per product also amortized over the lifetime of the product. Prior research has shown that modularity in product architecture leads to higher product complexity (Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). Hence we can infer production of modular software will require more production cost for vendors (i.e. higher upfront (fixed) cost). We assumed that fixed cost (C1) arising from increased modularity to be a quadratic function of modularity (m). This is in line with the standard practice in IS literature; fixed costs incurred to improve quality of a product is a convex function of the slope of product improvement curve (Choudhary, 2007). Therefore C1 can be expressed as: = where + + Y (9) is the fixed cost arising from factors other than modularity and performance, C is the parameter related to modularity during design and development of the application, and D is the parameter related to operational performance. Modularity in design also leads to better flexibility in changing products leading to agility (MacCormack, Verganti, & Iansiti, 2001). It was more 113 expensive to maintain a non-modular product compared to a modular product (Banker, Datar, Kemerer, & Zweig, 1993; Bardhan, Demirkan, Kannan, Kauffman, & Sougstad, 2010). We treat maintenance cost (C2) as amortized over the lifetime of the product. Hence, C2 can be expressed as: = where − (10) is the general amortized maintenance cost over the lifetime of the cloud computing application and B is the parameter related to modularity showing the saving in maintenance cost arising from modular design also amortized over the lifetime of the cloud computing application. Unlike a traditional software vendor, a cloud computing application provider will also incur marginal cost for providing services. This marginal cost (C3) will include both the cost (C31) for setting up infrastructure such as hardware, software as well as the cost (C32) for providing the service. We recognize that for setting up infrastructure, a product with higher operational performance is more expensive. We recognize that by C31 = d (G o + ω Z) C32 = d (1- ω) Z where ω (ω < 1) is a scaling factor; and we assume that ω Z represents the infrastructure cost necessary for setting up the service amortized as per 114 capacity and it excludes the additional cost that a provider will incur from higher operational performance; and (1- ω) Z represents the variable cost, both are expressed per unit of services (demand) offered. G m is the increase in setup cost from higher operational performance. We assume that service is being set up for a capacity d and we also assume that the actual demand is d. However we shall show later that depending on the variation in demand, the first part will remain unchanged whereas second part will change. Also the demand could be less than planned demand; however it can never be more than the planned demand. Hence, C3 can be expressed as: C3 = ‰Y+ Z + (1 − Z) = ( + ‰ Y) (11) where d is the number of applications that is being planned, and Z is the marginal cost per application amortized over the lifetime of the product. However, we recognize that d is the projected demand and it will probably be different from actual demand. In that case, there will be a role played by Z. Adding (9), (10), and (11), our total cost function can be expressed as: = where − = + + + Y + ( + ‰ Y) Profit for a producer ( ) could be represented as: = − (12) 115 Using (1) and (5), the above profit can be rewritten as: =( – − + − + + Y + Y − +‰Y (13) Our objective is to find optimal price ( ∗ ), modularity ( ∗ ) , and operational performance(Y ∗ ) that will maximize the above profit function. After making some simplification, we find the optimal values for our decision variables as: ∗ = 2 2 + − ‰ − 2 4 . - ",$% #*& 1-.%,. &0 , - (,Š% 0 = ∗ = Y∗ = + ‰ − − + − −2 + −‰ + ‰ Y∗ 2 + ‰ −‰ + 14 . ",$% &#* 1.%, (,Š% 0 15 - ",$% #*& (,Š% 1-.%,. &0 , - (,Š% 0 16 1-.%,. &0 , - (,Š% 0 and that leads to optimum demand and profit ∗ = ∗ = .% - ",$% #*& (17) 1-.%,. &0 , - (,Š% 0 1-. ",$% 0 #* 1. ",$% &#* 1.%, (,Š% 0 1 1-.%,. &0 , - (,Š% 0 − (18) 116 To ensure profit ( ) has a local maximum the Hessian matrix needs to be negative semi definite. The Hessian matrix H is shown under. −2 5 ‰ + ‰ + −‰ 8 −2 − 2‰ −2 −‰ To ensure that profit has a local maximum the determinants of the Hessian matrix need to be negative semi definite. A matrix is negative semi definite when its leading principal minors of different orders alternate in sign, starting with negative for the first leading principal minor (Winston, 1993). Hence the principal minor of order 3 has to be negative. The only principal minor of order three is the determinant of the matrix itself which is 2 −4 4 + −‰ + > + + , and that leads to the following condition. −‰ (19) We note that producer would plan for demand assuming that they would charge their customers at price as given in equation (14). However, in many cases, demand is not constant. Therefore, in our second step, we examine how the demand uncertainty would impact producer’s profit. Here we assume that random demand of the product is x and it is distributed with a probability 117 distribution function (pdf) f(x) and cumulative distribution function F(x) (cdf). Hence the expected demand E(x) can be calculated as, E(x) = fi b g(b ) b = fi b ( h h Oj(k) Ok ) b Where a and b are the minimum and maximum demand values x can take. We assume that the lowest and highest demand levels are 0 and very large (infinite in mathematical terms); the above expression can be rewritten as l a(b) = fm b g (b ) b = l Oj(k) fm b ( Ok ) b (20) We estimate that expected demand is the optimal demand d* as given in equation (9). a(b) = d* (21) Next, we derive the function for random profit using the random demand x. We have to recognize some constraints that should be included in the model. First, at a maximum, vendors can only sell up to the capacity they have planned. Let us assume that a vendor has planned for a demand Q. On the other hand if the random demand is less than the planned demand Q, a vendor will still incur the cost of setting up the infrastructure for the demand Q. Hence, a vendor will always incur the cost ( Z + ‰ Y ∗ ) Q, no matter what the random demand x is; however, the other part of the marginal cost is only proportional to the random demand x. 118 We also assume an opportunity cost. An opportunity cost arises when the demand is greater than the capacity and a vendor could not provide the service because of not having enough capacity. We assume that the opportunity cost of revenue is u. In terms of exact formulation u could be considered as missed revenue (p-Z). However, there could be several other factors that would determine u such as loss of goodwill. We consider opportunity cost as one of the costs. Hence, the random profit of a vendor for a maximum capacity Q could be formulated as ^, b = ∗ Z min ^, b − no ^, b − p − ∗ + qb b − ^, 0 – ∗ + Y∗ Z + ‰ Y∗ ^ − 1− (22) We note that the first term gives the actual revenue and we have ensured that actual revenue never exceeds p* Q. The second term describes the opportunity cost for lost revenue when x > Q. The third term describes the marginal cost arising for setting up the infrastructure for a planned demand Q. The fourth term describes the marginal cost that is dependent on random demand x. The last term within bracket is the fixed cost for developing the service. 119 We recall that in chapter 3, we obtained an equation for optimal value of Q, by maximizing the average profit. Instead in this case we shall maximize the following expression suggested by Mean Variance Analysis model {a[ (^, ∗ , b ] − ϵ ƒ•[ ^, ∗, b ]} (23) The variance of the profit can be calculated using the following formula •[ ^, ∗ , b ] = a[ ^, ∗ , b ] − a[ ^, ∗ ,b ] (24) In the above case, we maximize average profit subject to a constraint that variation of average profit is less. How much importance we give to the variation in average profit depends on the factor ϵ. We can see if ϵ = 0, then it simplifies to just maximization of average profit. However, we need a starting value for optimal capacity in order to make the numerical simulation process more efficient. Hence, we first find the optimal capacity under the simplified condition when ϵ = 0. In that case, we need to first calculate average profit from equation 22 and then differentiate that with respect to capacity Q and set it to zero or in other words we maximize the average profit. Keeping Q constant, we find the expectation of the profit (average profit) using equation (13) as 120 E[ (Q,d*, x)] = ∗ u fm b g(b) b + ∗ l l l ^ fu g (b ) b – p fu (b − ^ ) g(b) b – ( Z + l ‰ Y ∗ ) ^ fm g(b ) b − (1 − Z) fm b g(b ) b − ( l (Y ∗ ) ) fm g(b ) b = ∗ − ∗ + ( ∗ ) + (25) u v b g(b) b + ∗ m l l ^ v g(b) b – p v (b − ^) g(b) b – ( Z + ‰ Y∗ ) ^ u u u l − (1 − Z) v b g (b) b − (1 − Z) ^ v g(b ) b = ∗ −( u fm b g(b) b + ( − ∗ l m + ∗ +p− ( ∗ (Y∗ ) ) ) + u l (1 − Z)) ^ fu g(b) b – p fu b g(b ) b – ( Z + ‰ Y∗ ) ^ − (1 − u Z) fm b g(b ) b − ( = ∗ u fm b g(b ) b + ( l − ∗ + ∗ +p− ( ∗ (Y∗ ) ) ) + l u (1 − Z)) ^ fu g(b) b – p fm b g(b) b + p fm b g(b) b – ( Z + ‰ Y ∗ ) ^ − u (1 − Z) fm b g(b) b − ( =( ∗ +p− u (1 − Z)) fm b g(b) b + ( l − ∗ ∗ +p− l + ( ∗ ) + (Y∗ ) ) (1 − Z)) ^ fu g(b) b – p fm b g (b) b − ( Z + ‰ Y ∗ )^ −( ( ∗ ) + (Y∗ ) ) − ∗ + 121 =( ∗ u + p − (1 − Z)) fm b g b Z + ‰ Y∗ ^ − − ∗ + l b + ^ fu g b + ∗ Y∗ b l – p fm b g b b − We observe, l ^ fu g b b = Q 1−] ^ E[ Q,d*, x ] = ∗ +p− 1−Z Z + ‰ Y∗ ^ − u fm b g b − ∗ l We recognize fm b g b + l b + ^ 1 − ] ^ – p fm b g b + ∗ Y∗ b − b is the expectation of demand or average demand. According to our assumption from equation 12, we have l d* = fm b g b b Next, we simplify the expression of E[ Q, x ] Using integration by parts, we can make the following simplification and we note g b = < ∗ = +p− ∗ Oj k Ok 1−Z +p− = u vbg b m 1−Z b = ∗ +p− wb ] b − v ] b b x 1−Z u m u vb ‘ m ] b ’ b b 122 = ∗ +p− u 1−Z ^] ^ − v] b b m Therefore the expected (average) profit can be rewritten as E[ Q, d*, x ] = − Z + Z + ‰ Y∗ ∗ +p− ^– p − ∗ 1−Z − u fm ] b ∗ + b + ∗ ∗ + +p− 1− Y∗ (26) In order to find optimal planned demand Q∗ that will maximize the expected profit, we differentiate E[ O Ou a[ ‰ Y∗ ^, , b ] =0 = − Q, x ] with respect to Q and set it to zero ∗ +p− 1−Z ] ^ + ∗ +p− + From the above equation we derive a formula for optimal capacity Q* which will maximize the average profit of a producer, ] ^∗ = +∗ #`, $ #Š \∗ +∗ #`, $ ,_ (27) As we discussed earlier our goal is to include risk in our model; we do so by maximizing the expression given in equation 23. It is difficult to solve the equation analytically; we use numerical simulation. We assume that the demand is distributed normally with a mean as given by optimal demand as in equation 17. We use the optimal capacity calculated using equation 27 as a starting value and we vary the planned capacity around that and we identify the planned capacity when the expression given in equation 23 is maximum. We also note that how much importance we give to the variance is determined by varying ϵ. 123 As we indicated in previous section, one of our main contributions is to introduce risk tolerance in the risk assessment phase. We use Markowitz’s mean variance analysis model for the purpose. Modern Portfolio theory is based on Markowitz’s mean variance analysis model; it is used for choosing a diversified portfolio, and in the model the risk is estimated by standard deviation of return. A specific concern that has been brought up regarding the accuracy of the model’s assumption that the financial return is normally distributed; it has been argued that the assumption is invalid specifically during black swan events (Taleb, Goldstein, & Spitznagel, 2009). However, in our case assumption of normal distribution is realistic as there is evidence that demand does follow normal distribution. We develop a computer program for performing numerical simulation using Java programming language in Eclipse IDE. We assume that demand is normally distributed with a mean optimal demand that we obtained earlier analytically. We approximate variance of the distribution as a percentage of the mean. Next, based on all the parameters we obtain the optimal capacity using equation 27. Equation 27 involves calculation of inverse cumulative distribution function. We use the algorithm suggested by Marsaglia (Marsaglia, 2004). In the simulation, we define a range for the capacity using the optimal capacity. For each capacity, we perform 100,000 simulations with a random 124 demand that is normally distributed as described above. For each trial we calculate the profit using equation 22. Next, we calculate both mean and standard deviation of the profit. Finally for each capacity, we obtain the expression {a [ (^, ∗ , b ] − ϵ ƒ•[ ^, ∗, b ] } and we have named it Av Profit2 in the graphs. We find out the capacity when the above expression is maximum. We also vary ϵ and that represents risk tolerance of the providers. Greater ϵ implies that the providers are more risk averse. 4.6 Results In this section, we first present the results of numerical simulation in a graphical format. 125 Figure 4.1: Graph showing the effect of change in planned capacity on Average profit for risk neutral (red line) and risk averse (blue line) providers and Standard deviation of profit 126 In both the above graphs we show the planned optimal capacity when average profit (indicated by red line) or the average profit factor that takes into account also the risk factor (indicated by blue line). Finally, the green line depicts the standard deviation of actual profit. The main difference between the two graphs is the numerical assumptions of the different constants within the allowed values. We can make the following general conclusions from the above graph. 1. First we note the relationship between planned capacity, average profit and standard deviation of profit. As we increase the planned capacity the average profit first increase and it has a maxima. Then the average profit decreases. However, the standard deviation of the profit consistently increases. It implies that our results are consistent with our expectations. There is an optimal capacity that maximizes the average profit. It is consistent with what we find out through numerical simulation. However, as planned capacity increases the variation in random profit increases consistently. 2. Next, we note that when we introduce a risk aversion factor in the profit the expression depicting average profit with risk averseness factor has a maxima corresponding to the planned optimal capacity that is less than the planned optimal capacity when risk is not considered. So a risk averse provider with generally plan for lesser planned capacity corresponding to the providers who are risk takers. 127 Next, we present how optimal planned capacity changes with ε that signifies risk averseness of a cloud computing provider and ω the ratio of fixed infrastructure cost variable infrastructure cost. Increase of ε signifies a more risk averse provider. Increase of ω implies that providers incur more cost while setting up the infrastructure compared with the variable cost for maintaining the infrastructure. 32 31.5 Optimal Capacity 31 30.5 30 29.5 29 28.5 28 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 ϵ Omega = .2 Omega = .3 Omega = .4 Omega = .5 Omega = .6 Figure 4.2: Graph showing the relationship between optimal capacity and risk averseness factor ε for different values of ω We can make the following general conclusions from the above graph. 128 1. Increase in ϵ (increase in risk averseness) leads to decrease in optimal planned capacity. As a providers become more risk averse they plan for a lower infrastructure capacity. 2. Increase in Z (ratio of fixed infrastructure cost and variable marginal cost) leads to increase in optimal planned capacity. 4.7 Limitations We have identified a few of the limitations. First, in this model we have not included any direct relationship between operational performance, random demand and capacity. We have also assumed that there is no relationship between random demand and operational performance. However, we know that is not the case. For a fixed capacity, decrease in random demand will lead to increase in operational performance in many cases depending on the software architecture. Third, we have used a single optimal value for operational performance. However, for most services the providers offer different levels of performance and charge accordingly. Our model does not address that. Fourth, our model does not include that there could be more than one producers. We are sure that will have significant effect on capacity planning. Fifth, we have only showed numerical results where the random demand is normally distributed. Although normal distribution is probably the most appropriate one to use, we have not offered any support for that. Sixth, we formulated opportunity cost simplistically. 129 4.8 Future research Our research is a preliminary effort where we included the concept of financial risk in the IS area. First, the model needs to be expanded to include a relationship between operational performance, planned capacity and actual demand. It is intuitive to figure out that for a fixed planned capacity as actual demand increases the operational performance decreases. Hence the parameter operational performance needs to be researched more so that we get a more realistic understanding of its impact on other parameters. Second, we assumed that if the actual demand is greater than planned capacity then the provider will not be able to service additional customers. This assumption is unrealistic. There cannot be a sharp cutoff; instead a provider may be able to service the customers however the operational performance will be lower. Third, our random demand needs to be formulated in a better way. We assumed no variation in demand from a user; this assumption is simplistic. The model could be improved by taking into account random variation in demand from a particular user. This will have a considerable impact on the model as it will be unlikely that all the users will have a same demand pattern. This could be modeled pretty easily by representing demands as number of transactions during a particular amount of time. The planned capacity could be operationalized as the number of transactions during a fixed amount of time. This problem could be solved using numerical simulation where each user could be represented in separate threads. Fourth, 130 this research could be extended to a two product problem where each product will share a few modules. In that way effect of modularity on a product could be understood in a better way. 131 Chapter 5: Contributions This dissertation is an effort to understand the phenomenon of cloud computing and the challenges and opportunities that it present to the researchers in the IS area. We believe we obtained many interesting results that will spur more research in the area. Also, practitioners will be able use these models after proper calibration for making decisions regarding pricing, capacity planning etc. Specific contributions have been identified below. 5.1 Research Contributions We believe that the most important contribution of this dissertation is uncovering the changes that are happening from the advent of cloud computing. We identified that as a result of the industrialization of IT, IS applications are changing from customized product (traditional IS applications) to a combination of product and service (cloud computing applications). Hence, it is necessary to include both marginal cost and maintenance cost in a model of cloud computing application; traditional IS applications were considered developmentally intensive products, and marginal costs were not included 132 there (Krishnan & Zhu, 2006). In all three essays, we included both marginal and maintenance costs. We identified another important aspect of cloud computing – capacity planning. As we discussed earlier, this was never an issue in the context of traditional IS application for the application providers. Because of the service aspect, cloud computing providers have to estimate the possible demand and then install the necessary infrastructure for it. Our second and third essays addressed this problem and we developed an analytical model for calculating optimal capacity, using a two-step innovative analytical technique. We observed that a cloud computing application provider needs to make many different decisions based on incomplete information; making decisions which involve taking risks. The third essay addresses this. We developed a model that would help cloud computing application providers make decisions on planned capacity based on their personal financial risk tolerance. We used Markowitz’s mean variance analysis model (Markowitz, 1959) for this purpose. The mean variance analysis model has been used widely in the finance area for a different purpose. Not only IS risk assessment is not a wellresearched area but also most research in IS risk assessment focus on IS security. However, our current focus is entirely different and we focus on risk in profit making of providers. So we make two major contributions here. We 133 use Mean Variance analysis model in IS research. We also introduce a new perspective of risk in IS literature. 5.2 Contributions to Practice We obtained some results that we believe will be important for the practitioners. We recognized the importance of non-functional attributes in the context of cloud computing applications. We identified modularity and performance as two important non-functional attributes. We identified that performance is a two dimensional attribute; it has two parts architectural and operational. We uncovered the role of modularity and architectural performance in the architecture of a cloud computing application. We compared two cases where modularity and architectural performance are independent of each other and they are inversely related. We found that optimal values of each are independent of the fact whether there is a relationship between modularity and architectural performance. We also found that practitioners need to plan for capacity that is greater than the optimal demand. We provided a way for the practitioners to calculate planned optimal capacity. 134 We provided an intuitive way to include risk tolerance in the model. We found out that a risk averse provider will have plan for a capacity that will be less than a risk taking provider. 135 Bibliography Agrawal, M., & Chari, K. (2007, March). Software Effort, Quality, and Cycle Time: A Study of CMM Level 5 Projects. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 33(3), 145-156. Alberts, C. J., & Dorofee, A. J. (2001). OCTAVE Criteria, Version 2.0. Pittsburgh: Networked Systems Survivability Program, Software Engineering Institute, CMU. Alter, S., & Sherer, S. A. (2004). A General, But Readily Adaptable Model of Information System Risk. Communications of AIS, 14(2), 1-28. Amazon.com. (n.d.). Amazon Elastic Compute Cloud (Amazon EC2). Retrieved December 26, 2011, from Amazon.com : http://aws.amazon.com/ec2/ Arora, A., Hall, D., Pinto, C. A., Ramsey, D., & Telang, R. (2004). Measuring the Risk-Based Value of IT Security Solutions. IT Pro, 35-42. Bakos, Y., & Brynjolfsson, E. (1999). Bundling Information Goods: Pricing, Profits, and Efficiency. Management Science, 1613-1630. Baldwin, C. Y., & Clark, K. B. (2000). Design Rules (Vol. 1). The MIT Press. Balsamo, S., Di Marco, A., Inverardi, P., & Simeoni, M. (2004, May). Model-Based Performance Prediction in Software Development: A Survey. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 30(5), 295-310. Bandyopadhyay, K., Mykytyn, P. P., & Mykytyn, K. (1999). A framework for integrated risk management in information technology. Management Decision, 37(5), 437-448. Banker, R. D., Datar, S. M., Kemerer, C. F., & Zweig, D. (1993). Software Complexity and Maintenance Costs. Communications of the ACM, 36(11), 81-94. Bardhan, I. R., Demirkan, H., Kannan, P., Kauffman, R. J., & Sougstad, R. (2010). An Interdisciplinary Perspective on IT Services Management and Service Science. Journal of Management Information Systems, 13-64. Barua, A., Kriebel, C. H., & Mukhopadhyay, T. (1991, September). An Economic Analysis of Strategic Information Technology Investments. MIS Quarterly, 15(3), 313-331. Bashir, A., & Christin, N. (2008). Three Case Studies in Quantitative Information Risk Analysis. Proceedings of the CERT/SEI Business Case Workshop: 136 Making the Business Case for Software Assurance (pp. 77-86). Pittsburgh: CERT/SEI. Bask, A., Lipponen, M., Rajahonka, M., & Tinnila, M. (2010). The concept of modularity: diffusion from manufacturing to service production. Journal of Manufacturing Technology Management, 21(3), 355-375. Benlian, A., Hess, T., & Buxman, P. (2009). Drivers of SaaS - Adoption - An Empirical Study of Different Application Types. Business & Information Systems Engineering, 5, 357-369. Bitner, M. J., & Brown, S. W. (2006). The Evolution and Discovery of Services Science in the Business Schools. COMMUNICATIONS OF THE ACM, 49(7), 73-78. Boehm, B. W., & Sullivan, K. J. (2000). Software economics: a roadmap. Proceedings of the conference on The future of Software engineering (pp. 319–343). ACM Press. Bojanc, R., & Jerman-Blazˇicˇ, B. (2008). An economic modelling approach to information security risk management. International Journal of Information Management, 28, 413–422. Bolton, R. N., Smith, A. K., & Wagner, J. (2003). Striking the Right Balance Designing Service to Enhance Business-to-Business Relationships. Journal of Service Research, 271-291. Booch, G. (1991). Object Oriented Design with Applications. The Benjamin/Cummings Publishing Company, Inc. Booch, G. (1994). Object-Oriented Analysis and Design. Redwood City, California: Benjamin/Cummings. Bush, A. A., Tiwana, A., & Rai, A. (2010). Complementarities Between Product Design Modularity and IT Infrastructure Flexibility in IT-Enabled Supply Chains. IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT, 240-254. Cai, Y. (2006). Modularity in Design: Formal Modeling and Automated Analysis. PhD Thesis, University of Virginia, School of Engineering and Applied Science. Campagnolo, D., & Camuffo, A. (2010). The Concept of Modularity in Management Studies: A Literature Review. International Journal of Management Reviews, 259-283. 137 Capra, E., Francalanci, C., & Merlo, F. (2008). An Empirical Study on the Relationship among Software Design Quality, Development Effort, and Governance in Open Source Projects. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 34(6), 765-782. Caralli, R. A., Stevens, J. F., Young, L. R., & Wilson, W. R. (2007). Introducing OCTAVE Allegro:Improving the Information Security Risk Assessment Process. Pittsburgh: CERT Program, SOFTWARE ENGINEERING INSTITUTE, CMU. Carr, N. (2005). The End of Corporate Computing. MIT SLOAN Management Review, 48(3), pp. 66-73. Chidamber, S. R., & Kemerer, C. F. (1994 йил June). A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20(6), 476493. Choudhary, V. (2007). Comparison of Software Quality Under Perpetual Licensing and Software as a Service. Journal of Management Information Systems, 141-165. Choudhary, V. (2007). Software as a Service: Implications for Investment in Software Development. Proceedings of the 40th Hawaii International Conference on System Sciences. IEEE Computer Society. Chung, L., & Sampaio do Prado Leite, J. C. (2009). On Non-Functional Requirements in Software Engineering. In A. Borgida, V. Chaudhri, P. Giorgini, & E. Yu (Eds.), Conceptual Modeling: Foundations and Applications, LNCS 5600 (pp. 363-379). Springer. Clark, D. D. (1982). MODULARITY AND EFFICIENCY IN PROTOCOL IMPLEMENTATION. MIT, MIT Laboratory for Computer Science. Internet Engineering Task Force. Conklin, W., White, G., Williams, D., Davis, R. L., & Cothren, C. (2010). Principles of Computer Security: CompTIA Secuirty+ and Beyond. McGraw-Hill. Council, T. P. (n.d.). Retrieved 2011 йил 19-July from www.tpc.org Cowell, D. W. (1988). New Service Development. Journal of Marketing Management, 3(3), 266-312. Demirkan, H. (2008). The Servitisation of Processes, Architectures and Technologies. The International Journal of Services Sciences, 1(3/4), 197205. 138 Demirkan, H., Cheng, H. K., & Bandyopadhyay, S. (2010). Coordination Strategies in an SaaS Supply Chain. Journal of Management Information Systems, 26(4), 119-143. Demirkan, H., Kauffman, R. J., Vayghan, J. A., Fill, H.-G., Karagiannis, D., & Maglio, P. (2008). Service-oriented technology and management: Perspectives on research and practice for the coming decade. Electronic Commerece Research and Applications, 7, 356-376. Devaraj, E., Kumar, S., Kavi, T., & Kanth, K. R. (2011). Predicting the software performance during feasibility study. IET Software, 5(2), 201-215. Dewan, R., Jing, B., & Seidmann, A. (2003). Product Customization and Price Competition on the Internet. Management Science, 49(8), 1055-1070. Dewan, S., Shi, C., & Gurbaxani, V. (2007). Investigating the Risk-Return Relationship of Information Technology Investment: Firm-Level Empirical Analysis. Management Science, 53(12), 1829-1842. Diaz, J. C., & Dutt, A. (1992). Experiences with Line Ordered-Nested Block Preconditioning for Non symmetric Systems on the CM-2. Proc. of International Conference on Computer Methods for Partial Differential Equations (IMACS – PDE 7). . Fichman, R. G. (2004). Going Beyond the Dominant Paradigm for Information Technology Innovation Research: Emerging Concepts and Methods. Journal of the Association of Information Systems, 5(8), 314-355. Fitzsimmons, J. A., & Fitzsimmons, M. J. (2004). Service Management Operations Strategy Information Technology. (4, Ed.) McGraw Hill Irwin. Fixson, S. K. (2003). The Multiple Faces of Modularity - A Literature Analysis of a Product Concept for Assembled Hardware Products. University of Michigan, Industrial and Operations Engineering. Ann Arbor: Sebastian Fixson. Fixson, S., & Clark, J. (2002). On the link between modularity and cost-a methodology to assess cost implications of product architecture differences, 2002. IEMC '02. 2002 , vol.1, no., pp. 131- 136 vol. Engineering Management Conference. 1, pp. 131-136. IEEE International. Focardi, S., & Jonas, C. (1998). Risk Management: Framework, Methods, and Practice. New Hope, Pennsylvania.: Frank J. Fabozzi Associates. Fouquet, M., Niedermayer, H., & Carle, G. (2009). Cloud computing for the masses. U-NET '09 Proceedings of the 1st ACM workshop on User- 139 provided networking: challenges and opportunities (pp. 31-36). Rome, Italy: ACM, New York, NY, USA. Gadrey, J. (2000). The Characterization of Goods and Services: An Alternative Approach”, Review of Income and Wealth. Review of Income and Wealth, 46(3), 369-387. Google. (n.d.). Google App Engine - Google Code. Retrieved December 26, 2011, from Google App Engine: http://code.google.com/appengine/ Gregory, P. (2010). CISSP Guide to Security Essentials. Boston: Course Technology. Hanmer, R. S., & Letourneau, J. P. (2003). A Best Practice for Performance Engineering. Bell Labs Technical Journal, 8(3), 75–89. Heim, G. R., & Sinha, K. K. (2002). Service Process Configurations in Electronic Retailing: A Taxonomic Analysis of Electronic Food Retailers. Production and Operations Management, 7(4), 54-74. Heim, G. R., & Sinha, K. K. (2005). Service product Configurations in Electronic Business-to-Consumer Operations. Journal of Service Research, 7(4), 360376. Hosangar, K., Krishnan, R., Chuang, J., & Choudhary, V. (2005). Pricing and Resource Allocation in Caching Services With Multiple Levels of Quality of Service. Management Science, 51(12), 1844-1859. Hull, F. M. (2004). A Composite Model of Product Development Effectiveness: Application to Services. IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT, 51(2), 162-172. IBM. (n.d.). Retrieved May 9, 2011, from http://www.research.ibm.com/ssme/services.shtml Jain, S., & Kannan, P. K. (2002). Pricing of Information Products on Online Servers: Issues, Models, and Analysis. Management Science, 48(9), 1123– 1142. Joglekar, N. R., & Rosenthal, S. R. (2003). Coordination of Design Supply Chains for Bundling Physical and Software Products. The Journal of Product Innovation Management, 374–390. Katsikas, S. (2009). Risk Management. In J. R. Vacca (Ed.), Computer and Information Security Handbook (pp. 606-625). Morgan Kaufmann. 140 Kossmann, D., Kraska, T., & Loesing, S. (2010). An Evaluation of Alternative Architectures for Transaction Processing in the Cloud. SIGMOD’ 10 (pp. 579-590). Indianapolis,Indiana, USA.: ACM. Krishnan, V., & Ulrich, K. T. (2001). Product Development Decisions: A Review of the Literature. Management Science, 47(1), 1-21. Krishnan, V., & Zhu, W. (2006). Designing a Family of Development-Intensive Products. Management Science, 52(6), 813–825. Kumar, A. (2004). Mass Customization: Metrics and Modularity. The International Journal of Flexible Manufacturing Systems, 16, 287–311. Laguna, M. (1998, November). Applying Robust Optimization to Capacity Expansion of one Location in Telecommunications with Demand Uncertainty. Management Science, 44(11), S101-S110. Landoll, D. J. (2006). The Security Risk Assessment Handbook. Boca Raton, Florida: Auerbach Publications. Langlois, R. N., & Garzarelli, G. (2008). Of Hackers and Hairdressers:Modularity and the Organizational Economics of Open-source Collaboration. Industry and Innovation, 15(2), 125-143. Lau-Antonio, K., Yam, R. C., & Tang, E. (2007). The impacts of product modularity on competitive capabilities and performance: An empirical study. Int. J. Production Economics(105), 1-20. Li, Y., & Lee, Y. (2010). Pricing peer-produced services: Quality, capacity, and competition issues. European Journal of Operational Research, 1658-1668. Linthicum, D. S. (2009). Cloud Computing and SOA Convergence in Your Enterprise. Addison-Wesley. MacCormack, A., Rusnak, J., & Baldwin, C. Y. (2006). Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code. Management Science, 52(7), 1015-1030. MacCormack, A., Verganti, R., & Iansiti, M. (2001). Developing Products on "Internet Time": The Anatomy of a Flexible Development Process. Management Science, 47(1), 133-150. Maglio, P. P., & Spohrer, J. (2008). Fundamentals of service science. Journal of the Academy of Marketing Science, 36, 18-20. 141 Magnusson, P. R., Matthing, J., & Kristensson, P. (2003). Managaing User Involvement in Service Innovation. Journal of Service Research, 111-124. Markowitz, H. (1959). Portfolio Selection: Efficient Diversificacation of Investment. New Haven: Yale University Press. Marsaglia, G. (2004, July). Evaluating the Normal Distribution. Journal of Statistical Software, 11(4), 1-11. MAS Research Roadmap Project. (2005). Research Directions for ServiceOriented Multiagent Systems. IEEE INTERNET COMPUTING, 65-70. McConnell, S. (2000 йил January / February). The Best Influences on Software Engineering. IEEE Software, 10-17. Mead, N. R., Allen, J. H., Conklin, W. A., Drommi, A., Harrison, J., Ingalsbe, J., et al. (2009). Making the Business Case for Software Assurance. Pittsburgh: CERT Program, CMU. Mell, P., & Grance, T. (2011). The NIST Definition of Cloud Computing (Draft). Information Technology Laboratory, Computer Security Division. Gaithersburg: National Institute of Standards and Technology. Menasce, D. A., & Ngo, P. (2009). Understanding Cloud Computing: Experimentation and Capacity Planning. Computer Measurement Group Conference, Dallas, TX, Dec. 7-11, 2009. Dallas, TX. Menor, L. J., Tatikonda, M. V., & Sampson, S. E. (2002). New service development: areas for exploitation and exploration. Journal of Operations Management, 20, 135-157. Mens, T., & Tourwe, T. (2004). A Survey of Software Refactoring. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 30(2), 126-139. Miller, M. (2004). Probabilistic Risk Analysis and the concept of Bayesian Networks. Invited Talk. University of Bielefeld. Moorthy, K. S. (1993). Theoretical Modeling in Marketing. Journal of Marketing, 92-106. Nambisan, S., & Wilemon, D. (2000). Software Development and New product Development: Potentials for Cross-Domain Knowledge Sharing. IEEE Transactions on Engineering Management, 47(2), 211-221. National Security Telecommunications and Information Systems Security Committee. (1994). National Training Standard for Information Systems 142 Security Professionals NSTISSI No. 4011. Fort George G. Meade: National Security Agency. NVD Common Vulnerability Scoring System Support v2. (n.d.). Retrieved October 25, 2010, from Nataional Vulnerability Database CVSS Scoring: http://nvd.nist.gov/cvss.cfm Papazoglou, M. P., & den Heuvel, W. V. (2005, NOVEMBER DECEMBER). Web Services Management: A Survey. IEEE INTERNET COMPUTING, 58-64. Parasuraman, A., Zeithaml, V. A., & Malhotra, A. (2005). E-S-Qual A MultipleItem Scale for Assessing Electronic Service Quality. Journal of Service Research, 213-233. Parnas, D. L. (1972). On the criteria to be used in decomposing systems. Communications of the ACM, 15(12), 1053-1058. Parnas, D. L., Clements, P. C., & Weiss, D. M. (1985). The Modular Structure of Complex Systems. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, SE-11(3), 259-266. Pekkarinen, S., & Ulkuniemi, P. (2008). Modularity in developing business services by platform approach. The International Journal of Logistics Management, 19(1), 84-103. Peltier, T. R. (2005). Information Security Risk Analysis. Auerbach Publications. Raju, J. S. (1995). Theoretical models of sales promotions: Contributions, limitations, and a future research agenda. European Journal of Operational Research, 1-17. Rathmell, J. M. (1966). What is meant by Services. Journal of Marketing, 30, 3233. Rust, R. T., & Chung, T. S. (2006). Marketing Models of Service and Relationships. Marketing Science, 25(6), 560-580. Salesforce.com. (n.d.). Force.com Cloud Computing - Programmable User Interface. Retrieved July 11, 2011, from Salesforce.com: http://www.salesforce.com/platform/cloud-platform/programmable-ui.jsp Salesforce.com. (n.d.). Sales Force Automation - Salesforce.com. Retrieved December 26, 2011, from Sales Cloud: http://www.salesforce.com/crm/sales-force-automation/ 143 Sambamurthy, V., Bharadwaj, A., & Grover, V. (2003). Shaping agility through digital options: Reconceptualizing the role of information technology in contemporary firms. MIS Quarterly, 237-264. Scheuing, E. E. (1989). New Product Management. Merril Publishing. Schilling, M. A. (2000). Toward a General Modular Systems Theory and Its Application to Interfirm Product Modularity. The Academy of Management Review, 25(2), 312-334. Smunt, T. E. (1996, August). Rough Cut Capacity Planning in a Learning Environment. IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT, 43(3), 334-341. Sourceforge.net. (n.d.). Metrics 1.3.6. Retrieved December 27, 2011, from Metrics 1.3.6 - Getting started: http://metrics.sourceforge.net/ Spohrer, J., Maglio, P. P., Bailey, J., & Gruhl, D. (2007, January). Steps Toward a Science of Service Systems. Computer, 49(7), 71-77. Sridhar, T. (2011, December 27). Cloud Computing - A Primer - The Internet Protocol Journal, Volume 12, No.3 - Cisco Systems. Retrieved from Cloud Computing - A Primer: http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_123/123_cloud1.html Stoneburner, G., Goguen, A., & Feringa, A. (2002). Risk Management Guide for Information Technology Systems. Gaithersburg, MD 20899-8930: Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology. Susarla, A., Barua, A., & Whinston, A. B. (2009). A Transaction Cost Perspective of the “Software as a Service” Business Model. Journal of Management Information Systems, 26(2), 205-240. Susarla, A., Barua, A., & Whinston, A. B. (2010). Multitask Agency, Modular Architecture, and Task Disaggregation in SaaS. Journal of Management Information Systems, 26(4), 87-117. Taleb, N., Goldstein, D. G., & Spitznagel, M. W. (2009). The Six Mistakes Executives Make In Risk Management. Harvard Business Review, 78-81. Taudes, A., Feurstein, M., & Mild, A. (2000). Options Analysis of Software Platform Decisions: A Case Study. MIS Quarterly, 227-243. 144 Transaction Processing Performance Council (TPC). (2012). TPC Virtual Measurement Single System TPC-VMS. Transaction Processing Performance Council. Transaction Processing Performance Council. (n.d.). TPC-W - HomePage. Retrieved from TPC: http://www.tpc.org/tpcw/default.asp Ueno, K., & Tatsubori, M. (2009, October-December). Early Capacity Testing of an Enterprise Service Bus. International Journal of Web Services Research, 6(4), 30-47. Ulrich, K. (1995). The role of product architecture in the manufacturing firm. Research Policy, 24(3), 419-440. Vaquero, L. M., Rodero-Merion, L., Caceres, J., & Lindner, M. (2009, January). A Break in the Clouds: Towards a Cloud Definition. ACM SIGCOMM Computer Communication Review, 39(1), 50-55. Vitasek, K. (2010, February). Resources & Research: Glossary of Terms. Retrieved May 22, 2010, from Council of Supply Change Management Professionals (CSCMP): http://cscmp.org/digital/glossary/document.pdf Wang, J., Chaudhury, A., & Rao, H. R. (2008). A Value-at-Risk Approach to Information Security Investment. Information Systems Research, 106-120. Wasserman, A. I. (1996, November). Toward a Discipline of Software Engineering. IEEE Software, 23-31. Weng, Z. K. (1999). Risk-pooling over demand uncertainty in the presence of product modularity. Int. J. Production Economics(105), 75-85. Whitman, M. E., & Mattord, H. J. (2009). Principles of Information Security. Boston: Course Technology. Wikipedia. (n.d.). Assembly Line - Wikipedia. Retrieved July 8, 2011, from Wikipedia Web site: http://en.wikipedia.org/wiki/Assembly_line Wikipedia. (n.d.). Software as a service. Retrieved November 18, 2007, from http://en.wikipedia.org/wiki/SaaS Wikipedia.org. (n.d.). Risk. Retrieved June 1, 2010, from Wikipedia: http://en.wikipedia.org/wiki/Risk Winston, W. L. (1993). Operations Research: Applications and Algorithms (3rd Edition ed.). Duxbury Press. 145 Wu, J., Li, J., Wang, S., & Cheng, T. C. (2009). Mean–variance analysis of the newsvendor model with stockout cost. Omega, 37, 724-730. Wu, L.-C., & Ong, C.-S. (2008). Management of information technology investment: A framework based on a Real Options and Mean–Variance theory perspective. Technovation, 28, 122–134. Yoo, Y. (2010, June). Computing in Everyday Life: A Call for Research on Experiential Computing. MIS Quarterly, 34(2), 213-231. Yoo, Y., Henfridsson, O., & Lyytinen, K. (2010). The New Organizing Logic of Digital Innovation: An Agenda for Information Systems Research. Information Systems Research, 21(4), 724-735. Yourdon, Y., & Constantine, L. (1979). Structured Design: Fundamentals of a discipline of computer program and systems design. Prentice Hall. Yue, W. T., Çakanyıldırım, M., Ryu, Y. U., & Liu, D. (2007). Network externalities, layered protection and IT security risk management. Decision Support Systems, 1-16. Zhang, J., & Seidmann, A. (2010). Perpetual Versus Subscription Licensing Under Quality Uncertainty and Network Externality Effects. Journal of Management Information Systems, 27(1), 39-68. Zhang, Z., Tan, Y., & Dey, D. (2009). Price competition with service level guarantee in web services. Decision Support Systems, 47, 93-104. 146 Appendix package omegaSimulation; import java.util.Random; /**************************************************************** ********* * This program was originally developed by Sedgewick * Modified by Abhijit Dutt * The approximation is accurate to absolute error less than 8 * 10^(-16). * Reference: Evaluating the Normal Distribution by George Marsaglia. * http://www.jstatsoft.org/v11/a04/paper * ***************************************************************** ********/ public class Gaussian { // return phi(x) = standard Gaussian pdf public static double phi(double x) { return Math.exp(-x*x / 2) / Math.sqrt(2 * Math.PI); } // return phi(x, mu, signma) = Gaussian pdf with mean mu and stddev sigma public static double phi(double x, double mu, double sigma) { return phi((x - mu) / sigma) / sigma; } // return Phi(z) = standard Gaussian cdf using Taylor approximation public static double Phi(double z) { if (z < -8.0) return 0.0; if (z > 8.0) return 1.0; double sum = 0.0, term = z; for (int i = 3; sum + term != sum; i += 2) { sum = sum + term; term = term * z * z / i; } 147 return 0.5 + sum * phi(z); } // return Phi(z, mu, sigma) = Gaussian cdf with mean mu and stddev sigma public static double Phi(double z, double mu, double sigma) { return Phi((z - mu) / sigma); } // Compute z such that Phi(z) = y via bisection search public static double PhiInverse(double y) { return PhiInverse(y, .00000001, -8, 8); } // bisection search private static double PhiInverse(double y, double delta, double lo, double hi) { double mid = lo + (hi - lo) / 2; if (hi - lo < delta) return mid; if (Phi(mid) > y) return PhiInverse(y, delta, lo, mid); else return PhiInverse(y, delta, mid, hi); } // test client } 148 /**************************************************************** ********* * This program has been originally developed by Abhijit Dutt * This class is used for calculating the optimal parameters * when provider’s risk tolerance is not included. * * ***************************************************************** ********/ package omegaSimulation; import java.awt.Color; import java.io.*; import java.util.*; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; public class mySimulation { final double alpha = 100; final double beta = 3; protected double omega = .05; protected double delta = 1; protected double Z= 20; protected double A = 5; protected double D= 10; protected double demand = 0; protected double capacityPDF = 0; protected double price = 0; 149 protected double opportunity = 0; protected double performance = 0; protected double dataStore [][]; protected ChartHandler myChart = new ChartHandler("My Chart"); protected double variancePercentage; public mySimulation(double var, int numVaribles, int numRows){ dataStore = new double [numVaribles][numRows]; variancePercentage= var; updateParameters(); } public void updateParameters(){ demand = 2*D*beta*(alpha - Z*beta)/(4*D*beta - delta*delta); price = 2*D*(alpha - Z*beta)/(4*D*beta - delta*delta) +Z; performance = delta*delta) ; opportunity = delta*(alpha - Z*beta)/(4*D*beta getPrice() -Z*omega; //opportunity = 0; } public double getDemand(){ return (demand); } public double getCapacityPDF(){ //capacityPDF = 1 - (Z*omega/(price+opportunity)); capacityPDF = (price+opportunity- Z )/(price+opportunityZ*(1-omega) ); return capacityPDF; } 150 public double getPrice(){ return price; } public double getPerformance(){ return performance; } public double getOpportunity(){ return opportunity; } public void printIt(){ //System.out.printf("Demand ", demand); //System.out.printf("Demand: %03D", demand +" price+ " Opportunity:"+opportunity); Price:"+ System.out.println(String.format("Demand: %5.2f Price: %5.2f Opportunity: %5.2f Performance: %5.2f", demand, price, opportunity, performance)); } public double calculateOptimalCapacity(double t_omega){ omega = t_omega; updateParameters(); double mu = getDemand(); double sigma = variancePercentage*mu; double y = getCapacityPDF(); 151 double phi_inv = Gaussian.PhiInverse(y)*sigma+mu; return phi_inv; } public void omegaSimulation(double var, int num, int numSteps){ variancePercentage= var; omega = .35; updateParameters(); for (int i=0; i < numSteps; i++){ double phi_inv = calculateOptimalCapacity(omega); dataStore[0][i] = opportunity; dataStore [num][i] = phi_inv; //System.out.println( "Omega:"+simul.omega + " y"+ PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); PHI- //data.put(i, new Object[] {simul.omega, simul.demand, phi_inv,(simul.demand-phi_inv)}); omega += .05; } } public void opportunitySimulation(double var, int num, int numSteps){ variancePercentage= var; omega = .6; y+ " 152 updateParameters(); opportunity = 0; Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); double incr = (getPrice() -Z*omega)*1.5/numSteps; for (int i=0; i < numSteps; i++){ double phi_inv = calculateOptimalCapacity(omega); dataStore[0][i] = opportunity; dataStore [num][i] = phi_inv; //System.out.println( "Omega:"+simul.omega + " y"+ PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); y+ " PHI- //data.put(i, new Object[] {simul.omega, simul.demand, phi_inv,(simul.demand-phi_inv)}); opportunity += incr; } for (int i=0; i < numSteps; i++){ y"+ y+ " phi_inv)); //System.out.println( "Omega:"+simul.omega + " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu- //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); data.put(i, new Object[] {dataStore[0][i], dataStore[1][i]}); } //excelWriter temp = new excelWriter(); PHI- 153 //temp.writeFile(data, "C:\\Users\\aud18\\Documents\\research\\Dissertation\\Paper2\ \test.xls"); drawChart(data, "Opportunity", 1, new String[] {"Capacity"}); myChart.drawHorizontalLine(demand); myChart.setVisible(true); } public static void main(String[] args) { int numOfSteps = 15; mySimulation simul = new mySimulation(.1, 4, numOfSteps); /* Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); simul.printIt(); simul.omegaSimulation(.01, 1, numOfSteps); simul.omegaSimulation(.05, 2, numOfSteps); simul.omegaSimulation(.1, 3, numOfSteps); //data.put(0, new Object[] {"Omega", "y", "Phi-Inv", "Diff"}); for (int i=0; i < numOfSteps; i++){ y"+ y+ " phi_inv)); //System.out.println( "Omega:"+simul.omega + " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu- //System.out.println(String.format("Omega:%5.2f PHI-INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); data.put(i, new Object[] {simul.dataStore[0][i], simul.dataStore[1][i], simul.dataStore[2][i], simul.dataStore[3][i]}); 154 } //excelWriter temp = new excelWriter(); //temp.writeFile(data, "C:\\Users\\aud18\\Documents\\research\\Dissertation\\Paper2\ \test.xls"); simul.drawChart(data, "Omega", 3, new String[] {"Capacity(Var = .01)", "Capacity(Var = .05)", "Capacity (Var = .1)"}); simul.myChart.drawHorizontalLine(simul.demand); simul.myChart.setVisible(true); */ simul.printIt(); simul.opportunitySimulation(.01, 1, numOfSteps); } public void drawChart(Map <Object, Object[]> inData, String cName, int numDepVariab, String [] seriesName){ Map<Object, Object[]> data; data = inData; Set<Object> keyset = data.keySet(); int rowSize = keyset.size(); //Number of rows int colSize = numDepVariab; System.out.println("Row:"+ rowSize+" Col Size:"+ colSize ); double [] xValues= new double[rowSize]; double [][] yValues= new double[colSize][rowSize]; 155 for (Object key : keyset) { Object [] objArr = data.get(key); xValues[(Integer)(key)] = (Double)objArr[0]; for (int j=1; j < (colSize+1); j++){ yValues[j-1][(Integer)(key)] = (Double)objArr[j]; } } //myChart.populateDataSet("Y", xValues, yValues[0]); for (int i = 0; i < numDepVariab; i++) myChart.populateDataSet(seriesName[i], xValues, yValues[i]); myChart.drawChart(cName); } } 156 /**************************************************************** ********* * This program has been originally developed by Abhijit Dutt * This class is used for performing numerical simulation when * risk is ignored. * ***************************************************************** ********/ package ProfitSimulation; import java.awt.Color; import java.util.Map; import java.util.Random; import java.util.TreeMap; import omegaSimulation.*; public class profitAverage extends mySimulation{ long totalZeroDemand = 0; double fixedCost = 0; double optimalCapacity = 0; double currentCapacity = 0; public final int numTrials=100000; private double sumOfProfit=0; private final Random rand = new Random(); double averageDemandSum =0; public profitAverage(double vPerc){ super(vPerc,10, 10); printIt(); } //Given Random demand calculate profit public double calculateProfit (double r_demand){ double r_profit = price*Math.min(currentCapacity, r_demand) -Z*omega*currentCapacity Math.min(currentCapacity, r_demand)*Z*(1-omega)(A+D*performance*performance) 157 - opportunity *Math.max((r_demandcurrentCapacity), 0); return r_profit; } public double calculateProfitWithoutOpportunity (double r_demand){ double r_profit = price*Math.min(currentCapacity, r_demand) -Z*omega*currentCapacity Math.min(currentCapacity, r_demand)*Z*(1-omega)(A+D*performance*performance); return r_profit; } /** * @param args */ public void simulationCapacity(){ /*Check the logic */ //First calculate the capacity, based on all information //Keep increasing the capacity and check its effect on average //demand //Use the average demand and and generate random demand double avProfit2[]= new double[numTrials]; long k = 10; double sd =0; Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); omega = .3; updateParameters(); optimalCapacity = calculateOptimalCapacity(omega); System.out.printf("Optimal Capacity:%5.2f \n",optimalCapacity); double increment=(2*variancePercentage*demand)*Math.abs(optimalCapacitydemand)/k; //Update Current capacity and it is used for calculating profit currentCapacity = optimalCapacity-(k/2)*increment; 158 for (int i=0; i < k; i++){ sumOfProfit=0; double sumOfProfit2=0; totalZeroDemand = 0; currentCapacity += increment; averageDemandSum =0; long numOfEvents = 0; for (int j =0; j< numTrials;j++){ double randomDemandComp = rand.nextGaussian()*(variancePercentage*demand); double randDemand = demand+ randomDemandComp; if (randDemand> 0){ double randProfit = calculateProfit(randDemand); sumOfProfit += randProfit; averageDemandSum +=randDemand; randProfit = calculateProfitWithoutOpportunity(randDemand); avProfit2[j] = randProfit; numOfEvents++; } } //System.out.println( "Omega:"+simul.omega + " y"+ y+ " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f PHI-INVERSE:%5.2f Diff:%5.2f", omega, phi_inv,(demandphi_inv))); for(int n= 0 ; n<numOfEvents; n++) sumOfProfit2 += avProfit2[n]; double averageProfit = sumOfProfit2/numOfEvents; double sdSum1= 0; for(int n= 0 ; n<numOfEvents; n++){ double temp2 = avProfit2[n]-averageProfit; sdSum1 += temp2*temp2; } sd = Math.pow((sdSum1/(numOfEvents-1)), .5); averageProfit = sumOfProfit/numOfEvents; 159 data.put(i, new Object[] {currentCapacity,averageProfit, sd}); //System.out.println("Average Profit:"+ (sumOfProfit/numTrials)+" Omega:"+omega+ "current cap:"+ currentCapacity+"Average Demand:"+ (averageDemandSum/numTrials)); System.out.println(String.format("Average Profit: %5.2f Current cap: %5.2f Average Demand:%5.2f SD:%5.2f", (sumOfProfit/numTrials),currentCapacity,(averageDemandSum/numTria ls), sd)); } drawChart(data, "Capacity", 2, new String [] {"Average Profit", "SD Profit"}); //drawChart(data, "Capacity", 1, new String [] {"Average Profit"}); myChart.drawVerticalLine(optimalCapacity); //myChart.drawVerticalLine(demand); //myChart.drawHorizontalLine(calculateProfit(demand), Color.green); myChart.setVisible(true); } /* public void simulationVariation(){ //First calculate the capacity, based on all information //Keep increasing the capacity and check its effect on average //demand //Use the average demand and and generate random demand long k = 20; Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); omega = .3; variancePercentage =.01; updateParameters(); optimalCapacity = calculateOptimalCapacity(omega); System.out.printf("Optimal Capacity:%5.2f \n",optimalCapacity); double increment=(2*variancePercentage*demand)*Math.abs(optimalCapacitydemand)/k; currentCapacity = optimalCapacity-(k/2)*increment; 160 for (int i=0; i < k; i++){ optimalCapacity = calculateOptimalCapacity(omega); data.put(i, new Object[] {variancePercentage, optimalCapacity}); variancePercentage +=.01; //System.out.println("Average Profit:"+ (sumOfProfit/numTrials)+" Omega:"+omega+ "current cap:"+ currentCapacity+"Average Demand:"+ (averageDemandSum/numTrials)); //System.out.println(String.format("Average Profit: %5.2f Current cap: %5.2f Average Demand:%5.2f", (sumOfProfit/numTrials),currentCapacity,(averageDemandSum/numTria ls))); } drawChart(data, "Variance", 1, new String [] {"OptimalCapacity"}); myChart.drawHorizontalLine(demand); myChart.setVisible(true); } */ public void simulationCapacityWithVariance(){ /*Check the logic */ //First calculate the capacity, based on all information //Keep increasing the capacity and check its effect on average //demand //Use the average demand and and generate random demand double avProfit2[]= new double[numTrials]; long k = 100; double sd =0; Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); omega = .3; updateParameters(); optimalCapacity = calculateOptimalCapacity(omega); System.out.printf("Optimal Capacity:%5.2f \n",optimalCapacity); double increment=(2*variancePercentage*demand)*Math.abs(optimalCapacitydemand)/k; //Update Current capacity and it is used for calculating profit 161 currentCapacity = optimalCapacity-(k/2)*increment; double highestProfitWithVar = 0; double varOptCapacity = 0; for (int i=0; i < k; i++){ sumOfProfit=0; double sumOfProfit2=0; totalZeroDemand = 0; currentCapacity += increment; averageDemandSum =0; long numOfEvents = 0; for (int j =0; j< numTrials;j++){ double randomDemandComp = rand.nextGaussian()*(variancePercentage*demand); double randDemand = demand+ randomDemandComp; if (randDemand> 0){ double randProfit = calculateProfit(randDemand); sumOfProfit += randProfit; averageDemandSum +=randDemand; //randProfit = calculateProfitWithoutOpportunity(randDemand); avProfit2[j] = randProfit; numOfEvents++; } } //System.out.println( "Omega:"+simul.omega + " y"+ y+ " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f PHI-INVERSE:%5.2f Diff:%5.2f", omega, phi_inv,(demandphi_inv))); for(int n= 0 ; n<numOfEvents; n++) sumOfProfit2 += avProfit2[n]; double averageProfit = sumOfProfit2/numOfEvents; double sdSum1= 0; for(int n= 0 ; n<numOfEvents; n++){ double temp2 = avProfit2[n]-averageProfit; sdSum1 += temp2*temp2; 162 } sd = Math.pow((sdSum1/(numOfEvents-1)), .5); averageProfit = sumOfProfit/numOfEvents; if (highestProfitWithVar < (averageProfit-sd)){ highestProfitWithVar=averageProfit-sd; varOptCapacity = currentCapacity; } data.put(i, new Object[] {currentCapacity,averageProfit, averageProfit-sd, sd}); //System.out.println("Average Profit:"+ (sumOfProfit/numTrials)+" Omega:"+omega+ "current cap:"+ currentCapacity+"Average Demand:"+ (averageDemandSum/numTrials)); System.out.println(String.format("Average Profit: %5.2f Current cap: %5.2f Average Demand:%5.2f SD:%5.2f", (sumOfProfit/numTrials),currentCapacity,(averageDemandSum/numTria ls), sd)); } drawChart(data, "Capacity", 3, new String [] {"Average Profit", "Av Profit2", "SD Profit"}); //drawChart(data, "Capacity", 1, new String [] {"Average Profit"}); myChart.drawVerticalLine(optimalCapacity); myChart.drawVerticalLine(varOptCapacity); //myChart.drawVerticalLine(demand); //myChart.drawHorizontalLine(calculateProfit(demand), Color.green); myChart.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub //new profitAverage(.1).simulationCapacity(); new profitAverage(.15).simulationCapacityWithVariance(); } } 163 /**************************************************************** ********* * This program has been originally developed by Abhijit Dutt * This class is used for calculating the optimal parameters * when provider’s risk tolerance is included. * * ***************************************************************** ********/ package omegaSimulation; import java.awt.Color; import java.io.*; import java.util.*; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; public class mySimulation { final double alpha = 100; final double beta = 1; final double gamma = 1; protected double omega = .05; protected double delta = 5; protected double Z= 50; protected double A = 5; protected double B = 5; protected double C = 5; protected double D= 10; protected double G= 3; 164 protected double demand = 0; protected double capacityPDF = 0; protected double price = 0; protected double modularity = 0; protected double opportunity = 0; protected double performance = 0; protected double dataStore [][]; protected ChartHandler myChart = new ChartHandler("My Chart"); protected double variancePercentage; public mySimulation(double var, int numVaribles, int numRows){ dataStore = new double [numVaribles][numRows]; variancePercentage= var; updateParameters(); } public void updateParameters(){ double denom = (4*C*D*beta - D*gamma*gamma - C * Math.pow((delta- G * beta), 2)) ; demand = (D*beta*(2*C*(alpha - Z*beta)+ B * gamma))/denom ; performance = (2*C*(alpha - Z*beta)+ B * gamma)*(delta-G * beta)/(2*denom) ; price = D*(2*C*(alpha - Z*beta)+ B * gamma)/denom +Z + G*performance; modularity = (2*D*(alpha - Z*beta)*gamma + B *(4*D*beta Math.pow((delta-G * beta), 2)))/(2*denom); 165 opportunity = (getPrice() -Z); System.out.println("Hessian:" + denom); //opportunity = 0; } public double getDemand(){ return (demand); } public double getCapacityPDF(){ //capacityPDF = 1 - (Z*omega/(price+opportunity)); capacityPDF = (price+opportunity- Z G*performance)/(price+opportunity- Z*(1-omega) ); return capacityPDF; } public double getPrice(){ return price; } public double getPerformance(){ return performance; } public double getOpportunity(){ return opportunity; } public void printIt(){ 166 //System.out.printf("Demand ", demand); //System.out.printf("Demand: %03D", demand +" price+ " Opportunity:"+opportunity); Price:"+ System.out.println(String.format("Demand: %5.2f Price: %5.2f Opportunity: %5.2f Performance: %5.2f Modularity: %5.2f", demand, price, opportunity, performance, modularity)); } public double calculateOptimalCapacity(double t_omega){ omega = t_omega; updateParameters(); double mu = getDemand(); double sigma = variancePercentage*mu; double y = getCapacityPDF(); double phi_inv = Gaussian.PhiInverse(y)*sigma+mu; return phi_inv; } public void omegaSimulation(double var, int num, int numSteps){ variancePercentage= var; omega = .35; updateParameters(); for (int i=0; i < numSteps; i++){ double phi_inv = calculateOptimalCapacity(omega); 167 dataStore[0][i] = opportunity; dataStore [num][i] = phi_inv; //System.out.println( "Omega:"+simul.omega + " y"+ PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); y+ " PHI- //data.put(i, new Object[] {simul.omega, simul.demand, phi_inv,(simul.demand-phi_inv)}); omega += .05; } } public void opportunitySimulation(double var, int num, int numSteps){ variancePercentage= var; omega = .6; updateParameters(); opportunity = 0; Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); double incr = (getPrice() -Z*omega)*1.5/numSteps; for (int i=0; i < numSteps; i++){ double phi_inv = calculateOptimalCapacity(omega); dataStore[0][i] = opportunity; dataStore [num][i] = phi_inv; //System.out.println( "Omega:"+simul.omega + " y"+ PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu-phi_inv)); //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); PHI- y+ " 168 //data.put(i, new Object[] {simul.omega, simul.demand, phi_inv,(simul.demand-phi_inv)}); opportunity += incr; } for (int i=0; i < numSteps; i++){ y"+ y+ " phi_inv)); //System.out.println( "Omega:"+simul.omega + " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu- //System.out.println(String.format("Omega:%5.2f INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); PHI- data.put(i, new Object[] {dataStore[0][i], dataStore[1][i]}); } //excelWriter temp = new excelWriter(); //temp.writeFile(data, "C:\\Users\\aud18\\Documents\\research\\Dissertation\\Paper2\ \test.xls"); drawChart(data, "Opportunity", 1, new String[] {"Capacity"}); myChart.drawHorizontalLine(demand); myChart.setVisible(true); } public static void main(String[] args) { int numOfSteps = 15; mySimulation simul = new mySimulation(.1, 4, numOfSteps); /* Map<Object, Object[]> data = new TreeMap<Object, Object[]>(); simul.printIt(); simul.omegaSimulation(.01, 1, numOfSteps); 169 simul.omegaSimulation(.05, 2, numOfSteps); simul.omegaSimulation(.1, 3, numOfSteps); //data.put(0, new Object[] {"Omega", "y", "Phi-Inv", "Diff"}); for (int i=0; i < numOfSteps; i++){ y"+ y+ " phi_inv)); //System.out.println( "Omega:"+simul.omega + " PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu- //System.out.println(String.format("Omega:%5.2f PHI-INVERSE:%5.2f Diff:%5.2f", simul.omega, phi_inv,(simul.demand-phi_inv))); data.put(i, new Object[] {simul.dataStore[0][i], simul.dataStore[1][i], simul.dataStore[2][i], simul.dataStore[3][i]}); } //excelWriter temp = new excelWriter(); //temp.writeFile(data, "C:\\Users\\aud18\\Documents\\research\\Dissertation\\Paper2\ \test.xls"); simul.drawChart(data, "Omega", 3, new String[] {"Capacity(Var = .01)", "Capacity(Var = .05)", "Capacity (Var = .1)"}); simul.myChart.drawHorizontalLine(simul.demand); simul.myChart.setVisible(true); */ simul.printIt(); //simul.opportunitySimulation(.01, 1, numOfSteps); } 170 public void drawChart(Map <Object, Object[]> inData, String cName, int numDepVariab, String [] seriesName){ Map<Object, Object[]> data; data = inData; Set<Object> keyset = data.keySet(); int rowSize = keyset.size(); //Number of rows int colSize = numDepVariab; System.out.println("Row:"+ rowSize+" Col Size:"+ colSize ); double [] xValues= new double[rowSize]; double [][] yValues= new double[colSize][rowSize]; for (Object key : keyset) { Object [] objArr = data.get(key); xValues[(Integer)(key)] = (Double)objArr[0]; for (int j=1; j < (colSize+1); j++){ yValues[j-1][(Integer)(key)] = (Double)objArr[j]; } } //myChart.populateDataSet("Y", xValues, yValues[0]); for (int i = 0; i < numDepVariab; i++) myChart.populateDataSet(seriesName[i], xValues, yValues[i]); myChart.drawChart(cName); } } 171 /**************************************************************** ********* * This program has been originally developed by Abhijit Dutt * This class is used for performing numerical simulation when * risk is ignored. * ***************************************************************** ********/ package ProfitSimulation; import java.awt.Color; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.math.MathContext; import java.util.Date; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.TreeMap; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import omegaSimulation.*; public class profitAverage extends mySimulation{ long totalZeroDemand = 0; 172 double fixedCost = 0; double optimalCapacity = 0; double currentCapacity = 0; //public final int numTrials=100000; public final int numTrials=10000; private final Random rand = new Random(100000); double averageDemandSum =0; public profitAverage(double vPerc){ super(vPerc,10, 10); } //Given Random demand calculate profit public double calculateProfit (double r_demand){ //Use Equation 13 double r_profit = price*Math.min(currentCapacity, r_demand) -(Z*omega+G*performance)*currentCapacity - Math.min(currentCapacity, r_demand)*Z*(1-omega) -(A B*modularity+C*modularity*modularity+D*performance*performanc e) - opportunity *Math.max((r_demandcurrentCapacity), 0); return r_profit; } public double calculateProfitWithoutOpportunity (double r_demand){ 173 double r_profit = price*Math.min(currentCapacity, r_demand) -(Z*omega+G*performance)*currentCapacity - Math.min(currentCapacity, r_demand)*Z*(1-omega) -(A B*modularity+C*modularity*modularity+D*performance*performanc e); return r_profit; } /** * @param args */ public void simulationCapacityWithVariance(){ /*Check the logic */ //First calculate the capacity, based on all information //Keep increasing the capacity and check its effect on average //demand //Use the average demand and and generate random demand // //long k = 10000; long k = 5000; HSSFWorkbook workbook = new HSSFWorkbook(); omega = .1; for (int pp=0; pp <5; pp++){ omega += .1d; 174 HSSFSheet sheet = workbook.createSheet("Omega="+ Double.toString(omega).substring(0,3)); updateParameters(); printIt(); optimalCapacity = calculateOptimalCapacity(omega); System.out.printf("Optimal Capacity:%5.2f demand:%5.2f \n",optimalCapacity, demand); double increment=(variancePercentage*demand)*Math.abs(optimalCapacit y-demand)/k; //Update Current capacity and it is used for calculating profit System.out.printf("Start Capacity:%5.2f Capacity::%5.2f incr:%4.3f \n",(optimalCapacity(k/2)*increment), (optimalCapacity+(k/2)*increment), increment); double var =0; double epsilon = 0; Map<Integer, Object[]> data = new TreeMap<Integer, Object[]>(); int myKey = 1; data.put(myKey++, new Object[] {"Epsilon", "Optimal Capacity", "H-Prof", "Av-Prof1", "Av-Prof2", "SD"}); for (int m=0; m < 10; m++){//Change Epsilon double highestProfitWithVar = 0; End 175 double varOptCapacity = 0; double myAverageProfit = 0; double myAverageProfit2 = 0; double mySD = 0; currentCapacity = optimalCapacity(k/2)*increment; epsilon += .1; for (int i=0; i < k; i++){ //This loop is for changing the capacity BigDecimal sumOfProfit= new BigDecimal(0.0, MathContext.DECIMAL128); BigDecimal sumOfProfit2= new BigDecimal(0.0, MathContext.DECIMAL128); totalZeroDemand = 0; currentCapacity += increment; averageDemandSum =0; long numOfEvents = 0; for (int j =0; j< numTrials;j++){ double randomDemandComp = rand.nextGaussian()*(variancePercentage*demand); double randDemand = demand+ randomDemandComp; if (randDemand> 0){ double randProfit = calculateProfit(randDemand); averageDemandSum +=randDemand; //randProfit = calculateProfitWithoutOpportunity(randDemand); sumOfProfit=sumOfProfit.add(new BigDecimal(randProfit), MathContext.DECIMAL128); 176 sumOfProfit2=sumOfProfit2.add(new BigDecimal(randProfit*randProfit), MathContext.DECIMAL128); numOfEvents++; } } + " y"+ y+ " phi_inv)); //end for //System.out.println( "Omega:"+simul.omega PHI-INVERSE:"+ phi_inv +" Diff:"+ (mu- //System.out.println(String.format("Omega:%5.2f PHIINVERSE:%5.2f Diff:%5.2f", omega, phi_inv,(demandphi_inv))); double averageProfit = sumOfProfit.divide(new BigDecimal(numOfEvents,MathContext.DECIMAL128), MathContext.DECIMAL128).doubleValue() ; var = sumOfProfit2.subtract(sumOfProfit.multiply(new BigDecimal(2*averageProfit))).doubleValue()/numOfEvents +averageProfit*averageProfit; double sd = Math.pow(var, 0.5); double optimizationParam = averageProfitepsilon*sd; if (highestProfitWithVar < optimizationParam){ 177 highestProfitWithVar=optimizationParam; varOptCapacity = currentCapacity; myAverageProfit2 = averageProfit; } if( myAverageProfit < averageProfit){ myAverageProfit = averageProfit; mySD = sd; } } System.out.println(String.format("E:%5.2f Opt Cap:%6.3f H-Prof:%5.2f Av-Prof1:%5.2f Av-Prof2:%5.2f SD :%5.2f", epsilon, varOptCapacity,highestProfitWithVar, myAverageProfit, myAverageProfit2,mySD)); data.put(myKey++, new Object[] {epsilon, varOptCapacity,highestProfitWithVar, myAverageProfit, myAverageProfit2,mySD}); } // Change Epsilon Set<Integer> keyset = data.keySet(); int rownum = 0; for (Integer key : keyset) { System.out.println("Key:"+key); Row row = sheet.createRow(rownum++); Object [] objArr = data.get(key); int cellnum = 0; for (Object obj : objArr) { Cell cell = row.createCell(cellnum++); if(obj instanceof Date) cell.setCellValue((Date)obj); else if(obj instanceof Boolean) cell.setCellValue((Boolean)obj); 178 else if(obj instanceof String) cell.setCellValue((String)obj); else if(obj instanceof Double) cell.setCellValue((Double)obj); } } } try { FileOutputStream out = new FileOutputStream(new File("C:\\Users\\aud18\\Documents\\research\\Dissertation\\Pa per3\\Excel\\test.xls")); workbook.write(out); out.close(); System.out.println("Excel written successfully.."); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { // TODO Auto-generated method stub //new profitAverage(.1).simulationCapacity(); new profitAverage(.1).simulationCapacityWithVariance(); } } 179 ABHIJIT DUTT Office: (724) 773 3860 e mail:[email protected] RESEARCH INTEREST: • • I am interested in the phenomenon of cloud computing. I consider cloud computing a significant step from the point of view of users. Although, from the point of view of technology it may not be very significant. In order to understand cloud computing, it is necessary to look into some other areas and use some innovative research methodology. Teaching different courses in the Security and Risk Analysis area and working in a NSF grant got me interested in this area. The third essay of my dissertation introduces innovative mean variance analysis theory to IS area. I would like to extend that to information assurance area. I also see that data mining could be a very important tool in the information assurance area. I would like to investigate that further. EDUCATION: PhD Management Information Systems (major), Production and Operations Management (minor), Univ. of Wisconsin-Milwaukee (August, 2013). Dissertation defended – June 21, 2013. Dissertation Title: Economic Perspective on Cloud Computing: Three Essays. MS in Computer Science, University of Tulsa, 1992. MS in Physics, University of Calcutta, INDIA, 1983. ACADEMIC PERPARATION: UNIVERSITY OF WISCONSIN, MILWAUKEE, WI Ph.D. candidate, MIS Area, Lubar School of Business • • Aug. ’03 – Aug. ‘13 My dissertation examines issues faced by providers of Cloud Computing Applications. The first essay examines issues during development of SaaS. The second essay recognizes the service aspect of cloud computing and a model is developed to help providers with infrastructure capacity planning. The third essay examines the financial risks involved associated with capacity planning and a model is developed that would help providers to minimize their financial risk based on their risk tolerance. The primary research methodology used – theoretical modeling. Also used numerical solution and computer simulation. Custom Java programs were developed for the purpose. During my doctoral program I took many research methodology courses as well as Information System courses. ACADEMIC EXPERIENCE: PENN STATE UNIVERSITY, MONACA, PA Instructor of Information Sciences and Technology Aug. ’08 – Till Date Responsible for teaching courses in the areas of Information Science and Technology and Security and Risk Analysis in Beaver campus as well in World campus of Penn State. Teach courses using variety of formats – traditional face to face in class, synchronous video conferencing and online. I have developed many of the Security and Risk Analysis courses. Also responsible for internship and advising students. I regularly organize trips for students to local companies. During my time in Penn State I have built strong relationships with many local companies. I also participate in student recruitment and serve in different committees. Advisor for Security and Risk Analysis minor. Investigator in a NSF grant “Exploration of a Collaborative Virtual Computer Laboratory (CVCLAB) to Enhance Distance Learning in Information Security”. Worked with other investigators and designed courses and virtual laboratories for online course offering. 180 Carnegie Mellon University, Pittsburgh, Pa Adjunct Instructor Jan. ’10 – Till Date I have taught three graduate courses in the Heinz College. I am scheduled to teach again in fall ’13. EDGEWOOD COLLEGE, MADISON, WI Visiting Assistant Professor of Computer Information Systems Aug. ’07 – May ‘08 Taught Networking Fundamentals and Network Security and Network Management to returning adult students and System Analysis & Design and Introduction to Information Systems to traditional students. Was also involved in service activities such as student advising, hiring of adjunct faculty etc. UNIVERSITY OF WISCONSIN, MILWAUKEE, WI Adjunct instructor, MIS Area, Lubar School of Business Aug. ’03 – Aug. ‘07 I worked as a laboratory instructor teaching students about MS Excel, MS PowerPoint, and MS Access. During 2006-2007, I taught System Analysis & Design (BUS ADM 436) and Information Technology Infrastructure for Business (BUS ADM 533) independently. MILWAUKEE SCHOOL OF ENGINEERING, MILWAUKEE, WI March, ‘06 – Dec., ‘06 Adjunct Assistant Professor, Electrical Engineering and Computer Science Dept. Taught advanced undergraduate course on Computer Simulation and Modeling and Software Design II which introduced students proficient in Java programming language to programming in C++ using object oriented concepts. I was also involved during the reaccreditation process by ABET. SHEPHERD UNIVERSITY, Shepherdstown, WV Part Time Lecturer, ,Department of Computer and Information Sciences Aug. ’02 – May ‘03 Courses taught - System Analysis & Design, and Introduction to Computer and Information Sciences. INDUSTRY EXPERIENCE: Various Companies March ’92 – August ‘03 I worked in the IS industry both as an employee for almost ten years and as an independent consultant for a little more than a year. I worked for various companies such as Motorola, Tellabs, Cabletron, Putnam Investments etc. I also worked in three different areas in the country – Tulsa, Ok; Greater Boston area and in Greater Washington area. I mostly worked in two industries – networking and financial. I worked as an individual developer as well as a team leader. During my tenure I participated in and observed the growth of the Internet. I have worked with C++ using object oriented technology. Some of the highlights of the projects I worked on: • • • • Developed software for implementing RSVP and MPLS protocols in C under VxWorks operating system for BSR 64000, an edge router with CMTS/POS/Ethernet interfaces and also tested interoperability with Cisco and Juniper routers, by configuring the routers. Also developed Cisco-like commands for configuring the router. Developed and tested device drivers for PCMCIA disk and Hard disk using C language for Everest, an ATM switch router. Also implemented a communication mechanism between different cards for the above router. Worked as the team leader for the mid-tier portion of the “Payroll Gateway” application of Putnam Investments. Payroll Gateway is based on three-tier client server architecture and it receives and processes transactions on incoming payrolls. Developed software using object oriented design in C++ for accessing the Oracle database through DBTools. Developed portions of data communication software in C++ between the desktop and the mid-tier using Orbix (A CORBA compliant software). Developed the User Interface for the diagnostics monitor and wrote device driver for EEPROM for an ATM switch, using C++ language and object oriented methodology. 181 • • Developed C++ programming interface for use by applications to the ATM based network management system. Developed the GUI using ZINC interface library in C++ for a generic relay testing software “ULTRATEST” under DOS in Borland C++. Also developed the database and C++ interface to it, using PARADOX Engine. TECHNICAL SKILLS: • • • • • • • • Data mining software – Weka. Strong Programming and Software Development skills using object oriented method in Java, C++. IDE – Eclipse ERP software - SAP Use of Network and Security tools – Wireshark, Nessus, GPG4Win. Mathematical and Statistical Software – Mathematica, SAS, SPSS, LISREL, Minitab. Use of virtual computing – VMWare. Power user of Course management Systems – Angel, Blackboard, D2L, WebCT. PUBLICATION: 1. 2. 3. 4. 5. 6. 7. Jain, H and Dutt, Abhijit. 2013. “Economic Perspective of Application Development in Cloud Computing: Study of Modularity and Performance”. International Symposium of Information Systems (ISIS), Goa, India. Ngo-Ye, Thomas and Dutt, Abhijit. 2010. “Text Classification with Imperfect Hierarchical Structure Knowledge”. Proceedings of the 16th Americas Conference on Information Systems (AMCIS), Lima, Peru. (Presenting Author). Ngo-Ye, Thomas and Dutt, Abhijit, "A Study on Efficacy of Ensemble Methods for Classification Learning" (2009). ICIS 2009 Proceedings. Paper 69. (Presenting Author). Dutt, Abhijit. 2006. “Organizational adoption of Data Mining”. Proceedings of the 12th Americas Conference on Information Systems (AMCIS), Acapulco, Mexico. (Presenting Author). Dutt, Abhijit and Nazareth, Derek. 2005. “Support for Wireless LAN Design”. Proceedings of the 11th Americas Conference on Information Systems (AMCIS), Omaha, Nebraska. (Presenting Author). Dutt, Abhijit and Srite, Mark. 2005. “A Cultural Perspective on Technology Acceptance”. Proceedings of the 11th Americas Conference on Information Systems (AMCIS), Omaha, Nebraska. (Presenting Author). Diaz, J. C. and Dutt, A. 1992. “Experiences with Line Ordered-Nested Block Preconditioning for Non symmetric Systems on the CM-2”, Proc. of International Conference on Computer Methods for Partial Differential Equations (IMACS – PDE 7). PROFESSIONAL ACTIVITIES • • • • • • • • • • Associate Editor, ECIS 2012 and ECIS, 2013 Member of the Campus Advisory Committee Penn State, 2012- Till Date. Member of the IST Advisory Board Penn State, 2008- Till Date. Member of the Academic Affairs Committee Penn State, 2010-11. Member of the hiring committee for instructor of IST, Penn State, 2010. Member of ASUG. Reviewer for the 30th International Conference on Information Systems (ICIS). Reviewer for the 11th and 12th Americas Conference on Information Systems (AMCIS). Reviewer for the Hawaii International Conference on System Sciences, 2004, 2005, 2006, 2007, 2009, 2010 Member of the Ph.D. committee of the Lubar School of Business, UWM, 2005-2006. 182 AWARDS: • • • • • Outstanding academic adviser award, Penn State Beaver, 2009-10 UW-Milwaukee Graduate School Travel Award for attending AMCIS, 2006 University of Wisconsin-Milwaukee Chancellor’s Fellowship during 2003-2004. Was also awarded research and teaching assistantships along with tuition waiver during 2004-2007. Research assistantship along with full tuition waiver from University of Tulsa for pursuing MS in CS. National Scholarship from Govt. of India for pursuing both undergraduate and graduate studies.