Do! environment. DoT

Size: px
Start display at page:

Download "Do! environment. DoT"

Transcription

1 The Do! project: distributed programming using Java Pascale Launay and Jean-Louis Pazat IRISA, Campus de Beaulieu, F35042 RENNES cedex Abstract. The aim of the Do! project is to ease the task of programming distributed applications using Java. In a rst step, the programmer writes his application as a shared-memory parallel program, by dening the components of the program; in a second step, the programmer denes the component locations on distinct hosts; in a third step, our preprocessor transforms the shared-memory parallel program into a distributed-memory program. This paper is an overview of the Do! project. 1 Introduction { overview of the Do! project Writing distributed applications is known to be dicult; many problems have to be taken into account at the same time such as location and access to data and network protocols details. Implementing communications between objects located on distinct hosts is eased in Java by using the Socket class or the Java Remote Method Invocation (rmi) package [8]. However object locations still have to be taken into account and objects are not transparently accessed if they are distant or local. We think that there is a need for higher level tools to ease the programming of distributed applications in Java. The Do! environment (gure 1) provides an easy way to write distributed applications in Java; it comprises a parallel framework 1 [9] used to write parallel programs, a distributed User-defined components Preprocessor Do! environment Parallel framework DoT Distributed framework Do! runtime javac javac rmic JVM JVM JVM JVM Parallel program Distributed program Fig. 1. the Do! environment 1 the framework approach is introduced in section 1.2

2 framework to express distributed programs, a runtime and a preprocessor (DoT) to transform parallel programs into distributed programs. The frameworks and the runtime are composed of standard Java class libraries, without any extension to the language; our system does not make any byte-code transformation. Therefore Do! parallel and distributed programs can run using any standard Java environment. 1.1 Writing a distributed application In a rst step, the programmer writes an application as a shared-memory parallel program without bothering with the component locations. He/she denes the components of the program: tasks and data objects. The Do! parallel framework manages the cooperation scheme between components: the programmer describes a task execution model and accesses to data by choosing a class in the framework library. In a second step, the programmer denes the component locations on distinct hosts by choosing appropriate layout managers. Layout managers are objects included in the parallel framework to describe the object distribution policy. This allow us to automaticaly generate the distributed program from the parallel program. In the distributed framework, layout managers are used to implement the object distribution policy. In a third step, the DoT preprocessor transforms the shared-memory parallel program into a distributed-memory program. Because a program is composed of framework classes and user dened classes, program transformations consist in changing the framework used in the programs (the parallel framework is replaced by the distributed framework), and transforming components (user-dened classes) in order to allow transparent locations of objects (mapping and remote accesses). 1.2 Programming with frameworks New programming models are usually dened through the extension of existing languages or the denition of new languages. We use the framework approach which is an alternative way to dene programming models without extending a language. Frameworks are especially suitable for object-oriented languages; they can be seen as a model of program or a program with \holes", where components are missing and have to be dened by the programmer to t his application in. Unlike in the library approach where the programmer writes the program structure and uses library classes to implement some specic computations, in the framework approach, the program structure is dened by the framework, and the programmer provides the components implementing the program's specic computations (gure 2). framework user-defined program user-defined components library components Fig. 2. the framework and the library approaches

3 2 Parallel framework The Do! parallel framework is used to express parallel programs. In this paper, we call \parallel program" a program consisting of several control ows sharing a single address space (for example running on a shared-memory multiprocessor). Basic constructs for parallelism already exist in Java at the language level (the Thread class) but we think that there is a need for a more structured parallel programming model in Java. The parallel framework is based on the notions of active objects (tasks) (section 2.1) used to introduce parallelism and collections (section 2.2) to structure parallelism. 2.1 Active objects (tasks) An active object is the integration of an object and a process. An active object has its own activity: in a sequential object-oriented program, the control ow runs successively in distinct objects of the program; using active objects, several control ows run concurrently in distinct objects, leading to inter-object concurrency. When active objects access other objects of the program, they can communicate (through shared objects), leading to intra-object concurrency when concurrent control ows run into a single shared object. A task (active object) activation can be synchronous (the control returns to the \activator" after the task termination) or asynchronous (the control returns when the task is activated). Synchronization with a task can be done by waiting the task termination or by stopping the task execution. 2.2 Collections Collections are structured sets of objects such as lists, arrays and trees. Collections are used in the parallel framework to store both passive and active objects and thus to express structured parallelism. The programmer groups parallel tasks into a \task collection" and data into a \data collection". The parallel framework implements a programming model where the tasks grouped in a collection run in parallel, with corresponding data items of a data collection as arguments. We have introduced the class Par as a new class to implement a parallel construct without any extension to the Java language. The class Par implements both the parallel activation of the tasks stored in the task collection with the corresponding data items in the data collection and the synchronization with the parallel task terminations. Nested parallelism is introduced by the fact that all instances of the class Par are active objects (tasks), and can be inserted in a task collection and activated in parallel with other tasks. Using this technique, several parallel programming models can be implemented as framework library classes or user-dened classes. For example, from a data collection and a single task, the DataPar class can be implemented dening a data-parallel programming model: a copy of the task is activated in parallel for each data item of the data collection; from a task collection and a single data item, the SharedPar class can be implemented dening a parallel model where all tasks communicate through the single shared data item. 2.3 Layout managers The parallel framework can be used to write shared-memory parallel programs; but our aim is to generate distributed programs, according to user information about the component locations provided by layout managers. Layout managers are objects included in the parallel framework to describe the collection distribution: the programmer indicates how to distribute the program components (tasks and data) by choosing a layout manager for each collection. Layout managers have no eect in a parallel program, but are used in the distributed framework (section 3.2).

4 2.4 Example: a simple parallel program import do.shared.*; /* parallel framework library */ public class MyTask extends Task { public void run (Object param) { /* task behavior definition */ MyData data = (MyData)param; data.select(criterion); data.print(out); data.add(value); public class SimpleParallel { public static void main (String argv[ ]) { /* task and data collection initialization */ Array tasks = new Array(N); Array data = new Array(N); for (int i=0; i<n; i++) { tasks.add (new MyTask(), i); data.add (new MyData(), i); public class MyData { /* the task parameter */ public void add(...){... public void remove(...){... public void print(...){... public void select(...){... /* Par activation */ Par par = new Par(tasks,data); par.call(); Fig. 3. A simple parallel program Figure 3 shows an toy example of a parallel program written using the parallel framework. This program implements the parallel activation of the tasks stored by tasks (the task collection) with the corresponding data items in data (the data collection) as arguments. This program is composed of three classes: { class MyData is a model of data item, { class MyTask represents a task, { class SimpleParallel contains the main method. To write a parallel program, the programmer rst has to dene the program components: tasks and data. Data are passive objects whereas tasks are active objects. Any object which is not an active object is a passive object: because MyData does not extend Task, instances of MyData are passive objects (data). MyTask represents a model of active object (task) by extending the framework class Task. The task behavior is dened in the run method. The task accesses the data item passed as argument to the run method 2. The parallel activation of tasks is done in two steps. First, the initialization of a task collection and a data collection. In this example, the collections are arrays (the class Array is part of the framework library) initialized with instances of MyTask and MyData. In the second step, an instance of the framework class Par is initialized with the task and data collections as arguments, and activated (par is an active object). 2 as the Java language does not provide us genericity, we have to cast the argument type

5 3 Distributed framework The distributed framework is used to express distributed programs. A distributed program consists of several control ows running on distinct address spaces, for example on distributed-memory machines or on networks of computers. The distributed framework has the same programming interface as the parallel framework. It is based on active objects and distributed collections. 3.1 Distributed collections Distributed collections are structured sets of distributed objects (mapped on distinct hosts). They are used in the distributed framework to store active and passive objects and express distribution: though, parallelism and distribution are integrated through collections. The programmer groups the parallel tasks and data in collections, and species the program distribution by using distributed collections. The distribution policy devolves on a special object called a layout manager (section 3.2). The distributed framework implements a programming model where tasks and data may be mapped on distinct hosts. Like in the parallel framework, the parallel construct exist in the distributed framework, through the Par class. Nested parallelism is possible too. Several distributed programming models can be implemented as framework library classes or user-dened classes, following the same approach. 3.2 Layout managers Distributed collections are responsible for the storage and the accesses to objects mapped on distinct processors. The collection distribution management devolves on layout managers: they are responsible for retrieving the processor owning an element from a key identifying the element (for example for arrays, keys are indexes), and for translating global keys into local keys. A layout manager is associated to each distributed collection. To dene the collection distribution, the programmer has to choose the corresponding layout manager. Specic layout managers are part of the distributed framework library (for example for arrays, cyclic distribution is implemented by the Cyclic class). Several distribution policies can be implemented as several framework classes or user-dened classes. 3.3 Example: simple distributed program Figure 4 shows the previous program transformed to run in a distributed environment. All the code portions in grey are the same as in the parallel program. The classes representing the tasks and data are the same. Instances of MyData are mapped on distinct processors and can be accessed from remote hosts: MyData is an accessible class, implementing the Accessible interface. This class is transformed by our preprocessor to allow transparent remote accesses. The parallel activation of tasks is done in the same way as in the parallel program (collections initialization and Par initialization and activation). The only change is due to the fact that collections are distributed; we have to associate a layout manager to each distributed collection to dene the distribution policy. The classes Cyclic and Block are layout managers describing cyclic and block distribution of arrays; they are part of the framework class library. This program implements the activation of the tasks stored by tasks with the corresponding data items in data as arguments. The tasks and the data are mapped on distinct processors, according to the Cyclic and Block layout managers.

6 import do.distributed.*; /* distributed framework library */ public class MyTask extends Task { public void run (Object param) { /* task behavior definition */ MyData data = (MyData)param; data.select(criterion); data.print(out); data.add(value); public class SimpleDistributed { public static void main (String argv[ ]) { Array tasks = new Array(N); Array data = new Array(N); /* distribution definition */ tasks.attachlayout(new Cyclic()); data.attachlayout (new Block()); for (int i=0; i<n; i++) { tasks.add (new MyTask(), i); data.add (new MyData(), i); public class MyData implements Accessible { /* the task parameter */ public void add(...){... public void remove(...){... public void print(...){... public void select(...){... Par par = new Par(tasks,data); par.call(); Fig. 4. A simple distributed program 4 From parallel to distributed The parallel framework denes the active and passive objects cooperation scheme; additionally, the distributed framework denes the active and passive objects distribution scheme. A program is composed of framework classes and user-dened classes (components). To transform of a parallel program into a distributed program we have to change the framework used in the program and transform components: { framework replacement: the parallel and the distributed frameworks have the same programming interface. The framework used in the program is replaced by only changing the imports in the program (see the imports in the programs in gures 3 and 4); { component transformations: the user-dened classes must be mapped on distinct hosts and communicate with remote objects. Mapping and communications of user-dened components are not managed by the frameworks. We transform components to allow transparent locations of objects: the mapping of objects on remote hosts, and the communications with objects from remote hosts. 4.1 Mapping of objects { remote creations The mapping of an object on a processor is done when the object is created. Collections manage the storage and accesses to elements, but they do not manage element creations. We have implemented runtime classes providing remote creations of objects.

7 In an spmd 3 model, control ows running on distinct hosts execute the same code, so it is possible to insert synchronizations in the program code when needed (between two hosts involved in a remote creation for example). Our model is not spmd, so remote creations rely on servers running on each host. At runtime, two separate threads run on each host: { the thread processing the program computations, { the thread processing remote creations of objects (server). Servers for remote creations have to identify the class of objects that have not been declared locally, and to instanciate those classes at runtime. We must be able to manipulate in the program concepts of the language (such as class, instanciation... ) as rst class objects. For that, we use the reection mechanisms, provided in Java at the language level [7]. 4.2 Communications { remote method invocations The distributed framework manages the cooperation scheme between objects, and the distribution of objects on processors, but does not manage the communications between userdened objects. In object-oriented languages, communications between objects are based on method invocations. We implement communications between objects mapped on distinct hosts through remote method invocations. We use the Java rmi, but this mechanism is not transparent to the user and is dicult to manage for non expert programmers. We transform accessible classes (section 3.3) to allow transparent remote method invocations, using the Java rmi. 4.3 Component transformations Accessible Serializable Unicast Remote Object Remote C accessible class Preprocessor C proxy class C_Impl impl on class RemoteNew C_Static StaticNew static class C_Int C_StInt Fig. 5. Component transformation Figure 5 shows an accessible class transformation. The proxy class has the same programming interface as the source class, but all attributes and method implementations are in the implementation and static classes (the static class contains the static part of the source class). At object creation, a proxy object is created locally, and an implementeation object is created remotely, using our runtime remote creation mechanism (through the remotenew 3 Single Program, Multiple Data

8 method). Thus, the mapping of the object is masked to the user by the proxy object creation, and all accesses to the remote object are catched by the proxy object. An additional argument to the constructor is needed to identify the remote host; this argument is generated by our preprocessor for elements of distributed collections, according to the collection layout manager. The static part of a class is shared by all instances of this class. A single instance of the static object is created, shared by all instances of the proxy class. The staticnew method dened in our runtime implements this specic semantics for object creation in a distributed environment All other classes and interfaces represented on the gure are needed to use the the Java rmi. 5 Related work A classication of ways to introduce parallelism and distribution in object-oriented languages can be found in [3] where three main approaches are identied: { the applicative approach (libraries), { the integrative approach (integration between the notions of objects and concurrency in the core language), { the reective approach (customizing program semantics using reection mechanisms). Our works relies on the three approaches: it is applicative since we use framework libraries; it is integrative because active objects and remote method invocations are part of the Java language; it is reective as we use the Java reection mechanism for remote creations of objects. Many interesting projects using Java are presented in [1, 2]. Here, we highlight some approaches, according to this classication. Integrative approach: in the Javaparty project [10], classes are transformed to allow transparent remote method invocations using the Java rmi (section 4.2), based on an extension to the Java language (remote modier). Unlike us, the mapping of objects is computed through static program analysis and uses a specic runtime. Reective approach: the Java// project [4], is based on active and remote objects, and a high level model of synchronization between objects (wait-by-necessity). This model is based on a meta-object protocol (mop), and can be easily customized. Java// is based on previous works and studies in C++ and Eiel. Applicative approaches: S. Flynn Hummel et al. [5] and the DPJ project [6] introduce data parallelism in Java through class libraries. These projects rely on an spmd model. 6 Conclusion A prototype of the Do! environment is available online 4 ; it implements static collections (arrays) and contains the parallel and distributed frameworks, the runtime and the preprocessor. We are studying the development of a simulation tool for forest growth with our environment. We are currently working on an extension to our model for dynamic collections (such as lists). Our aim is to allow dynamic creation and activation of tasks, by adding new tasks in collections at runtime. This model is already implemented for shared-memory environments; to distribute this model, we have to integrate dynamicity in layout managers (e.g. ability 4

9 to compute element locations at runtime). We plan to dene a dynamic distribution policy that takes into account runtime informations such as ressources availability or load. This technique will allow us to implement and encapsulate dynamic load balancing into layout managers. References 1. Workshop on Java for science and engineering computation; simulation and modelling program. Concurrency: Practice and Experience, 9(6):413{674, June Las Vegas, Nevada. http: // 2. Workshop on Java for high-performance network computing. Concurrency: Practice and Experience, February Palo Alto, California. To appear. java98/program.html. 3. J.-P. Briot, R. Guerraoui, and K.-P. Lohr. Concurrency and distribution in object oriented programming. ACM Computing Surveys, September To appear. 4. D. Caromel and J. Vayssiere. The ProActive Java library for distributed, concurrent and parallel computing V. Getov, S. Flynn-Hummel, and S. Mintchev. High-performance parallel programming in Java: Exploiting native libraries. Workshop on Java for High-Performance Network Computing. Concurrency: Practice and Experience, February To appear. 6. V. Ivannikov, S. Gaissaryan, M. Domrachev, V. Etch, and N. Shtaltovnaya. DPJ: Java class library for development of data-parallel programs. Institute for System Programming, Russian Academy of Sciences, Javasoft. Java core reection { API and specication. ftp://ftp.javasoft.com/docs/jdk1. 1/java-reflection.ps, January Javasoft. Java Remote Method Invocation specication { revision ftp://ftp.javasoft. com/docs/jdk1.2/rmi-spec-jdk1.2.ps, December P. Launay and J.-L. Pazat. A framework for parallel programming in Java. In HPCN'98, LNCS, Springer Verlag, Amsterdam, April To appear. 10. M. Philippsen and M. Zenger. JavaParty { transparent remote objects in Java. In PPoPP, June 1997.

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang. A Yet Another java.lang.class Shigeru Chiba Michiaki Tatsubori Institute of Information Science and Electronics University of Tsukuba 1-1-1 Tennodai, Tsukuba, Ibaraki 305-8573, Japan. Phone: +81-298-53-5349

More information

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms Raju Pandey J. C. Browne Department of Computer Sciences The University of Texas at Austin Austin, TX 78712 fraju, browneg@cs.utexas.edu

More information

Overview of the JavaF Project

Overview of the JavaF Project Overview of the JavaF Project Paul N Martinaitis Andrew L Wendelborn Abstract Over the years, many eorts aimed at combining the benets of functional (value-oriented) and imperative programming have focused

More information

5 Distributed Objects: The Java Approach

5 Distributed Objects: The Java Approach 5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having

More information

Java-based coupling for parallel predictive-adaptive domain decomposition

Java-based coupling for parallel predictive-adaptive domain decomposition 185 Java-based coupling for parallel predictive-adaptive domain decomposition Cécile Germain-Renaud and Vincent Néri LRI CNRS Université Paris 11, Bat 490, Université Paris-Sud, F-91405 Orsay Cedex, France

More information

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope HORB: Distributed Execution of Java Programs HIRANO Satoshi Electrotechnical Laboratory and RingServer Project 1-1-4 Umezono Tsukuba, 305 Japan hirano@etl.go.jp http://ring.etl.go.jp/openlab/horb/ Abstract.

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

Design and Implementation of Parallel Java with. Global Object Space. L. V. Kale, Milind Bhandarkar, and Terry Wilmarth

Design and Implementation of Parallel Java with. Global Object Space. L. V. Kale, Milind Bhandarkar, and Terry Wilmarth Design and Implementation of Parallel Java with Global Object Space L. V. Kale, Milind Bhandarkar, and Terry Wilmarth Parallel Programming Laboratory Department of Computer Science University of Illinois,

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Lecture 06: Distributed Object

Lecture 06: Distributed Object Lecture 06: Distributed Object Distributed Systems Behzad Bordbar School of Computer Science, University of Birmingham, UK Lecture 0? 1 Recap Interprocess communication Synchronous and Asynchronous communication

More information

A practical and modular implementation of extended transaction models

A practical and modular implementation of extended transaction models Oregon Health & Science University OHSU Digital Commons CSETech January 1995 A practical and modular implementation of extended transaction models Roger Barga Calton Pu Follow this and additional works

More information

The Extensible Java Preprocessor Kit. and a Tiny Data-Parallel Java. Abstract

The Extensible Java Preprocessor Kit. and a Tiny Data-Parallel Java. Abstract The Extensible Java Preprocessor Kit and a Tiny Data-Parallel Java Yuuji ICHISUGI 1, Yves ROUDIER 2 fichisugi,roudierg@etl.go.jp 1 Electrotechnical Laboratory, 2 STA Fellow, Electrotechnical Laboratory

More information

proposed. In Sect. 3, the environment used for the automatic generation of data parallel programs is briey described, together with the proler tool pr

proposed. In Sect. 3, the environment used for the automatic generation of data parallel programs is briey described, together with the proler tool pr Performance Evaluation of Automatically Generated Data-Parallel Programs L. Massari Y. Maheo DIS IRISA Universita dipavia Campus de Beaulieu via Ferrata 1 Avenue du General Leclerc 27100 Pavia, ITALIA

More information

1 Introduction The object-oriented programming (OOP) paradigm provides the tools and facilities for developing software that is easier to build, exten

1 Introduction The object-oriented programming (OOP) paradigm provides the tools and facilities for developing software that is easier to build, exten ABC ++ : Concurrency by Inheritance in C ++ Eshrat Arjomandi, y William O'Farrell, Ivan Kalas, Gita Koblents, Frank Ch Eigler, and Guang G Gao Abstract Many attempts have been made to add concurrency to

More information

JAVA RMI. Remote Method Invocation

JAVA RMI. Remote Method Invocation 1 JAVA RMI Remote Method Invocation 2 Overview Java RMI is a mechanism that allows one to invoke a method on an object that exists in another address space. The other address space could be: On the same

More information

Babylon: middleware for distributed, parallel, and mobile Java applications

Babylon: middleware for distributed, parallel, and mobile Java applications CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Computat.: Pract. Exper. 2008; 20:1195 1224 Published online 22 January 2008 in Wiley InterScience (www.interscience.wiley.com)..1264 Babylon:

More information

2 Egon Borger, Wolfram Schulte: Initialization Problems for Java 1 class A implements I{ } 2 3 interface I { static boolean dummy = Main.sideeffect =

2 Egon Borger, Wolfram Schulte: Initialization Problems for Java 1 class A implements I{ } 2 3 interface I { static boolean dummy = Main.sideeffect = Initialization Problems for Java? Egon Borger 1, Wolfram Schulte 2 1 Universita di Pisa, Dipartimento di Informatica, I-56125 Pisa, Italy, e-mail: boerger@di.unipi.it 2 Universitat Ulm, Fakultat fur Informatik,

More information

cjvm: a Single System Image of a JVM on a Cluster

cjvm: a Single System Image of a JVM on a Cluster cjvm: a Single System Image of a JVM on a Cluster Yariv Aridor Michael Factor Avi Teperman IBM Research Laboratory in Haifa Matam, Advanced Technology Center, Haifa 31905, ISRAEL yarivjfactorjteperman@il.ibm.com

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

Object-Oriented Systems Design RMI

Object-Oriented Systems Design RMI Object-Oriented Systems Design RMI Michael Hauser November 2001 Workshop: AW3 Module: EE5029A Tutor: Mr. Müller Course: M.Sc Distributes Systems Engineering Lecturer: Mr. Prowse CONTENTS Contents 1 Aims

More information

INPUT SYSTEM MODEL ANALYSIS OUTPUT

INPUT SYSTEM MODEL ANALYSIS OUTPUT Detecting Null Pointer Violations in Java Programs Xiaoping Jia, Sushant Sawant Jiangyu Zhou, Sotiris Skevoulis Division of Software Engineering School of Computer Science, Telecommunication, and Information

More information

Abstract 1. Introduction

Abstract 1. Introduction Jaguar: A Distributed Computing Environment Based on Java Sheng-De Wang and Wei-Shen Wang Department of Electrical Engineering National Taiwan University Taipei, Taiwan Abstract As the development of network

More information

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such A Formal Executable Semantics for Java Isabelle Attali, Denis Caromel, Marjorie Russo INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex - France tel:

More information

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Concurrent Object-Oriented Programming

Concurrent Object-Oriented Programming Concurrent Object-Oriented Programming Bertrand Meyer, Volkan Arslan 2 Lecture 4: Motivation and Introduction Definition 3 Concurrent programming = parallel programming on a single processor? = is about

More information

Remote Procedure Call

Remote Procedure Call Remote Procedure Call Suited for Client-Server structure. Combines aspects of monitors and synchronous message passing: Module (remote object) exports operations, invoked with call. call blocks (delays

More information

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton. Interconnect

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton. Interconnect A Customizable Implementation of RMI for High Performance Computing? Fabian Breg and Dennis Gannon Department of Computer Science, Indiana University Abstract. This paper describes an implementation of

More information

Babylon v2.0:middleware for Distributed, Parallel, and Mobile Java Applications

Babylon v2.0:middleware for Distributed, Parallel, and Mobile Java Applications Appears in the Proceedings of the 11th International Workshop on High Level Parallel Programming Models and Supportive Environments (HIPS 2006), April, 2006. Babylon v2.0:middleware for Distributed, Parallel,

More information

A Suite of Formal Denitions for Consistency Criteria. in Distributed Shared Memories Rennes Cedex (France) 1015 Lausanne (Switzerland)

A Suite of Formal Denitions for Consistency Criteria. in Distributed Shared Memories Rennes Cedex (France) 1015 Lausanne (Switzerland) A Suite of Formal Denitions for Consistency Criteria in Distributed Shared Memories Michel Raynal Andre Schiper IRISA, Campus de Beaulieu EPFL, Dept d'informatique 35042 Rennes Cedex (France) 1015 Lausanne

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

Native Marshalling. Java Marshalling. Mb/s. kbytes

Native Marshalling. Java Marshalling. Mb/s. kbytes Design Issues for Ecient Implementation of MPI in Java Glenn Judd, Mark Clement, Quinn Snell Computer Science Department, Brigham Young University, Provo, USA Vladimir Getov 2 2 School of Computer Science,

More information

Lecture 5: Object Interaction: RMI and RPC

Lecture 5: Object Interaction: RMI and RPC 06-06798 Distributed Systems Lecture 5: Object Interaction: RMI and RPC Distributed Systems 1 Recap Message passing: send, receive synchronous versus asynchronous No global Time types of failure socket

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

The driving motivation behind the design of the Janus framework is to provide application-oriented, easy-to-use and ecient abstractions for the above

The driving motivation behind the design of the Janus framework is to provide application-oriented, easy-to-use and ecient abstractions for the above Janus a C++ Template Library for Parallel Dynamic Mesh Applications Jens Gerlach, Mitsuhisa Sato, and Yutaka Ishikawa fjens,msato,ishikawag@trc.rwcp.or.jp Tsukuba Research Center of the Real World Computing

More information

Efficient, Flexible, and Typed Group Communications in Java

Efficient, Flexible, and Typed Group Communications in Java Efficient, Flexible, and Typed Group Communications in Java Laurent Baduel, Françoise Baude, Denis Caromel INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis 2004, Route des Lucioles, BP

More information

IBD Intergiciels et Bases de Données

IBD Intergiciels et Bases de Données IBD Intergiciels et Bases de Données RMI-based distributed systems Fabien Gaud, Fabien.Gaud@inrialpes.fr Overview of lectures and practical work Lectures Introduction to distributed systems and middleware

More information

Reactive Types. Jean-Pierre Talpin. Campus de Beaulieu, Rennes, France.

Reactive Types. Jean-Pierre Talpin. Campus de Beaulieu, Rennes, France. Reactive Types Jean-Pierre Talpin IRISA (INRIA-Rennes & CNRS URA 227) Campus de Beaulieu, 35000 Rennes, France E-mail: talpin@irisa.fr Abstract. Synchronous languages, such as Signal, are best suited for

More information

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE PART A UNIT I 1. Differentiate object oriented programming from procedure oriented programming. 2. Define abstraction and encapsulation. 3. Differentiate

More information

RPC and RMI. 2501ICT Nathan

RPC and RMI. 2501ICT Nathan RPC and RMI 2501ICT Nathan Contents Client/Server revisited RPC Architecture XDR RMI Principles and Operation Case Studies Copyright 2002- René Hexel. 2 Client/Server Revisited Server Accepts commands

More information

Distributed Programming in Java. Distribution (2)

Distributed Programming in Java. Distribution (2) Distributed Programming in Java Distribution (2) Remote Method Invocation Remote Method Invocation (RMI) Primary design goal for RMI is transparency Should be able to invoke remote objects with same syntax

More information

1 From Distributed Objects to Distributed Components

1 From Distributed Objects to Distributed Components From Distributed Objects to Distributed : the Olan Approach Luc Bellissard, Michel Riveill BP 53, F 38041 Grenoble Cedex 9, FRANCE Phone: (33) 76 61 52 78 Fax: (33) 76 61 52 52 Email: Luc.Bellissard@imag.fr

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Why Consider Implementation-Level Decisions in Software Architectures?

Why Consider Implementation-Level Decisions in Software Architectures? 1. Abstract Why Consider Implementation-Level Decisions in Software Architectures? Nikunj Mehta Nenad Medvidović Marija Rakić {mehta, neno, marija}@sunset.usc.edu Department of Computer Science University

More information

Distributed Systems. Distributed Object Systems 2 Java RMI. Java RMI. Example. Applet continued. Applet. slides2.pdf Sep 9,

Distributed Systems. Distributed Object Systems 2 Java RMI. Java RMI. Example. Applet continued. Applet. slides2.pdf Sep 9, Distributed Object Systems 2 Java RMI Piet van Oostrum Distributed Systems What should a distributed system provide? Illusion of one system while running on multiple systems Transparancy Issues Communication,

More information

Distributed Systems. 02r. Java RMI Programming Tutorial. Paul Krzyzanowski TA: Long Zhao Rutgers University Fall 2017

Distributed Systems. 02r. Java RMI Programming Tutorial. Paul Krzyzanowski TA: Long Zhao Rutgers University Fall 2017 Distributed Systems 02r. Java RMI Programming Tutorial Paul Krzyzanowski TA: Long Zhao Rutgers University Fall 2017 1 Java RMI RMI = Remote Method Invocation Allows a method to be invoked that resides

More information

Customized Software bus base-bus h/w & s/w system providing interconnection primitives

Customized Software bus base-bus h/w & s/w system providing interconnection primitives A Programming System for the Development of TINA Services Titos SARIDAKIS, Christophe BIDAN, Valerie ISSARNY IRISA/INRIA IRISA { Campus de Beaulieu, 35042 Rennes Cedex, FRANCE. Abstract Programming environments

More information

FT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software

FT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software FT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software Vicraj Thomas, Andrew McMullen, and Lee Graba Honeywell Laboratories, Minneapolis MN 55418, USA Vic.Thomas@Honeywell.com Abstract.

More information

DBMS Environment. Application Running in DMS. Source of data. Utilization of data. Standard files. Parallel files. Input. File. Output.

DBMS Environment. Application Running in DMS. Source of data. Utilization of data. Standard files. Parallel files. Input. File. Output. Language, Compiler and Parallel Database Support for I/O Intensive Applications? Peter Brezany a, Thomas A. Mueck b and Erich Schikuta b University of Vienna a Inst. for Softw. Technology and Parallel

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

An Object-Oriented HLA Simulation Study

An Object-Oriented HLA Simulation Study BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 15, No 5 Special Issue on Control in Transportation Systems Sofia 2015 Print ISSN: 1311-9702; Online ISSN: 1314-4081 DOI: 10.1515/cait-2015-0022

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

A Mechanism for Runtime Evolution of Objects

A Mechanism for Runtime Evolution of Objects A Mechanism for Runtime Evolution of Objects Yasuhiro Sugiyama Department of Computer Science Nihon University Koriyama, Japan sugiyama@ce.nihon-u.ac.jp 1. Runtime Version Management of Objects for Software

More information

Checkpoint (T1) Thread 1. Thread 1. Thread2. Thread2. Time

Checkpoint (T1) Thread 1. Thread 1. Thread2. Thread2. Time Using Reection for Checkpointing Concurrent Object Oriented Programs Mangesh Kasbekar, Chandramouli Narayanan, Chita R Das Department of Computer Science & Engineering The Pennsylvania State University

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java. [Course Overview] The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming,

More information

Mobile NFS. Fixed NFS. MFS Proxy. Client. Client. Standard NFS Server. Fixed NFS MFS: Proxy. Mobile. Client NFS. Wired Network.

Mobile NFS. Fixed NFS. MFS Proxy. Client. Client. Standard NFS Server. Fixed NFS MFS: Proxy. Mobile. Client NFS. Wired Network. On Building a File System for Mobile Environments Using Generic Services F. Andre M.T. Segarra IRISA Research Institute IRISA Research Institute Campus de Beaulieu Campus de Beaulieu 35042 Rennes Cedex,

More information

System-On-Chip Architecture Modeling Style Guide

System-On-Chip Architecture Modeling Style Guide Center for Embedded Computer Systems University of California, Irvine System-On-Chip Architecture Modeling Style Guide Junyu Peng Andreas Gerstlauer Rainer Dömer Daniel D. Gajski Technical Report CECS-TR-04-22

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING Güray YILMAZ 1 and Nadia ERDOĞAN 2 1 Dept. of Computer Engineering, Air Force Academy, 34807 Yeşilyurt, İstanbul, Turkey 2 Dept. of

More information

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa RbCl: A Reective Object-Oriented Concurrent Language without a Run-time Kernel Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa Department of Information Science, The University of Tokyo 3 Abstract We

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

2: Simple example To use icontract, Java sourcecode is annotated with three novel comment paragraph to specify class- and interface-

2: Simple example To use icontract, Java sourcecode is annotated with three novel comment paragraph to specify class- and interface- icontract { The Java TM Design by Contract TM Tool Reto Kramer kramer@acm.org Cambridge Technology Partners Abstract Until today, the explicit specication of "software contracts" by means of class invariants

More information

Monitoring System for Distributed Java Applications

Monitoring System for Distributed Java Applications Monitoring System for Distributed Java Applications W lodzimierz Funika 1, Marian Bubak 1,2, and Marcin Smȩtek 1 1 Institute of Computer Science, AGH, al. Mickiewicza 30, 30-059 Kraków, Poland 2 Academic

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

Advanced Java Programming

Advanced Java Programming Advanced Java Programming Length: 4 days Description: This course presents several advanced topics of the Java programming language, including Servlets, Object Serialization and Enterprise JavaBeans. In

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

On Hierarchical, parallel and distributed components for Grid programming

On Hierarchical, parallel and distributed components for Grid programming On Hierarchical, parallel and distributed components for Grid programming Francoise Baude, Denis Caromel, Matthieu Morel www.inria.fr/oasis/proactive OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis

More information

Exploiting Dynamic Proxies in Middleware for Distributed, Parallel, and Mobile Java Applications

Exploiting Dynamic Proxies in Middleware for Distributed, Parallel, and Mobile Java Applications Appears in the Proceedings of the 8th International Workshop on Java for Parallel and Distributed Computing (JAVAPDC 2006), April, 2006. Exploiting Dynamic Proxies in Middleware for Distributed, Parallel,

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: a Reflective Middleware for Software Evolution RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract Enhancing Integrated Layer Processing using Common Case Anticipation and Data Dependence Analysis Extended Abstract Philippe Oechslin Computer Networking Lab Swiss Federal Institute of Technology DI-LTI

More information

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4 EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks

More information

Lessons from Designing and Implementing GARF. Abstract. GARF is an object oriented system aimed to support the

Lessons from Designing and Implementing GARF. Abstract. GARF is an object oriented system aimed to support the Lessons from Designing and Implementing GARF Rachid Guerraoui Beno^t Garbinato Karim Mazouni Departement d'informatique Ecole Polytechnique Federale de Lausanne 1015 Lausanne, Switzerland Abstract. GARF

More information

Java RMI Middleware Project

Java RMI Middleware Project Java RMI Middleware Project Nathan Balon CIS 578 Advanced Operating Systems December 7, 2004 Introduction The semester project was to implement a middleware similar to Java RMI or CORBA. The purpose of

More information

Global Scheduler. Global Issue. Global Retire

Global Scheduler. Global Issue. Global Retire The Delft-Java Engine: An Introduction C. John Glossner 1;2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs, Allentown, Pa. 2 Delft University oftechnology, Department of Electrical Engineering Delft,

More information

03 Remote invocation. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

03 Remote invocation. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI 03 Remote invocation Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/16 Remote Procedure Call Implementation client process Request server process client program client stub procedure Communication

More information

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [RMI] Frequently asked questions from the previous class survey Shrideep Pallickara Computer Science Colorado State University L21.1 L21.2 Topics covered in this lecture RMI

More information

Performance Issues for Multi-language Java. Applications.

Performance Issues for Multi-language Java. Applications. Performance Issues for Multi-language Java Applications Paul Murray 1,Todd Smith 1, Suresh Srinivas 1, and Matthias Jacob 2 1 Silicon Graphics, Inc., Mountain View, CA fpmurray, tsmith, ssureshg@sgi.com

More information

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1 Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies

More information

Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects

Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects Laurent Berger I3S - CNRS UPRESA 6070 - Bât ESSI 930 Rte des Colles - BP 145

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

CS 5523 Operating Systems: Remote Objects and RMI

CS 5523 Operating Systems: Remote Objects and RMI CS 5523 Operating Systems: Remote Objects and RMI Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. Outline Distributed/Remote Objects Remote object reference

More information

AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING

AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING DR. ROGER EGGEN Department of Computer and Information Sciences University of North Florida Jacksonville, Florida 32224 USA ree@unf.edu

More information

Chapter 4 Remote Procedure Calls and Distributed Transactions

Chapter 4 Remote Procedure Calls and Distributed Transactions Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

More information

Communication and Distributed Processing

Communication and Distributed Processing Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

More information

Remote Objects and RMI

Remote Objects and RMI Outline Remote Objects and RMI Instructor: Dr. Tongping Liu Distributed/Remote Objects Remote object reference (ROR) Remote Method Invocation (RMI) Case study and example: Java RMI Other issues for objects

More information

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data FedX: A Federation Layer for Distributed Query Processing on Linked Open Data Andreas Schwarte 1, Peter Haase 1,KatjaHose 2, Ralf Schenkel 2, and Michael Schmidt 1 1 fluid Operations AG, Walldorf, Germany

More information

Concurrent Programming Constructs and First-Class Logic Engines

Concurrent Programming Constructs and First-Class Logic Engines Concurrent Programming Constructs and First-Class Logic Engines Paul Tarau University of North Texas tarau@cs.unt.edu Multi-threading has been adopted in today s Prolog implementations as it became widely

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This is the second of two courses that cover the Java Standard Edition

More information

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1 Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects

More information

New Programming Paradigms

New Programming Paradigms New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and

More information

For our sample application we have realized a wrapper WWWSEARCH which is able to retrieve HTML-pages from a web server and extract pieces of informati

For our sample application we have realized a wrapper WWWSEARCH which is able to retrieve HTML-pages from a web server and extract pieces of informati Meta Web Search with KOMET Jacques Calmet and Peter Kullmann Institut fur Algorithmen und Kognitive Systeme (IAKS) Fakultat fur Informatik, Universitat Karlsruhe Am Fasanengarten 5, D-76131 Karlsruhe,

More information

Distributed Objects. Object-Oriented Application Development

Distributed Objects. Object-Oriented Application Development Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming

More information

What is DARMA? DARMA is a C++ abstraction layer for asynchronous many-task (AMT) runtimes.

What is DARMA? DARMA is a C++ abstraction layer for asynchronous many-task (AMT) runtimes. DARMA Janine C. Bennett, Jonathan Lifflander, David S. Hollman, Jeremiah Wilke, Hemanth Kolla, Aram Markosyan, Nicole Slattengren, Robert L. Clay (PM) PSAAP-WEST February 22, 2017 Sandia National Laboratories

More information

Field Analysis. Last time Exploit encapsulation to improve memory system performance

Field Analysis. Last time Exploit encapsulation to improve memory system performance Field Analysis Last time Exploit encapsulation to improve memory system performance This time Exploit encapsulation to simplify analysis Two uses of field analysis Escape analysis Object inlining April

More information

compute event display

compute event display Programming Connectors In an Open Language Uwe Amann, Andreas Ludwig, Daniel Pfeifer Institut fur Programmstrukturen und Datenorganisation Universitat Karlsruhe Postfach 6980, Zirkel 2, 76128 Karlsruhe,

More information

1 WEB BROWSER VIRTUAL MACHINE CLIENT JAVA CLASS JDBC DRIVER RMI REGISTRY VIRTUAL MACHINE HOST VIRTUAL MACHINE SQL

1 WEB BROWSER VIRTUAL MACHINE CLIENT JAVA CLASS JDBC DRIVER RMI REGISTRY VIRTUAL MACHINE HOST VIRTUAL MACHINE SQL SEEDS : Airport Management Database System Tomas Hruz 1;2, Martin Becka 3, and Antonello Pasquarelli 4 1 SolidNet, Ltd., Slovakia, www.sdxnet.com, tomas@sdxnet.com 2 Department of Adaptive Systems, UTIA,

More information