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á[email protected]
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