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

Size: px
Start display at page:

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

Transcription

1 HORB: Distributed Execution of Java Programs HIRANO Satoshi Electrotechnical Laboratory and RingServer Project Umezono Tsukuba, 305 Japan Abstract. HORB is a Java ORB (Object Request Broker) that extends Java for distributed object oriented computing. Applications of HORB and HORB itself are network portable and transferable, since HORB provides both portability and interoperability among dierent kinds of OSs. This paper describes the organization and the main features of HORB. It provides remote object creation/connection, remote method call, object passing, security, and so on. The usage of HORB is easy and simple. Performance evaluation shows that HORB is two or three times faster than javarmi. 1 Introduction The importance of the Java language[1] and its related technologies have been arising for two years. Today, Java is regarded as one of the most important technology for network computing. The Java language is an object oriented language and its syntax is rather simple when compare to C++. Although it is designed for network computing, the language itself does not have the feature of distributed execution. It is simply a multi-threaded, single process language. In order to extend Java for distributed computing, we have developed a kind of distributed Java, and named it HORB. The goals of HORB are summarized as follows: { distributed execution of Java programs { no modication of Java syntax { portability of programs among dierent architectures { portability of HORB among dierent architectures { interoperability among dierent architectures { integration of WWW and distributed programming For example, a client object (instance) on Windows 95 creates an object on a UNIX server, then it sends some objects to the server object to display it by another client object on a Macintosh. It is also possible for an HORB object operating in a WWW browser such like the Netscape Navigator to directly receive service without having CGI to mediate from an HORB object on a server machine.

2 As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interoperability among languages and machine architectures. Products complying with CORBA2's IIOP (Internet Inter-ORB Protocol)[2] such as Sun's NEO has become available. Microsoft's DCOM (Distributed Common Object Model)[3] has also become available in the latest Windows NT. It is also language and machine neutral. Thus, CORBA and DCOM are Common ORBs. These technologies require the denition of objects in the IDL (Interface Denition Language) as well as the implementation of objects in an execution language, such as Java. This will be a burden for programmers since the object model of the language and IDL will be dierent. Also the transfering of objects is limited to passing by reference and not by value, though they can transfer data as just struct. HORB is a Java ORB. While it lacks language interoperability, it is optimized for the Java language. It can pass objects by value among machines and no IDL is needed. Javasoft released javarmi (Remote Method Invocation)[4] with the latest JDK (Java Development Kit)[5] version 1.1 in February javarmi is also a Java ORB and it provides basic functionality such as remote method invocation and object passing. The rst announcement of javarmi was made four month after the rst release of HORB (November 1995). These ORBs are utilized in a wide area. In particular, ORBs are often utilized in 3-tier business applications in Intranet and Internet. Fig. 1 is the structure of a typical 3-tier business application. Inter-Object communication is used between a client (Java applet) and an application server. [6] demonstrated HORB is well suited for such 3-tier applications. Fig tier business application. We will introduce the architecture of HORB in the next section. The main features are described in section 3. In section 4, we will show the results of a performance evaluation on primitive operations. In order to compare the performance of HORB with other works, a plain socket implementation and the latest javarmi were also evaluated.

3 2 HORB Architecture Overview The HORB package consists of the HORBC compiler and the ORB runtime. To ensure operability on existing Java environments, the compiler and ORB is entirely written using Java and HORB, and execution is possible on the nonmodied Java interpreter. The compiler also uses the non-modied javac compiler as the back-end. In other words, HORB is realized on the user level. Hence, HORB will operate on any system which the Java interpreter operates on, and all of Java's features can be accessed from an HORB program. Fig. 2. HORB architecture. Fig. 3. HORBC compiler. The overview of the HORB architecture is illustrated on Fig.2. A client object in a client system calls methods of the server object (remote object) in a server

4 system, as if the server object exists locally. In order to realize that, a proxy object of the server object in the client system acts as if it is the server object[7]. The proxy object oers server function to the Client object as the proxy for the Server object. Marshalling of data by a stub routine occurs in proxies/skeleton objects when transmitting between objects and use mid-expressions that are not dependent of the architecture on the network. The HORBC compiler creates a proxy class and a skeleton class that includes the object code and stub of the class from the program that denes the Java class (Fig. 3). There is no need to write an IDL program. The class inheritance is realized by corresponding the inheritance tree of the proxy object and skeleton object of the meta level of inheritance tree as in Fig.4. Fig. 4. Inheritance Tree. 3 Main Features and Program Examples In this section, we will describe the main features of HORB by showing some small examples. The main features can be summarized as follows: { Dynamic remote object creation { Remote object connection { URL based object naming { Object transfer { Asynchronous method { Security by distributed access control list A remote class of HORB does not need to inherit a specic class such like RemoteObject or to implement a specic interface such like Remote as javarmi. A usual java class can be a remote class. That means the java class can be a subclass of any class. This is a very important feature of HORB for building object systems using design patterns[8]. If a remote class had to be a subclass of a specic class, the class couldn't be a subclass of a design pattern. In case of HORB, there is no such restriction.

5 3.1 Dynamic Remote Object Creation The Internet terminals (Intranet terminals) that will become popular in the future will only be equipped with a small memory as compared to standard PCs. Making all objects possible for remote access is a waste of resources, and there is no need. For this, objects necessary of remote access will be created as remote objects and the remaining objects will be regarded as local Java objects. The programmer is not required to take into consideration the distinction of the two. Here is an example to create a remote object. In HORB, a remote server class is written as follows: class Server { String greetings(string name){ return "hello,"+name; The above code is exactly the same as Java code. There is no need to add anything to the Java code. Programs when creating a Server instance locally as a standard Java object are written like this: class Client { public static void main(string[]) { Server server = new server(); System.out.println(server.greetings("Baby!")); Programs when creating a Server instance remotely on an HORB process which operates on the port 8887 of are written like this: class Client { public static void main(string[]) { Server_Proxy server = new Server_Proxy("horb:// System.out.println(server.greetings("World!")); The proxy class of Server is Server Proxy. The instance server is a remote object reference. In the above example, TCP/IP connection is established when the Server is created, and the remote object is created. The fourth line is a remote method call. One TCP/IP connection is required for remote object access between a remote object and a proxy object. HORB can inherit classes for remote objects as well. This is the same as Java's single inheritance.

6 3.2 URL based Object Naming All remote objects require names distinguishable from anywhere in the world. In order to conduct name management that is exible and universal on the Internet, the name management of HORB uses the URL (Uniform Resource Locator) notation. Here are some examples of object names: //Above mentioned temporary object horb:// // Named Remote Object horb:// 3.3 Daemon object and Remote Object Connection To operate an object of the Server class as a daemon instead of creating it each and every time, register it as a 'daemon object' on the server's side. This makes accessing possible from other machines by using the URL. Server server = new Server(); HORBServer.registerObject("Server",server,"MyServer",8887); The last line of code registers a Server instance so that it can be accessed under the object name, horb:// Clients who wish to access this object may obtain the remote object reference by creating a proxy object using the object name as the URL. As client connections are made to the remote object, corresponding threads are attached for each client. As a result, a remote object can serve multiple clients simultaneously. Since the programming style of this model is similar to that of the present Internet servers, it is easy for programmers to become familiarized. Fig. 5 illustrates the dierence of remote object creation (left) and remote object connection (right). In case of the remote object connection model, all clients share one remote object. While the clients can share data in the instance variables of the remote object, there is no room to keep client's dedicated data such like user names and bank account numbers. Such data must be transferred in each remote method call or be stored in a special data storage such like hashtables. In case of the remote object creation model, a remote object is created for each client. Thus, a remote object can have client's specic data. Class variable of the remote object is used to share data between clients. Since one object serves one client, programming is much easier than the remote object connection model. HORB supports both models. CORBA and javarmi supports only the remote object connection model.

7 Fig. 5. Remote object creation and Remote object connection. 3.4 Integration of Reference Using Interface The example used in a previous subsection consisted of a locally created Server object of object reference type Server, with remote object reference type Server Proxy. This situation lacks distribution transparency. By using interface denition, these are handled as the same type. Local object access and remote object access on the program are transparent. interface Server{ String greetings(string name); The interface of the Java language denes the method to be prepared by the class which implements the interface. An example of Serve Impl to realize Server is as follows: class Server_Impl implements Server{ public String greetings(string name){... The code for creating Server objects for each local and remote objects is as follows. The object reference types are integrated. Server local = new Server_Impl() Server remote = new Server_Proxy(url); 3.5 Object Passing by Value and by Reference In HORB, it is possible to specify the arbitrary type for the argument and return value of a remote method. In other words, it is possible to pass basic types, objects, interfaces, and arrays of them. Transferring of inherited objects is also possible. Object passing means either class passing or instance passing.

8 Class passing is a feature inherited from Java and the class of the HORB program which is operating within the WWW browser as well as the ORB is automatically downloaded from the server. Automatic passing of classes is also possible with standalone programs by the user oering a network loader class. The runtime for downloading has been kept to a minimum with only 30KB making possible smooth Internet accessing for users using modems. An object can be passed by value orx by reference for argument or return value of the remote method. If the object for transferring is a local object, then passing by value is used. If the object for transferring is a remote object, then passing by reference is used. In case of passing by value, all instance variables in the range possible to attain recursively within the transferring object, with the exception of private and transient attributes, are copied (if the object includes an object, then the object is also transferred). The shape of object graphs are kept when transferring. For example, objects with complicated loop congurations are transferred intact. Due to security restriction, private variables are not copied (This restriction will be cleared when Java's built-in serializer becomes available). In case of reference passing, the transferred object is usable as remote object reference. In the same way, in the case of remote object reference included in the object being passed by value, the connection is recovered automatically after transference. HORB fully supports object polymorphism. The object type is correctly transferred even if it is casted. 3.6 Asynchronous Method Call A remote method is executed as one of the following: { Synchronous method { Asynchronous method Asynchronous method is used for processing correspondences from users in an interactive application, and for the realization of various synchronization with parallel programs. To call a method as an asynchronous method, add Async to the method name. class Server{ String work_async(type args) { // do some work here return value; The code to execute method work Async as an asynchronous method is as follows:

9 server.work_request(arg); //do some work here value = server.work_receive(timeout); Request is issued by the method with the added Request to its method name and receives value from the method with the added Receive. Since Receive takes timeout consisting of milliseconds, the asynchronous method is convenient for processing using such timeout function. Polling is conducted using available(). Use the asynchronous method handler when describing parallel processing or multiple waits. Set callback object as the asynchronous method handler for automatic calling of the object at the point when value is conrmed. 3.7 WWW Programming using the HORB Applet Client programs that operate within the WWW browser such as Netscape Navigator are called HORB Applets. Direct object access with the HORB server program is possible without having CGI to mediate. Advantages in comparison to methods using the CGI are: coding amount is zero for transmission (no CGI script), high-speed in comparison to CGI which is reloaded for each process, there are sessions, the ability to use HORB's powerful security. An applet cannot accept connections from other machines for security reasons. \Invitation" must be proceeded by both the Server and the Client when calling the Client's method from Server's end. \Invitation" is a procedure in which enables calling of Client's method from the Server's end by Client setting a connection to the Server. 3.8 Global Garbage Collection HORB objects with the exception of Daemon objects are automatically deleted from the system once all of the remote object references to the object are no longer used. The global garbage collection is realized by reference counting in consideration of the demand for real time applications. 3.9 Persistent Objects By using HORB's persistent object function, the internal condition of objects can be stored in les. Due to this, it is possible to revive objects from les at a later time. Files may also be located on other machines. The procedure for storing objects is as follows: obj is the object to be stored. ObjectStorage os = new ObjectStorage_Proxy("horb://bungo/"); os.saveobject("filename.fof", obj); Revival of objects are proceeded in the following manner: obj = os.loadobject("filename.fof");

10 As with object passing, objects stored into a le are all traceable objects with the exception of private and transient. If the remote object reference is included, the connection is recovered during the revival. The object may have hook methods called freezehook() and revivehook(). The rst method is called when storing objects and the second method is called when reviving objects, for a completion processing and recovery processing. lock() method is used for the transaction Security by Distributed Access Control List HORB oers security features that originate from Java as well as its own unique distributed ACL (Access Control List). Distributed ACL for server side security is used for the following: { Access control to class by host name, domain name, network address of clients. { Access control and authentication using user names and passwords. myclass.host=etl.go.jp * myclass.host_exclude=gw.etl.go.jp myclass.user=* myclass.user_exclude=anonymous myclass.format.user=administrator In this example, access is granted to those of etl.go.jp or of * network host and not gw and anonymous users. Especially, the format method can only be executed by the administrator. At the client side, a remote object is created or connected as follows: server = new Server_Proxy(url, username, passwd); No modication is needed at the server side. Just specify the ACL le as a parameter of the HORB server. The HORB server has features to read the ACL from multiple les as well as inherit ACL from other existing HORB servers. For this, it is possible to manage ACL hierarchically on large-scale networks. Modication of an ACL le in a HORB server propagates other HORB servers. 4 Performance Evaluation In this section, we show the results of the conducted performance evaluation. The evaluation was done for three basic remote operations: remote object creation/connection, remote method call, and object passing. In order to compare the performance of HORB with other works, a plain socket implementation and the latest javarmi were also evaluated. The result shows HORB is that two or three times faster than javarmi. Evaluation Environment:

11 { Client machine: Pentium Pro 200MHz RAM 64MB { Server machine: Pentium Pro 200MHz RAM 64MB { Network: 10Base-T { Operating system: Microsoft Windows NT 4.0 { Java Compiler and Interpreter: JDK1.1 (nal) { javarmi: JDK1.1 (nal) { Native code converter: jexegen (Microsoft SDK for Java 1.5) We used two machines connected by a 10Mb Ethernet. The latest Java Development Kit(JDK) were installed on both machines. We used a native code converter as well as a Java interpreter in order to evaluate the speed penalty of the Java interpreter. The jexegen utility generates an executable (exe) le from class les. This utility can be considered as a variant of the Just In Time compiler (JIT). 4.1 Remote Object Creation/Connection For the remote object creation test, a client object residing in the client machine creates a new remote object on the server machine. Just after the creation, the client object destroys the remote object. These operations are repeated for calculating the average elapsed time. For the remote object connection test, a client object residing in the client machine connects to an existing remote object residing in the server machine. The following table and gure summarize the result. In this section, all units are in milliseconds. HORB(exe) HORB(java) javarmi Object creation 15.6msec 14.8 NA Object connection Fig. 6. Remote object creation/connection (msec). For the remote object connection, HORB is two times faster than javarmi. Since javarmi does not support dynamic remote object creation, its result is not available.

12 The numbers of HORB(java) and javarmi were measured with the Java interpreter of JDK 1.1. HORB(exe) is the native code version of the HORB(java). User code and the HORB runtime were converted into i386 native code. However, system classes were executed by the interpreter. The exe version of javarmi failed due to an unexpected exception. Thus, there is no data of it. Since system classes are interpreted in the exe version, speed up might be very small. 4.2 Remote Method Call This test evaluated the performance of remote method call by using some remote methods. The remote methods take some integers as arguments and returns one integer. The number of arguments is a variable. A client object calls the methods remotely. int method1(int a1); int method2(int a1, int a2);... int method6(int a1, int a2, int a3, int a4, int a5, int a6); 'Socket' is an equivalent implementation using the Java socket classes. The socket client sends some integers to socket server and receives one integer. The following table and g. 7 show the result. number of arguments Socket HORB(exe) HORB(java) javarmi Fig. 7. Remote method call (msec).

13 HORB is two to three times faster than javarmi and HORB(exe) is as fast as the socket version. We can summarize that the overhead of remote object call is very small. 4.3 Object Passing This text evaluates the performance of object passing by value. A class 'Data' consists of one integer. Some objects of Data are passed as arguments of remote method call. The following table and g. 8 show the result. public class Data { int a; void method1(data a1); void method2(data a1, Data a2);... void method6(data a1, Data a2, Data a3, Data a4, Data a5, Data a6); number of objects HORB(exe) HORB(java) javarmi Fig. 8. Object passing (msec). We can summarize that HORB is two to three times faster than javarmi and the overhead of object passing is small.

14 5 Conclusion HORB is a Java ORB that extends Java for distributed object oriented computing. Applications of HORB and HORB itself are network portable and transferable, since HORB provides both portability and interoperability among dierent kinds of OSes. This paper described the organization and the main features of HORB. { Dynamic remote object creation { Remote object connection { URL based object naming { Object transfer { Asynchronous method { Security by distributed access control list In the previous section, we showed the result of performance evaluation for basic remote operations. The result showed HORB was two or three times faster than javarmi. HORB is freely distributed at the address given on the title for non-commercial purposes, and is used for system development and research purposes such as agent systems[6, 9]. The package can be used for development just by decompressing les and setting two environment variables. Installing is unnecessary for the use with the WWW browser. The usage of HORB is quite simple and easy. The author encourage you enjoy network computing with HORB. References 1. Sun Microsystems, The Java language specication, Object Management Group, CORBA2 Universal Networked Objects, Brown, N., Kindel, C., Distributed Component Object Model Protocol { DCOM/1.0, Internet Draft ( Sun Microsystems, Remote Method Invocation Specication, Sun Microsystems, JDK 1.1 Documentation, Dual, N., Distributed Database Access in a Corporate Environnement Using Java, 5th Int. WWW conference, 1995, html/papersessions.html#ps8 7. Shapiro, M., Structure and Encapsulation in distributed Systems: The Proxy Principle, ICDCS, pp , Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns, Addison-Wesley Publishing, Yamanaka, A., Nakajima, S., Tomono, M., Tonouchi, T., A HORB-Based Network Management System, ICODP'97 (to be appeared), 1997 This article was processed using the LATEX macro package with LLNCS style

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan. Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

Distributed Computing

Distributed Computing Distributed Computing 1 Why distributed systems: Benefits & Challenges The Sydney Olympic game system: see text page 29-30 Divide-and-conquer Interacting autonomous systems Concurrencies Transactions 2

More information

Advanced Lectures on knowledge Engineering

Advanced Lectures on knowledge Engineering TI-25 Advanced Lectures on knowledge Engineering Client-Server & Distributed Objects Platform Department of Information & Computer Sciences, Saitama University B.H. Far (far@cit.ics.saitama-u.ac.jp) http://www.cit.ics.saitama-u.ac.jp/~far/lectures/ke2/ke2-06/

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

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

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol My Articles: Home Networking Wearable Computing IIOP Meet My Friend Intelligent Agents We are

More information

C. E. McDowell August 25, Baskin Center for. University of California, Santa Cruz. Santa Cruz, CA USA. abstract

C. E. McDowell August 25, Baskin Center for. University of California, Santa Cruz. Santa Cruz, CA USA. abstract Unloading Java Classes That Contain Static Fields C. E. McDowell E. A. Baldwin 97-18 August 25, 1997 Baskin Center for Computer Engineering & Information Sciences University of California, Santa Cruz Santa

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

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

Distributed Systems Middleware

Distributed Systems Middleware Distributed Systems Middleware David Andersson, 810817-7539, (D) Rickard Sandell, 810131-1952, (D) EDA 390 - Computer Communication and Distributed Systems Chalmers University of Technology 2005-04-30

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Today: Distributed Middleware. Middleware

Today: Distributed Middleware. Middleware Today: Distributed Middleware Middleware concepts Case study: CORBA Lecture 24, page 1 Middleware Software layer between application and the OS Provides useful services to the application Abstracts out

More information

UNIT 4 CORBA 4/2/2013 Middleware 59

UNIT 4 CORBA 4/2/2013 Middleware 59 UNIT 4 CORBA 4/2/2013 Middleware 59 CORBA AN OBJECT ORIENTED RPC MECHANISM HELPS TO DEVELOP DISTRIBUTED SYTEMS IN DIFF. PLATFORMS OBJECTS WRITTEN IN DIFF., LANG, CAN BE CALLED BY OBJECTS WRITTEN IN ANOTHER

More information

Today: Distributed Objects. Distributed Objects

Today: Distributed Objects. Distributed Objects Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 3: Communication (Part 2) Remote Procedure

More information

Web site Image database. Web site Video database. Web server. Meta-server Meta-search Agent. Meta-DB. Video query. Text query. Web client.

Web site Image database. Web site Video database. Web server. Meta-server Meta-search Agent. Meta-DB. Video query. Text query. Web client. (Published in WebNet 97: World Conference of the WWW, Internet and Intranet, Toronto, Canada, Octobor, 1997) WebView: A Multimedia Database Resource Integration and Search System over Web Deepak Murthy

More information

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems Robert Grimm University of Washington Extensions Added to running system Interact through low-latency interfaces Form

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

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

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba

More information

NMS Client. NMS Client. NMS Client CORBA. NMS Server. NMS Server. NMS Server. (c) 1999 IFIP

NMS Client. NMS Client. NMS Client CORBA. NMS Server. NMS Server. NMS Server. (c) 1999 IFIP An Event Notication Framework based on Java and CORBA M. TOMONO 1st Transmission Division, NEC Corporation 1753 Shimonumabe, Nakahara-Ku, Kawasaki, 211 JAPAN tomono@trd.tmg.nec.co.jp Abstract Event notication

More information

Distributed Environments. CORBA, JavaRMI and DCOM

Distributed Environments. CORBA, JavaRMI and DCOM Distributed Environments CORBA, JavaRMI and DCOM Introduction to CORBA Distributed objects A mechanism allowing programs to invoke methods on remote objects Common Object Request Broker middleware - works

More information

DISTRIBUTED OBJECTS AND REMOTE INVOCATION

DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction This chapter is concerned with programming models for distributed applications... Familiar programming models have been extended to apply to distributed

More information

Distributed Object Bridges and Java-based Object Mediator

Distributed Object Bridges and Java-based Object Mediator Distributed Object Bridges and Java-based Object Mediator Konstantinos Raptis, Diomidis Spinellis, Sokratis Katsikas An important aspect of research on software objects, components, and component-based

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

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

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

1.264 Lecture 16. Legacy Middleware

1.264 Lecture 16. Legacy Middleware 1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network

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

On Designing and Implementing a Collaborative System Using Java-RMI

On Designing and Implementing a Collaborative System Using Java-RMI On Designing and Implementing a Collaborative System Using Java-RMI Rajeev R. Raje Snehasis Mukhopadhyay Michael Boyles Nila Patel Department of Computer and Information Science Indiana University Purdue

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

GUI framework communication via the WWW

GUI framework communication via the WWW GUI framework communication via the WWW Thomas Tilley, School of Information Technology, Griffith University, Australia 4215, T.Tilley@gu.edu.au Peter Eklund, School of Information Technology, Griffith

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

AQUILA. Project Defense. Sandeep Misra. (IST ) Development of C++ Client for a Java QoS API based on CORBA

AQUILA. Project Defense. Sandeep Misra.  (IST ) Development of C++ Client for a Java QoS API based on CORBA AQUILA (IST-1999-10077) Adaptive Resource Control for QoS Using an IP-based Layered Architecture Project Defense Development of C++ Client for a Java QoS API based on CORBA http://www-st st.inf..inf.tu-dresden.de/aquila/

More information

Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator

Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator Markus Aleksy, Jan Czeranski, Martin Schader University of Mannheim, Germany {aleksy czeranski mscha}@wifo3.uni-mannheim.de

More information

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI Remote Invocation Today l Request-reply, RPC, RMI Next time l Overlay networks and P2P Types of communication " Persistent or transient Persistent A submitted message is stored until delivered Transient

More information

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems Prof. Agostino Poggi What is CORBA? CORBA (Common Object Request

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Mohsin Qasim Syed Abbas Ali

Mohsin Qasim Syed Abbas Ali 2005-5-18 Final version Table of Content 1 -Introduction to CORBA...3 1.1 Overview...3 1.2 Why is CORBA important in a networked environment?... 4 1.3 HOW DOES CORBA WORKS?...4 1.4 CORBA Architecture...

More information

Remote Method Invocation

Remote Method Invocation Remote Method Invocation A true distributed computing application interface for Java, written to provide easy access to objects existing on remote virtual machines Provide access to objects existing on

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

OmniRPC: a Grid RPC facility for Cluster and Global Computing in OpenMP

OmniRPC: a Grid RPC facility for Cluster and Global Computing in OpenMP OmniRPC: a Grid RPC facility for Cluster and Global Computing in OpenMP (extended abstract) Mitsuhisa Sato 1, Motonari Hirano 2, Yoshio Tanaka 2 and Satoshi Sekiguchi 2 1 Real World Computing Partnership,

More information

Patterns for polymorphic operations

Patterns for polymorphic operations Patterns for polymorphic operations Three small object structural patterns for dealing with polymorphism Alexander A. Horoshilov hor@epsylontech.com Abstract Polymorphism is one of the main elements of

More information

Lecture 16. What is COM? Principles of COM. COM Design Principles. Example (UML Diagram) Microsoft IDL (MIDL) COM/DCOM February 23, 2005

Lecture 16. What is COM? Principles of COM. COM Design Principles. Example (UML Diagram) Microsoft IDL (MIDL) COM/DCOM February 23, 2005 What is? Lecture 16 /D February 23, 2005 = Common Model. Platform-independent, distributed OO system for client-server implementations. objects can be created in a variety of languages (like CORBA). Not

More information

Java is a high-level programming language originally developed by Sun Microsystems and released in Java runs on a variety of

Java is a high-level programming language originally developed by Sun Microsystems and released in Java runs on a variety of Java is a high-level programming language originally developed by Sun Microsystems and released in 1995. Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX.

More information

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. CORBA What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. It includes: an object-oriented Remote Procedure Call (RPC) mechanism object

More information

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions Index Course Outline Grading Policy Lab Time Distribution Important Instructions 2 Course Outline Week Topics 1 - History and Evolution of Java - Overview of Java 2 - Datatypes - Variables 3 - Arrays 4

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

MetaVM: A Transparent Distributed Object System Supported by Runtime Compiler

MetaVM: A Transparent Distributed Object System Supported by Runtime Compiler MetaVM: A Transparent Distributed Object System Supported by Runtime Compiler Kazuyuki Shudo Yoichi Muraoka School of Science and Engineering Waseda University Okubo 3-4-1, Shinjuku-ku, Tokyo 169-8555,

More information

CS454/654 Midterm Exam Fall 2004

CS454/654 Midterm Exam Fall 2004 CS454/654 Midterm Exam Fall 2004 (3 November 2004) Question 1: Distributed System Models (18 pts) (a) [4 pts] Explain two benefits of middleware to distributed system programmers, providing an example

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

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

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

Improvement to the Smart Data Server with SOAP *

Improvement to the Smart Data Server with SOAP * Improvement to the Smart Data Server with * WANJUN HUANG, UWE ROTH, CHRISTOPH MEINEL Institute of Telematics Bahnhofstr. 30-32,D-54292, Trier GERMANY {huang,roth,meinel}@ti.fhg.de Abstract: - As a distributed

More information

CHAPTER - 4 REMOTE COMMUNICATION

CHAPTER - 4 REMOTE COMMUNICATION CHAPTER - 4 REMOTE COMMUNICATION Topics Introduction to Remote Communication Remote Procedural Call Basics RPC Implementation RPC Communication Other RPC Issues Case Study: Sun RPC Remote invocation Basics

More information

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2) Introduction Objective To support interoperability and portability of distributed OO applications by provision of enabling technology Object interaction vs RPC Java Remote Method Invocation (RMI) RMI Registry

More information

QuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment

QuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment Models Bringing Compaq NonStop Himalaya server reliability and transactional power to enterprise Java environments Compaq enables companies to combine the strengths of Java technology with the reliability

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Chapter 16. Layering a computing infrastructure

Chapter 16. Layering a computing infrastructure : Chapter 16 by David G. Messerschmitt Layering a computing infrastructure Applications Application components Middleware Operating system Network 2 1 Spanning layer Application Distributed object management

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

Remote Method Invocation Benoît Garbinato

Remote Method Invocation Benoît Garbinato Remote Method Invocation Benoît Garbinato 1 Fundamental idea (1) Rely on the same programming paradigm for distributed applications as for centralized applications In procedural languages, we will rely

More information

Remote Method Invocation. Benoît Garbinato

Remote Method Invocation. Benoît Garbinato Remote Method Invocation Benoît Garbinato Fundamental idea (1) Rely on the same programming paradigm for distributed applications as for centralized applications In procedural languages, we will rely on

More information

Architectural Design Outline

Architectural Design Outline Architectural Design Outline Prev lecture general design principles. design Today architectural 1. What is a software architecture 2. Components, Connectors, and Configurations 3. Modeling Architectures:

More information

Chapter 5: Distributed objects and remote invocation

Chapter 5: Distributed objects and remote invocation Chapter 5: Distributed objects and remote invocation From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 Figure 5.1 Middleware layers Applications

More information

Special Topics: Programming Languages

Special Topics: Programming Languages Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (

More information

Performance comparison of DCOM, CORBA and Web service

Performance comparison of DCOM, CORBA and Web service Performance comparison of DCOM, CORBA and Web service SeongKi Kim School of Computer Science and Engineering Seoul National University, 56-1 Sinlim, Kwanak Seoul, Korea 151-742 Abstract - The distributed

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

Introduction to Java

Introduction to Java Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture

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 with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar Distributed Programming with RMI Overview Distributed object computing extends an object-oriented programming system by allowing objects to be distributed across a heterogeneous network, so that each of

More information

RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON

RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume XLIX, Number 1, 2004 RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON FLORIAN MIRCEA BOIAN AND RAREŞ FLORIN BOIAN Abstract. RMI (Remote Method Invocation)

More information

Michael Böge, Jan Chrin

Michael Böge, Jan Chrin PAUL SCHERRER INSTITUT SLS-TME-TA-1999-0015 September, 1999 A CORBA Based Client- Model for Beam Dynamics Applications at the SLS Michael Böge, Jan Chrin Paul Scherrer Institut CH-5232 Villigen PSI Switzerland

More information

Lecture 1: Overview of Java

Lecture 1: Overview of Java Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call 4.3 Remote procedure calls RPC flow Client process Server process Program i = sum (3,7); Procedure sum (j,k) int j,k; {return j+k; Client stub Program Return Call Unpack Pack result para s Invisible to

More information

13. Databases on the Web

13. Databases on the Web 13. Databases on the Web Requirements for Web-DBMS Integration The ability to access valuable corporate data in a secure manner Support for session and application-based authentication The ability to interface

More information

1 OBJECT-ORIENTED PROGRAMMING 1

1 OBJECT-ORIENTED PROGRAMMING 1 PREFACE xvii 1 OBJECT-ORIENTED PROGRAMMING 1 1.1 Object-Oriented and Procedural Programming 2 Top-Down Design and Procedural Programming, 3 Problems with Top-Down Design, 3 Classes and Objects, 4 Fields

More information

RMI: Design & Implementation

RMI: Design & Implementation RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP

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 [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization

More information

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT

More information

History Introduction to Java Characteristics of Java Data types

History Introduction to Java Characteristics of Java Data types Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems

More information

Chapter 4. Internet Applications

Chapter 4. Internet Applications Chapter 4 Internet Application Protocols 1 Internet Applications! Domain Name System! Electronic mail! Remote login! File transfer! World Wide Web! All use client-server model 2 Names! Internet communication

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

gateways to order processing in electronic commerce. In fact, the generic Web page access can be considered as a special type of CGIs that are built i

gateways to order processing in electronic commerce. In fact, the generic Web page access can be considered as a special type of CGIs that are built i High-Performance Common Gateway Interface Invocation Ganesh Venkitachalam Tzi-cker Chiueh Computer Science Department State University of New York at Stony Brook Stony Brook, NY 11794-4400 fganesh, chiuehg@cs.sunysb.edu

More information

Orb-Weaver if the radiance of thousand suns were burst at once into the sky that might be the splendor of mighty one.

Orb-Weaver if the radiance of thousand suns were burst at once into the sky that might be the splendor of mighty one. agus@orbleaf.com Orb-Weaver if the radiance of thousand suns were burst at once into the sky that might be the splendor of mighty one. Orb-Weaver Whitepaper 2 Introduction... 3 Orb-Weaver... 4 Automatic

More information

Course Snapshot. The Next Few Classes. Parallel versus Distributed Systems. Distributed Systems. We have covered all the fundamental OS components:

Course Snapshot. The Next Few Classes. Parallel versus Distributed Systems. Distributed Systems. We have covered all the fundamental OS components: Course Snapshot The Next Few Classes We have covered all the fundamental OS components: Architecture and OS interactions Processes and threads Synchronization and deadlock Process scheduling Memory management

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

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

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science steen@cs.vu.nl Chapter 10: Version: December 10, 2012 1 / 22 10.1 Architecture 10.1 Architecture Remote

More information

Installation and Administration Guide

Installation and Administration Guide Installation and Administration Guide VERSION 3.3 VisiBroker for C++ Inprise Corporation, 100 Enterprise Way Scotts Valley, CA 95066-3249 Inprise may have patents and/or pending patent applications covering

More information

The UNIVERSITY of EDINBURGH. SCHOOL of INFORMATICS. CS4/MSc. Distributed Systems. Björn Franke. Room 2414

The UNIVERSITY of EDINBURGH. SCHOOL of INFORMATICS. CS4/MSc. Distributed Systems. Björn Franke. Room 2414 The UNIVERSITY of EDINBURGH SCHOOL of INFORMATICS CS4/MSc Distributed Systems Björn Franke bfranke@inf.ed.ac.uk Room 2414 (Lecture 3: Remote Invocation and Distributed Objects, 28th September 2006) 1 Programming

More information

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS RMI Remote Method RMI Invocation REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS Peter R. Egli 1/19 Contents 1. What is RMI? 2. Important RMI

More information

Recommendations for a CORBA Language Mapping for RTSJ

Recommendations for a CORBA Language Mapping for RTSJ CORBA Language Mapping Victor Giddings Objective Interface Systems victor.giddings@ois.com Outline Real-time Specification for Java Background Memory Management Thread Types Thread Priorities IDL to RTSJ

More information