the sensoriamit.bme.hu/~rath/ppt/sde.pdf · • provides basic infrastructure for osgi‐based ......

Post on 29-Sep-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The SENSORIAThe SENSORIADevelopment EnvironmentDevelopment Environment

CASE Tool for SOA Developmentp

SENSORIA EU FP6 project19 partners from 7 countries

4 years, 4 M EUR

Coordinator: Prof. Dr. Martin Wirsing, Ludwig‐Maximilians‐Universität München, GermanyUniversità di Trento | University of Leicester | Warsaw University | TU Denmark at Lyngby | Università di PisaUniversità di Firenze | Università di Bologna | ISTI Pisa | Universidade de Lisboa | University of EdinburghUniversità di Firenze | Università di Bologna | ISTI Pisa | Universidade de Lisboa | University of Edinburgh 

ATX Software | SATelecom Italia Lab | Imperial College London | Cirquent GnbH (FAST GmbH) | Budapest University of Technology and Economics |S&N AG | University College London | Politecnico di Milano

István RáthSENSORIA Development Environment for SOA

István Ráthrath@mit.bme.hu 

ContextContext• Service‐Oriented Computing

– Create new servicesCreate new services – By composing existing functionality– With „Loosely‐coupled” interaction– >Resilient to changing (business) environment– >Resilient to changing (business) environment

• Envisaged market impact– Time‐to‐market of service integration can be reduced– Increased quality of service

(security, response time, throughput, availability….)– Portability to existing platforms to maintain profitable services

• Challenges– Specification and querying of services?– Correctness and consistency of service composition?y p– Continuous operation in changing environment (service outages)?– Design for justifiable SLA‐compliance (security, performance)?

SENSORIA Development Environment for SOA

The SENSORIA ApproachThe SENSORIA Approach

SENSORIA Development Environment for SOA

The SENSORIA Development Environment (SDE)

Obj ti f th SDE• Objective of the SDE– Provide a service‐oriented platform for tool integrationintegration

• Benefits– Discover & install SOA development toolsDiscover & install SOA development tools– Orchestrate & compose tools as services– A homogeneous platform forA homogeneous platform forthe service‐based toolchain

• SDE is based on SOA– OSGi for services– Eclipse for UI

SENSORIA Development Environment for SOA

The SDE UI

Tool BrowserLists available tools, ordered by 

categoryT l b di d

Function BrowserShows functionality available in a 

Tools can be discovered, downloaded and installed via 

Eclipse update sites.

tool

Aspire One talán a legszexibb az eddig nálunk járt mini notebookok közül. A fényes tejszínű Aspire One talán a legszexibb az eddig nálunk járt mini notebookok közül. A fényes tejszínű 

ShellAllows direct access to tool functions

BlackboardStores data in‐between tool function 

calls

burkolat és a zsanérok melletti metálpiros gyűrű már‐már nőiessé varázsolják a gépet."burkolat és a zsanérok melletti metálpiros gyűrű már‐már nőiessé varázsolják a gépet."

Allows direct access to tool functions calls

SENSORIA Development Environment for SOA

Correctness analysis with WS‐Engineer

• WS‐Engineer supports model‐checking WS‐BPEL, WS‐CDL and WSIF behavioural specifications 

– Properties for analysis of service interaction & behaviour– Verification and violation traces– Animation for validation

• Automotive Case Study – On Road Assistance Scenario:

– Is it true that the credit card of the driver won’t be charged– Is it true that the credit card of the driver won t be charged if there are no available garages?

• Generate formal models of service orchestrations• Specify a property for verification 

– e.g. “propertyservice.orderGarage throw_fault bank.revokeChar

”ge”• Check model for violation traces of this property

SENSORIA Development Environment for SOA

WS‐Engineer at a glanceg g

Available Services WS‐BPEL 

example

Blackboard of results Available

example

of results AvailableMethods A trace of 

property

ToolTool Output Graphical 

Views

SENSORIA Development Environment for SOA

SENSORIA Development Environment for SOA

Dynamic and Adaptive Services (Dino)

• Dino ‐ QoS and Adaptive Service Brokering

S i Di S l i Bi di d Ad i– Service Discovery, Selection, Binding and Adaptation– Functional and non‐functional aspects required/provided

l d 2 i i h– Local, Remote and P2P service repository search• DinoModes:

G t Di F UML M d d l– Generates Dino specs. From UML Mode models • Extracts services required and provided• Generates functional and non‐functional Dino inputsGenerates functional and non functional Dino inputs• Check model for violation traces of this property

• Modes + WS‐Engineer

– Analyse modes for consistency and constraints• Architectural, Behaviour and Policy reconfigurations

SENSORIA Development Environment for SOA

SENSORIA Development Environment for SOA

Dino+Modes at a glanceDino+Modes at a glanceDinoModesBrowsero se

ModesAPIModesAPIDinoModesAPI

UML Modes

FunctionalSpecificatio

n

Mode Selectio

SENSORIA Development Environment for SOA

SENSORIA Development Environment for SOASENSORIA Development Environment for SOA

n

Performance analysis with PEPA

PEPA is a formal language for quantitative analysis of systemsA model is expressed in terms of components which performA model is expressed in terms of components which perform timed activities and co‐operate with each other

The SCT Plug‐in for PEPA supports steady‐state analysis that canThe SCT Plug‐in for PEPA supports steady‐state analysis, that can answer questions such as:

What is the percentage of time that the local discovery server is p g yidle in the long run? (Utilisation Analysis)What is the throughput at which remote services are discovered? (Throughput Analysis)What is the probability that the system does compensation upon notification of failure?

SENSORIA Development Environment for SOA

PEPA at a Glance

I f f PEPA d

Interface of th UML

Interface for PEPA steady‐state analysis tools

Available Methods

the UML converterPEPA model description 

automatically inferred from UML

Throughput results

model

results reflected 

back into the UML model

Utilisation Analysis Results

UML model

SENSORIA Development Environment for SOA

Service deployment transformations

G t WSDL d i t f UML4SOA• Generate WSDL descriptors from UML4SOA• Tool: VIATRA2

VIsual Automated model TRAnsformations– VIsual Automated model TRAnsformations– general‐purpose model transformation framework that supports the entire life‐cycle for transformationspp y

• specification• design• executionexecution• validation

– within and between various modeling languages // /– Eclipse subproject: http://eclipse.org/gmt

– Wiki: http://wiki.eclipse.org/VIATRA2

SENSORIA Development Environment for SOA

VIATRA2 transformations in SDE

Source models in UML

WSDL files are created

Model transformation Uniform representation of models and transformations

codemodels and transformations

SENSORIA Development Environment for SOA

The UML2BPEL Transformation

• The UML2BPEL transformer converts from UML activity diagrams d Sto BPEL and WSDL

– Input: Service orchestrations in UML based on the UML4SOA profile

– Output: BPEL and WSDL files• Integrated into Eclipse 

• Based on Eclipse EMF, supports input models from Rational p pp pSoftware Architect and other tools which export EMF XMI

• See http://www.pst.ifi.lmu.de/projekte/uml4soa/

SENSORIA Development Environment for SOA

SENSORIA Development Environment for SOA

UML2BPEL at a glance

Transformation

UMLUML

BPEL + WSDL

SENSORIA Development Environment for SOA

SENSORIA Development Environment for SOA

SENSORIA providesSENSORIA provides…

SENSORIA tools extend standard design workflow by providing justifiable solutions.

VIATRA:Standard deployment code generated in WSDL.y p g j

WS‐Engineer:No deposit will be charged if service is cancelledNo deposit will be charged if service is cancelled.The driver will get everything according to his 

policy if payment if confirmed.PEPA:PEPA:

The car will arrive within 15 minutes with 90% probability.

The GPS location service is a quality bottleneck.The GPS location service is a quality bottleneck.

SENSORIA Development Environment:Additional tools can easily be integrated

SENSORIA Development Environment for SOA

SENSORIA answers to SOA challenges

Precise model‐driven development of servicesCustomizable domain‐specific development process

Deployment to standard platforms

Standards‐compliant service modelling languages

Hidden formal analysis of service modelsHidden formal analysis of service models

SENSORIA Development Environment for SOA

The SENSORIA Development Environment

A PROGRAMMER’S PERSPECTIVEThe SENSORIA Development Environment

Eclipse OSGi as an integration platformEclipse, OSGi as an integration platform

• OSGi = Open Services Gateway Initiative

Bundle 1 Bundle 2 Bundle n

OSGi frameworkOSGi framework

Java Runtime Environment(J2SE, J2ME, J2EE)

OS

Eclipse OSGi as an integration platformEclipse, OSGi as an integration platform

Bundle 1 Bundle 2 Bundle nJava 

packages

OSGi frameworkOSGi framework

Java Runtime Environment(J2SE, J2ME, J2EE)

OS

Eclipse OSGi as an integration platformEclipse, OSGi as an integration platform

Bundle 1 Bundle 2 Bundle nJava 

packages

OSGi frameworkOSGi framework

Java Runtime EnvironmentClasses are (re)usable

(J2SE, J2ME, J2EE)

OS

Eclipse OSGi as an integration platformEclipse, OSGi as an integration platform

Bundle 1 Bundle 2 Bundle nJava 

packages

OSGi frameworkDynamic configuration OSGi framework

Java Runtime EnvironmentClasses are (re)usable

configuration

(J2SE, J2ME, J2EE)

OS

Eclipse OSGi as an integration platformEclipse, OSGi as an integration platform

• OSGi = Open Services Gateway Initiative

• Bundle – Dynamic add / removeDynamic add / remove

– Can provide OSGi services

Web services compatible”– Web services „compatible

• Component‐based, extensible system

• Examples: Eclipse Equinox, Knopflerfish, ...

SensoriaSensoria

• OSGi bundles, and an Eclipse UI

• Provides basic infrastructure for OSGi‐basedProvides basic infrastructure for OSGi based tool and service integration

SensoriaCore

Tool Store BlackboardTool Store Blackboard

SensoriaSensoria

Tool Store

SensoriaSensoria

Tool Store

OSGi implementation

EclipseExtensionRegistry

implementation + Extension 

point mechanismRegistry mechanism

SensoriaSensoria

ISensoriaToolExtension point: tool description

Tool Store

ISensoriaTool tool description

OSGi implementation

EclipseExtensionRegistry

implementation + Extension 

point mechanismRegistry mechanism

SensoriaSensoria

ISensoriaTool

Extension point: marker Interface, implemented by 

Tool Store

ISensoriaTool implemented by Tools

OSGi implementation

EclipseExtensionRegistry

implementation + Extension 

point mechanismRegistry mechanism

SensoriaSensoria

ISensoriaTool

Extension point: marker Interface, implemented by Describes 

Tool Store

ISensoriaTool implemented by Toolsservices 

offered by a Tool

OSGi implementationMyToolInterface

EclipseExtensionRegistry

implementation + Extension 

point mechanismRegistry mechanism

MyToolImpl

SensoriaSensoria

ISensoriaTool

Extension point: marker Interface, implemented by Describes 

Tool Store

ISensoriaTool implemented by Toolsservices 

offered by a Tool

OSGi implementationMyToolInterface

EclipseExtensionRegistry

implementation + Extension 

point mechanismRegistry mechanism

MyToolImplThe i l t tiimplementation 

class

Distributed operationDistributed operation

SensoriaC

SensoriaC Core

RegistryCore

Registry

CoreCore

ToolStore

BBToolStore

BBStore

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

SServ

IFa

IFa

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

OSGi framwork OSGi framework

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

SInterface is 

present on bothServ

IFa

IFa

present on both the server and 

the client

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

OSGi framework OSGi framework

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

SServ

IFa

IFa

I l t tiR‐OSGibundle

R‐OSGibundle

ice

ce

ce

Implementation class

(„server”)

OSGi framework OSGi framework

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

SRegister service S

erv

IFa

IFa

service

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

OSGi framework OSGi framework

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

SServ

IFa

IFa

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

OSGi framework OSGi framework

A remote client requests theA remote client requests the service...

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

S A proxy is 

PrS

erv

IFa

IFa

p ycreated... o

xy

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

OSGi framework OSGi framework

Remote OSGi (R OSGi)Remote OSGi (R‐OSGi)

S

PrS

erv

IFa

IFa

oxy

Eclipse OSGi as an integration platformEclipse OSGi as an integration platform

R‐OSGibundle

R‐OSGibundle

ice

ce

ce

Eclipse, OSGi as an integration platformEclipse, OSGi as an integration platform

OSGi framework OSGi framework

Function calls are passed, return values are serialized and 

transported

Comparing ECF and R OSGiComparing ECF and R‐OSGi

• ECF R‐OSGi– ‐More complex architecture

+ Simple

+ Lightweight (only 

– + More features (asynchronous calls, 

depends on OSGi)

Better suited for our l

( y ,timing service, stb.) goals

The R OSGi based implementationThe R‐OSGi‐based implementation

Sensoria RemoteCoreCore Registry

RemoteService ToolR‐OSGibundle

Core

+mini model bundle

ToolStore

BB

Workflow orchestration Hello worldWorkflow orchestration – Hello world

cReg.addRemoteCore("r‐osgi://localhost:9278");

remoteCore = cReg.findCoreByName("r‐osgi://localhost:9278");remoteCore   cReg.findCoreByName( r osgi://localhost:9278 );

testTool = remoteCore.findToolById("hu.bme.test.htmlconverter");

testIf = testTool.getServiceInterface();

sCore.print(testIf.htmlEscape("<<"));p ( p ( ))

Tool scriptsTool scripts

function soa2wsdl(umlFileName, outputDirectory){viatra   sCore findToolByName("Viatra") getServiceInterface();viatra = sCore.findToolByName( Viatra ).getServiceInterface();vU = sCore.findToolByName("vUtil").getServiceInterface();fw = viatra.createFramework();

vpml = vU.getInputStream(vU.getFileFromBundle("hu.bme.mit.viatra.integration.sensoria","model/uml2soa clean.vpml"));ation.sensoria , model/uml2soa_clean.vpml ));

umlmodel_file = vU.getFile(umlFileName);viatra.nativeImportFromFile(fw,umlmodel_file,"uml");

result = viatra.runTransformation(fw,"transformations.uml2soa2wsdl","Model=uml2.models."+umlmodel+"_uml");_ )viatra.writeoutput(fw,...);viatra.disposeFramework(fw);

}

OutlooksOutlooks

• Support a proper workflow orchestration engine instead of the built‐in JS interpreterg p– Parallelism

Exception handling– Exception handling

– Asynchronous messages

• UI integration– Allow for user interaction in automated workflowsAllow for user interaction in automated workflows

Where to get it?Where to get it?

• General info:– http://www.sensoria‐ist.eu/p // /

• SDE:h // ifi l d / /– http://svn.pst.ifi.lmu.de/trac/sct

top related