Towards m ultilanguage and m ultiprotocol i nteroperability experiments with babel and rmix
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

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


  • 83 Views
  • Uploaded on
  • Presentation posted in: General

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.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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 Multilanguage and Multiprotocol Interoperability: Experiments withBabel and RMIX

Maciej Malawski, Daniel Harężlak,

Marian Bubak


Outline

Outline

  • Motivation: multiple languages and protocols in Grids

  • Background: MOCCA = H2O + CCA

  • RMIX multiprotocol library

  • BABEL multilanguage interoperability tool

  • Combining RMIX and Babel


Motivation

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


Background cca and h2o

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


Example scenarios of h2o

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


Rmix communication substrate

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


Rmix multiple protocols

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


Mocca implementation in h2o

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


Multilanguage solution babel

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);


Currently babel for local applications

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


Our solution

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


Class diagram

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


Client side invocation

Client-side Invocation


Server side invocation

Server-side Invocation


Conclusions

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...


References

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


  • Login