Software as a Service
In research, software as a service (SaaS) it is generally referred to as software, distributed as an internet-based web service (Bajaj, Bradley, Cravens, 2008; McCreary, 2009). Using SaaS can have both advantages and disadvantages. SaaS can be less expensive, platform agnostic, faster to implement (Laplante, Zhang, & Voas, 2008). SaaS can also have slow performance, create dependencies, and can be limiting to organizations (McCreary, 2009).
Cloud computing services has allows companies for take advantage of lower cost of entry, rapid development, and pay-as-you go in contrast to large capital expenses, slower development, and high barrier to entry (Andersen, Birchall, Jessen, & Money 2006; Denne, 2007; Katzan & Dowling, 2010; Gill, 2011; O’Sullivan, 2009; Waxer, 2009; Wulke, & Kohl, 2004). Entrepreneur are using cloud computing’s lower cost of ownership and improved productivity to start businesses that would not be feasible with traditional software development methodologies (Denne, 2007; Sharif, 2010; Wei et al., 2009). On-demand services allow companies to handle large spikes in traffic without having to purchase excess servers that are underutilized the majority of the time. Advances in web services technologies such as grid computing and virtualization made it possible for providers of cloud services to rapidly scale their cloud services to meet the needs of their clients (Prez et al., 2009). Cloud computing allows organizations to pay only for what they use with no large capital expenses at the beginning of a project by effectively outsourcing a part of their IT infrastructure (McGrath & MacMillan, 2009).
SaaS uses platform agnostic transmission methods. The same SaaS can be used by developers utilizing different programming languages and operating systems without changes by cloud provider (Laplante et al., 2008). SaaS providers can issue updates without requiring the customer to install new software. Customers using SaaS always have the latest bug fixes as soon as they come out.
Application program interfaces (APIs), the programming model behind SaaS, allows software developers to rapidly create software by building upon readymade components (McCreary, 2009; Robillard, 2009). Readymade components have advantages and disadvantages. Traditional software components locked users into software versions. These components could be hard to update across an organization which made bug fixes by the vendor difficult to implement. They often locked users into particular software languages and language versions (Robillard, 2009).
Platform as a Service (PaaS)
Platform as a service allows customers to create entire applications on the cloud platform. Platform as a service (PaaS) is generally thought of a system that can be built upon. Companies such as Microsoft and Google allow companies to host custom web services. While other companies such as Salesforce allow consumers to write code in the cloud that is executed against their system. PaaS is a platform that can be expanded but consumers of the service do not have direct access to the operating system. Consumers of PaaS cannot install software such as antivirus programs or audit the security of a system.
Infrastructure as a Service (IaaS)
IaaS gives consumers hosted computers. IT professionals rent time on computers with IaaS. Providers such as Amazon and Rack space allow companies to purchase time on servers. Users of IaaS can use a remote desktop application to remote onto a cloud hosted computer and install software and configure the server similar to how they would have if they had purchased the server and hosted it in-house. IaaS allows companies to take advantage the on demand, scalable of the cloud while having control over data and security (Karadsheh, 2012).
As A Service (aaS)
Some cloud computing literature described three main forms of cloud computing (Chebrolu, 2010; Schneiderman, 2011). Although IaaS, PaaS and SaaS represent most types of cloud providers, there are other types of providers. These types of services are often referred to as “as a service” (aaS) or everything as a service (EaaS) (Banerjee et al., 2011). The concept of EaaS is that most IT services can be broken down into cloud based components. Testers can use testing as a service (TaaS) to take advantage of cloud computing’s scalability to perform scalability tests (Yang, Onita, Zhang, & Dhaliwal, 2010).