paradigm: service oriented computing - college of computing …€¦ ·  · 2005-04-10paradigm:...

8

Click here to load reader

Upload: truongnhu

Post on 21-May-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

Paradigm: Service Oriented Computing

Nikolai Dokovski, Ing Widya, Aart van Halteren

University of Twente, the Netherlands

[email protected];[email protected];[email protected]

University of Twente

11/12/2004

Freeband/AWARENESS/D2.7b

http://awareness.freeband.nl

Abstract: We present a survey on Service Oriented Architecture (SOA) and its extension Service OrientedComputing (SOC). Provisioning of mobile and context-aware services or applications may benefitfrom SOA and SOC because they address similar issues like service discovery and service utilization. Moreover, SOC includes service management, service composition and orchestration and service transaction management which are also relevant for context-aware services o

r applications. Therefore, SOC could very well serve the AWARENESS project for designing context-aware applications.

Page 2: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

1 Introduction Over the past two decades developments in the area of distributed computing, such as remote procedure calls, object middleware and component-based middleware, have lead to Service Oriented Architectures (SOAs) which in-turn has been extended further to Service Oriented Computing (SOC). SOC is an emerging paradigm relevant for the AWARENESS service infrastructure.

In the emerging era of pervasive computing, SOA is a relatively new paradigm for effective service delivery in a dynamic environment. SOA enables requestors of services to identify, to find and to utilize (mobile) Internet services offered by providers of these services. The literature is not conclusive on what SOA is about. Each paper takes a different perspective and focuses on different aspects of a SOA. In Section 2, we study the developments in the area of distributed computing that lead to the SOA paradigm, and study SOAs in more detail. Section 3 shows how SOAs contributes to SOC and outline some of the aspects and concepts of SOC. A brief conclusion is provided in Section 4.

2 What is SOA? Despite the different descriptions of SOAs, common are that a SOA provides descriptions of the main concepts of a software architecture and their relations. A service and service utilization are the most fundamental concepts underlying SOAs. In a user-provider perspective [1], a service describes what the provider of the service does for a service user/requestor as observed at the service access points. The main task of a service provider is to deliver its services to the service users/requestors. Typically, a provider advertises its services to potential service users/requestors and service users invoke services to utilize these services. Over the years service utilization has evolved, together with the development of the involved technologies.

2.1 The concept of Computing Services Although SOA is a relatively new paradigm, its roots are not. We only have to refer to one of the most significant discoveries in computer science: Xerox’s invention of Remote Procedure Calls (RPC). RPC enables remote invocations of computing procedures and changed the way of software design and development. It became possible to perform execution of a procedure on a remote host in a transparent manner to the requestor. To make this possible, RPC introduces so-called procedural interfaces, which can be instantiated by a service requestor/user. This interface includes a declarative description of the task that the procedure performs. In this sense, the interface specifies the computing service. RPC can be seen as the first step towards SOC.

2.2 Transparent Service Localization and Dynamic Binding The idea to combine functions or procedures with associated state information lead to the introduction of the object-oriented paradigm. With the realization of object-oriented middleware, distributed computing is pushed a step forwards towards SOC. One of the most significant examples of object-oriented middleware is CORBA. In CORBA, the idea of service description, introduced by RPC, took form in the interface definition language (IDL) specification. The novelty in IDL is the language independence of the service definition. This allows a service requestor written in Java to invoke service implementations written in C++ (system’s heterogeneity). CORBA also defines a number of additional services such as the CORBA Naming service and the CORBA Property service, which allows a service requestor to identify a service provider at runtime. This in turn lead to dynamic service discovery. Over the years CORBA further evolved and the concepts of dynamic invocations were added. CORBA specifies a so-called Dynamic Invocation Interface (DII). DII makes it possible for a service requestor (i.e. client) to invoke a method on a remote object without knowing its method signature until runtime.

2.3 From objects to components A next step forward in distributed computing was the shift from object-oriented to component-based middleware, in the attempt to reduce the complexity and to increase efficiency of software development.

Freeband/AWARENESS/D2.7b 2

Page 3: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

The main idea of component-based middleware is to present a unified runtime environment for software components, which are units of functionality provided by aggregated objects. Within that runtime environment, basic services such as naming, security and transaction services are part of the environment and software developers need only to focus on the implementation of a particular component’s logic. The use of basic services is no concern anymore to software developers. One of the first attempts to realise such an infrastructure was based on the CORBA Component Model (CCM). However, it never gained much acceptance. On the other hand, SUN’s Enterprise Java Beans technology is nowadays adopted almost everywhere. The major success of EJB comes from the fact that it is based on the Java technology, and as such it is platform-independent. SOA is often described as an evolutionary step after component-based middleware.

2.4 SOA SOA emerged in distributed computing due to the need for effective delivery of computing services to heterogeneous (mobile) service requestors. These requestors are active somewhere in a dynamic and/or pervasive computing environment where computing service providers ubiquitously offer a sea of services. A SOA aims to facilitate service requestors to identify, to find and to utilize appropriate services anytime amongst the sea-of-services offered by the service providers.

To provide a justified answer what is currently understood as SOA, we summarize some of the descriptions and definitions presented in various articles:

1. In the article “From Objects to Services” [2] Dodani motivates the emerging paradigm of SOA as an attempt for reducing the complexity of software systems. The dynamic behaviours of the models for e- and/or m-business processes require constant modifications (e.g. dynamic bindings) in the supporting software infrastructures, which lead to constant system modifications. Performing system integrations in such a dynamic environment is a complex process and frequently quite demanding, in terms of time and resources. According to Dodani, SOA is an architecture that:

“enables flexible integration of applications and resources by:

• representing every application or resource as a service with standardized interface, • enabling the service to exchange structured information(messages, documents, ‘business

objects’), and • coordinating and mediating between the services to ensure they can be invoked, used and

changed effectively.”

2. Similar concepts can be encountered in Hashimi [3] in his approach to SOAs. In the Web article “Service-oriented architecture explained”, Hashimi describes a SOA in terms of the notions of services, messages, dynamic discovery and web services. In this article, a service is an exposed piece of functionality with three properties:

• The interface contract of a service is platform independent. This implies that a service requester (i.e. client) from anywhere, on any operating system, and specified in any language, can utilize the service;

• The service can be dynamically located and invoked; • The service is self-contained, that is the service amongst others maintains its own state.

In addition, Hashimi outlines that at a high level, a SOA is composed of three core pieces: service providers, service consumers and a directory service. Service consumers use a directory service to find a service provider that matches their search criteria. Communication between service providers and service consumers is based on a message exchange mechanism.

3. Another example for a SOA is presented in “Java Web Services Architecture” [4], Chapter 2 “Service Oriented Architecture”, in which a SOA is referred to as a conceptual architecture that configures entities (services, registries, contracts and proxies) to maximize loose coupling and reuse. In addition to the concepts presented by S. Hashimi (service, service providers, service requester (i.e. client or service consumer) and directory service), the authors add three additional concepts:

Freeband/AWARENESS/D[x.yva.b] 3

Page 4: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

• Service contract: that is a specification of the format of the request and response of the service;

• Service lease: the service lease specifies the amount of time the contract is valid; • Service proxy: the service provider specifies a service proxy to the service consumer. The

service consumer utilizes the service by invoking operations on the service proxy.

The authors outline that although Web services, in their nature, support most of the concepts of SOA, they do not support all of them. Particularly Web services don’t support the notion of service leasing. These authors further elaborate on services in a SOA by describing the following service properties:

• Services are discoverable and dynamically bound; • Services are self-contained and modular; • Services stress interoperability; • Services are loosely coupled; • Services have a network-addressable interface; • Services have coarse-grained interfaces; • Services are location transparent; • Services are composable; • Service-oriented architecture supports self-healing.

These authors also emphasize that JINI [5] technology has all of the previously mentioned properties of SOA, thus JINI can be an example of a SOA.

4. As in Dodani [2], other authors from IBM propose a slightly different approach than the previously described articles in respect to the definition of Service-Oriented Architectures. In the article “Migrating to a Service-oriented architecture” [6], the authors elaborate on problems in the process of software development and their consequences. They start with outlining the complexity of current business environments, the heritage of the legacy systems, the non-reusable software solutions and the un-solvable problems in the software integration processes. As a result, a number of requirements are defined to which SOA gives a solution. Those are:

• Reusability of current software systems; • Support for system integration; • Support for incremental implementations and migration of assets.

Further on in the article, these authors give the following definition of a SOA:

“an application architecture within which all functions are defined as independent services with well-defined invokable interfaces which can be called in defined sequences to form business processes".

In their second article [7], the same authors introduce the architectural concept of the Service Bus. A Service Bus is an architectural concept that facilitates the execution of services in a sequence that leads to a satisfaction of a predefined business problem.

Continuing the business flavour of services in SOA, M. Colan from IBM [8] offers the following definition of a service:

“A service in SOA is an application function packaged as a reusable component for use in a business process.”

Similarly to the Hashimi’s [3] definition, Colan also stress interoperability, loose coupling and a stateless nature of service invocations as the major properties of services. Further on, in his second article [9], Colan explains the concepts of service provider, service requestor and service registry and gives examples of existing technologies, such as Web Services, that support the design principles of SOA.

5. Another description of a SOA is the one presented in “Understanding Service-Oriented Architecture” article by D. Sprott and L. Wilkes [10]. In that article, authors describe a service as:

Freeband/AWARENESS/D[x.yva.b] 4

Page 5: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

“a service is a fundamental building block that

• Combines information and behaviour • Hides internal workings from outside intrusion • Presents a relatively simple interface to the rest of the organism”

Further on in the article, these authors cite the W3C definition of a SOA (”A set of components which can be invoked, and whose interface descriptions can be published and discovered.”) and criticize it in two aspects. First they outline that the components will often not be a set and second the W3C definition considers only implemented and deployed components and do not elaborate on practices for building the architecture.

In their perspective a SOA can be described as follows:

“The policies, practices, frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards-based form of interface.”

At the end of the article, they also introduce the concept of BSB (Business Service Bus), very similar to the concept introduced in Channabasavaiah’s article [7]. Once again BSB is represented as an instrument for solving business tasks through execution of a combination of different services specific for certain business domain.

SOA is a paradigm promoted by many industrial parties. Each party has its own definition of SOA. Despite the fact that some of the definitions are a bit extreme, there are some similarities among them. We summarize 3 concepts relevant to SOA. We are not stating that those are the only ones, but rather trying to express the commonality between the various definitions.

The first common concept is that of a service. We can see that most of the authors prefer a descriptive approach to define services. Instead of giving a definition of what a service is, they elaborate more on its properties. One of the reasons for that might be the fact that the term service in the history of Distributed Computing has had various meanings, each reflects the applied technology.

The second shared concept we encounter is that of service discovery. Service discovery involves service interfacing and service localization. The need for interfacing a service, identified during the development of RPC, is still applicable today. Service interfacing is one of the fundamental concepts in Distributed Computing. Furthermore, service localization is prerequisite for service execution. How service interfacing and localization takes place depends on the technology used to employ the concepts of SOA.

The third important concept is that of dynamic service bindings. A service user is not required to be aware of the presence of a service provider a priory. In a dynamic environment a service user can perform on-the-fly queries for a service provider that best matches its requirements. Once a service provider is located and interfaced with, a service user can request for the execution of a service of interest.

Application or service provisioning in pervasive and ubiquitous computing environments are facing similar problems as a SOA tries to solve. In such environments entities participating in pervasive and ubiquitous computing may be(come) unfamiliar with each other. A dynamic (on-the fly) service localization and utilization has to be put in place in such cases.

3 SOC SOC extends SOA further towards facilities for dynamic and flexible composition and management of services, suitable for pervasive computing environments wherein nomadic users may run applications which effectively use published computing services anywhere and anytime.

As was discussed earlier, the boundaries of SOA are not yet clearly defined. It is likely that other concepts and relations are going to be identified and will be added to the main ones presented above. In the mean

Freeband/AWARENESS/D[x.yva.b] 5

Page 6: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

time, the research community identifies the need to explore the emerging paradigm of Service-Oriented Computing (SOC) [11].

M. Papazoglou et al. [11] defines SOC as a computer paradigm that utilizes services as fundamental elements for developing and deploying applications. He proposes an Extended Service-Oriented Architecture where additional concerns such as management, service composition and orchestration, service transaction management and coordination are introduced [12]. ESOA can be described as a three layered architecture where:

• The first layer deals with the basic services and their operations some of which are service publication, service discovery and service binding. These services are also identified as services of a SOA, to some extend this layer is therefore a SOA.

• The second layer is the service composition layer. A service composition can for instance be described as a process schema (i.e. a workflow) containing basic services or composite component services. It specifies when to invoke service discovery, when and how to select between alternative services (e.g. quality driven service selection by QoS measures), and how to order the service utilizations. It may further specify the monitoring of the QoS or behaviour of the service utilizations to enable schema adaptation. The result of a service composition is a new enriched service that is dynamically composed of basic services or other composed services.

• The third layer of ESOA is the service management layer which is responsible for the overall supervision and execution of the lower level services.

This section introduces the paradigm of SOC briefly. As was mentioned earlier, many articles in the literature address SOC. For example, details on the properties and responsibilities of the different layers in the ESOA may be found in the First International Conference on SOC (ICSOC’03) Italy 2003. Some of the conference’s tracks are Service Description, Service Composition, Quality of Service Models, Service Semantics, Service Request and Coordination and Service Security and Reliability. Just as an example of the research issues and their solutions presented on that conference we can refer to the article of I. Fikouras and E. Freiter [14] about seamless discovery and composition of a distributed service in a mobile environment. In that article authors identify the service discovery problems in mobile environments and propose a solution based on Variant Configuration Theory and in particular Object-Oriented Variant Configuration. Other work is for example of Dijkman et al. [13] which gives an overview of the area of SOC, emphasizing on the design and proposing behaviour modelling in SOC.

4 Conclusions This paper presents several descriptions for SOAs. Although these SOA descriptions differ from each other considerably, the concepts of service, service discovery and dynamic service bindings are inextricably coupled to SOAs and therefore also to its extension: SOC. The provisioning of context-aware (composite) services or applications encounter similar service discovery and utilization problems as normally tackled by SOC. Therefore, SOC could very well serve the AWARENESS project for designing context-aware applications. Moreover, SOC as an extension of SOA also includes service management, service composition and orchestration, service transaction management and coordination of service components in order to develop and deploy services or applications.

Acknowledgements This work is part of the Freeband AWARENESS project (http://awareness.freeband.nl). AWARENESS stands for Context AWARE mobile NEtworks and ServiceS. The Freeband AWARENESS project focuses on service and network infrastructures that are needed to support context aware and pro-active applications on heterogeneous mobile networks. Particular attention is paid to mobile health applications for tele-monitoring and tele-treatment. The following organisations participate in Freeband AWARENESS: Lucent Technologies, Centre for Telematics and Information Technology, Telematica Instituut, Roessingh R&D, Ericsson, Twente Institute for Wireless and Mobile Communications, Yucat and TMS International.

Freeband/AWARENESS/D[x.yva.b] 6

Page 7: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

Freeband AWARENESS is part of the Freeband program (www.freeband.nl). Freeband is a large national research program in the field of 4G telecommunication, in which fixed, mobile and wireless connections are integrated. Key research questions take place in three main themes: (1) enabling technology, (2) service provisioning, networking and access, and (3) society, users and applications. Freeband comprises over 30 organisations and is sponsored by the Dutch government under contract BSIK 03025.

References 1. Parnas, D., “On the Criteria To Be Used in Decomposing Systems into Modules”, Communications of

the ACM, vol. 15, pp. 1053-1058, 1972;

2. Dodani M. “From Object to Services: A journey in Search of Component Reuse Nirvana” issue 2004/08 JOT (Journal of Object Technology)

3. Hashimi S. “Service-Oriented Architecture Explained”, O’Reilly http://dev2dev.bea.com/technologies/soa/articles/soa_hashimi,jsp, Apr. 2004;

4. McGovern J., Tyagi S., Stevens M.,“Java Web Services Architecture” Chapter 2 Morgan Kaufmann 2003 ISBN: 1558609008

5. JINI Specification http://java.sun.com/products/jini/2_0index.html

6. Channabasavaiah K., Holley K., Tuggle E. M. Jr “Migrating to Service-oriented architecture – part 1” http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa/

7. Channabasavaiah K., Holley K., Tuggle E. M. Jr “Migrating to Service-oriented architecture – part 2” http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa2/

8. Colan M “Service-oriented architecture expands the vision of Web Services – part 1” “Characteristics of Service-Oriented Architecture”

http://www-106.ibm.com/developerworks/webservices/library/ws-soaintro.html

9. Colan M. “Service-oriented architecture expands the vision of Web Services – part 2” “The SOA connection architecture”

http://www-106.ibm.com/developerworks/library-combined/ws-soaintro2/

10. Sprott D., Wilkes L. “Understanding Service-Oriented Architecture” http://msdn.microsoft.com/architecture/soa/default.aspx?pull=/library/en-us/dnmaj/html/aj1soa.asp

11. Papazoglu M. and D. Georgakopoulos, “Service-Oriented Computing” Communications of the ACM October 2003, Vol. 46, No 10

12. Papazoglu M. “Service-Oriented Commuting: Concepts, Characteristics and Directions” Fourth International Conference on Web Information Systems Engineering (WISE’03)

Freeband/AWARENESS/D[x.yva.b] 7

Page 8: Paradigm: Service Oriented Computing - College of Computing …€¦ ·  · 2005-04-10Paradigm: Service Oriented Computing Nikolai Dokovski, ... We present a survey on Service Oriented

13. Dijkman, R.M., Quartel, D.A.C., Ferreira Pirtes, L, and Sinderen, M.J. van, “The State of the Art in Service-Oriented Computing and Design”, Deliverable ArCo/WP1/T1/V1.00, Faculty of Electrical Engineering, Mathematics and Computer Science, University of Twente, July 2003;

14. Fikouras I., Freiter E.“Service Discovery and Orchestration for Distributed Service Repositories” (ICSOC’03)

Freeband/AWARENESS/D[x.yva.b] 8