Service Oriented Architecture Design and Development Method

advertisement
Service Oriented Architecture Design and Development Method
René van Donselaar
Universiteit Utrecht
Introduction
As application portfolios grow, enterprises have increasing difficulty managing all applications.
One of the main issues is that applications are built with the tools that are available at a certain time and
therefore the application portfolio will contain applications that are built based on different programming
languages and design patterns. Making applications that are built using different programming languages
exchange data is a complex and costly task. Tracking the functionalities that are covered by applications
is difficult and redundancy occurs by a lack of documentation and integration of applications.
Architecture with a higher level of abstraction can help solve these problems. Service Oriented
Architecture (SOA) is a form of enterprise architecture based on both internal and external services which
communicate via interfaces (Brown et al., 2002). Services are used to provide other applications or
interfaces access to functionality that can come from one or more applications. When using services the
underlying applications are invisible to the user and can communicate with other services, independent of
programming language or platform. This also creates opportunities for interoperability with other
enterprises, making it more easy to use each other’s services. SOA requires that the services are
documented and reused within business units to maximize development efficiency and reduce the
complexity of growing application portfolios. For the implementation of SOA, the business has to be
adapted to follow the new set of principles. Although the business is an important aspect of successful
implementation of SOA, the application design and development also needs to be adapted. Using existing
applications and adding new interfaces is not enough, it requires a new development method that is
integrated through the whole development process. In this paper we will discuss the Service-Oriented
Design and Development Method (SODDM) by Papazoglou and Van den Heuvel (2004). Papazoglou is a
Computer Science professor and has specialized in Service Science. Over the years he has published over
eighteen articles related to SOA. His most famous work is Service-oriented computing (2003) which has
been cited over 1400 times. For developing SODDM Papazoglou worked together with Van den Heuvel
who is an Information Systems professor. Van den Heuvel is an expert in service systems and business
process management. His latest work on SOA is Business policy compliance in service oriented systems
(2011) that describes a form of adaptive SOA that can handle the changing business policies within an
enterprise. The SODDM method is based on Rational Unified Process, Component-based Development
and Business Process Modeling. It bears resemblance to many other agile development methods by using
an iterative process with phases. Within the phases we see distinct differences with an agile development
method like SCRUM (Schwaber, 2009), which is based on products with a product backlog. SODDM
starts with a planning phase; defining the business needs and goals in order to identify services rather than
products. This step is crucial for business alignment and for managing the application portfolio. The next
phase involves analyzing a business case in order to find possible solutions and alternatives, much like in
a PRINCE2 project (Jansen, 2007). The difference is that this phase is also involves specific SOA related
analyses, like service coupling; where the goal is to make the business processes as independent as
possible. The services in the business process are also analyzed for their cohesion; the services should be
highly related to one another. Other phases are: Provisioning, deployment and monitoring. SODDM
provides an agile based development method that is geared towards managing services and tight business
alignment in order to implement a SOA architecture.
[ Example ]
For this example an imaginary airline company referred to as Aircom will be used. First,
the planning phase is explained. Aircom has a set of business needs that have to be addressed:

Customers should be able to do their own bookings

Customers should be able to check for available seats

Customers should be able to pay for their booking
A business goal is derived from these business needs. Aircom has the goal of servicing their
customers with an online booking web application. The next activity is to look at the current
technology landscape in order to define a solution. The technology that is fit for the project is
chosen based on what is currently available, the costs of the development and what technology is
already used within the company.
To find which services need to be created and which have already been incorporated, the current
portfolio of services is analyzed in the analysis and design phase.
Table 1 - portfolio analysis
Service name
Booking registration service
Booking cancellation service
Booking availability request service
Customer login service
Customer registration service
Customer payment service
Is implemented
Yes
Yes
Yes
No
No
No
Table 1 depicts the portfolio for the bookings business process, which is a combination of the asis situation with the to-be situation. It shows which services the company had already
implemented and those that need to be implemented. Since some services are already available
they can be coupled with the new services for web based bookings. By doing this, the SOA
principle of reusing existing services within a business process can be addressed.
After this a business process realization scenario is chosen, which consists of four major
categories:

Green field development; which starts with the development of a service and then looks
at the possible language for the webinterface.

Top-down; when using an already existing interface.

Bottom-up; when a new interface is to be created.

Meet-in-the-middle; when an already existing interface is being mapped partially onto a
new service.
The choice for a scenario is based on costs, risks, benefits and return of investment.
The service is specified according to three elements, which are structural, behavioral and policy
specifications. This specification can be written in XML as is shown in the example below. Here
the existing service of booking registration is shown.
<portType name=”canReceiveA43_PortType”>
<operation name=”BookingRegistrationRequest”>
<output message=”tns:BookingRegistrationRequest”/>
</operation>
</portType>
The first specification is the port type, which is used to communicate with the service. An
operation is defined with its name, in this care ‘BookingRegistrationRequest’. The output
message is in many cases identical to the operation name and is the message that is sent when the
operation is triggered.
In the specification of services many more attributes are documented, such as the programming
style and service policies. The business processes are described and the roles that perform them.
After the design is finished the construction will start in the construction and testing phase. The
construction will be based on the previously defined planning, analysis and design. The
constructed service is tested on its functionalities according to its specification. Strategies for
service metering, rating and billing are defined in the provisioning phase. In this example the
service could be offered for free and the billing could be incorporated in the actual payment for
the booking. The service is now ready to be deployed in the deployment phase. How this is done
has to do with the outcome from the process realization analysis. For this example the new
service is deployed within the existing IT structure of Aircom, as they are already offering
similar services. For the web interface an external party is used. Finally the service enters the
execution and monitoring phase. Here who will be responsible for what part of the service is
described. For the existing services no changes are made, while for the new services members of
the business process are assigned to each service. The service is monitored by looking at aspects
of the SLA that can be measured. In this example the time that it takes to get a response from the
booking service is measured to see if it is according to the SLA. The up-time of the service can
also be measured which is stated in the SLA.
Literature review
SODDM was first introduced by Papazoglou and Van den Heuvel (2004) and is based on
Rational Unified Process, Component-based Development and Business Process Modeling. Rational
Unified Process was introduced by Kruchten (2004) and is based on the best practices in software
engineering. SODDM addresses the need for a method to design and develop services within an
organization that uses SOA for their enterprise architecture. Brown et al. (2002), describes the process of
design and development of web applications in a service-oriented environment. This study only shows the
design and development aspects and does not deal with the complexities of the business side and how to
translate this into services. Zimmerman et al. (2005) also provided techniques for analyzing and
designing SOA development based on UML and Rational Unified Process, but this study is more general
and does not describe an entire method for dealing with development. Reijnders et al. (2011) has
compared many of the service-oriented software development methods, in this study SODDM is also
described and compared with other methods like SOMA. SOMA was introduced by Arsanjani (2004) and
is an agile method developed and used by IBM for a SOA architecture development. Another method is
the WSIM by Lee et al. (2006) which is based on the extending existing development methods for
development geared towards SOA. The study also shows that SODDM and SOMA are the most dominant
studies on this subject.
Process Deliverable Diagram
After analyzing SODDM a graphic representation of the process and its deliverables was
made. It shows all activities one must perform on the left side, ordered from top to bottom. On
the right side a connection is made with the deliverables that are produced by each activity. Van
de Weerd & Brinkkemper (2006) can be used as reference for reading PDDs.
Figure 1 - SODDM PDD
Activity table
All activities that are depicted in the PDD have been included in an activity table. Here
each activity is described. The name of the activity is displayed and next to it are the (optional)
sub activity names with a short description in the last column.
Table 2 - Activity table
Activity
Plan
Analyze
Design
Sub activity
Analyze
business
needs
Review
current
technology
Conceptuali
ze
requiremen
ts
Analyze
costs and
benefits
Categorize
and
decompose
business
environmen
t
Review
business
goals and
objectives
Identify
processes
Scope
processes
Description
Business needs are analyzed in order to define BUSINESS GOALS.
(Papazoglou & Van den Heuvel, 2004)
The current technology landscape is being reviewed in order to find
suitable technologies that can be used within the business in a
TECHNOLOGY LANDSCAPE. (Papazoglou & Van den Heuvel, 2004)
The requirements of the new environment are conceptualized and
mapped to new or available implementations. (Papazoglou & Van
den Heuvel, 2004)
A financial analysis of the costs and benefits is performed that
produces a BUDGET AND SOFTWARE DEVELOPMENT PLAN.
(Papazoglou & Van den Heuvel, 2004)
The business environment is categorized and decomposed into
BUSINESS AREAs based on the functions provided by the business
processes. (Papazoglou & Van den Heuvel, 2004)
Business goals and objectives that drive the development of business
processes are reviewed as part of the ANALYSIS. (Papazoglou & Van
den Heuvel, 2004)
Current processes are identified in order to create an AS-IS PROCESS
MODEL. (Papazoglou & Van den Heuvel, 2004)
This defines the scope of business processes in order to create TO-BE
PROCESS MODEL. (Papazoglou & Van den Heuvel, 2004)
Incrementally adds more implementation details to an abstract
Analyze gap service/process interface. (Papazoglou & Van den Heuvel, 2004)
Analyze
process
An approach that considers diverse business process realization
realization scenarios. (Papazoglou & Van den Heuvel, 2004)
Address
Analyze and solve design concerns such as managing granularity,
design
concerns
Specify
services
Specify
business
processes
Construct
Test
Provision
Execute
service
Monitor
reuse and composability. (Papazoglou & Van den Heuvel, 2004)
Specify the service by structural, behavioral and policy specification.
(Papazoglou & Van den Heuvel, 2004)
Describe the business process structure, Roles and non-functional
business process concerns. (Papazoglou & Van den Heuvel, 2004)
The development of the web service and implementation of the web
service. (Papazoglou & Van den Heuvel, 2004)
Test
Run the implementation and compare its actual to its expected
dynamics
behavior. (Papazoglou & Van den Heuvel, 2004)
Test
Test how the system executes functions and if they follow the
functions
expected behavior. (Papazoglou & Van den Heuvel, 2004)
Test
Monitoring the systems on-line response times and transactions
performanc under peak workload conditions. (Papazoglou & Van den Heuvel,
e
2004)
Test
Tests whether all services function properly when assembled into
assembly
business processes. (Papazoglou & Van den Heuvel, 2004)
Govern
Align the business strategy with the IT strategy. (Papazoglou & Van
service
den Heuvel, 2004)
Certify
List all the properties that the application may attain. (Papazoglou &
service
Van den Heuvel, 2004)
Create a pricing model that could be used to calculate the charges for
Rate service the customer. (Papazoglou & Van den Heuvel, 2004)
Define
billing
Define a strategy for billing services that way the customer needs to
strategy
perform his payment. (Papazoglou & Van den Heuvel, 2004)
Ensure the new process is carried out by all participants. (Papazoglou
& Van den Heuvel, 2004)
Measure the service level objectives and performance. (Papazoglou &
Meaure
Van den Heuvel, 2004)
Evaluate the service level objectives and performance. (Papazoglou &
Report
Van den Heuvel, 2004)
Concept table
The concepts that are present in the PDD are listed in Table 3. Each concept is shown by
name and explained with a short description.
Table 3 – Concept table
Concept
Description
Describes the objectives of the business. (Papazoglou & Van den
Heuvel, 2004)
Describes the current available technology that can be used.
(Papazoglou & Van den Heuvel, 2004)
A description of functions served by business processes. (Papazoglou &
Van den Heuvel, 2004)
BUSINESS GOAL
TECHNOLOGY
LANDSCAPE
BUSINESS AREA
DEFINITION
BUDGET AND
SOFTWARE
Describes the tasks, deliverables and schedule. (Papazoglou & Van den
DEVELOPMENT PLAN Heuvel, 2004)
Consists of BUSINESS GOAL, BUSINESS AREA DEFINITION and BUDGET
AND SOFTWARE DEVELOPMENT PLAN (Papazoglou & Van den Heuvel,
PLANNING
2004)
Consists of an AS-IS PROCESS MODEL and a TO-BE PROCESS MODEL.
ANALYSIS
(Papazoglou & Van den Heuvel, 2004)
AS-IS PROCESS
Describes the current business processes and services. (Papazoglou &
MODEL
Van den Heuvel, 2004)
TO-BE PROCESS
Describes a desired situation of business processes and services.
MODEL
(Papazoglou & Van den Heuvel, 2004)
The design of the service that describes the granularity, reuse,
composability, specification and business processes. (Papazoglou & Van
SERVICE DESIGN
den Heuvel, 2004)
SERVICE ORIENTED
The tested construction of the service. (Papazoglou & Van den Heuvel,
APPLICATION
2004)
Internal and external parties look at the quality of the service and
REVIEW
report in a review. (Papazoglou & Van den Heuvel, 2004)
Can be an SLA, and contains all service certificates. (Papazoglou & Van
SERVICE CONTRACT
den Heuvel, 2004)
Shows the costs, benefits and resources that are involved with the
BUSINESS CASE
provision. (Papazoglou & Van den Heuvel, 2004)
A description of how the customer should pay for the service.
BILLING STRATEGY
(Papazoglou & Van den Heuvel, 2004)
Consists of a BILLING STRATEGY and one or more REVIEWs, SERVICE
CONTRACTs and BUSINESS CASEs. (Papazoglou & Van den Heuvel,
PROVISION PLAN
2004)
SERVICE MONITOR
Contains the response time, throughput and availability of the service.
REPORT
(Papazoglou & Van den Heuvel, 2004)
References
Arsanjani, A. (2004). Service-oriented Modeling and Architecture. IBM developerworks.
Brown, A., Johnston, S., Kelly, K. (2002). Using Service-Oriented Architecture and ComponentBased Development to Build Web Service Applications. Rational Software Corporation.
Jansen, P. (2007). Prince2 Compact. Pearson Benelux: Education.
Kruchten, P. (2004). The rational unified process: an introduction. Addison-Wesley Professional.
Lee, S., Chan, L., Lee, E. (2006). Web Services Implementation Methodology for SOA
Application. Industrial Informatics.
Papazoglou, P., Van den Heuvel, W. (2004). Service-Oriented Design and Development
Methodology. Int. J. of Web Engineering and Technology (IJWET).
Reijnders, G., Khadka, R., Jansen, S. (2011). Developing a Legacy to SOA Migration Method.
Department of Information and Computing Sciences, Utrecht University, Tech. Rep. UU-CS2011-008.
Schwaber, K. (2009). Agile project management with Scrum. O'Reilly Media.
Van de Weerd, I., Brinkkemper, S. (2009). Meta-Modeling for Situational
Analysis and Design Methods.
Zimmerman, O., Schlimm, N., Waller, G., Pestel, M. (2005). Analysis and design techniques for
Service-Oriented Development and Integration. IBM Deutschland.
Appendix
Conceptualized requirements (conceptual solution)
Requirements
Name
Some requirement
Some requirement
Some requirement
Description
A short description
A short description
A short description
Owner
Who submitted the requirement
Who submitted the requirement
Who submitted the requirement
Business solution
Name of the solution
Textual description
Components description
Graphical representation of the business solution (use cases)
System
«extends»
Performed action
UseCase1
UseCase5
Performed action
UseCase2
Performed action
UseCase6
UseCase3
Name of the actor
Name of the actor
Performed action
UseCase4
User template
Name
Role
Description
Name of the user (if available)
Name of the role within the system
Short description of the user
Usecase template
Id
Name
Description
Extends
Unique usecase id
Name of the usecase
Short description of the usecase
Extends which usecase(s)
Download