A Goal-Oriented Representation of Service-Oriented Software Design Principles

A Goal-Oriented Representation of Service-Oriented Software Design Principles

Alireza Moayerzadeh (University of Toronto, Canada) and Eric Yu (University of Toronto, Canada)
DOI: 10.4018/978-1-60566-794-2.ch006
OnDemand PDF Download:
List Price: $37.50


Service-oriented architecture (SOA) embodies a set of principles including service abstraction, composability, discoverability, and reusability, among others. Although these principles are widely circulated by SOA technology vendors, there have been few efforts to collect, organize, and elaborate on these principles for the purpose of guiding system design. This chapter explores how service-oriented design principles can be organized in a goal-graph representation complementary to original text and used in system design. The approach builds upon the NFR framework for treating non-functional requirements in software engineering. The chapter proposes a method to extract SOA design principles from textually represented service-oriented knowledge sources. The method is applied to an SOA knowledge source, extract an SOA design knowledge-base organized by design principles and presented by goal-graphs, and the chapter then explores application of such knowledge-base.
Chapter Preview


Service-oriented architecture (SOA) is an architectural model that aims to enhance the agility and cost-effectiveness of an enterprise while reducing the overall burden of IT on an organization. It accomplishes this by positioning services as the primary means of providing functionality. A service is a unit of potentially independent logic which contributes to providing required functionality in a solution designed with service-orientation in mind. SOA promises that proper use of services as building blocks of business applications will bring about benefits such as increased intrinsic interoperability, increased business agility, and reduced IT burden within an organization. As a result, SOA is being embraced by the software community.

Like any other architectural model, using SOA in system design requires following a set of design principles such as service abstraction, service autonomy, and service discoverability. Implementing such designs, in turn, needs appropriate technologies such as WebService standards and middleware servers. While the mentioned principles are promoted by vendors providing the necessary technology, the main focus is usually on the technology rather than the concept and rationale of design principles. Such introduction of design principles from a perspective relevant to technology keeps designers from gaining an objective and complete understanding of principles which ultimately leads to poor vendor-biased designs.

There have been few efforts to collect, organize, and elaborate on these principles for the purpose of guiding system design. When these principles are elaborated, there are complementary as well as conflicting aspects that can be uncovered. Recently, more comprehensive attempts to articulate these design principles have emerged in the literature. However, while the textual format is necessary for the exposition and explanation of concepts, it does not lend itself easily for visualizing the relationships and interactions among inter-related concepts and principles.

To address the mentioned issues, we propose to use a goal-oriented modeling method to model non-functional requirements and represent design knowledge in SOA as a complement of the original text. Also, we propose to use well-developed goal-oriented analysis techniques to provide analysis support and guide system design. Finally, we propose to organize SOA knowledge from different sources into an integrated knowledge-base.

First, we present our knowledge extraction and modeling method and discuss it further by going through details of extracting knowledge from a textually represented SOA knowledge source and representing it using goal-oriented concepts. By SOA knowledge source we mean any source that contains expressed knowledge about Service Orientation. Books, articles, or internet websites about SOA are all valid examples of an SOA knowledge source. After introducing our method we show the result of using that method on a reference book of SOA design and argue how the result serves as a knowledge-base we can integrate more SOA knowledge upon. Then we demonstrate applications of such extracted knowledge in system design. Next, we show how to use our method on other SOA knowledge sources in order to integrate more sources into our knowledge-base. Finally, we present conclusions and lessons learned and explain how structure of a knowledge source affects the extracted knowledge.

In summary, this chapter has two distinct contributions: First contribution is a knowledge-base of SOA knowledge which serves as a base to integrate knowledge from various SOA knowledge sources. Second contribution is a method which is used to construct the knowledge-base from a selected SOA knowledge source and can be used to integrate more sources into the knowledge-base.

Complete Chapter List

Search this Book: