1 / 16

Towards M ultilanguage and M ultiprotocol I nteroperability : Experiments with Babel and RMIX

Institute of Computer Science AGH, Krak ó w, Poland ACC CYFRONET AGH, Kraków, Poland. Towards M ultilanguage and M ultiprotocol I nteroperability : Experiments with Babel and RMIX. Maciej Malawski, Daniel Harężlak, Marian Bubak. Outline.

erma
Download Presentation

Towards M ultilanguage and M ultiprotocol I nteroperability : Experiments with Babel and RMIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Institute of Computer Science AGH, Kraków, Poland ACC CYFRONET AGH, Kraków, Poland Towards Multilanguage and Multiprotocol Interoperability: Experiments withBabel and RMIX Maciej Malawski, Daniel Harężlak, Marian Bubak

  2. Outline • Motivation: multiple languages and protocols in Grids • Background: MOCCA = H2O + CCA • RMIX multiprotocol library • BABEL multilanguage interoperability tool • Combining RMIX and Babel

  3. Motivation Grids are heterogeneous Multiple programming languages – in single application Java for middleware C for system programming FORTRAN for computing Python for scripting Multiple protocols – in single application High speed local networks (Myrinet) TCP/SSL/TLS in WAN SOAP for loosely coupled message exchange Overlay P2P networks for traversing private network boundaries (NATs) Context: MOCCA component framework

  4. Background: CCA and H2O Common Component Architecture (CCA) • Component standard for HPC • Uses and provides ports described in SIDL • Support for scientific data types • Existing tightly coupled (CCAFFEINE) and loosely coupled, distributed (XCAT) frameworks H2O • Distributed resource sharing platform • Providers setup H2O kernel (container) • Allowed parties can deploy pluglets (components) • Separation of roles: decoupling • Providers from deployers • Providers from each other • RMIX: efficient multiprotocol RMI extension

  5. Example Scenarios of H2O Registration and Discovery e-mail,phone, ... UDDI JNDI LDAP DNS GIS ... Publish Find ... Deploy Provider A nativecode A A B A Deploy B Client Provider Client Provider B Client Provider Deploy LegacyApp Repository Repository A B A B Reseller Developer C C 1. Provider = deployer • e.g. resource = legacy application 3. Client = deployer • e.g. client runs custom distributed application on shared resources 2. Reseller:= developer = deployer • e.g. computational service offered within a grid system

  6. RMIX Communication Substrate Service RMIX RMIXJRMPX RMIXXSOAP RMIXRPCX RMIX JXTA Java Web Services ONC-RPC JXTA SOAP clients • Extensible framework • Remote Method Invocations paradigm • Pluggable protocol providers • Multiple protocols supported • JRMPX, ONC-RPC, SOAP • Request-Response and Asynchronous calls • Combines simplicity, flexibility, and performance

  7. RMIX: Multiple Protocols Protocol switching Protocol negotiation Various protocol stacks for different situations SOAP: interoperability SSL: security ARPC, custom (Myrinet, Quadrics): efficiency Pluggable transport layer: support for JXTA P2P network H2O Kernel security H2O Kernel Internet firewall efficiency H2O Kernel H2O Kernel Harness Kernel efficiency H2O Kernel

  8. MOCCA Implementation in H2O • Each component running in separate pluglet • Facilitated deployment and security • Thanks to H2O kernel security mechanisms, multiple components may run without interfering • Using RMIX for communication – efficiency, multiprotocol interoperability • Flexibility and multiple scenarios – as in H2O • MOCCA_Light: pure Java implementation - need for supporting multilanguage components

  9. Multilanguage Solution - Babel • SIDL – Scientific Interface Definition Language • Standard for CCA Components • Supports arrays and complex types • Focus on interfaces • Babel: • SIDL parser • Code generator • Runtime library • Intermediate ObjectRepresentation (IOR) • Core of Babel object • Array of function pointers • Generated code in C package example version 1.2 { class Hello { string hello( in string hello); } } // user defined non-static methods: /** * Method: hello[] */ public java.lang.String hello_Impl ( /*in*/ java.lang.String hello ) { // DO-NOT-DELETE splicer.begin(example.Hello.hello) // Insert-Code-Here {example.Hello.hello} (hello) return ”Server says: ” + hello; // DO-NOT-DELETE splicer.end(example.Hello.hello) } /** * Method: hello[] */ char* example_Hello_hello( /*in*/ example_Hello self, /*in*/ const char* hello);

  10. Fortran native library SIDL SIDL C++ native library Currently: Babel for Local Applications • All Babel objects in one process • Implemented in CCAFFEINE framework • Existing multilanguage CCA components – see CCA tutorial Java application Babel IOR Babel IOR

  11. Network SIDL C++ native library SIDL SIDL SIDL Our Solution • Babel + RMIX • Implementation of Babel RMI extensions • generic mechanism of method invocation (reflection) • Dynamic loading of communication library • No need for code generation and compilation RMIX library RMIX library Babel IOR Babel IOR Java application Fortran native library

  12. sidl.io <<interface>> InstanceHandle <<interface>> Invocation <<interface>> ServerInfo <<interface>> Response <<interface>> Deserializer <<interface>> Serializer sidl.rmi RmixInstanceHandle RmixSerializer RmixDeserializer RmixServerInfo RmixInvocation RmixResponse Class Diagram rmix

  13. Client-side Invocation

  14. Server-side Invocation

  15. Conclusions • Combining Babel with RMIX will offer distributed application flexibility • Now: beginning of implementation phase • Applicable to MOCCA framework, but the solution is general • Interfacing legacy systems • Interfacing Web services • More interoperability? – multiple component standards...

  16. References Maciej Malawski, Dawid Kurzyniec, and Vaidy Sunderam. MOCCA – towards a distributed CCA framework for metacomputing, 10th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS2005) at IPDPS’2005 http://mathcs.emory.edu/dcl/h2o/papers/h2o_hips05.pdf H2O Project homepage: http://www.mathcs.emory.edu/dcl/h2o/ CCA Forum: http://www.cca-forum.org CCA Specification Tutorial Babel: http://www.llnl.gov/CASC/components/ MOCCA homepage: http://www.icsr.agh.edu.pl/mambo/mocca Download binary and source distribution README

More Related