SOA Patterns Selection and Application Based On Software Quality Requirements

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

SOA Patterns Selection and Application based on

Software Quality Requirements


Heng Zhao Xiuhong Chen, Wenqian Zhang, Wei Huang
Wuhan Digital Engineering Institute Peng Liang, Jian Wang Wuhan Digital Engineering Institute
Wuhan, China School a/Computer Sc ience Wuhan . China
hellezhao@126.com Wuhan University huangweinet@sina.com
{chenxh,wqzhang,liangp,jianwang}
@whu.edu.cn

Abstract-Applying software architecture patterns in SOA are independent of hardware platforms, operating systems, and
architecture design is an important way to construct high quality programming languages that implement these services. This
design of softwa re architecture. Meanwhil e, t he selection of enables the built services to interact with each other in a
architecture patterns has a close relationship to quality
unified and universal way in such a system. With the loosely
requirement s of softwa re systems to be developed. Applying a
coupled nature, SOA can utilize the existing applications to
speeiflc architecture pattern can usually a ddr ess specific quality
requirement s, and further optimize architecture design. In tin s provide new services through composition in an agile and
pap er, we fir st mad e a comprehen sive survey and analysis on th e flexible way for the enterprise to build new applications and
ty pe of quality re quire ments, and refined twenty-one quality business processes. These features of SOA make the systems
requirement s that are frequently used in softwa re architecture more maintainab le and usable with better scalability. As a new
design. W e then classified th e SOA patterns in th e perspective of style of software architecture, SOA has received an increasing
quality requirements, which can help architects select attention in both academia and industry [2].
appropriate SOA patterns according to the quality r equirement s With the wide application of SOA in the architecture
of their system. Finally, we illustrat ed the proposed method by design of software systems, many SOA patterns [4] are also
selecting a specitlc SOA pattern t o design an onlin e book
emerged in the design. However, it is difficult and challenging
distribution management system.
for architects who lack design experience (such as a novice
Keywords-Softw are Quality Requirement; So/Mare architect) to select suitable SOA patterns for addressing the
Architecture Pattern; SOA; SOA Pattern quality requirements of the system. Therefore, in SOA design,
to recommend suitable SOA patterns based on the quality
1. I NTR ODUCTION requirements of the system to architects for their consideration
and selection, has becoming a meaningful and practical
Software architecture design is the initial blueprint for research topic, which can facilitate systematic SOA design and
the design of software systems, relying primarily on the reuse of SOA patterns.
functional requirements and quality requirements (i.e., non- As a design method of building software systems, SOA
functional requirements) of software systems. Compared to can guide the whole life cycle of software design. With the
software architecture design that meets functional wide adoption of SOA, users have been increasingly
requirements, architecture design for addressing quality concerned about non-functional requirements of the system [5]
requirements is often the most difficult and easily overlooked while the function requirements are met. In [4], Thomas et al.
by software architects during the design process. Meanwhile, summarized 85 commonly used SOA patterns that can be used
software architecture design as a knowledge-intensive activity, to achieve business goals related to service oriented
the satisfaction of system quality requirements in architecture computing with the purpose of developing and delivering high
design largely depends on the personal knowledge and quality SOA-based software systems. These SOA patterns are
experience of software architects, and lacks of a systematic the collection of existing design knowledge that satisfies
design method. Software architecture patterns provide various quality requirements, but how to apply these SOA
architecture design knowledge that has been proved to be patterns according to the quality requirements of the system is
effective and reusable in practice for architecture design, still a challenge for architects, which is the problem we try to
which can effectively improve the efficiency and quality of tackle in this work.
architecture design. A large number of software architecture In this work, we first made a comprehensive survey and
patterns have been widely used in industry [3], including analysis of the types of software quality requirements based on
Service Oriented Architecture (SOA) design patterns [4]. the existing literature. The twenty-one quality requirements
SOA is a special kind of software architecture and also a commonly considered in architecture design are presented in
component model, with which various functional units (i.e., Section 1. The background information of software quality
services) of an application are connected through well-defined requirements and software architecture patterns is described in
interfaces and contracts between these services [1]. The Section II. In Section III, aiming at several commonly used
interfaces are defined in a neutral way, which means that they

978-1-5386-65 65-7/18/$3 1.00 (f)2018 IEEE

361
quality requirements, we classified the SOA patterns in [4] in located and fixed [9].
order to assist architects in selecting appropriate SOA patterns Reusability Whether the modules of the system can be
according to the quality requirements. In Section IV, we used easily reused in other systems [9].
Interoperabi lity Whether the system can easily interact with
the recommended SOA patterns to meet the specific quality
other systems, such as transferring files to
requirements and show the effectiveness of the method spreadsheets or accessing new hardware
through an example of the architecture design of an online units [9].
book distributio n management system. Section V summarizes Recoverability The ability of the system to recover from
the work with future directions . faults, errors, and malfunctions [8].
Correctn ess Under a normal operation, the system can
II . BACKGROUND produce correct results.
Testability The easiness of the system to be tested after
A . Quality Requirements Classification the system changes [9].
Software quality requirements are often used to specify Portability The easiness of the system to be
transplanted to a new software or hardware
the qua lity attributes of software systems beyond the platform [9], including Adaptability.
functional requirements of software systems, such as Suitability Whether the system can fully support the
performance, reliability, and scalability. In [6], Ozkaya et al. tasks of the users [8].
described in detai l what software quality attributes are and Analyzability The capability of software products to be
presented the use of quality attributes in software diagnosed as deficiencies and the cause of
architecture design . In [7], Berntsson et al . systematically errors, or to identify the parts that need to
investigated the quality attributes commonly considered in be modified [8].
Rep laceability The extent to which the system or part of
industrial software development projects. Both the ISO
the system can be replaced.
25010 standard [8] and [9] provide the classification and
Understandability The easiness with which developers can
definition of software quality requirements. In this work, we understand the architecture design .
combined the definitions of software quality requirements Operability The easiness of the software product to be
from these two references ([8][9]) and gave a clear operated and controlled by the users .
definition for the quality requirements that have similar Robustness The extent to which a system or component
definitions. Meanwhile, we distinguished different quality can be operated norma lly under an invalid
requirements with the description of the quality attributes in input or pressure environment [11],
including Fault Tolerance.
[10, 11]. Finally twe nty-one quality requirements (see
Scalability As the system functio ns or load increase,
TABLE I) were extracted whic h are commonly considered
the capability of the system to keep normal
in architecture design. Some of the quality requirements are response time or throughput.
sub -requirements or similar requirements of other quality
requirements, such as Fault Tolerance is part of Robustness. B . Software Architecture Patterns
A software architecture pattern is a reusable solution to a
TABLE 1. SOFTWARE QUALITY REQUIREMENTS COMMONLY specific architecture design problem in a given environment. It
CONSIDERED IN SOFTWARE ARCHITECTURE DESIGN represents the basic structured organization of the software
system. It provides a set of predefined subsystems, and defines
Qua lity
Requireme nts
Descr iptio u their responsibilities with constraint rules and application
Usability The characteristics of a product for a guidelines for organizing relationships between the subsystems
particu lar use in a certain environment, [12]. Software architecture patterns as reusable architecture
including effectiveness, efficiency, and design solutions for specific design problems in a given
user satisfaction. environment, i.e., the relationships between structural elements
Performance System response time, efficiency of task in the definition of software architecture given in [13],
execution [9]. architecture patterns are usually used to satisfy several
Reliability The frequency interval of the system failure functional requirements and quality requirements of the system
(mean time between failures) and the in architecture design.
proportion of time when the system is
availab le.
Stability The probability of an error or the trend of III . SOAPATTERNS SELECTION
performance degradation during operation
of the software system . A . SOA Patterns
Flexibility The easiness with which the system can be The fundamental objective of SOA patterns is to develop
extended with new features, including
and deliver high-quality software systems, which summarize
Changeabi lity.
the design patterns commonly used in SOA-based systems in
Security How the system handles physical barriers
and prevents malicious attacks on the
order to achieve business goals related to service-oriented
system [9]. computing [4]. The intention of SOA patterns is not to replace
Compliance Whether the system can meet the domain or or compete with existing design and architecture patterns, but
technical standards [8]. to build and supplement existing design patterns used in
Maintainability Whether the errors of the system can be software systems. These SOA patterns focus on strategic goals

362
related to service-oriented computing, including new patterns, Composition, Capability Recomposition,
existing patterns that are extended, and patterns that are similar Composition Autonomy, Concurrent
to the intent of other patterns . SOA patterns are designed to Contracts, Cross -Domain Utility Layer,
allow the original patterns to be interpreted in the context of Data Pattern s Transform ation, Entity
SOA design and to highlight SOA patterns as a supporting part Abstraction, Intermediate Routing, Logic
Centralization, Multi- Channel Endpo int,
of the service-oriented design paradigm . Understanding the
Rules Centralization, Service Agent,
underlying design solutions and techniques provided by SOA Service Layers, Utility Abstraction
patterns can help architects gain insight of the service-oriented Scalability Distributed Capability, Enterprise Service
mechanisms and can be used to explain how SOA represents a Bus, Partia l State Deferral, Service Data
particular type of architecture patterns. Replic ation, Service Grid, State
Repo sitory
B . SOA Patterns Selection based on Quality Requirements When a service requires the client to mteract with this
When applying a specific architectur e pattern (including service synchronously, synchronous messaging requires a real-
SOA patterns), it may have a positive impact on certain quality time feedback for each request, resulting in a bilateral data
requirements while a negative impact on other quality exchange for each service interaction. When the service needs
requirements (such as Performance and Security). Therefore, to perform synchronous communication, both the service and
when applying architecture patterns to design the architecture, the service client are required to be available, and the data
architects need to consider the balance and compromise of exchange can be completed. In this situation an interaction
multiple quality requirements . In [3], Buschmann et al . cannot be completed when either party cannot accept or send a
introduce the commonly-used architecture patterns and how to message, because the message is failed to send out or there is
apply these patterns to achieve the system's quality no reply message, and consequently the Reliability of the
requirements. In [14], Muller et al. used questioning and system execution are extremely low. With the application of
scoring to select appropriate patterns from a set of labeled the Asynchronous Queuing pattern, the queuing mechanism is
architecture patterns in order to meet the quality requirement s introduced, and the queue acts as a temporary buffer to receive
and design scenarios in the architecture design. In [15], Stol et the messages, and then the messages are transmitted to the
al . introduce the methods and processes for identifying and client. If the target service which receives the message is
extracting architecture patterns from open source projects, in unavailable , the queue acts as a temporary memory to save the
order to evaluate and analyze implicit quality requirements of message, and then it can try to send the message again.
the system, and to provide a basis for the evolution of the Similarly, when there is a reply message from the service, the
architecture design. In this work, we provide a method to assist queue can also be used to temporarily store the reply message,
architects in selecting appropriate SOA patterns based on the and then send the reply message to client service when it is
quality requirements of the system. TABLE II shows the available. When the service or service client is processing the
selectable SOA patterns that an architect can employ to meet content of the message, the other party can perform other
one or several quality requirements of a system (e.g., operations for the purpose of minimizing the memory
Asynchronous Queuing for Reliability). Note that four quality consumption. The use of the Asynchronous Queuing pattern
requirements (i.e., Reliability, Security, Reusability, and can prevent the situation of message transmission failure or no
Scalability) listed in TABLE I are considered in SOA patterns reply message; thereby ensure the Reliability of the SOA-based
selection in TABLE II, because not all quality requirements systems.
can be well addressed by using certain SOA patterns .
IV. CASE STU DY
TABLE II. SE LECTAB LE SOA PA TTERN S BASED ON S PECIFIC QUALITY
RE QUIREMENT S
We illustrate the applicati on of the method through the
architecture design of an online book distribution and sales
Software Quality management system that has been implemented and availabl e
Selectable SOA Patterns
Requirements
online. In the development of this system based on SOA, we
Reliability Agnostic Context, Asynchronous Queuing,
Composition Autonomy, Di stributed
take the book retailing module as an example, and the
Capability, Enterprise Service Bus, architecture design of this module is shown in Figure 1. When
Redundant Implementation, Reliable multipl e retailers need to submit orders and payment
Messaging, Service Encapsulation, Service information to the vendor, the vendor needs an order service
Facade, Service Grid and payment service which are capable of handling a large
Security Brokered Authentication, Capability number of transactions. For the retailers, they need to know
Recompo sition, Data Confidentiality, Data
whether their orders have been completely submitted, and
Origin Authentication, Direct
Authentic ation, Distributed Capability,
whether the vendor s can process the orders correctly. For the
Exception Shieldin g, Invento ry Endp oint, retailers , they also need to ensure that their payment
Messaging Metadata, Policy information is reliable and complete. In this SOA-based
Centralization, Service Encapsulation, system, a critical quality requirement that needs to consider is
Service Perimeter Guard, Trusted Reliability .
Subsystem As we can see from TABLE II, when considering the
Reusability Agnostic Capability, Agnostic Context,
quality requirem ent Reliability , there are ten SOA patterns that
Agnostic Sub-Controller, Capability

363
Retailer1

Retailer3 Gathering
Service

~ O'dij"'ce
P ayment •
REST Servk:e

Figure 1. The book retailing module based on SOA

can be used to meet this quality concern. The SOA patterns patterns selection for addressing multiple quality attributes,
that we can adopt when satisfying the architecture function of involving combination of SOA patterns, and quality attribute
this booking retailing module is Enterprise Service Bus (ESB) conflicts between pattern applications. There is a need to
and Reliable Messaging. The ESB pattern can handle services investigate the combination of SOA patterns while balancing
described by different specifications to ensure that the services quality attribute conflicts.
are accurately distributed and processed. The Reliable
Messaging pattern can record the processing information of REFERENCES
high-throughput services and provide timely feedback to [1] Newcomer E, Lomow G. Understanding SOA with Web Services.
service senders on the execution information of the services. Addison-Wesley Professional, 2005.
The architect can employ these two SOA patterns and add the [2] Josuttis N. SOA in Practice. O'reilly, 2007.
Persistent Repository database in the Reliable Messaging [3] Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M. Pattern-
pattern to the ESB pattern when designing the book retailing oriented Software Architecture: A System of Patterns. England: John
Wiley & Sons, 1996.
module. The use of these two SOA patterns can ensure that the
[4] Erl T. SOA Design Patterns. Prentice Hall, 2008.
vendors can use the order service to process different formats
[5] Chen X, Zhang W, Liang P, He K. A Replicated Experiment on
of orders. Meanwhile it also ensures that the processing Architecture Pattern Recommendation based on Quality Requirements.
information of the services is recorded and sent back to the ICSESS 2014: 32-36.
retailers in order to guarantee the Reliability of the system. [6] Ozkaya I, Bass L, Nord R L, Sangwan R S. Making practical use of
quality attribute information. IEEE Software, 2008, 25(2): 25-33.
IV CONCLUSIONS [7] Berntsson S R, Gorschek T, Regnell B, Torkar R, Shahrokni A, Feldt R.
Quality requirements in industrial practice - an extended interview study
This paper introduces an SOA design method based on at eleven companies. IEEE Transactions on Software Engineering, 2012,
software quality requirements and SOA patterns selection, and 38(4): 923-935.
extracted and refined twenty-one system quality requirements [8] International Organization for Standardization, ISO 25010: Systems and
that need to be considered in architecture design (including software engineering - Systems and software Quality Requirements and
SOA design) from existing literature. For the SOA-based Evaluation (SQuaRE) - System and software quality patternss, 2013
systems, the proposed method can assist architects in selecting [9] McCall J A, Matsumoto M T. Software quality measurement manual.
the appropriate SOA patterns according to the quality U.S.: Rome Air Development Center, Technical Report: lR-80-109,
1980.
requirements of the systems. We also show the application of
the method through an online book distribution and sales [10] Bass L, Clements P, Kazman R. Software Architecture in Practice. 3rd
Edition. Boston: Addison Wesley, 2012.
management system as an example.
[11] IEEE Standard Glossary of Software Engineering Terminology. IEEE
In the application of the general architecture patterns, there Std610.12-1990, 1, 1990.
is already some work on recommending patterns based on [12] Buschmann F, Henney K, Schimdt D. Pattern-Oriented Software
quality requirements and their quantification [5], while in the Architecture: On Patterns and Pattern Language (Vol. 5). John Wiley &
Sons, 2007.
application of SOA patterns, the lack of SOA tactics is an issue
[13] Perry D E, Wolf A L. Foundations for the study of software architecture.
for the quantification. The next steps include (1) proposing a ACM SIGSOFT Software Engineering Notes, 1992, 17(4): 40-52.
quantifiable impact value assessment method to measure the
[14] Muller M, Kersten B, Goedicke M. A question-based method for
relationship between quality requirements and SOA patterns, deriving software architectures. ECSA 2011: 35-42.
and better assisting architects to select and apply appropriate [15] Stol K, Avgeriou P, Ali Babar M. Design and evaluation ofa process for
SOA patterns based on quality requirements; (2) Software identifying architecture patterns in open source software. ECSA 2011:
systems often have multiple quality attributes, and SOA 147-163.

364

You might also like