towards m ultilanguage and m ultiprotocol i nteroperability experiments with babel and rmix
Download
Skip this Video
Download Presentation
Towards M ultilanguage and M ultiprotocol I nteroperability : Experiments with Babel and RMIX

Loading in 2 Seconds...

play fullscreen
1 / 16

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


  • 119 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Towards M ultilanguage and M ultiprotocol I nteroperability : Experiments with Babel and RMIX' - erma


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

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

ad