Grid Computing Research Lab SUNY Binghamton 1 Plans for Babelizing XCAT-C++ Madhu Govindaraju Kenneth Chiu.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

COS 461 Fall 1997 Network Objects u first good implementation: DEC SRC Network Objects for Modula-3 u recent implementation: Java RMI (Remote Method Invocation)
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
RPC Robert Grimm New York University Remote Procedure Calls.
RMI Varun SainiYing Chen. What is RMI? RMI is the action of invoking a method of a remote interface on a remote object. It is used to develop applications.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
1 Advanced Programming Topics - II Objectives:  Background  Remoting  Types of remoting  Marshalling  Farmatters  Channels.
1 HANDOUT 14 Remote Method Invocation (RMI) BY GEORGE KOUTSOGIANNAKIS THIS DOCUMENT CAN NOT BE REPRODUCED OR DISTRIBUTED WITHOUT TH E WRITTEN PERMISSION.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Comparison of the RMI and the socket APIs
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Introduction to Remote Method Invocation (RMI)
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
ASP.NET Programming with C# and SQL Server First Edition
Fundamentals of Python: From First Programs Through Data Structures
Proxy Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Hacking the Bluetooth Pairing Authentication Process Graduate Operating System Mini Project Siyuan Jiang and Haipeng Cai.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Java RMI Essentials Based on Mastering RMI Rickard Oberg.
Introduction to Ice Copyright © ZeroC, Inc. Ice Programming with Java 1. Introduction to Ice.
+ A Short Java RMI Tutorial Usman Saleem
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Remote Procedure Calls Adam Smith, Rodrigo Groppa, and Peter Tonner.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
The Socket Interface Chapter 21. Application Program Interface (API) Interface used between application programs and TCP/IP protocols Interface used between.
Integrating Digital Libraries by CORBA, XML and Servlet Integrating Digital Libraries by CORBA, XML and Servlet Wing Hang Cheung, Michael R. Lyu and Kam.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Java Remote Method Invocation RMI. Idea If objects communicate with each other on one JVM why not do the same on several JVM’s? If objects communicate.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Test Enabled and Training Architecture (TENA) Don McGregor Research Associate MOVES Institute
Remote Method Invocation A Client Server Approach.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Java Distributed Object System
Java Distributed Computing
MCA – 405 Elective –I (A) Java Programming & Technology
What is RMI? Remote Method Invocation
Distribution and components
Knowledge Byte In this section, you will learn about:
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 40 Remote Method Invocation
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Java Remote Method Invocation
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Grid Computing Research Lab SUNY Binghamton 1 Plans for Babelizing XCAT-C++ Madhu Govindaraju Kenneth Chiu

2 XCAT-C++ Component: Architecture

3 Proteus: Multi-Protocol Library Proteus provides single-protocol abstraction to components –Allows users to dynamically switch between protocols XCAT-Library Proteus API XBMP SOAP TCP

4 What makes a distributed framework? How does an object become remote? What happens when a method is invoked on a remote reference? What about nested components/sub-components? What is the remote reference format? How is the remote reference transported on the wire? How does the BuilderService create a component and get back a reference? How is a new protocol chosen? How will the code generation for the RMI protocol be done? During serialization how is the RMI code called? During deserialization how is the object code called? What about garbage collection (in, out, inout) methods? How can multiple RMI protocols be used for the same application? Can XCAT-C++ components serve as Web service so that they work with workflows? How is a new provider loaded (dynamically) into an XCAT-C++ component? How will the current code generation be affected? What kind of Proteus-Babel adapter needs to be designed?

5 Remote Objects Example Remote Objects –ProvidesPorts, ComponentIDImpl –Move across address spaces Current Design –Hidden in generated code for each port –ProvidesPort implementations need to inherit from generated code Babelized model –3 ways for server-side creation of remote objects Use the API to add object to the InstanceRegistry Modify XCAT-C++ library, generated code, and provides ports

6 Builder Service Current Design – can plug in different protocols for remote creation SSH, GRAM, … Specified by user in the TypeMap in call to BuilderService – implementation of builder service separate thread waits for successful instantiation of remote component –or else time-out and throw an exception The driver/main of the new component retrieves its ComponentID use an internal RMI call to send it to the waiting BuilderService ConnectionID returned to the user

7 Builder Service (2) Babelized Design –The component main will call the getURL(…) call on the ComponentID –return it to the waiting BuilderService a stub will be used on the BuilderService side –May need Structs to be supported –For now, call connect from the newly instantiated component »Will work if remote reference is converted to a string

8 Remote Reference Format XCAT-C++ – currently all remote references are in string format provider name, host,port, uniqueID – each remote object can be re-created as a local (proxy) object on the receiving side New Design –BabelRMI deals with passing remote references automatically can dynamically create stubs on the receiving side

9 Sub-components xcatExportAs(Port* port, string portName) –This method exports another component's port with name "portName" as its own port (with name "newPortname"). Helps create nested components –Need to figure out how to efficiently transfer data Without copying in intermediate components New Design –No need to change the design –Again need to ensure data copying doesn’t take place

10 Invoking Remote Methods Current Design –A provider is dynamically loaded –Each provider adheres to a Proteus API for pack and unpack of arguments. –Methods on remote objects can be transferred to generated code specific to each remote object Proteus transfers the calls to specific provider –Which then transports it New Design –BabelRMI has an API similar to ProteusAPI –BabelRMI-Proteus adapter will take care of the transfer So the generated code will have to change for XCAT-C++ –Will be handled by Babel itself though

11 Loading Specific Providers XCAT-C++ can use multiple protocols in same component –Can dynamically load a new provider granularity is on a per call basis New Design –can dynamically add many protocols to the protocolFactory once you create a stub that uses protocol x to access object y, you're pretty much stuck with x. though theoretically you can get a new stub to y with a new protocol with the connect call if you like though. [Jim Leek]

12 Garbage Collection Will stick to using BabelRMI model – no changes needed

13 User Interface C++ interface to the BuilderService Implementation Python interface via SWIG typeMapProv.putString( "remoteHost", “drake”) typeMapProv.putString("creationArgs", "-l xbmp.so”) New Design –C++ interface should be similar to current XCAT-C++ interface –Python interface via SWIG needs to be investigated do not expect this to be a problem though!

14 Current and Future Design Work Investigate how to use Babelized XCAT-C++ as a Web service so that it works with workflows Serialization and De-serialization of Objects –Structs – serializing arrays is important passing it as a remote reference will be expensive Interoperability with other frameworks Dynamically swap components –in between calls –notion of component-type and port type matching Incorporate a CCA-event model Incorporate TAU tools to get trace of performance data Incorporate monitoring and CQoS methodologies

15 Babel RMI Allows Babel objects to be accessed through remote Babel stubs. Underlying RMI uses Proteus. Objects that can be transmitted inherit from sidl.io.Serializable. Actual implementation of serialization functions is by specific protocol implementations