Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

From SOA to SCA and FraSCAti


Published on

Tutorial about SOA, SCA and OW2 FraSCAti.

Published in: Technology, Education

From SOA to SCA and FraSCAti

  1. 1. From SOA and SCA to FraSCAti Philippe Merle – INRIA ADAM COSMAL, Villeneuve d’Ascq, France, 10th June 2011
  2. 2. FraSCAti TP <ul><li>Java SE 1.5 / 1.6 </li></ul><ul><ul><li>Google “Java SE 1.6” </li></ul></ul><ul><li>Apache Maven </li></ul><ul><ul><li>Go to </li></ul></ul><ul><ul><li>Left menu “Download” </li></ul></ul><ul><ul><li>Download and unzip 2 nd archive </li></ul></ul><ul><ul><li>Add apache-maven-3.0.3 to your PATH </li></ul></ul><ul><li>OW2 FraSCAti </li></ul><ul><ul><li>Go to </li></ul></ul><ul><ul><li>Left menu “Download” </li></ul></ul><ul><ul><li>Download and unzip 1 st archive </li></ul></ul>
  3. 3. About you <ul><li>Who knows SOA? </li></ul><ul><li>Who applies SOA? </li></ul><ul><li>Who would like to apply SOA? </li></ul><ul><li>Who knows SCA? </li></ul><ul><li>Who uses SCA? </li></ul><ul><li>Who would like to use SCA? </li></ul><ul><li>Who knows FraSCAti? </li></ul><ul><li>Who uses FraSCAti? </li></ul><ul><li>Who would like to use FraSCAti? </li></ul>
  4. 4. From SOA… Service-Oriented Architecture
  5. 5. From SOA challenges… <ul><li>IT architectures </li></ul><ul><li>Complexity </li></ul><ul><ul><li>Managing 10 n lines of code </li></ul></ul><ul><li>Monolithic </li></ul><ul><ul><li>Breaking application «silos» </li></ul></ul><ul><li>Seldom evolvable </li></ul><ul><ul><li>Freeing systems from immutable dependencies </li></ul></ul><ul><li>SPL, MDE, CBSE, AOSD, … </li></ul>
  6. 6. Software decomposition
  7. 7. SOA and SPL, MDE, CBSE, AOSD, …
  8. 8. Software composition
  9. 9. Tools, skills or contexts?
  10. 10. Service Oriented Architecture <ul><li>SOA leverages complexity and promotes flexibility </li></ul><ul><ul><li>Loose coupling </li></ul></ul><ul><ul><li>Service composition and orchestration </li></ul></ul><ul><ul><li>Well defined and contractualized interfaces </li></ul></ul><ul><ul><li>Standard tools and technologies </li></ul></ul><ul><li>This should be the SOLUTION !!! </li></ul>Source:
  11. 11. Simple Object Access Protocol (SOAP)
  12. 12. Four challenges for SOA <ul><li>Structuring reusable flexible architectures </li></ul><ul><ul><ul><ul><li>What is behind the scene? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Reuse the wheel when possible… </li></ul></ul></ul></ul><ul><ul><ul><ul><li>… Or tune it if not! </li></ul></ul></ul></ul><ul><li>Interoperability </li></ul><ul><ul><li>Orchestrate heterogeneous services </li></ul></ul><ul><ul><ul><li>The weather of the city where a Twitter user lives? </li></ul></ul></ul><ul><ul><ul><ul><li>REST Twitter user account + SOAP weather service </li></ul></ul></ul></ul><ul><li>Integration </li></ul><ul><ul><li>Compose heterogeneous piece of software to build a new service </li></ul></ul><ul><ul><ul><li>e.g., compose a BPEL process, an OSGi bundle and a Xquery script </li></ul></ul></ul><ul><li>Dynamically reconfigurable runtime architectures </li></ul><ul><ul><li>research challenge #1 in Service foundations [Papazoglou 07] </li></ul></ul>You want SCA and FraSCAti!
  13. 13. … to SCA … Service Component Architecture
  14. 14. Service Component Architecture (SCA) An OASIS’s standard programming model for SOA <ul><li>Technology-agnostic, adaptability, variability </li></ul><ul><ul><li>Interface languages (Java, WSDL, OMG IDL, etc.) </li></ul></ul><ul><ul><li>Implementation languages (Java, Spring, OSGi, BPEL, C/C++, etc.) </li></ul></ul><ul><ul><li>Binding protocols (WS, REST, JSON-RPC, Java RMI, CORBA, etc.) </li></ul></ul><ul><ul><li>Non functional aspects, aka SCA intents and policies </li></ul></ul><ul><ul><li>Packaging formats and deployment targets (JAR, JBI, WAR, OSGi, etc.) </li></ul></ul>Network Network Sec. Trans. log
  15. 15. SCA in a Nutshell (cont’d) <ul><li>Component implements the business logic </li></ul><ul><li>Concepts </li></ul><ul><ul><li>Service(s) </li></ul></ul><ul><ul><ul><li>Interface type: Java , WSDL </li></ul></ul></ul><ul><ul><li>Reference(s) </li></ul></ul><ul><ul><li>Property(s) </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Non functional property(s) </li></ul></ul><ul><ul><ul><li>Intent & policy </li></ul></ul></ul>intent
  16. 16. SCA in a Nutshell (cont’d) <ul><li>Assembly : ”Process of composing business applications by configuring and connecting components that provide service implementations” [SCA Whitepaper] </li></ul><ul><li>2 Levels : </li></ul><ul><li>Module assembly </li></ul><ul><ul><li>Closely coupled </li></ul></ul><ul><ul><li>See figure </li></ul></ul><ul><li>System assembly </li></ul><ul><ul><li>Loosely Coupled </li></ul></ul>
  17. 17. SCA in a Nutshell (cont’d) Warehouse Service WarehouseComposite Warehouse Broker Component Warehouse Component Order Processing Service OrderProcessing Component Shipping Reference External Warehouse Reference Payments Component Payment Service AccountsComposite External Banking Reference Accounts Ledger Component BPEL Java EE C++ SOAP/HTTP JMS RMI/IIOP Mixed: - technologies - app locations Multi-level composition Loosely coupled Loosely coupled Closely coupled Entry Points Entry Points External Service External Service External Services Binding Wire Wire
  18. 18. Modelling with Eclipse SCA Tools
  19. 19. SCA Hello World Example
  20. 20. SCA Hello World Example (cont’d)
  21. 21. SCA Hello World Example (cont’d)
  22. 22. SCA Benefits <ul><li>A component model… </li></ul><ul><ul><li>Hierarchic compositions </li></ul></ul><ul><ul><li>Configurable properties </li></ul></ul><ul><ul><li>Provided/required ports </li></ul></ul><ul><ul><li>Communication bindings </li></ul></ul><ul><ul><li>Intent and policy supports </li></ul></ul><ul><ul><li>Synchronous/asynchronous invocations </li></ul></ul><ul><li>… for SOA </li></ul><ul><ul><li>OASIS standard </li></ul></ul><ul><ul><li>Industry acceptance: Apache Tuscany, IBM WebSphere, Eclipse, … </li></ul></ul><ul><li>5 degrees of flexibility / adaptability </li></ul><ul><ul><li>Implementation languages (Java, C++, BPEL, etc.) </li></ul></ul><ul><ul><li>Interface description languages (Java, WSDL, etc.) </li></ul></ul><ul><ul><li>Communication protocols (SOAP, IIOP, etc.) </li></ul></ul><ul><ul><li>Non-functional properties (security, transactions, etc.) </li></ul></ul><ul><ul><li>Packaging formats (ZIP, OSGi bundles, WAR, etc.) </li></ul></ul>
  23. 23. SCA Limitations <ul><li>Static configuration & deployment </li></ul><ul><ul><li>XML file for describing composite components </li></ul></ul><ul><ul><li>Lack of deployment API </li></ul></ul><ul><li>No runtime adaptation & reconfiguration </li></ul><ul><ul><li>Lack of introspection API </li></ul></ul><ul><ul><li>Lack of reconfiguration API </li></ul></ul><ul><li>SCA is not a reflective component model </li></ul>You want FraSCAti!
  24. 24. FraSCAti
  25. 25. FraSCAti Overview <ul><li>A framework for SOA interoperability and integration </li></ul><ul><ul><li>SCA + extensions </li></ul></ul><ul><li>A reflective SCA component model and framework </li></ul><ul><ul><li>Runtime adaptability </li></ul></ul><ul><li>A Software Product Line for SCA </li></ul><ul><ul><li>“ à la carte”, on-demand, modular, configurable, extensible </li></ul></ul><ul><li>Components everywhere </li></ul><ul><ul><li>At any software granularity </li></ul></ul><ul><li>An open source SCA implementation </li></ul><ul><ul><li>LGPLv2 at </li></ul></ul>
  26. 26. SOA Interoperability and Integration
  27. 27. Interoperability with FraSCAti <ul><li>Via SCA bindings </li></ul><ul><ul><li>Web Service / SOAP / WSDL via Apache CXF </li></ul></ul><ul><ul><li>JMS via OW2 JORAM </li></ul></ul><ul><ul><li>REST / WADL </li></ul></ul><ul><ul><li>JSON-RPC </li></ul></ul><ul><ul><li>UPnP </li></ul></ul><ul><ul><li>Java RMI </li></ul></ul>
  28. 28. Integration with FraSCAti <ul><li>Mainly via SCA implementations </li></ul><ul><ul><li>SCA composite </li></ul></ul><ul><ul><li>Java POJO and @SCA </li></ul></ul><ul><ul><li>BPEL </li></ul></ul><ul><ul><li>Spring </li></ul></ul><ul><ul><li>Fractal </li></ul></ul><ul><ul><li>OSGi </li></ul></ul><ul><ul><li>Script </li></ul></ul><ul><ul><ul><li>BeanShell, Fscript, Groovy, JavaScript, Jython, Jruby, Xquery </li></ul></ul></ul><ul><ul><li>Scala </li></ul></ul><ul><li>HTTP servlet binding </li></ul><ul><li>C interface/implementation/binding </li></ul><ul><li>JMX </li></ul>
  29. 29. An open SOA framework Middleware for integrating middleware Apache CXF SOA stack (WS, REST) Spring Framework OSGi Apache Felix Equinox OW2 PEtALS JBI ESB Java RMI JSON RPC Java Script Engines Easy BPEL Engine . . . JMS JORAM Interoperability Integration
  30. 30. Reflective Component Model
  31. 31. FraSCAti: The marriage of SCA and Fractal SCA The standard component model for SOA Fractal A modular and reflective component model Reflective SCA Applications SOA for Fractal ANR 2007-2009 FraSCAti An open SCA runtime platform built on top of OW2 Fractal
  32. 32. An open reflective SCA platform Reflective SCA component model Middleware for integrating middleware Ad-hoc manual & anticipated scripted reconfiguration Apache CXF SOA stack (WS, REST) Spring Framework OSGi Apache Felix Equinox OW2 PEtALS JBI ESB Java RMI JSON RPC Java Script Engines Easy BPEL Engine . . . JMS JORAM API Interoperability Integration FraSCAti JMX FraSCAti REST API FraSCAti Explorer FraSCAti FScript
  33. 33. FraSCAti API & Runtime <ul><li>API = SCA API + 100% Fractal API + 3 new controllers </li></ul><ul><ul><li>SCA properties </li></ul></ul><ul><ul><li>SCA intents </li></ul></ul><ul><ul><li>SCA contents </li></ul></ul><ul><ul><li>See </li></ul></ul><ul><li>Tinfi = Julia - ASM + Juliac + new SCA membranes </li></ul><ul><ul><li>FraSCAti components also Fractal/Julia components </li></ul></ul><ul><ul><li>Java source generation for membranes </li></ul></ul>
  34. 34. FraSCAti Explorer - an SCA microscope
  35. 35. More than just an SCA microscope
  36. 36. FraSCAti JMX
  37. 37. FraSCAti REST EMF-based model
  38. 38. Reconfiguring SCA applications with <ul><li>Interactively via FraSCAti Explorer or JMX </li></ul><ul><li>Programmatically via FraSCAti API or FScript/FPath [P.C. David PhD 2005] </li></ul>
  39. 39. Fscript/Fpath for SCA <ul><li>composite = $domain/scachild::MyComposite; </li></ul><ul><li>account = $composite/scachild::AccountFacade; </li></ul><ul><li>accountRef = $account/scareference::AccountData; </li></ul><ul><li>stop ($account); // (1) </li></ul><ul><li>unwire ($accountRef); // (2) </li></ul><ul><li>newAccountData = sca-new («NewAccountDataServiceComponent»); // (3a) </li></ul><ul><li>add ($composite, $newAccountData); // (3b) </li></ul><ul><li>wire ($accountRef, $newAccountData/scaservice::Data); // (4) </li></ul><ul><li>start ($account); // (5) </li></ul>
  40. 40. FraSCAti Aspect Components (FAC) <ul><li>Non functional concerns as shared & reflective FraSCAti composites </li></ul><ul><li>Dynamic AOP for crosscutting concerns </li></ul><ul><li>Reuse [N. Pessemier PhD 2007] </li></ul>
  41. 41. A FraSCAti Aspect Component
  42. 42. A FraSCAti Intent Implementation <ul><li>public class MyIntentHandler implements org.ow2.frascati.tinfi.api. IntentHandler { </li></ul><ul><li>public Object invoke (org.ow2.frascati.tinfi.api. IntentJoinPoint ijp) throws Throwable </li></ul><ul><li>{ </li></ul><ul><li>// Before the invocation. </li></ul><ul><li>Object ret = ijp.proceed (); </li></ul><ul><li>// After the invocation. </li></ul><ul><li>return ret; </li></ul><ul><li>} } </li></ul>
  43. 43. FraSCAti UML Diagram Sequence Aspect
  44. 44. FraSCAti UML Sequence Diagram Aspect Components
  45. 45. Software Product Line
  46. 46. OW2 FraSCAti « à la carte » <ul><li>Support the extensible nature of SCA </li></ul><ul><ul><li><sca:implementation> </li></ul></ul><ul><ul><li><sca:interface> </li></ul></ul><ul><ul><li><sca:binding> </li></ul></ul><ul><ul><li>SCA intents </li></ul></ul><ul><li>Select the right subset of FraSCAti features to meet application requirements and system constraints </li></ul><ul><li>Add new application-specific FraSCAti features </li></ul>
  47. 47. OW2 FraSCAti <ul><li>Software Product Line (SPL) for h ighly “à la carte”, on-demand, modular, configurable and extensible SCA platforms </li></ul><ul><ul><li>Both application requirements and target system constraints </li></ul></ul><ul><li>Three architectural principles: </li></ul><ul><ul><li>A feature model </li></ul></ul><ul><ul><li>Maven modules </li></ul></ul><ul><ul><li>SCA-based architecture </li></ul></ul><ul><ul><li>Online at </li></ul></ul>
  48. 48. Various Features in OW2 FraSCAti <ul><li>33 for SCA developers </li></ul><ul><ul><li><implementation.bpel>, … </li></ul></ul><ul><ul><li><interface.wsdl>, … </li></ul></ul><ul><ul><li><>, … </li></ul></ul><ul><ul><li>Property XML, … </li></ul></ul><ul><li>5 for FraSCAti users </li></ul><ul><ul><li>Compiler/launcher </li></ul></ul><ul><ul><li>Tools: Explorer, FScript, JMX, Remote Management </li></ul></ul><ul><li>25 internals to FraSCAti </li></ul><ul><ul><li>Supported metamodels </li></ul></ul><ul><ul><li>Membrane generators </li></ul></ul><ul><ul><li>Supported Java compilers </li></ul></ul><ul><ul><li>Membrane factories </li></ul></ul>
  49. 49. OW2 FraSCAti Feature Model <ul><li>63 features </li></ul><ul><ul><li>18 mandatory </li></ul></ul><ul><ul><li>45 optional </li></ul></ul><ul><li>46 extra constraints, aka feature dependencies </li></ul><ul><ul><li>ECR = 57% </li></ul></ul><ul><li>1 684 077 600 distinct configurations </li></ul><ul><li>Encoded with FAMILIAR [M. Archer PhD 2011] </li></ul><ul><ul><li>a scripting language for SPL </li></ul></ul>
  50. 50. OW2 FraSCAti Feature Diagram
  51. 51. OW2 FraSCAti at S.P.L.O.T.
  52. 52. OW2 FraSCAti Modules <ul><li>Modules as implementation of features </li></ul><ul><li>46 + Maven modules </li></ul><ul><li>Mandatory features grouped into few three modules </li></ul><ul><li>Each optional feature into one module </li></ul><ul><ul><li>but one exception </li></ul></ul>
  53. 53. OW2 FraSCAti Main Modules sca-parser.jar component-factory.jar assembly-factory.jar
  54. 54. All OW2 FraSCAti Modules Remote Management Binding REST Binding JSON-RPC Implementation Resource Binding Factory Implementation Fractal Binding Java RMI MM FraSCAti Fscript Sca Parser … Implementation FScript Implementation JavaScript Implementation JRuby Implementation Jython Knopflerfish Equinox Apache Felix Implementation Script Implementation OSGi MG + MF Implementation Spring Implementation Xquery Implementation BeanShell Implementation Groovy Interface Native JMX MF Julia MM Native Property JAXB Binding JNA Implementation BPEL Membrane Generation MM UPnP Binding UPnP Explorer MM Tuscany Binding WS Binding JMS Interface WSDL JDT JDK6 Component Factory … Assembly Factory … MG Tinfi Binding HTTP MF Tinfi
  55. 55. 300+ Maven artifacts
  56. 56. OW2 FraSCAti Architecture <ul><li>Itself an SCA application </li></ul><ul><li>13 composites </li></ul><ul><li>91 components </li></ul><ul><li>Biggest SCA application to our knowledge </li></ul><ul><li>Most of features implemented by one SCA component </li></ul>
  57. 57. Root OW2 FraSCAti SCA Composite Assembly Factory Sca Parser Component Factory Binding Factory Explorer Fscript JMX Remote Management
  58. 58. OW2 FraSCAti SCA Parser Metamodels MM_SCA MM_UPnP MM_FraSCAti MM_Native MM_Tuscany
  59. 59. OW2 FraSCAti Component Factory Component Factory Membrane Factories MF_Julia MF_Tinfi MF_OSGi Membrane Generation
  60. 60. OW2 FraSCAti Component Factory Membrane Generation Membrane Generators Java Compilers MG_OSGi MG_Tinfi JDK6 JDT
  61. 61. OW2 FraSCAti Assembly Factory Assembly Factory Implementations Composite Java Fractal Spring OSGi Resource Script BPEL Interfaces Java WSDL Native Bindings SCA WS UPnP REST JSON-RPC JMS HTTP Java RMI JNA Java XSD JAXB Properties
  62. 62. Self-introspecting with FraSCAti Explorer
  63. 63. Self-introspecting with FraSCAti JMX
  64. 64. OW2 FraSCAti SPL Summary <ul><li>Highly “à la carte”, on-demand, modular, configurable, and extensible SCA platforms </li></ul><ul><ul><li>Design View </li></ul></ul><ul><ul><ul><li>63 features </li></ul></ul></ul><ul><ul><ul><ul><li>18 mandatory </li></ul></ul></ul></ul><ul><ul><ul><ul><li>45 optional </li></ul></ul></ul></ul><ul><ul><li>Implementation View </li></ul></ul><ul><ul><ul><li>46+ Maven modules </li></ul></ul></ul><ul><ul><ul><ul><li>Mandatory features grouped into few modules </li></ul></ul></ul></ul><ul><ul><ul><ul><li>One module by optional feature </li></ul></ul></ul></ul><ul><ul><li>Execution View </li></ul></ul><ul><ul><ul><li>13 composites and 91 components </li></ul></ul></ul><ul><li> 1 684 077 600 distinct configurations </li></ul>
  65. 65. Software decomposition and composition frascati-assembly-factory.jar frascati-implementation-bpel.jar Assembly Factory BPEL Decomposition @ Design Time Decomposition @ Runtime Composition @ Deployment Time Decomposition @ Implementation Time
  66. 66. Conclusion
  67. 67. What you should keep in mind about <ul><li>A middleware of middleware </li></ul><ul><ul><li>SOA interoperability and integration </li></ul></ul><ul><li>A reflective component model for SOA [SCC’09, SPE’11] </li></ul><ul><ul><li>FraSCAti = SCA + Fractal + FAC + CBM </li></ul></ul><ul><li>A software product line for SCA </li></ul><ul><ul><li>Highly “à la carte”, on-demand, modular, configurable and extensible </li></ul></ul><ul><li>At any software granularity </li></ul><ul><ul><li>SOA applications </li></ul></ul><ul><ul><li>Non functional crosscutting concerns, aka SCA intents </li></ul></ul><ul><ul><li>FraSCAti and its plugins </li></ul></ul><ul><ul><li>Component-based reflective membranes </li></ul></ul><ul><ul><li>New middleware, e.g., EasyBPEL/EasyViper </li></ul></ul>
  68. 68. Next features for OW2 FraSCAti 1.5 <ul><li>Follow </li></ul><ul><li><implementation.osgi> with Concierge </li></ul><ul><li><implementation.velocity> </li></ul><ul><li><implementation.freemarker> </li></ul><ul><li><interface.wadl> </li></ul><ul><li><binding.osgi> </li></ul><ul><li><binding.jgroup> </li></ul><ul><li>Deployment on OSGi </li></ul><ul><ul><li>Apache Felix, Equinox, Knopflerfish, Concierge </li></ul></ul><ul><li>Deployment on J2ME </li></ul><ul><li>Web-based FraSCAti Explorer </li></ul>
  69. 69. Research Perspectives <ul><li>Software Product Lines to modular SCA with FraSCAti </li></ul><ul><li>A component-based programming language for dynamic SOA </li></ul><ul><li>Real-time systems </li></ul><ul><ul><li>OMG Data Distribution Service (DDS) </li></ul></ul><ul><li>Event-based systems </li></ul><ul><li>Embedded systems </li></ul><ul><li>Autonomous systems </li></ul><ul><li>E-green systems </li></ul><ul><li>Home clouds </li></ul><ul><li>Large scale SOA & Cloud Computing </li></ul>
  70. 70. Intensive software systems <ul><li>Interoperability </li></ul><ul><li>Integration </li></ul><ul><li>Configuration </li></ul><ul><li>Deployment </li></ul><ul><li>Observation </li></ul><ul><li>Reconfiguration </li></ul><ul><li>. . . </li></ul><ul><li>Various forms of flexibility/adaptability </li></ul>You want FraSCAti! for your business
  71. 71. SCA References <ul><li>SCA Specifications </li></ul><ul><ul><li>OpenSOA </li></ul></ul><ul><ul><li>OASIS OpenSCA </li></ul></ul><ul><li>OSS Implementations </li></ul><ul><ul><li>Tuscany </li></ul></ul><ul><ul><li>Newton </li></ul></ul><ul><ul><li>Fabric3 </li></ul></ul><ul><ul><li>FraSCAti </li></ul></ul><ul><li>SCA Resources </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li> [Mike Edwards] </li></ul></ul><ul><ul><li> </li></ul></ul>
  72. 72. Acknowledgements <ul><li>Slides from </li></ul><ul><ul><li>Lionel Seinturier – University of Lille </li></ul></ul><ul><ul><li>Romain Rouvoy – University of Lille </li></ul></ul><ul><ul><li>Rémi Melisson – Orange Labs </li></ul></ul><ul><ul><li>Rémi Druilhe – Orange Labs </li></ul></ul><ul><li>All FraSCAti team members </li></ul><ul><ul><li>Christophe Demarey (INRIA), Michel Dirix (INRIA), Nicolas Dolet (INRIA), Damiel Fournier (INRIA), Christophe Munilla (INRIA), Nicolas Petitprez (INRIA), Valerio Schiavoni (INRIA), Guillaume Surrel (ScalAgent) </li></ul></ul><ul><ul><li>Mahmoud Ben Hassine (INRIA), Pierre Carton (INRIA), Jonathan Labejof (Thalès), Adel Noureddine (INRIA), Russel Nzekwa (INRIA), Nicolas Pessemier (INRIA), Clément Quinton (INRIA), Daniel Romero (INRIA) </li></ul></ul><ul><ul><li>… </li></ul></ul>
  73. 73. FraSCAti everywhere, what else? <ul><li>Visit </li></ul><ul><li>Contact </li></ul><ul><ul><li>Philippe Merle: </li></ul></ul><ul><ul><li>Lionel Seinturier: </li></ul></ul>