Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of...

40
Service-Oriented Software Engineering An Introductory Lecture Toni Ruokolainen 2006

Transcript of Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of...

Page 1: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-OrientedSoftware Engineering

An Introductory LectureToni Ruokolainen

2006

Page 2: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Contents

n Introductionn Challenges & motivationn Service-Oriented Computing paradigmn Characteristics of Service-Oriented Software

Engineeringn Model-Driven Engineeringn Current state, trends, challenges

Page 3: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Introduction – Business networkingperspective

Introduction - Electronic Business Networking

eCommerceTarget areas:- Consumer salesTechnologies:- Web Shops- portals

eBusinessTarget areas:- sales- procurement- distributionTechnologies:- XML- EAI platforms- Web Services- Software Components

eCollaborationTarget areas:- networked processes- network wide forecasting- collaborative planning- network wide product & productiondesign

Technologies:- eBusiness standards- Integration platforms- Semantic Web- SOA

Time

Developmentlevel

© Jyrki Haajanen, VTT

Page 4: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Introduction - Development ofdistributed computing technologyn Centralizedà Client-serverà Peer-to-peerà

Collaborativen From technological integration to federationn From tightly coupled to loosely coupledn From centralised to distributed control

n Collaborative systemsn Autonomous participants, heterogenenous resources,

dynamic environmentsn B2B, P2P, MAS, …

n Maturation of communication technologyn Can now consider semantic & pragmatic

interoperability

Page 5: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Vision: Collaborative computing

customer

selllerwarehouse

logisticsbank

order

invoice receipt

delivery order

orderdocket

VISA

LorryService IncPressHouse X

EnsoPaper Inc

Primary storehouse

Partner discovery

interoperability

Collaboration contract(business network model,partners,Technical details, contractbreach recoverymechanisms)

Contract breachmanagement

Copyright © 2006 by Lea Kutvonen

Page 6: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Challengesn Establishing interoperability in collaborative systems

n Autonomy, heterogeneity, dynamismn Bridging the semantic gap between domain concepts

and technologyn Managing the complexity of computing platforms

n Maintainability of softwaren (Re)configuration

n Platform evolutionn Providing agility

n Agile development methodologiesn ”On-the-fly” collaboration establishmentn Flexibility of software systems

Page 7: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Motivation for researchn Support for prevailing business models

n Outsourcing, globalisationn Emphasizes agility and low time-to-market

n Enhance modularity & reusability of systemsn Provide ”meaningful” abstractions for SEn Separation of concerns

n Functional & non-functional aspectsn Establish more robust & effective software development

n Model-driven engineering: productivity, agility, ”fail-safety”n Enhancing maintainability of EIS

n From monolithic systems to more flexible service-oriented systemsn Increase ROI

n ”Open service markets”n Fertilizes / enhances new kinds of business models?n SME’s role and possibilities

n Virtual enterprisesn Clustering

Page 8: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-Oriented SoftwareEngineeringn Emerging software-engineering

disciplinen Considers services as the

primary elements of design andproduction

n Utilisation of Service-OrientedComputing paradigm throughoutthe development processn Emphasizes the role of

meta-informationn Development through

service discovery &composition

n SOSE = SOC paradigm + SEprocess / methodology + SOA-based tool-chain

Service-OrientedComputing

SoftwareEngineering

process

SOA basedTool-chain

SOSE

Page 9: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-Oriented Computingn ”… (SOC) is the computing

paradigm that utilizes servicesas fundamental elements fordeveloping applications”

n Conceptsn Service descriptionsn Service compositionn Service-Oriented Architecture

n Characteristicsn Loose couplingn Description-centricityn Autonomyn Collaborative computing

n Service life-cyclen Define, describe, find, bind

Copyright © 2003 by M. Papazoglou &D. Georgakopoulos

Page 10: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service Descriptions

n Two kinds of descriptionsn Service typesn Service offers

n Service type characterises common properties for akind of servicesn Defines syntax and semantics of a service interfacen Ontologies, common vocabularies

n Service offer advertises a service implementationn Published by service providern Conforms to a service type

Page 11: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service Compositionn Based on service descriptionsn Results in a composite service

n Added value (e.g. Travel company)n Composition synthesisn Composition execution

n Prevalent types of service compositionn Process-based composition (Enterprise computing, workflow systems)

n Orchestration, choreographyn WS-BPEL, WS-CDL

n Ad-hoc composition (”Roman model”)n FSM-based automaton synthesis

n Logic-based composition (AI, Semantic Web)n Pre-/post-condititions, planning

n Architectural composition (ADL:s, CBSE)n Components & connectors

Page 12: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-Oriented Architecture

n An architectural style

Page 13: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-Oriented SoftwareEngineering processn Traditional software engineering process

1. Analysis2. Design3. Validation and verification4. Implementation5. Maintenance

n Is this applicable for SOSE?n What methods / techniques are feasible in each

phase?n What are the methods and techiques of a SOSE-

process?n Is a SOSE process different wrt. CBSE?

Page 14: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-oriented analysisn Identify the conceptual services and collaboration patterns

n Define service requirementsn ”Services are coarse-grained objects / components”

n Technology driven: wrapping legacy systems behind uniformservice interfaces

n Bottom-up approachn Providing new servicesn Identifying existing services

n ”Service as a concept”n Ideology driven: bridging the gap between business and

technologyn Top-down approach

n Start from business values and modelsn Meet-in-the-middlen Impact of legacy systems

Page 15: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-oriented analysis

n Example activitiesn Identifying rolesn Identifying interactionsn Identifying service capabilities

n Functionalityn NFA

n Identifying collaborations (or service-orientedsystem architectures)

n Identifying pre-existing service types

Page 16: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Service-oriented designn Use domain specific vocabulary to define and describe concepts

given by preceeding analysis phasen Example activities

n Creating / selecting ontologiesn Vocabulary to be used

n Modelling service interfacesn Modelling behaviour

n Service interface behaviourn Business processes

n Modelling business rolesn Service interfacesn Service compositions

n Discovery & Selection of servicesn If pre-existing services are available

Page 17: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Validation and verification of service-oriented software systemsn Validation

n Testing service designs against design requirementsn Simulatingn Test generation

n Validating conformancen NFAn Composite properties

n Verification of designsn Interoperability with prescribed collaborations and servicesn Formal verification of propertiesn Correctness of service compositions

n Most of the standard validation procedures only applicable at runtimen Need of service monitoringn Need of contract-driven collaboration

n To which extent is validation of service-oriented systems possiblestatically?

Page 18: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Implementing service-oriented systems

n Model-Driven Developmentn Both SOC and MDE emphasize to role of

models as first-class entitiesn Needed: A ”SOC”-programming languagen Native XML-based messaging primitivesn A few research prototypes exist

n Implementation technologiesn Web Servicesn Local deployment target (J2EE, BPEL,…)

Page 19: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Maintenance of service-orientedsoftware systemsn Deployment of servicesn Configuration of servicesn Establishment of collaborationsn Runtime managementn Monitoring

n Evolution supportn Platform / service evolutionn Evolution at different levels of abstraction

Page 20: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

PSMWS specific

platform models

PSMEJB specific

platform models

PSM.NET specific

platform models

Execution infrastructures.NET/COMEJB/J2EEWS Others

PSMother specific

platform models

Model to codeTransformation

NFA ModelsDomain Models PIM PIM

Model Transformation

Architecture style

Platform DescriptionModel (PDM)

Architecturemodel

Model Transformation

UML profiles for : CCM, EJB, .NET,SOA…

Copyright © 2004 by Philippe Millot (slightly edited by TR)

Overview of Model-Driven Engineering

Page 21: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Hierachy of modelsn MDE considers models as primary

engineering artifactsn Models are representations of

reality for a given purposen Models conform to a meta-model

n Provides a typing scheme formodel elements

n Formal specification of anabstraction

n Metamodels are described withmetametamodelsn A language for defining

metamodelsn E.g. OMG’s MOF (UML is based

on MOF)

Metamodel

Model

System

conformsTo

representedBy

Page 22: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

MDE principles

n Three principles of MDEn Direct representationn Automationn Standards

MDE

Directrepresentation

Standards Automation

Adapted from David Frankel: ”An MDA Manifesto”MDA Journal, May 2004http://www.bptrends.com

Page 23: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

MDE: Direct representationn Direct representation

n Direct coupling of problems to solutionsn Domain-Specific (Modeling) Languages (DSML, DSL)

n DSML defines for a particular domainn Primary concepts and vocabularyn Relationships between conceptsn Precise semantics for concepts and relationships

n E.g. specific languages for avionics, online financialservices, inter-enterprise computing,…

n ”Big players” in DSML fieldn UML (2.x) & UML Profiles (OMG)n Software Factories (Microsoft)

Page 24: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

UML as a DSML

n Lightweight extension with profilesn Extends the elements of the UML meta-modeln Profile = Set of stereotypes & Tagged valuesn ”Does not provide means for precisely defining

semantics associated with extensions”!France, Ghosth, Dinh-Trong: ”MDD Using UML 2.0:Premises and Pitfalls”, Computer, February 2006, IEEE

n Heavyweight extension via MOFn Extends the UML-meta-model itselfn All the modeling mechanisms and semantics of MOF

are applicable

Page 25: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

MDE: Automationn Automation

n Facets of DSL’s areintended to be automaticallyprocessed

n Transformationsn Model-to-Model (M2M)n Transformation languages

n QVT, ATL, YATL, MTL,GReAT,…

n Code generationn Model-to-Text (M2T)n E.g. PSM-to-Java, EDOC-

to-EJB,…n QVT M2T RFP, MOFScript

CIM

PIM

PSM

M2M

M2M

PDM

Modelweaving

Text (code)

M2T

MODELS

PLATFORMS

Page 26: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

MDE: Standards

n Use of open standards to establish interoperabilityn Model interoperability

n MOF, XMIn Meta-model bridging through unified meta-metamodel

n Infrastructure interoperabilityn Middleware infra (CORBA, WS)n Messaging (XML-standards, SOAP, GIOP/IIOP)n Communication platforms (TCP/IP)

Page 27: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

MOF

Picture taken from http://de.wikipedia.org/wiki/Meta-Object_Facility

Page 28: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Web Services

Copyright © 2004 by Lawrence Wilkes

Page 29: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

”MDE buzzwords”n MDD = Model-Driven Development

n Use of (prescribed) models and transformations duringsoftware development

n Also used commonly as a synonym for MDEn MDA = Model-Driven Architecture

n OMG initiativen UML + MOF + QVT + few other standards..

n Software factoriesn Microsoft Domain-Specific Language Toolsn Software factory = model-driven product linen Combines model-driven & component-based

techniques with product-line principles

Page 30: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

SOC & Model-Driven Engineering

n SOC provides feasible abstractionsn ”SOC complements the MDA approach by providing a

template for structuring business systems andintegration solutions, the service paradigm” (Piccinelliand Skene, SOSE-book, 2005)

n Both emphasize the role of meta-informationn ”The MDA complements SOC by promoting the early

modeling of systems to understand their operation, anecessary prerequisite when wrapping a system with aservice interface” (Piccinelli and Skene, SOSE-book,2005)

Page 31: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Tools needed for SOSEn Service-oriented analysis techniquesn Domain-specific modeling language (family)

n Supporting viewpoints and modeling aspectsn E.g. ODP viewpoints

n Validation & verification toolsn Preferably weaved to design and implementation tools

”transparently”n A SOC programming language

n Native support (type system) at least for messaging andXML-handling

n A software-engineering tool-chain natively paired with SOCinfrastructuren Discovery of available service types / offersn Publication of new service types / offersn Deployment & configuration of service implementations

Page 32: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

A SOA tool chain

Page 33: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

ModelBus

Copyright © 2004 by Philippe Millot

MODELWARE (MODELing solution for softWARE systems)EU Information Society Technology (IST) Projecthttp://www.modelware-ist.org

Page 34: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Trends in research

n Concepts of SOSEn SOC concepts

n Service compositionn SOSE specific SE processes / phases

n Service & collaboration modelling languagesn Application of formal methods

n Model-Driven Engineeringn Model-weaving, transformation semantics

n Technology for SOCn Web Services

Page 35: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Research questions (1/4)

n Analysis & designn What are the concepts and methods to be

used?n Are component-based analysis and design

methods adequate?n What would a service-oriented analysis

method look like?n What are the quality attributes for services?

n Low coupling & high cohesing; How should thesebe interpreted in the context of service-orientedcomputing?

Page 36: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Research questions (2/4)n Validation & verification

n How can service-oriented designs be validated forconformance against the requirements?!

n What kind of testing methods are applicable?n Simulation is quite natural choice..

n What kind of verification methods should be used?n Role of verification during different phases of SOSE

process?n Verification methods before / during / after

implementation§ Design verification§ SOC programming language type systems§ Dynamic model checking / conformance validation

Page 37: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Research questions (3/4)n Implementation

n What kind of facilities are needed?n What kind of meta-information repositories?n Support for different composition frameworksn Implementation models (MDE)n Programming languages for SOC

n Static / dynamic aspects of service developmentn SOC is inherently dynamic environmentn What can be done before / during maintenance phase?n How to identify thìs distinction during the engineering process?n How to address dynamic aspects?

§ Are they modeled explicitly? Left implicit and dealt in the platform level?n MDE challenges

n Viewpoint modelling & correspondences / relationships between viewsn Aspect languages & model weaving (esp. NFA)n Static & dynamic use of meta-information

Page 38: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Research questions (4/4)n Maintenance

n Deployment of service-oriented systemsn Deployment of complex systems is painfull§ Especially if configurations are to be changed often

n What kind of configuration mechanisms are needed?n Establishment and maintenance of service-oriented

collaborationsn Facilities for establishing and upholding contracts

n Evolution managementn What kind of changes can be tolerated?n How? At which points of time?n At which level? (implementation, model, meta-model)

Page 39: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Conclusionn SOSE is still an open field

n Results stemming primarily from OOSE & CBSEn There is no complete SOSE process available, yet?

n SOC has been quite techonology drivenn Strong role of industry in Web Services standardisationn The role of SOC infrastructure in the software engineering process has

been left quite vaguen MDE is a good fit for SOSE

n Both emphasize the role of meta-informationn Quite easy to generate (at least simple) skeleton code for service-

interfacesn In infancy: model (aspect) weaving, compositionality, separation of

concerns (viewpoints)n SOC & SOSE emphasize convergence between ”business” &

infrastructuren There is no strict phasing of a SOSE process but inter-dependecies

instead?

Page 40: Service-Oriented Software Engineering · nService-Oriented Computing paradigm nCharacteristics of Service-Oriented Software Engineering ... - SOA Time Development level

Practicalitiesn Contact: [email protected]

n Room: D219n Timetable for the next few weeks

n 12.09.2006 No sessionn 19.09.2006 Abstracts due!

n PDF-format, 1-2 pages (look at the seminar page formore information)

n 26.09.2006 No sessionn 03.10.2006 First presentation

n Reservation of time-slotsn Now..n Opponents(?)