The SENSORIA Development Environment
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

The SENSORIA Development Environment

  • 515 views
Uploaded on

SENSORI

SENSORI

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
515
On Slideshare
510
From Embeds
5
Number of Embeds
2

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 5

https://www.inf.mit.bme.hu 4
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The SENSORIA The SENSORIA Development Environment Development Environment CASE Tool for SOA Development p SENSORIA EU FP6 project 19 partners from 7 countries 4 years, 4 M EUR Coordinator: Prof. Dr. Martin Wirsing, Ludwig‐Maximilians‐Universität München, Germany Università di Trento | University of Leicester | Warsaw University | TU Denmark at Lyngby | Università di Pisa Università di Firenze | Università di Bologna | ISTI Pisa | Universidade de Lisboa | University of Edinburgh  Università 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áth István RáthSENSORIA Development  rath@mit.bme.hu Environment for SOA
  • 2. Context• Service‐Oriented Computing – Create new services  Create 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
  • 3. The SENSORIA ApproachThe SENSORIA ApproachSENSORIA Development Environment for SOA
  • 4. The SENSORIA Development Environment (SDE) • Obj ti Objective of the SDE f th SDE – Provide a service‐oriented platform for tool  integration • Benefits – Discover & install SOA development tools & install SOA development tools – Orchestrate & compose tools as services – A homogeneous platform for A homogeneous platform for the service‐based toolchain • SDE is based on SOA – OSGi for services – Eclipse for UI SENSORIA Development  Environment for SOA
  • 5. The SDE UI Tool Browser Lists available tools, ordered by  Function Browser category Shows functionality available in a  T l b di d Tools can be discovered,  tool downloaded and installed via  Aspire One talán a legszexibb az eddig nálunk  Eclipse update sites. járt mini notebookok közül. A fényes tejszínű  burkolat és a zsanérok melletti metálpiros  gyűrű már‐már nőiessé varázsolják a gépet." Blackboard Shell Stores data in‐between tool function  Allows direct access to tool functions Allows direct access to tool functions callsSENSORIA Development Environment for SOA
  • 6. 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. “property service.orderGarage throw_fault bank.revokeChar ge”” • Check model for violation traces of this property SENSORIA Development  Environment for SOA
  • 7. WS‐Engineer at a glance g gAvailable Services WS‐BPEL  exampleBlackboard  of results of results Available Methods A trace of  property Tool  Tool Graphical  Output Views SENSORIA Development  SENSORIA Development Environment for SOA Environment for SOA
  • 8. Dynamic and Adaptive Services (Dino)• Dino ‐ QoS and Adaptive Service Brokering – S i Di Service Discovery, Selection, Binding and Adaptation S l i Bi di d Ad i – Functional and non‐functional aspects required/provided – Local, Remote and P2P service repository search l d 2 i i h• DinoModes: –G Generates Dino specs. From UML Mode models  t Di F UML M d d l • Extracts services required and provided • Generates functional and non‐functional Dino inputs Generates 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  SENSORIA Development Environment for SOA Environment for SOA
  • 9. Dino+Modes at a glance at a glance DinoModes Browser o se ModesAPI DinoModesAPI UML Modes Functional Specificatio n Mode  Selectio nSENSORIA Development  SENSORIA Development Environment for SOAEnvironment for SOA
  • 10. Performance analysis with PEPA PEPA is a formal language for quantitative analysis of systems A model is expressed in terms of components which perform  A 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 can  The 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 y idle 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
  • 11. PEPA at a Glance Interface for PEPA steady‐ I f f PEPA d state analysis tools Interface of  the UML  th UML converterPEPA model description  Available automatically inferred from UML Methodsmodel Throughput  results  results Utilisation Analysis Results reflected  back into the  UML model UML model SENSORIA Development  Environment for SOA
  • 12. Service deployment transformations • G Generate WSDL descriptors from UML4SOA t WSDL d i t f UML4SOA • Tool: VIATRA2 – VIsual Automated model TRAnsformations Automated model TRAnsformations – general‐purpose model transformation framework  that supports the entire life‐cycle for transformations pp y • specification • design • execution • validation – within and between various modeling languages  – Eclipse subproject: http://eclipse.org/gmt // / – Wiki: http://wiki.eclipse.org/VIATRA2 SENSORIA Development  Environment for SOA
  • 13. VIATRA2 transformations in SDE WSDL files are  createdSource models in UML Uniform representation of  Model transformation models and transformationsmodels and transformations codeSENSORIA Development Environment for SOA
  • 14. The UML2BPEL Transformation• The UML2BPEL transformer converts from UML activity diagrams  to BPEL and WSDL d S – Input: Service orchestrations in UML based on the  UML4SOA profile – Output: BPEL and WSDL files• Integrated into Eclipse  p pp p• Based on Eclipse EMF, supports input models from Rational  Software Architect and other tools which export EMF XMI• See http://www.pst.ifi.lmu.de/projekte/uml4soa/ SENSORIA Development  SENSORIA Development Environment for SOA Environment for SOA
  • 15. UML2BPEL at a glance Transformation UML BPEL + WSDL SENSORIA Development  SENSORIA Development Environment for SOA Environment for SOA
  • 16. SENSORIA provides… SENSORIA providesSENSORIA tools extend standard design  VIATRA: Standard deployment code generated in WSDL. workflow by providing justifiable solutions. yp gj WS‐Engineer:No deposit will be charged if service is cancelled.No deposit will be charged if service is cancelled The driver will get everything according to his  policy if payment if confirmed. 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 integratedSENSORIA Development Environment for SOA
  • 17. SENSORIA answers to SOA challenges Precise model‐driven development of  Customizable domain‐specific development process services Deployment to standard platforms Standards‐compliant service modelling  languages Hidden formal analysis of service models Hidden formal analysis of service models SENSORIA Development  Environment for SOA
  • 18. The SENSORIA Development EnvironmentThe SENSORIA Development EnvironmentA PROGRAMMER’S PERSPECTIVE
  • 19. Eclipse, OSGi as an integration platform Eclipse OSGi as an integration platform• OSGi = Open Services Gateway Initiative Bundle 1 Bundle 2 Bundle n OSGi framework OSGi framework Java Runtime Environment (J2SE, J2ME, J2EE) OS
  • 20. Eclipse, OSGi as an integration platformEclipse OSGi as an integration platform Java  Bundle 1 Bundle 2 Bundle n packages OSGi framework OSGi framework Java Runtime Environment (J2SE, J2ME, J2EE) OS
  • 21. Eclipse, OSGi as an integration platformEclipse OSGi as an integration platform Java  Bundle 1 Bundle 2 Bundle n packages OSGi framework OSGi framework Classes are  Java Runtime Environment (re)usable (J2SE, J2ME, J2EE) OS
  • 22. Eclipse, OSGi as an integration platform Eclipse OSGi as an integration platform Java  Bundle 1 Bundle 2 Bundle n packages Dynamic configuration OSGi framework OSGi framework Classes are  Java Runtime Environment (re)usable (J2SE, J2ME, J2EE) OS
  • 23. Eclipse, OSGi as an integration platform Eclipse OSGi as an integration platform• OSGi = Open Services Gateway Initiative• Bundle  – Dynamic add / remove Dynamic add / remove – Can provide OSGi services – Web services compatible” Web services „compatible• Component‐based, extensible system• Examples: Eclipse Equinox, Knopflerfish, ...
  • 24. Sensoria• OSGi bundles, and an Eclipse UI• Provides basic infrastructure for OSGi‐based Provides basic infrastructure for OSGi based  tool and service integration Sensoria Core Tool Store Blackboard
  • 25. Sensoria Tool Store
  • 26. Sensoria Tool Store OSGi  implementation  implementation Eclipse + Extension  Extension point  Registry mechanism
  • 27. Sensoria Extension point: ISensoriaTool tool description Tool Store OSGi  implementation  implementation Eclipse + Extension  Extension point  Registry mechanism
  • 28. Sensoria Extension point:  marker Interface, ISensoriaTool implemented by  Tools Tool Store OSGi  implementation  implementation Eclipse + Extension  Extension point  Registry mechanism
  • 29. Sensoria Extension point:  marker Interface,  Describes  implemented by  ISensoriaTool services  Toolsoffered by a  Tool Store Tool OSGi  MyToolInterface implementation  implementation Eclipse + Extension  Extension point  Registry mechanism MyToolImpl
  • 30. Sensoria Extension point:  marker Interface,  Describes  implemented by  ISensoriaTool services  Tools offered by a  Tool Store Tool OSGi  MyToolInterface implementation  implementation Eclipse + Extension  Extension point  Registry mechanism The  MyToolImplimplementation i l t ti class
  • 31. Distributed operation Distributed operation Sensoria Sensoria Core C Core C Registry Registry Core CoreBB Tool Tool BB Store Store
  • 32. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) S e I I r F F v a a i c cR‐OSGi R‐OSGi c e ebundle bundle e OSGi framwork OSGi framework
  • 33. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) Interface is  S present on both  present on both e I the server and  I r F the client F v a a i c cR‐OSGi R‐OSGi c e ebundle bundle e OSGi framework OSGi framework
  • 34. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) S e I I r F F v a a Implementation  I l t ti i c cR‐OSGi class R‐OSGi c e ebundle („server”) bundle e OSGi framework OSGi framework
  • 35. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi)Register service S e I I r F F v a a i c c R‐OSGi R‐OSGi c e e bundle bundle e OSGi framework OSGi framework
  • 36. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) S e I I r F F v a a i c cR‐OSGi R‐OSGi c e ebundle bundle e OSGi framework OSGi framework A remote client requests the  A remote client requests the service...
  • 37. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) P A proxy is  p y r S created... o e I I x r F F y v a a i c cR‐OSGi R‐OSGi c e ebundle bundle e OSGi framework OSGi framework
  • 38. Remote OSGi (R‐OSGi) Remote OSGi (R OSGi) P r S o e I I x r F F y v a Eclipse, OSGi as an integration platform Eclipse OSGi as an integration platform a i c cR‐OSGi R‐OSGi c e ebundle bundle e OSGi framework OSGi framework Function calls are passed, return  values are serialized and  transported
  • 39. Comparing ECF and R‐OSGi Comparing ECF and R OSGi• ECF R‐OSGi – ‐ More complex  + Simple architecture + Lightweight (only  – + More features  depends on OSGi) ( y (asynchronous calls, , Better suited for our  goals l timing service, stb.)
  • 40. The R‐OSGi‐based implementationThe R OSGi based implementation Sensoria RemoteCore Core Registry RemoteService Tool R‐OSGi +mini model bundle Core BB Tool Store
  • 41. Workflow orchestration – Hello worldWorkflow orchestration Hello worldcReg.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 ( ))
  • 42. Tool scripts Tool scriptsfunction 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);}
  • 43. Outlooks• Support a proper workflow orchestration  g p engine instead of the built‐in JS interpreter – Parallelism – Exception handling Exception handling – Asynchronous messages• UI integration – Allow for user interaction in automated workflows Allow for user interaction in automated workflows
  • 44. Where to get it? Where to get it?• General info: – http://www.sensoria‐ist.eu/ p // /• SDE: – h // http://svn.pst.ifi.lmu.de/trac/sct ifi l d / /