0% found this document useful (0 votes)
120 views58 pages

Service-Centric Software Engineering: ©ian Sommerville 2006 MSC Module: Advanced Software Engineering Slide 1

Service-oriented architectures are based around the notion of externally provided services (web services) a tax filing service could provide support for users to fill in their tax forms. Business process models may be used as a basis for the design of service-oriented systems.

Uploaded by

Leti Hanaj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
120 views58 pages

Service-Centric Software Engineering: ©ian Sommerville 2006 MSC Module: Advanced Software Engineering Slide 1

Service-oriented architectures are based around the notion of externally provided services (web services) a tax filing service could provide support for users to fill in their tax forms. Business process models may be used as a basis for the design of service-oriented systems.

Uploaded by

Leti Hanaj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 58

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 1

Service-centric Software Engineering


Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 2
Objectives
To introduce the idea of service-oriented architectures
To explain the notion of a reusable service, based on web
service standards, that provides a mechanism for inter-
organisational computing;
To describe the service engineering process that is intended
to produce reusable web services;
To introduce service composition as a means of application
development;
To show how business process models may be used as a
basis for the design of service-oriented systems.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 3
Topics covered
Service-oriented architectures
Services as reusable components
Service engineering
Software development with services
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 4
Service-oriented architectures
Based around the notion of externally provided
services (web services).
A web service is a standard approach to making a
reusable component available and accessible
across the web
A tax filing service could provide support for users to fill
in their tax forms and submit these to the tax
authorities.
Services may execute on different computers from
different service providers.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 5
A generic service
An act or performance offered by one party to
another. Although the process may be tied to a
physical product, the performance is essentially
intangible and does not normally result in
ownership of any of the factors of production.
Service provision is therefore independent of the
application using the service.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 6
Web services
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 7
Service roles
Service registry
Provides details of the range of services that are
available (possibly from different providers)
Service provider
Hosts a service that can be accessed and used by
external clients
Service requestor
Seeks a service to be incorporated into an application
or a business process

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 8
Services and distributed objects
Provider independence.
Public advertising of service availability.
Potentially, run-time service binding.
Opportunistic construction of new services through
composition.
Pay for use of services.
Smaller, more compact applications.
Reactive and adaptive applications.

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 9
Services scenario
An in-car information system provides drivers with
information on weather, road traffic conditions, local
information etc. This is linked to car radio so that information
is delivered as a signal on a specific radio channel.
The car is equipped with GPS receiver to discover its
position and, based on that position, the system accesses a
range of information services. Information may be delivered
in the drivers specified language.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 10
Automotive system
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 11
Hybrid system
The in-car system is an example of a hybrid
system where local computation does not use a
web service based approach (Too much
computational and communication overhead)
However, features that rely on external information
or which require more processing than can be
provided on-board (e,g, translation) are accessed
as services.
Mobility means binding to different services
depending on location.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 12
Benefits of SOA
Services can be provided locally or outsourced to
external providers
Services are language-independent
Investment in legacy systems can be preserved
Applications can be adaptive, binding to different
services as availability and capability changes
Inter-organisational computing is facilitated through
simplified information exchange
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 13
Web service standards
Transport (HTTP , HTTPS, SMTP , ...)
Messaging (SOAP )
Servi ce defi ni t ion (UDDI, WSDL)
Process (WS-BP EL)
Support (WS-Securit y, WS-Addressi ng, ...)
XML technologi es (XML, XSD, XSL T, ....)
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 14
Key standards
SOAP
A message exchange standard that supports service
communication
WSDL (Web Service Definition Language)
This standard allows a service interface and its bindings to
be defined
UDDI
Defines the components of a service specification that may
be used to discover the existence of a service
WS-BPEL
A standard for workflow languages used to define service
composition
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 15
Other standards
A standards body exists (OASIS) to ratify service
standards but it is not completely effective
There are a huge number of proposed standards to
support other aspects of SOA (e.g. security,
dependability, QoS, etc.) but few of these
standards have been agreed or accepted by the
major vendors.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 16
Service-oriented software engineering
Existing approaches to software engineering have
to evolve to reflect the service-oriented approach to
software development
Service engineering. The development of dependable,
reusable services
Software development for reuse
Software development with services. The development
of dependable software where services are the
fundamental components
Software development with reuse
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 17
Services as reusable components
A service can be defined as:
A loosely-coupled, reusable software component that encapsulates
discrete functionality which may be distributed and
programmatically accessed. A web service is a service that is
accessed using standard Internet and XML-based protocols
A critical distinction between a service and a component as
defined in CBSE is that services are independent
Services rely on message-based communication with messages
expressed in XML
Services are stateless ie they do not maintain information from one
invocation to another
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 18
RPC vs message based interaction
Component-based system generally use a style of
interaction which is based on a remote procedure
or method call i.e. the remote component is called
as if it was local.
Middleware is used to manage this interaction.
Services use a different approach based on
message passing where all information about the
service required is bundled into a single message
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 19
Synchronous interaction
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 20
An order as an XML message
<starter>
<dish name = soup type = tomato />
<dish name = soup type = fish />
<dish name = pigeon salad />
</starter>
<main course>
<dish name = steak type = sirloin
cooking = medium />
<dish name = steak type = fillet
cooking = rare />
<dish name = sea bass>
</main>
<accompaniment>
<dish name = french fries portions =
2 />
<dish name = salad portions = 1 />
</accompaniment>

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 21
Web service description language
The service interface is defined in a service
description expressed in WSDL. This has been
agreed as a standard and is generally adopted.
The WSDL specification defines
What operations the service supports and the format of
the messages that are sent and received by the service
How the service is accessed - that is, the binding maps
the abstract interface ontoa concrete set of protocols
Where the service is located. This is usually expressed
as a URI (Universal Resource Identifier)
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 22
Structure of a WSDL specification
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 23
A WSDL description fragment
Defi ne some of the types used. Assume that the namespace prefixes ws refers to
the namespace URI for XML schemas and the namespace prefix associ ated wi th
this defi niti on is weathns.

<types>
<xs: schema targetNameSpace = http://.../weathns
xml ns: weathns = http:///weathns >
<xs:el ement name = Pl aceAndDate type =pdrec />
<xs:el ement name = MaxMi nTemp type = mmtrec />
<xs: el ement name = InDataFaul t type = errmess />

<xs: compl exType name = pdrec
<xs: sequence>
<xs:el ement name = town type = xs:s tri ng/>
<xs:el ement name = country type = xs:st ri ng/>
<xs:el ement name = daytype = xs:date />
</xs:compl exType>

Defi ni ti ons of MaxMi nType and InDataFaul t here
</schema>
</types>
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 24
A WSDL description fragment 2
Now defi ne the i nterface and its operations. In this case, there is onl y a si ngle
operati on to r eturn maxi mum and mi nimum temperatures

<i nterface name = weatherInfo >
<operati on name = getMaxMi nTemps pattern = wsdl ns: i n-out>
<i nput messageLabel = In el emen t = weathns: Pl aceAndDate/>
<output messageLabel = Out el ement= weathns:MaxMi nTemp/>
<outfaul t messageLabel = Out e l ement = weathns:InDataFaul t />
</operati on>
</i nterface>
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 25
Service engineering
The process of developing services for reuse in
service-oriented applications
The service has to be designed as a reusable
abstraction that can be used in different systems
Involves
Service candidate identification
Service design
Service implementation
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 26
The service engineering process
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 27
Service candidate identification
Three fundamental types of service
Utility services that implement general functionality
used by different business processes
Business services that are associated with a specific
business function e.g., in a university, student
registration
Coordination services that support composite
processes such as ordering
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 28
Service classification
Utility Business Coordination
Task Currency
convertor
Empl oyeel ocator
Val i date cl aim
form
Check credit
rati ng
Process expense
cl ai m
Pay external
suppl i er
Entity Document styl e
checker
Web form to XML
converter
Expenses f orm
Student
applicati on form


Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 29
Service identification
Is the service associated with a single logical entity used in
different business processes?
Is the task one that is carried out by different people in the
organisation?
Is the service independent?
Does the service have to maintain state? Is a database
required?
Could the service be used by clients outside the
organisation?
Are different users of the service likely to have different non-
functional requirements?
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 30
Catalogue services
Created by a supplier to show which goods can be ordered from
them by other companies
Service requirements
Specific version of catalogue should be created for each client
Catalogue shall be downloadable
The specification and prices of up to 6 items may be compared
Browsing and searching facilities shall be provided
A function shall be provided that allows the delivery date for
ordered items to be predicted
Virtual orders shall be supported which reserve the goods for 48
hours to allow a company order to be placed
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 31
Catalogue - Non-functional requirements
Access shall be restricted to employees of
accredited organisations
Prices and configurations offered to each
organisation shall be confidential
Because different prices may be agreed for different
customers
The catalogue shall be available from 0700 to 1100
The catalogue shall be able to process up to 10
requests per second
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 32
Catalogue service operations
Operation Description
MakeCatal ogue Creates a versi on of the catal oguetai lored for a specifi c customer.
Incl udes an o pti onal parameter to create a downl oadable PDF
versi on of the catal ogue.
Compare Provi des a compari son of up to 6 characteristics (e.g. pri ce,
dimensi ons, processor speed, etc.) of up to 4 catal oguei tems for
comparison.
Lookup Di splays al l of the data assoc iated wi th a specifi ed catal ogue i tem.
Search Thi s operati on takes a l ogical expressi on and searches the
catal ogueaccordi ng to that expressi on. It di splays a list of al l items
that match the search expressi on.
CheckDel ivery Returns the predicted delivery date for an item if it is ordered today.
MakeVirtualOrder Reserves the number of items to be ordered by a customer and
provi des i tem informati on for the customers own procurement
system.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 33
Service interface design
Involves thinking about the operations associated
with the service and the messages exchanged
The number of messages exchanged to complete
a service request should normally be minimised to
reduce the communication overhead.
Service state information may have to be included
in messages as services should not maintain state.

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 34
Interface design stages
Logical interface design
Starts with the service requirements and defines the
operation names and parameters associated with the
service. Exceptions should also be defined
Message design
Design the structure and organisation of the input and
output messages. Notations such as the UML are a
more abstract representation than XML
WSDL description
The logical specification is converted to a WSDL
description
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 35
Catalogue interface design
Operation Inputs Out puts Exceptions
MakeCatal ogue mcIn
Company i d
PDF-fl ag
mcOut
URL of the catal ogue for that
company
mcFault
Invali d company i d
Compare compIn
Company i d
Entry attri bute (up to 6)
Catal oguenumber (up to 4)
compOut
URL of page showi ng
comparison tabl e
compFault
Invali d company i d
Invali d catal oguenumber
Unknown attri bute
Lookup l ookIn
Company i d
Catal oguenumber
l ookOut
URL of page with the item
informati on
l ookFault
Invali d company i d
Invali d catal oguenumber
Search searchIn
Company i d
Search str i ng
searchOut
URL of web page wi th search
resul ts
searchFault
Invali d company i d
Badly-formed search stri ng
CheckDel ivery gdIn
Company i d
Catal oguenumber
Number of items requi red
gdOut
Catal oguenumber
Expected delivery date
gdFault
Invali d company i d
Invali d catal oguenumber
No avai l ability
Zero i temsrequest ed
PlaceOrder poIn
Company i d
Number of items requi red
Catal oguenumber
poOut
Catal oguenumber
Number of items requi red
Predicted delivery date
Unit pri ce esti mate
Total price est i mate
poFault
Invali d company i d
Invali d catal oguenumber
Zero i temsrequest ed

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 36
Message structure definition
This has to be (ultimately) expressed in XML but I
think it is easier to think about and express this
graphically (using a notation such as the UML) and
then translate this to XML.
Rules about the information in the message may
be added using UML comments and OCL (the
object constraint language)
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 37
Input and output message structure
gdI n
cID: st ring
cat Num: st ring
numI tems: integer
size (cI D) = 6
size (cat Num) = 10
numI tems > 0
gdOut
cat Num: st ring
deliv Dat e: date
size (cat Num) = 10
deliv Dat e > Today
gdFault
errCode: integer
I nvalid company id
errCode=1
I nvalid cat alogue number
errCode = 2
No availabilit y
errCode = 3
Zero it ems request ed
errCode = 4
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 38
Service implementation and deployment
Services are programmed using a standard
programming language or a workflow language
Services then have to be tested by creating input
messages and checking that the output messages
produced are as expected
Deployment involves publicising the service using
UDDI or in some other way and installing it on a
web server.
Current servers provide support for service
installation
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 39
A UDDI description
Details of the business providing the service
An informal description of the functionality provided by the
service
Information where to find the services WSDL specification
Subscription information that allows users to register for
service updates
UDDI is very limited in the information that it can maintain
about a service. Service functionality is generally expressed
in one or two sentences of natural language.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 40
Legacy system services
An important application of services is to provide
access to functionality embedded in legacy
systems
Legacy systems offer extensive functionality and
this can reduce the cost of service implementation
External applications can access this functionality
through the service interfaces
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 41
Maintenance support system
A large company maintains an inventory of
equipment and an associated maintenance
database. This keeps track of maintenance
requests for equipment, when maintenance was
carried out, etc. and generates daily job lists, costs
of maintainance, etc.
New features are to add real-time access to the
system from portable terminals
This cannot be done by simply enhancing the
existing system
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 42
Legacy system access
Maintenance support
legacy applicat ion
service
Maintenance
get Job
suspendJob
completeJob
service
Facilit ies
addEquipment
delet eEquipment
editEquipment
service
Logging
addRequest
delet eRequest
queryRequests
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 43
Maintenance services
Maintenance service
Manages maintainance jobs
Facilities service
Manages the addition and deletion of equipment from
the database
Logging service
Manages maintenance requests
New system is built on top of these services
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 44
Software development with services
Existing services are composed and configured to
create new composite services and applications
The basis for service composition is often a
workflow
Workflows are logical sequences of activities that,
together, model a coherent business process
For example, provide a travel reservation services
which allows flights, car hire and hotel bookings to be
coordinated
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 45
Vacation package workflow
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 46
Construction by composition
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 47
Hotel booking workflow
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 48
Workflow design and implementation
WS-BPEL is an XML-standard for workflow
specification. However, WS-BPEL descriptions are
long and unreadable.
Graphical workflow notations, such as BPMN, are
more readable and WS-BPEL can be generated
from them.
In inter-organisational systems, separate workflows
are created for each organisation and linked
through message exchange.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 49
Interacting workflows
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 50
Service testing
Testing is intended to find defects and demonstrate
that a system meets its functional and non-
functional requirements.
Service testing is difficult as (external) services are
black-boxes. Testing techniques that rely on the
program source code cannot be used.

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 51
Service testing problems
External services may be modified by the service provider
thus invalidating tests which have been completed.
Dynamic binding means that the service used in an
application may vary - the application tests are not,
therefore, reliable.
The non-functional behaviour of the service is unpredictable
because it depends on load.
If services have to be paid for as used, testing a service
may be expensive.
It may be difficult to invoke compensating actions in external
services as these may rely on the failure of other services
which cannot be simulated.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 52
Service modification
A service is under the control of the service
provider who may change this as they wish
While you would expect the interface to be
maintained, the non-functional characteristics of a
service may change thus changing the non-
functional characteristics of an application using
the service
If the service behaviour changes, how can a
service user get to the previous version of the
service.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 53
Dynamic binding
Different versions of the same service which an
application may bind to may:
Have different non-functional characteristics
Have different bugs
Binding to different services may therefore have
different results
A successful test may not be replicatable as the
service used may disappear
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 54
Behaviour under load
If a service is tested at some time A, it may perform
satisfactorily because few other users are using it
at that time
At some later time, when it is more heavily loaded,
its behaviour may not be acceptable
The load behaviour of the service is outside the
control of the service client
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 55
Service payment
If a service provider expects to be paid for a
service then:
There may be a significant cost in testing a service and
that cost may not be justifiable if the tests suggest that
the service does not meet the requirements
If the service provider allows free access for testing,
they may limit this so that the load on the service does
not degrade the performance for other users
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 56
Compensating actions
Compensating actions occur when there is a need
to reverse some previous action e.g. cancel a flight
booking because a hotel is unavailable
However, the conditions where these actions occur
is not under the control of the application -
therefore, it may be difficult to simulate failure in
other to ensure that the compensating actions are
invoked.
Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 57
Key points
Service-oriented software engineering is based on the notion that
programs can be constructed by composing independent services
which encapsulate reusable functionality.
Service interfaces are defined in WSDL. A WSDL specification
includes a definition of the interface types and operations, the
binding protocol used by the service and the service location.
Services may be classified as utility services, business services or
coordination services.
The service engineering process involves identifying candidate
services for implementation, defining the service interface and
implementing, testing and deploying the service.

Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 58
Key points
Service interfaces may be defined for legacy software systems
which may then be reused in other applications.
Software development using services involves creating programs
by composing and configuring services to create new composite
services.
Business process models define the activities and information
exchange in business processes. Activities in the business
process may be implemented by services so the business
process model represents a service composition.
Techniques of software testing based on source-code analysis
cannot be used in service-oriented systems that rely on externally
provided services.

You might also like