Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.

Slides:



Advertisements
Similar presentations
Mobile Agents Mouse House Creative Technologies Mike OBrien.
Advertisements

Operating System Structures
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
M. Muztaba Fuad Masters in Computer Science Department of Computer Science Adelaide University Supervised By Dr. Michael J. Oudshoorn Associate Professor.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java security (in a nutshell)
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.
The road to reliable, autonomous distributed systems
Company LOGO Remote Method Invocation Georgi Cholakov, Emil Doychev, University of Plovdiv “Paisii.
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
FONG CHAN SING (143334) WONG YEW JOON (143388). JAVA RMI is a distributive system programming interface introduced in JDK 1.1. A library that allows an.
Object Orientated Programming
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
Bending Binary Programs to your Will Rajeev Barua.
Communication in Distributed Systems –Part 2
Tcl Agent : A flexible and secure mobile-agent system Paper by Robert S. Gray Dartmouth College Presented by Vipul Sawhney University of Pennsylvania.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Understanding and Managing WebSphere V5
Java Security Updated May Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
JavaGrande Forum: An Overview Vladimir Getov University of Westminster.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Remote OMNeT++ v2.0 Introduction What is Remote OMNeT++? Remote environment for OMNeT++ Remote simulation execution Remote data storage.
About the Java  Java technology is both a programming language and a platform –The Java Programming Language A high-level language that can be characterized.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
SALSA: Language and Architecture for Widely Distributed Actor Systems. Carlos Varela, Abe Stephens, Department of.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
PARMON A Comprehensive Cluster Monitoring System A Single System Image Case Study Developer: PARMON Team Centre for Development of Advanced Computing,
SUMA: A Scientific Metacomputer Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
POS 406 Java Technology And Beginning Java Code
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Message-Passing Computing Chapter 2. Programming Multicomputer Design special parallel programming language –Occam Extend existing language to handle.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
3/12/2013Computer Engg, IIT(BHU)1 MPI-1. MESSAGE PASSING INTERFACE A message passing library specification Extended message-passing model Not a language.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Topic 5: CORBA RMI Dr. Ayman Srour
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
1. Presentation Agenda  Identify Java Card Technology  Identify Elements of Java Card applications  Communicating with a Java Card Applet  Java Card.
Operating Systems {week 11a}
Applications Active Web Documents Active Web Documents.
Parallel Virtual Machine
What is RMI? Remote Method Invocation
Java security (in a nutshell)
Introduction Enosis Learning.
PHP / MySQL Introduction
Knowledge Byte In this section, you will learn about:
Introduction Enosis Learning.
Pluggable Architecture for Java HPC Messaging
Chapter 40 Remote Method Invocation
MPJ: A Java-based Parallel Computing System
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Presentation transcript:

Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries

Native-Language-Based Distributed Computing Blending Java and Native Languages to achieve cross-platform, cross- network, cross-filesystem distributed computing.

The Objective Linux NT Cluster SGI Solaris Cluster Spawn This Here Data Servers Data Repository Update Database, Post-process data

Implications Collaborative programming environment Provisional access to computational resources beyond local networks. Data mining (send processes to the data). Optimal process mapping. Nomadic virtual environment.

Demands on the System: Protocol for porting of static forms of the executable program collectives across to the remote host, resolve its dependencies, check against security violations, and instantiate as a process. Whom to trust? API for message-passing library calls.

Initial Approach: Use Java Java provides a means to load processes obtained from remote resources using the java.lang.ClassLoader class. The Java SecurityManager provides a general security framework. Java bytecode representation provides uniformity in a heterogeneous environment (and more! …later).

Initial Implementation: Java-based communication substrate with Java programming bindings to message- passing functions. Commands such as add, delete, spawn, kill, and similar PVM-style commands to configure the environment. Additional commands to merge, split and register virtual environments.

Initial Implementation: Provided the requisite mechanisms to “soft- install” processes upon remote resources without accessing the filesystem. Allowed for distributed parallelization and synchronization of processes within the environment.

Functionality... The Java-based implementation proved to be well suited for “computationally-lite” distributed computing tasks across network boundaries. Although speedups were observable for parallelization of tasks over clusters, performance for traditional distributed computing tasks left a lot to be desired.

Pros/Cons of using Java Pros: –Java offers tremendous potential to the user in terms of portability and heterogeneous execution –Bytecode Representation, RMI, Object Serialization Cons: –As an interpreted language, Java suffers a significant performance penalty. –As with any new language, the thought of rewriting existing codes brings reluctance, lack of enthusiasm.

Pros/Cons of using Java

So, What Language to Use? Java is a highly-portable language Java adheres to the “Write once, run anywhere” philosophy Java has a well-established collection of scientific library bindings Java’s executional speed is suitable for HPC C/Fortran/C++ are highly-portable languages C/Fortran/C++ adhere to the “Write once, run anywhere” philosophy C/Fortran/C++ have well-established scientific library bindings C/Fortran/C++ executional speeds are suitable for HPC

So, What Language to Use? Java is a highly-portable language Java adheres to the “Write once, run anywhere” philosophy C/Fortran/C++ have well-established scientific library bindings C/Fortran/C++ executional speeds are suitable for HPC Utilize Java for its portability and standardization, but focus on using Java as a wrapper for porting of native code in the form of shared libraries

Solution: Blend Java with C/Fortran Use Java for the initial introduction of the program collective to the remote host. The wrapper class may be analyzed for class dependencies, shared library usage, security violations, etc. Use C/Fortran codes as the computational engine of the process. Compiled into shared libraries (.so ’s or.DLL ’s), they can be encapsulated within the program collective and loaded onto the remote resource.

The (New) Objective: Linux NT Cluster SGI Solaris Cluster Spawn This Here Native Library, FORTRAN BLAS perhaps

How does it work? Request to create Java-based process, “A_process” Local search for A_process fails Request for class A_process Bytecode for A_process.class...011AF01222EBABEFAC 22EBABEF A C Class file is run through the “ BYTE GRINDER.”

...22EBABEF A List of Method Calls Native Libraries List List of Dependency Classes The “ BYTE GRINDER ” List of method calls aids in imposing security on processes obtained remotely, run locally. Libraries in the native library list can be obtained from the requesting user or from a trusted third party. Classes in the dependency class list are analyzed similarly.

How does it do that? Following the Java Virtual Machine specification, the incoming bytecode is “analyzed.” –Magic Number (CAFEBABE) –Major Version –Minor Version –Constant Pool Count Construction of the constant pool. (Watch out for those double and long entries!)

How does it do that? –Read super-class entry from the constant pool –Read list of Interfaces from constant pool references –Read list of fields from the constant pool. –Method opcode listings. –Java Opcode of each method is analyzed for invocation of calls such as “ System.load. ” Argument yields the native library dependency. Socket calls, File manipulations, etc.

Other Things That Make it Work: Processes are (sub-subclassed) extensions of the java.lang.Thread class, which allows for its execution to be started, stopped, suspended, prioritized, serialized or likewise governed by the remote host. JNI: Automatic header file generation and a protocol for interfacing with C/C++ codes (which are then used to interface to Fortran).

Work in progress: Implement new features in the recent release of the JDK 1.2 relating to native method calls. Optimize message passing mechanism in the substrate. Implement full security mechanisms. Generate cross network IceT demo Apps.

Summary IceT extends the scope of distributed computing environments by –locating and migrating static processes across filesystems and by –dynamically merging and splitting virtual environments. IceT provides a provisional mechanism for supporting program collectives running concurrently, across multiple networks, and existing in multiple fazes.