You are on page 1of 40

Service-Oriented Software Engineering

An Introductory Lecture Toni Ruokolainen 2006

Contents
n Introduction n Challenges & motivation n Service-Oriented Computing paradigm n Characteristics of Service-Oriented Software

Engineering n Model-Driven Engineering n Current state, trends, challenges

Introduction Business networking perspective


Introduction - Electronic Business Networking Development level
eCollaboration eBusiness
Target areas: - sales - procurement - distribution Technologies: - XML - EAI platforms - Web Services - Software Components Target areas: - networked processes - network wide forecasting - collaborative planning - network wide product & production design Technologies: - eBusiness standards - Integration platforms - Semantic Web - SOA

eCommerce
Target areas: - Consumer sales Technologies: - Web Shops - portals

Jyrki Haajanen, VTT

Time

Introduction - Development of distributed computing technology


n Centralized Client-server Peer-to-peer

Collaborative
n n n

From technological integration to federation From tightly coupled to loosely coupled From centralised to distributed control

n Collaborative systems n Autonomous participants, heterogenenous resources, dynamic environments n B2B, P2P, MAS, n Maturation of communication technology n Can now consider semantic & pragmatic interoperability

Vision: Collaborative computing


EnsoPaper Inc Primary storehouse Contract breach management PressHouse X VISA
LorryService Inc

interoperability Partner discovery


warehouse

Collaboration contract (business network model, delivery order selller partners, order Technical details, contract customer order receipt invoice breach recovery logistics bank mechanisms) Copyright 2006 by Lea Kutvonen

docket

Challenges
n Establishing interoperability in collaborative systems n Autonomy, heterogeneity, dynamism n Bridging the semantic gap between domain concepts

and technology n Managing the complexity of computing platforms


n n

Maintainability of software n (Re)configuration Platform evolution

n Providing agility n Agile development methodologies n On-the-fly collaboration establishment n Flexibility of software systems

Motivation for research


n Support for prevailing business models
n n n n

Outsourcing, globalisation Emphasizes agility and low time-to-market Provide meaningful abstractions for SE Separation of concerns
n

n Enhance modularity & reusability of systems

Functional & non-functional aspects

n Establish more robust & effective software development


n n n n n

Model-driven engineering: productivity, agility, fail-safety From monolithic systems to more flexible service-oriented systems Increase ROI Fertilizes / enhances new kinds of business models? SMEs role and possibilities
n n

n Enhancing maintainability of EIS

n Open service markets

Virtual enterprises Clustering

Service-Oriented Software Engineering


n Emerging software-engineering

discipline n Considers services as the primary elements of design and production n Utilisation of Service-Oriented Computing paradigm throughout the development process n Emphasizes the role of meta-information n Development through service discovery & composition n SOSE = SOC paradigm + SE process / methodology + SOAbased tool-chain

SOA based Toolchain

Service-Oriented Computing

SOSE
Software Engineering process

Service-Oriented Computing
n n

(SOC) is the computing paradigm that utilizes services as fundamental elements for developing applications Concepts
n n n

Service descriptions Service composition Service-Oriented Architecture Loose coupling Description-centricity Autonomy Collaborative computing Define, describe, find, bind

Characteristics
n n n n

Service life-cycle
n

Copyright 2003 by M. Papazoglou & D. Georgakopoulos

Service Descriptions
n Two kinds of descriptions n Service types n Service offers n Service type characterises common properties for a

kind of services
n n

Defines syntax and semantics of a service interface Ontologies, common vocabularies

n Service offer advertises a service implementation n Published by service provider n Conforms to a service type

Service Composition
n Based on service descriptions n Results in a composite service
n n n n

Added value (e.g. Travel company) Composition synthesis Composition execution Process-based composition (Enterprise computing, workflow systems)
n n

n Prevalent types of service composition Orchestration, choreography WS-BPEL, WS-CDL FSM-based automaton synthesis Pre-/post-condititions, planning Components & connectors

n n n

Ad-hoc composition (Roman model)


n

Logic-based composition (AI, Semantic Web)


n

Architectural composition (ADL:s, CBSE)


n

Service-Oriented Architecture
n An architectural style

Service-Oriented Software Engineering process


n

Traditional software engineering process


1. 2. 3. 4. 5.

Analysis Design Validation and verification Implementation Maintenance What methods / techniques are feasible in each phase? What are the methods and techiques of a SOSEprocess?

Is this applicable for SOSE?


n n

Is a SOSE process different wrt. CBSE?

Service-oriented analysis
n Identify the conceptual services and collaboration patterns

Define service requirements n Services are coarse-grained objects / components n Technology driven: wrapping legacy systems behind uniform service interfaces n Bottom-up approach n Providing new services n Identifying existing services n Service as a concept n Ideology driven: bridging the gap between business and technology n Top-down approach
n
n

Start from business values and models

n Meet-in-the-middle n

Impact of legacy systems

Service-oriented analysis
n Example activities

Identifying roles n Identifying interactions n Identifying service capabilities


n
n n

Functionality NFA

Identifying collaborations (or service-oriented system architectures) n Identifying pre-existing service types
n

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

given by preceeding analysis phase n Example activities n Creating / selecting ontologies


n

Vocabulary to be used

Modelling service interfaces

Modelling behaviour
n n

Service interface behaviour Business processes Service interfaces Service compositions If pre-existing services are available

Modelling business roles


n n

Discovery & Selection of services


n

Validation and verification of serviceoriented software systems


n Validation
n

Testing service designs against design requirements


n n

Simulating Test generation NFA Composite properties

Validating conformance
n n

n Verification of designs
n n n n n

Interoperability with prescribed collaborations and services Formal verification of properties Correctness of service compositions Need of service monitoring Need of contract-driven collaboration

n Most of the standard validation procedures only applicable at runtime

n To which extent is validation of service-oriented systems possible

statically?

Implementing service-oriented systems


n Model-Driven Development
n

Both SOC and MDE emphasize to role of models as first-class entities

n Needed: A SOC-programming language

Native XML-based messaging primitives n A few research prototypes exist


n

n Implementation technologies

Web Services n Local deployment target (J2EE, BPEL,)


n

Maintenance of service-oriented software systems


n Deployment of services n Configuration of services n Establishment of collaborations n Runtime management
n

Monitoring

n Evolution support

Platform / service evolution n Evolution at different levels of abstraction


n

Overview of Model-Driven Engineering


Domain Models
PIM PIM

NFA Models

Model Transformation Architecture model Model Transformation

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

Architecture style

PSM
WS specific platform models

PSM
EJB specific platform models

PSM
.NET specific platform models

Platform Description Model (PDM) PSM


other specific platform models

Model to code Transformation

Execution infrastructures
WS EJB/J2EE .NET/COM Others

Copyright 2004 by Philippe Millot (slightly edited by TR)

Hierachy of models
n MDE considers models as primary

engineering artifacts n Models are representations of reality for a given purpose n Models conform to a meta-model n Provides a typing scheme for model elements n Formal specification of an abstraction n Metamodels are described with metametamodels n A language for defining metamodels n E.g. OMGs MOF (UML is based on MOF)

Metamodel conformsTo Model representedBy System

MDE principles
n Three principles of MDE n Direct representation n Automation n Standards

Direct representation

MDE
Standards Automation

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

MDE: Direct representation


n Direct representation n Direct coupling of problems to solutions n Domain-Specific (Modeling) Languages (DSML, DSL) n DSML defines for a particular domain n Primary concepts and vocabulary n Relationships between concepts n Precise semantics for concepts and relationships n E.g. specific languages for avionics, online financial

services, inter-enterprise computing, n Big players in DSML field


n n

UML (2.x) & UML Profiles (OMG) Software Factories (Microsoft)

UML as a DSML
n Lightweight extension with profiles n Extends the elements of the UML meta-model n Profile = Set of stereotypes & Tagged values n 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 MOF n Extends the UML-meta-model itself n All the modeling mechanisms and semantics of MOF are applicable

MDE: Automation
n Automation

Facets of DSLs are intended to be automatically processed n Transformations n Model-to-Model (M2M) n Transformation languages
n
n

CIM M2M PDM Model weaving MODELS PLATFORMS PSM M2T Text (code) PIM M2M

QVT, ATL, YATL, MTL, GReAT,

n Code generation
n n n

Model-to-Text (M2T) E.g. PSM-to-Java, EDOCto-EJB, QVT M2T RFP, MOFScript

MDE: Standards
n Use of open standards to establish interoperability n Model interoperability n MOF, XMI n Meta-model bridging through unified meta-metamodel n Infrastructure interoperability n Middleware infra (CORBA, WS) n Messaging (XML-standards, SOAP, GIOP/IIOP) n Communication platforms (TCP/IP)

MOF

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

Web Services

Copyright 2004 by Lawrence Wilkes

MDE buzzwords
n MDD = Model-Driven Development n Use of (prescribed) models and transformations during software development n Also used commonly as a synonym for MDE n MDA = Model-Driven Architecture n OMG initiative n UML + MOF + QVT + few other standards.. n Software factories n Microsoft Domain-Specific Language Tools n Software factory = model-driven product line n Combines model-driven & component-based techniques with product-line principles

SOC & Model-Driven Engineering


n SOC provides feasible abstractions n SOC complements the MDA approach by providing a template for structuring business systems and integration solutions, the service paradigm (Piccinelli and Skene, SOSE-book, 2005) n Both emphasize the role of meta-information n The MDA complements SOC by promoting the early modeling of systems to understand their operation, a necessary prerequisite when wrapping a system with a service interface (Piccinelli and Skene, SOSE-book, 2005)

Tools needed for SOSE


n Service-oriented analysis techniques n Domain-specific modeling language (family)

Supporting viewpoints and modeling aspects n E.g. ODP viewpoints n Validation & verification tools n Preferably weaved to design and implementation tools transparently n A SOC programming language n Native support (type system) at least for messaging and XML-handling n A software-engineering tool-chain natively paired with SOC infrastructure n Discovery of available service types / offers n Publication of new service types / offers n Deployment & configuration of service implementations
n

A SOA tool chain

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

Copyright 2004 by Philippe Millot

Trends in research
n Concepts of SOSE n SOC concepts
n

Service composition

SOSE specific SE processes / phases

n Service & collaboration modelling languages n Application of formal methods n Model-Driven Engineering n Model-weaving, transformation semantics n Technology for SOC n Web Services

Research questions (1/4)


n Analysis & design n What are the concepts and methods to be used?
n

Are component-based analysis and design methods adequate?

What would a service-oriented analysis method look like? n What are the quality attributes for services?
n
n

Low coupling & high cohesing; How should these be interpreted in the context of service-oriented computing?

Research questions (2/4)


n Validation & verification n How can service-oriented designs be validated for conformance 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

Research questions (3/4)


n Implementation
n

What kind of facilities are needed?


n n n n

What kind of meta-information repositories? Support for different composition frameworks Implementation models (MDE) Programming languages for SOC SOC is inherently dynamic environment What can be done before / during maintenance phase? How to identify ths distinction during the engineering process? How to address dynamic aspects?
Are they modeled explicitly? Left implicit and dealt in the platform level?

Static / dynamic aspects of service development


n n n n

MDE challenges
n n n

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

Research questions (4/4)


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

What kind of configuration mechanisms are needed? n Establishment and maintenance of service-oriented collaborations n Facilities for establishing and upholding contracts n Evolution management n What kind of changes can be tolerated? n How? At which points of time? n At which level? (implementation, model, meta-model)
n

Conclusion
n SOSE is still an open field
n n n n

Results stemming primarily from OOSE & CBSE There is no complete SOSE process available, yet? Strong role of industry in Web Services standardisation The role of SOC infrastructure in the software engineering process has been left quite vague Both emphasize the role of meta-information Quite easy to generate (at least simple) skeleton code for serviceinterfaces In infancy: model (aspect) weaving, compositionality, separation of concerns (viewpoints)

n SOC has been quite techonology driven

n MDE is a good fit for SOSE


n n n

n SOC & SOSE emphasize convergence between business &

infrastructure
n

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

Practicalities
n Contact: Toni.Ruokolainen@cs.Helsinki.FI n Room: D219 n Timetable for the next few weeks n 12.09.2006 No session n 19.09.2006 Abstracts due! n PDF-format, 1-2 pages (look at the seminar page for more information) n 26.09.2006 No session n 03.10.2006 First presentation n Reservation of time-slots n Now.. n Opponents(?)