Service-centric Software Engineering

Similar documents
Service-centric Software Engineering. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1

Software Engineering II

Distributed systems. Distributed Systems Architectures

Service-oriented architecture in e-commerce applications

Getting Started Guide Testable Architecture

Distributed Systems Architectures

David Pilling Director of Applications and Development

Service-Oriented Architectures

Service Oriented Architecture

Service-oriented Development of Federated ERP Systems

Introduction to Service Oriented Architectures (SOA)

Getting Started with Service- Oriented Architecture (SOA) Terminology

AN APPROACH TO DEVELOPING BUSINESS PROCESSES WITH WEB SERVICES IN GRID

Introduction. Tom Dinkelaker, Ericsson Guido Salvaneschi, Mira Mezini, TUD

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

Building the European Biodiversity. Observation Network (EU BON)

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Introduction to UDDI: Important Features and Functional Concepts

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Web Services Description Language (WSDL) Wanasanan Thongsongkrit

SOA CERTIFIED CONSULTANT

Service Computing: Basics Monica Scannapieco

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Business-Driven Software Engineering Lecture 3 Foundations of Processes

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Pattern Language Overview

A standards-based approach to application integration

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Oracle SOA Suite 11g: Essential Concepts Student Guide

Web Services Technologies

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

A QoS-aware Method for Web Services Discovery

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

SOA for Healthcare: Promises and Pitfalls

PIE. Internal Structure

02267: Software Development of Web Services

Consuming and Producing Web Services with Web Tools. Christopher M. Judd. President/Consultant Judd Solutions, LLC

How To Understand A Services-Oriented Architecture

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

4. Concepts and Technologies for B2C, B2E, and B2B Transaction

Analyses on functional capabilities of BizTalk Server, Oracle BPEL Process Manger and WebSphere Process Server for applications in Grid middleware

Web Services Manageability Concepts (WS-Manageability)

Semantic Web Systems Web Services Part 1 Jacques Fleuriot School of Informatics

SOA GOVERNANCE MODEL

IBM Rational Rapid Developer Components & Web Services

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

SOA and WS-BPEL. Composing Service-Oriented Solutions with PHP and ActiveBPEL. Chapter 2 "SOAP Servers and Clients with PHP SOAP Extension"

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Web Services Strategy

SOA Myth or Reality??

Introduction to Web Services

The case for service oriented architecture in realising trusted, interoperable, pan-european egovernment services.

1 What Are Web Services?

Developing SOA solutions using IBM SOA Foundation

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

SOA CERTIFIED JAVA DEVELOPER (7 Days)

e-filing Secure Web Service User Manual

The OMA Perspective On SOA in Telecoms

E-Learning as a Web Service

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

A Business Process Services Portal

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

Oracle Service Bus Examples and Tutorials

Automating the DEVS Modeling and Simulation Interface to Web Services

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Beeple, B-Pel, Beepul? Understanding BPEL and Its Role in SOA

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Web Application Development for the SOA Age Thinking in XML

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services Skilltop Technology Limited. All rights reserved.

IBM Rational Asset Manager

Service-Oriented Computing and Service-Oriented Architecture

BPMN by example. Bizagi Suite. Copyright 2014 Bizagi

1 What Are Web Services?

EAI-Low Level Design Document

CT30A8901 Chapter 10 SOA Delivery Strategies

How To Compare The Cost Of Business Process Management (Bpm) To Open Source Software (Bmp)

WEB SERVICES. Revised 9/29/2015

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Architectural view model for an integration platform

Web Services Advanced Topics

SOA Standards - Patterns

Mobility Information Series

Chapter 2: Cloud Basics Chapter 3: Cloud Architecture

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

WebSphere Business Modeler

Web Services Software Architecture

Oracle Service Bus. User Guide 10g Release 3 Maintenance Pack 1 (10.3.1) June 2009

An Interface from YAWL to OpenERP

<Insert Picture Here> Integrating Oracle Forms and a Service Oriented Architecture

Implementation of Information Integration Platform in Chinese Tobacco Industry Enterprise Based on SOA. Hong-lv Wang, Yong Cen

A BIAN Building Block Service Repository and Registry

SOA REFERENCE ARCHITECTURE

Presentation Outline. Key Business Imperatives Service Oriented Architecture Defined Oracle SOA Platform SOA Maturity/Adoption Model Demo Q&A

Service-Oriented Architecture: Analysis, the Keys to Success!

The Modeling of Communication with Other. Systems in Process Automation Applications

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Transcription:

Service-centric Software Engineering Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1 Objectives 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 Software Engineering, 8th edition. Chapter 31 Slide 2

Topics covered Services as reusable components Service engineering Software development with services Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 3 Service-oriented architectures A means of developing distributed systems where the components are stand-alone services Services may execute on different computers from different service providers Standard protocols have been developed to support service communication and information exchange Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 4

Service-oriented architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 5 Benefits of SOA Services can be provided locally or outsourced to external providers Services are language-independent Investment in legacy systems can be preserved Inter-organisational computing is facilitated through simplified information exchange Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 6

Web service standards Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 7 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 Software Engineering, 8th edition. Chapter 31 Slide 8

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 Software Engineering, 8th edition. Chapter 31 Slide 9 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 do not have a requires interface Services rely on message-based communication with messages expressed in XML Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 10

Synchronous interaction Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 11 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 Software Engineering, 8th edition. Chapter 31 Slide 12

Web service description language The service interface is defined in a service description expressed in WSDL. 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 Software Engineering, 8th edition. Chapter 31 Slide 13 Structure of a WSDL specification Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 14

A WSDL description fragment Define some of the types used. Assume that the namespace prefixes ʻwsʼ refers to the namespace URI for XML schemas and the namespace prefix associated with this definition is weathns. <types> <xs: schema targetnamespace = http://.../weathns xmlns: weathns = http:// /weathns > <xs:element name = PlaceAndDate type = pdrec /> <xs:element name = MaxMinTemp type = mmtrec /> <xs: element name = InDataFault type = errmess /> <xs: complextype name = pdrec <xs: sequence> <xs:element name = town type = xs:string /> <xs:element name = country type = xs:string /> <xs:element name = day type = xs:date /> </xs:complextype> Definitions of MaxMinType and InDataFault here </schema> </types> Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 15 A WSDL description fragment 2 Now define the inte rface and its operations. In this case, there is only a single operation to return maximum and minimum temperatures <interface name = weatherinfo > <operation name = getmaxmintemps pattern = wsdlns: in-out > <input messagelabel = In element = weathns: PlaceAndDate /> <output messagelabel = Out element = weathns:maxmintemp /> <outfault messagelabel = Out element = weathns:indatafault /> </operation> </interface> Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 16

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 Software Engineering, 8th edition. Chapter 31 Slide 17 The service engineering process Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 18

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 Software Engineering, 8th edition. Chapter 31 Slide 19 Service classification Task Entity Utility Business Coordination Currency Validate claim Process expense convertor form claim Employee locator Check credit Pay external rating supplier Document style checker Web form to XML converter Expenses form Student application form Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 20

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 Software Engineering, 8th edition. Chapter 31 Slide 21 Catalogue services Created by a supplier to show which good 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 Software Engineering, 8th edition. Chapter 31 Slide 22

Catalogue - Non-functional requirements Access shall be restricted to employees of accredited organisations Prices and configurations offered to each organisation shall be confidential 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 Software Engineering, 8th edition. Chapter 31 Slide 23 Catalogue service operations Operation MakeCatalogue Compare Lookup Search CheckDelivery MakeVirtualOrder Description Creates a version of the catalogue tailored for a specific customer. Includes an o ptional parameter to create a downloadable PDF version of the catalogue. Provides a comparison of up to 6 characteristics (e.g. price, dimensions, processor speed, etc.) of up to 4 catalogue items for comparison. Displays all of the data associated with a specified catalogue item. This operation takes a logical expression and searches the catalogue according to that expression. It displays a list of all items that match the search expression. Returns the predicted delivery date for an item if it is ordered today. Reserves the number of items to be ordered by a customer and provides item information for the customerʼs own procurement system. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 24

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. Service state information may have to be included in messages Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 25 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 Software Engineering, 8th edition. Chapter 31 Slide 26

Catalogue interface design Operation Inputs Outputs Exceptions MakeCatalogue Compare Lookup Search CheckDelivery PlaceOrder mcin Company id PDF-flag compin Company id Entry attribute (up to 6) Catalogue number (up to 4) lookin Company id Catalogue number searchin Company id Search string gdin Company id Catalogue number Number of items required poin Company id Number of items required Catalogue number mcout URL of the catalogue for that company compout URL of page showing comparison table lookout URL of page with the item information searchout URL of web page with search results gdout Catalogue number Expected delivery date poout Catalogue number Number of items required Predicted delivery date Unit price estimate Total price estimate mcfault Invalid company id compfault Invalid company id Invalid catalogue number Unknown attribute lookfault Invalid company id Invalid catalogue number searchfault Invalid company id Badly-formed search string gdfault Invalid company id Invalid catalogue number No availability Zero items requested pofault Invalid company id Invalid catalogue number Zero items requested Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 27 Input and output message structure Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 28

Service implementation and deployment Programming services 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 and installing it on a web server. Current servers provide support for service installation Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 29 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 service s WSDL specification Subscription information that allows users to register for service updates Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 30

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 Software Engineering, 8th edition. Chapter 31 Slide 31 Legacy system access Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 32

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 Software Engineering, 8th edition. Chapter 31 Slide 33 Vacation package workflow Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 34

Construction by composition Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 35 Hotel booking workflow Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 36

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 Software Engineering, 8th edition. Chapter 31 Slide 37 Interacting workflows Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 38

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 Software Engineering, 8th edition. Chapter 31 Slide 39 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 Software Engineering, 8th edition. Chapter 31 Slide 40

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 Software Engineering, 8th edition. Chapter 31 Slide 41 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." Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 42