Xem mẫu

van Snderen, Almeda, Pres, & Quartel Chapter.VI Designing.Enterprise. Applications.Using.Model-Driven. Service-Oriented.Architectures Marten van Snderen, Unversty of Twente, The Netherlands João Paulo Andrade Almeda, Telematca Insttuut, The Netherlands Luís Ferrera Pres, Unversty of Twente, The Netherlands Dck Quartel, Unversty of Twente, The Netherlands Abstract This chapter aims at characterizing the concepts that underlie a model-driven service-oriented approach to the design of enterprise applications. Enterprise ap-plications are subject to continuous change and adaptation since they are meant to support the dynamic arrangement of the business processes of an enterprise. Service-oriented computing (SOC) promises to deliver the methods and technolo-gies to facilitate the development and maintenance of enterprise applications. The model-driven architecture (MDA), fostered by the Object Management Group (OMG), is increasingly gaining support as an approach to manage system and software complexity in distributed-application design. Service-oriented computing and the MDA have some common goals; namely, they both strive to facilitate the Copyright © 2007, Idea Group Inc. Copying or distributing in print or electronic forms without written permis-sion of Idea Group Inc. is prohibited. Desgnng Enterprse Applcatons development and maintenance of distributed enterprise applications, although they achieve these goals in different ways. This chapter discusses a combination of these approaches and discusses the benefits of this combination. Introduction Enterprise applications are subject to continuous change and adaptation since they are meant to support the dynamic arrangement of the business processes of an en-terprise. For example, an enterprise may decide to outsource a business process for efficiency reasons, or different processes may be integrated to provide a new product. Therefore, it is necessary to devise methods and technologies that can cope with this dynamic characteristic of enterprise applications in a cost-effective manner. Service-orientedcomputing(SOC)promisestodeliverthemethodsandtechnologies to facilitate the development and maintenance of enterprise applications (Papazo-glou & Georgakopoulos, 2003). This should promote the introduction of richer and more advanced applications, thereby offering new business opportunities. Other foreseen benefits are the shortening of application-development time by reusing available applications, and the creation of a service market, where enterprises make it their business to offer generic and reusable services that can be used as applica-tion building blocks. The service-oriented paradigm is in essence characterized by the explicit identification and description of the externally observable behavior, or service, of an application. Applications can then be linked based on the description of their externally observable behavior. According to this paradigm, developers in principle do not need to have any knowledge about the internal functioning and the technology-dependent implementation of the applications being linked. Often, the term service-oriented architecture (SOA) is used to refer to the architectural principles that underlie the communication of applications through their services (Erl, 2005). The model-driven architecture (MDA), fostered by the Object Management Group (OMG), is increasingly gaining support as an approach to manage system and software complexity in distributed-application design. MDAdefines a set of basic conceptssuchasmodel,metamodel,andtransformation,andproposesaclassification of models that offer different abstractions (OMG, 2003). Model-driven engineering (MDE) builds on this foundation to introduce the notion of software-development process by organizing models in the modeling space (Kent, 2002). MDE focuses first on the functionality and behavior of a distributed application, which results in platform-independent models (PIMs) of the application that abstract from the technologies and platforms used to implement the application. Subsequent steps lead to a mapping from PIMs to an implementation, possibly via one or more platform- Copyright © 2007, Idea Group Inc. Copying or distributing in print or electronic forms without written permission of Idea Group Inc. is prohibited. van Snderen, Almeda, Pres, & Quartel specific models (PSMs). The main advantages of software development based on MDA—software stability, software quality, and return on investment—stem from the possibility to derive different implementations (via different PSMs) from the same PIM, and to automate to some extent the model-transformation process. Service-oriented computing and model-driven engineering have some common goals; they both strive to facilitate the development and maintenance of distributed enterprise applications, although they achieve these goals in different ways. This chapter aims at characterizing the concepts that underlie a model-driven service-oriented approach to the design of enterprise applications and discusses the benefits of such an approach. This chapter is further structured as follows. First we discuss the service concept, its relevance to systems design, and its application in service-oriented architectures. Then we introduce the concept of an interaction system in order to explain and distinguish between two important paradigms that play a role in service-oriented design. Next the chapter discusses the concepts of platform, platform-indepen-dence, and abstract platform, and how these fit into the model-driven engineering approach. All this serves as a background to the next section; which outlines our model-driven service-oriented approach in terms of a set of related milestones. After this we illustrate the model-driven service-oriented approach with a simple case study, namely, an auction system. Finally the chapter summarizes our findings and presents some concluding remarks. Service.Concept The concept of service has long been recognized as a powerful means to achieve a separation of concerns and adequate abstraction in distributed-systems design, especially for data communication (Vissers & Logrippo, 1985). In recent years, the advent of service-oriented architectures has renewed the attention for this con-cept, which is particularly relevant to enterprise service computing (Papazoglou & Georgakopoulos, 2003). This section discusses the service concept and its application in systems design, with a focus on service-oriented architectures. Systems.and.Services The Webster’s Dictionary online (http://www.m-w.com) provides a definition of system particularly applicable to distributed systems: “a system is a regularly inter-acting or interdependent group of items forming a unified whole.” This definition Copyright © 2007, Idea Group Inc. Copying or distributing in print or electronic forms without written permis-sion of Idea Group Inc. is prohibited. Designing Enterprise Applications 135 Figure 1. External and internal system perspectives: (a) system parts and (b) ser-vices System S Service S System System part S1 part S2 (de)composition of S Service S1 Service S2 System part S3 (de)composition of S3 Sub-part S3.1 Service S3 Service S3.1 Sub-part S3.2 Sub-part S3.3 Service S3.2 Service S3.3 Sub-part S3.4 (a) conformance relation Service S3.4 (b) indicates two different perspectives of a system: an integrated and a distributed perspective. The integrated perspective considers a system as a whole or black box. This perspective only defines what function a system performs for its environment. The distributed perspective defines how this function is performed by an internal structure in terms of system parts (or subsystems) and their relationships. The integrated perspective of a system coincides with the concept of service. A service is a design that defines the observable behavior of a system in terms of the interactions that may occur at the interfaces between the system and its environment and the relationships between these interactions. Aservice does not disclose details of an internal organization that may be given to implementations of the system (Vissers, Scollo, Sinderen, & Brinksma, 1991). By considering each part of a system as a system itself, the external and internal perspectives can be applied again to the system parts. This results in a process of repeated or recursive decomposition, yielding several levels of decomposition, also called levels of abstraction. Figure 1 illustrates schematically this process. In the recursive decomposition process, the service concept can represent the behavior of various kinds of entities, such as value chains, business enterprises, software applications, application components, middleware platforms, or communication networks. Service Concept in Service-Oriented Architectures Aservice in service-oriented architectures is a “self-describing, open component that supports rapid, low-cost composition of distributed applications” (Papazoglou & Copyright © 2007, Idea Group Inc. Copying or distributing in print or electronic forms without written permission of Idea Group Inc. is prohibited. van Snderen, Almeda, Pres, & Quartel Georgakopoulos, 2003, p. 26). Services in service-oriented architectures are offered by service providers, who are responsible for the service implementations and supply the service descriptions. These descriptions are published in service registries either by the service providers or on their behalf, and are used by potential service users to search and select the services that they want to use. This implies that a service description should contain the service capabilities, but also the technical information necessary to actually access and use the service. Although many authors associate service-orientedarchitectures onlywithWebservices,thereisnowadaysaconsensus that Web services is just one possible alternative to implement a service-oriented architecture (Erl, 2005). The concept of service as introduced in service-oriented architectures fits in our more general definition given above. We have shown in Quartel, Dijkman, and Sin-deren (2004) that service-oriented architectures are currently being approached in a technology-driven way. Most developments focus on the technology that enables enterprises to describe, publish, and compose application services, and to enable communication between applications of different enterprises according to their service descriptions. This chapter shows how modeling languages, design methods, and techniques can be put together to support model-driven service-oriented design. The service concept can be used as a starting point for design according to different paradigms. The service concept also supports platform independence. Design.Paradigms We introduce the concept of interaction system here in order to distinguish design paradigms in terms of how each paradigm addresses the design of interactions be-tween system parts. An interaction system refers to the specification of the way in which system parts interact with each other, that is, affect each other’s behavior in a defined way through the exchange of information. An interaction system involves a portion of the function of each system part and the connecting structure that is available for the system parts to exchange information, as depicted in Figure 2a. Figure 2. Interaction system from (a) distributed (system) and (b) external (service) perspectives nteracton system connectng structure (a) servce of nteracton system (b) Copyright © 2007, Idea Group Inc. Copying or distributing in print or electronic forms without written permis-sion of Idea Group Inc. is prohibited. ... - tailieumienphi.vn
nguon tai.lieu . vn