Article Preview
TopIntroduction
Pervasive Service Computing is regarded as a Web services-based solution that realizes the pervasive computing paradigm (Zhou et al., 2009). Pervasive Service Computing emphasizes providing users with services when and where desired in everyday environments. In other words, the system provides users with on-demand services over a network (e.g., the Internet). Service composition leverages a Service Oriented Architecture (SOA) approach, and provides a contemporary technology for developing complex applications from existing service components. In the pervasive domain, a solution is needed to increase service availability, to provide on-demand service composition, and to enable adaptation to constantly changing situations. In short, dynamic service composition is needed.
A number of research efforts have focused on service composition and integration in terms of Web services (Cabrera http://www.oreillynet.com/pub/au/39842005; Varia et al., 2010; Vaquero et al., 2009), orchestration and choreography (Erl, 2005), etc. However, the conventional service composition for service orchestration and choreography is realized within one individual organization, or a limited number of organizations. As a result, service composition is limited to these organizations’ services, instead of Internet-scale service composition and adaptive service provisioning, which is essential for the Pervasive Service Computing paradigm. In addition, communication between services in a service composition is usually realized as a simple client request/server response pattern, which requires the services involved to be always online. This kind of service composition is so tight-coupled that it does not match with loosely coupled scenarios in pervasive computing environments.
Cloud computing describes a new supply, consumption, and delivery model for IT services based on the Internet. This model treats computing service like a public utility, such as electric power supply (Miller, 2008). Vaquero et al. (2009) provide an encompassing definition of Cloud computing, describing its main features as follows:
- (1)
Large scale. Cloud usually consists of thousands of servers, which provide users with supercomputing power.
- (2)
Virtualization. Cloud computing provides the ability to virtualize computing resources into the Cloud.
- (3)
High reliability. Cloud uses multiple data copies and redundant computing facilities to ensure reliable service and security against data loss.
- (4)
Versatility. Cloud computing can support various application developments through combining computing resources.
- (5)
On-demand services. Cloud contains huge computing resources, which can satisfy various user needs. Users can use Cloud computing on a pay-per-use basis.
- (6)
Low cost. Cloud computing reduces the costs associated with outsourcing hardware and software resources.
Varia et al. (2010) claims that Cloud computing can solve the following five key difficulties in large-scale data processing. The first difficulty is to get as many machines as an application needs. The second is to get the machines when one needs them. The third is to distribute a large-scale job on different machines, and provide another machine to recover if one machine fails. The fourth is to auto-scale up and down, based on dynamic workloads. The last difficulty is to get rid of all these machines when the job is done.