proactive
play

ProActive Architecture of an Open Middleware for the Grid Romain - PowerPoint PPT Presentation

ProActive Architecture of an Open Middleware for the Grid Romain Quilici www.objectweb.org/ProActive ObjectWeb Architecture meeting July 2nd 2003 1 ProActive A Java API + Tools for Parallel, Distributed Computing A uniform framework: An


  1. ProActive Architecture of an Open Middleware for the Grid Romain Quilici www.objectweb.org/ProActive ObjectWeb Architecture meeting July 2nd 2003 1

  2. ProActive A Java API + Tools for Parallel, Distributed Computing – A uniform framework: An Active Object pattern – A formal model behind: Prop. Determinism, insensitivity to deploy. Main features: � Remotely accessible Objects (RMI, JINI, --> UDDI) � Asynchronous Communications with synchro: automatic Futures � Group Communications, Migration (mobile computations) � XML Deployment Descriptors � Interfaced with various protocols: rsh,ssh,LSF,Globus,--> SOAP � Visualization and monitoring: IC2D In the ObjectWeb Consortium since April 2002 (LGPL License) 2

  3. Table of Contents � ProActive Runtime � Active Objects Model � Future Objects and Automatic Continuation � Groups Communication � Active Objects Migration � Abstract Deployment Model � Components Infrastructure � Security 3

  4. ProActive Runtime � Transparently created when using ProActive � Only one by JVM -- Singleton pattern � Offer basics services to create or receive Active Objects � Accessible remotely � Partially hidden from users --> Use of Nodes (look like remote) � ProActive Nodes are defined on PART --> possibly N nodes by JVMs � Use of patterns to improve integration – Smart Proxy – Adapter – Factory …. 4

  5. ProActive Runtime Architecture �������� Jvm1 Jvm2 Node1 properties Node1 Singleton Factory PART PART Smart Proxy PART PART Stub Remote Adapter 5

  6. Table of Contents ProActive Runtime � ProActive Runtime ProActive Runtime � � � Active Objects Model Future Objects and Automatic Continuation � Future Objects and Automatic Continuation Future Objects and Automatic Continuation � � Groups Communication � Groups Communication Groups Communication � � Active Objects Migration � Active Objects Migration Active Objects Migration � � Abstract Deployment Model � Abstract Deployment Model Abstract Deployment Model � � Components Infrastructure � Components Infrastructure Components Infrastructure � � Security � Security Security � � 6

  7. Active Object Model � Active objects : coarse-grained structuring entities (subsystems) � Each active object: - possibly owns many passive objects - has exactly one thread . � No shared passive objects -- Parameters are passed by deep-copy � Asynchronous Communication between active objects � Future objects and wait-by-necessity. � Full control to serve incoming requests (reification) 7

  8. Creating active objects � Instantiation-based: A a = (A)ProActive.newActive(«A», params, node); To get a non-FIFO behavior (Class-based): class pA extends A implements RunActive { … } � Object-based: A a = new A (obj, 7); ... ... a = (A)ProActive.turnActive (a, node); 8

  9. ProActive: Reuse and seamless � Two key features: � Polymorphism between standard and active objects – Type compatibility for classes (and not only interfaces) – Needed and done for the future objects also – Dynamic mechanism (dynamically achieved if needed) foo (A a) O.foo(a) : a.g() "A" a { and a.f() are p_a a.g (...); «�local�» v = a.f (...); "pA" O.foo(p_a): a.g() ... and a.f()are v.bar (...); remote + Async.» } � Wait-by-necessity: inter-object synchronization – Systematic, implicit and transparent futures (“value to come”) Ease the programming of synchronizations, and the reuse of routines 9

  10. Active Object Components Caller Stub Object Object Proxy Body Components of an Active Object 10

  11. Active Object Architecture RMI case Jvm1 Jvm2 Caller Byte code generation with asm Stub Object Object Proxy Body Body Smart Proxy Remote Body Stub Body RMI Specific 11

  12. Body Architecture Request Receiver Reply Sender Reply Body Receiver FuturePool RequestLine Object Service 12

  13. Request to an Active Object Caller 1 Request Reply 5 Receiver Sender 2 1 - Call Reply Body 2 - Reception of Request Receiver 3 - Selection of Request 4 - Execution 5 - Sending back the reply Service Objet 3 4 13

  14. Table of Contents ProActive Runtime � ProActive Runtime ProActive Runtime � � Active Objects Model � Active Objects Model Active Objects Model � � � Future Objects and Automatic Continuation Groups Communication � Groups Communication Groups Communication � � Active Objects Migration � Active Objects Migration Active Objects Migration � � Abstract Deployment Model � Abstract Deployment Model Abstract Deployment Model � � Components Infrastructure � Components Infrastructure Components Infrastructure � � Security � Security Security � � 14

  15. Future Objects A res = ActiveObject.foo(); Stub_A res Future Caller Proxy • The caller receives a Future : it continues its execution • If it tries to access to the value or res , it is blocked in the future proxy ( Wait By Necessity ), until this value is available 15

  16. Future Objects A res = ActiveObject.foo(); Stub_A res Object Future Caller Proxy • When the called object finish the computation of res, the value is returned to the caller • Future is updated transparently 16

  17. Automatic Continuation Caller a b 17

  18. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … r1=a.foo() Caller r1=a.foo() a … b 18

  19. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() a … Future_r1 b 19

  20. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() r 2 = a b … . b a r ( r2=b.bar(r1) r 1 ) Future_r1 b 20

  21. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() a … r2=b.bar(r1) Future_r1 b Future_r1 Future_r2 21

  22. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() a E … T A D P U r2=b.bar(r1) Future_r1 b Future_r1 Future_r2 Value_r1 22

  23. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() a UPDATE … r2=b.bar(r1) Future_r1 b Future_r1 Value_r1 Future_r2 Value_r1 23

  24. Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation . … Caller r1=a.foo() a UPDATE … r2=b.bar(r1) Future_r1 b Future_r1 Value_r1 Future_r2 Value_r1 Value_r2 24

  25. Table of Contents ProActive Runtime � ProActive Runtime ProActive Runtime � � Active Objects Model � Active Objects Model Active Objects Model � � Future Objects and Automatic Continuation � Future Objects and Automatic Continuation Future Objects and Automatic Continuation � � � Groups Communication Active Objects Migration � Active Objects Migration Active Objects Migration � � Abstract Deployment Model � Abstract Deployment Model Abstract Deployment Model � � Components Infrastructure � Components Infrastructure Components Infrastructure � � Security � Security Security � � 25

  26. Group Communication � Manipulate groups of Active Objects in a simple and typed manner – Typed groups of active and remote objects. – Maintain the ‘dot�’ notation, language property – Dynamic generation of groups of results � Be able to express high-level collective communication – broadcast – scatter, gather � Based on the ProActive communication mechanism – Replication of N ‘�single�’ communications – Preservation of the «�rendez-vous�» – Asynchronous 26

  27. Group Structure Jvm1 Jvm2 Stub Remote Stub Proxy OA Proxy for Group Jvm3 Remote Stub Proxy OA 27

  28. Construction of a Result Group A ag = newActiveGroup (…) V v = ag.foo(param); v.bar(); A V Typed Group Java or Active Object 28

  29. Table of Contents ProActive Runtime � ProActive Runtime ProActive Runtime � � Active Objects Model � Active Objects Model Active Objects Model � � Future Objects and Automatic Continuation � Future Objects and Automatic Continuation Future Objects and Automatic Continuation � � Groups Communication � Groups Communication Groups Communication � � � Active Objects Migration Abstract Deployment Model � Abstract Deployment Model Abstract Deployment Model � � Components Infrastructure � Components Infrastructure Components Infrastructure � � Security � Security Security � � 29

  30. Migration of Active Objects Migration is initiated by the active object itself through a primitive: migrateTo Can be initiated from outside through any public method The active object migrates with: • all pending requests • all its passive objects • all its future objects Automatic and transparent forwarding of: • requests (remote references remain valid) • replies (its previous queries will be fullfilled) 30

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend