Course Description

Services are a fundamental element of the online economy and will underlie virtually all business and government activities such as electronic commerce within and across organizational boundaries, enterprise applications, telecommunication systems, energy and utilities, healthcare, travel and entertainment and more.

The emergence of Service-Oriented Computing (SOC) as a new computing paradigm position services as software components exposed through network-accessible, platform and language independent interfaces, which enable the composition of (possibly) complex distributed applications out of loosely coupled components.

Service-Oriented Computing carries the visionary promise of reducing software complexity and costs, expediting time-to-market, improving reliability and enhancing accessibility of consumers to gevernment and business services. However, conditional to the wide-scale penetration of SOC to the economic landscape, the ICT industry needs to solve several well-recognized technical challenges. The course will address some of these challenges such as the provision of a scalable and effective service-oriented infrastructure.

Realizing the SOC promise requires the design of Service-Oriented Architectures (SOAs) and developing the corresponding middleware that enable the development of simpler and cheaper distributed applications to support virtually any business process in any organizational structure or user context. The course will address the major recent advances in the field from both the academia and the industry complementary viewpoints, exploring approaches, technology, and research issues related to developing SOAs.

Advancements in Cloud Computing have raised the potential of realizing service-orientation to unprecedented heights. With increasingly powerful and sophisticated service and platform technology, service-oriented solutions can be increasingly distributed, hosted, virtualized, and scaled. However, there are significant challenges and pitfalls on the path to adopting and utilizing Cloud Computing techniques and technologies, especially when positioning Cloud-based services in support of SOA and service-oriented computing. The course will tackle the convergence of SOA and Cloud Computing. It will provide a comprehensive reference for the technologies and practices that are emerging around the adoption of Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) as they pertain private, public and community clouds in support of service-orientation and service-oriented solution design.

Cloud Computing is an emerging paradigm for consumption and delivery of IT based services, based on concepts derived from consumer internet services, like self-service, apparently unlimited or elastic resources and flexible sourcing options. In this course we will discuss the technical foundations of cloud computing, as well as the business models associated with it.

We will start by looking at virtualization and service management as the technical underpinnings. We will then look at infrastructure services and platform services, with a particular focus on emerging programming models for the cloud. We will discuss the trade-offs made between consistency and availability as well as extensions to ‘traditional’ programming models. We also look at the life-cycle of applications in the cloud. Finally, we will look some of the challenges of Software as a Service, like multi-tenancy.

Throughout the course, we will look both at existing products and services as well as the theoretical underpinnings.

The course will be held as a combination of lectures and participant discussion.


Present the emergence of Service-Oriented Computing as a new computing paradigm. Service-Oriented Architecture (SOA) is a way to organize and use distributed capabilities that may be controlled by different owners. SOA provides a uniform means to offer, discover, interact with, and use capabilities to produce desired effects consistent with specified preconditions and requirements. This course describes SOA concepts and design principles, interoperability standards, security considerations, runtime infrastructure and web services as an implementation technology for SOA. Given the focus on shared capabilities, SOA involves more than technology. Therefore, additional topics will include the impact of SOA on culture, organization, and governance.