This Presentation shows the working of Java RMI technology, it's advantage over RPC, it's class hierarchy API and finally implementation of Factorial program using Java RMI.
The document discusses Java Remote Method Invocation (RMI), which allows remote method calls between Java programs. RMI provides a thin client that maximizes hardware investments. It requires objects to be serializable and looked up from a registry. The RMI architecture has four layers - the application layer containing client and server logic, a proxy layer with stubs and skeletons, a transport layer managing connections, and a remote reference layer managing references. Key RMI components are the server containing remote objects, the client invoking methods, and the registry containing object references.
This document provides an overview of Remote Method Invocation (RMI) in Java. RMI allows objects running in one Java Virtual Machine (JVM) to invoke methods on objects running in another JVM. It describes the RMI process which involves defining a remote interface, compiling the remote object, and making the object accessible over the network. The client locates the remote object and invokes its methods similarly to a local object. The server implements the remote interface and provides the business logic to fulfill client requests.
RMI allows for remote method invocation, making remote objects appear local to clients. It handles threading, sockets, object marshalling between client and server JVMs. The client looks up remote objects in the RMI registry and calls methods which are executed on server object skeletons. Return values pass through stubs back to the client. Advantages include automatic threading and marshalling, dynamic class loading. Disadvantages are that RMI only works with Java and security must be closely monitored.
This document provides an overview of RMI architecture and how to create an RMI application. It discusses that RMI allows invoking methods on remote objects and facilitates communication between distributed objects. It describes local vs remote objects, the RMI registry for registering and looking up remote objects. It outlines the steps to create an RMI application including defining the server interface, implementing the server, registering the server object, and developing the client program.
Remote Method Invocation (RMI) allows objects within one Java Virtual Machine to invoke methods on objects residing in a separate JVM. RMI uses stub and skeleton layers along with remote references to enable remote communication. The RMI architecture consists of three layers - stub/skeleton, remote reference, and transport layers. RMI provides packages for remote interfaces, object registration and lookup, and client/server support. Developing RMI involves implementing remote interfaces, generating stubs and skeletons, registering objects, and making remote calls via stubs from clients.
This document discusses Remote Method Invocation (RMI) in Java. It explains that RMI allows a Java object to invoke methods on an object running on another machine, enabling remote communication between Java programs. It then describes the basic concepts of an RMI application including client/server architecture using stub and skeleton objects. Finally, it outlines the steps to implement a simple RMI application with an interface, client, and server classes.
This document provides an overview of Java Remote Method Invocation (RMI). It discusses the historical background and related technologies like RPC and CORBA. The document describes the layered architecture of RMI including the application, interface, reference, and transport layers. It also explains the working principles of RMI with client/server communication and object serialization. An example RMI application is demonstrated involving writing interfaces and classes, deploying the server, and accessing services from the client. Strengths and weaknesses of RMI are analyzed in comparison to CORBA. The document is intended as a tutorial on building distributed applications with Java RMI.
Recently The Java Remote Method Invocation (RMI) system allows an object running in one Java virtual machine to invoke methods on an object running in another Java virtual machine. RMI provides for remote communication between programs written in the Java programming language.
Remote Method Invocation Day 8 of 10 of SMART ADIS
also: http://pageman.multiply.com/journal/item/412/Day_8_of_10_of_SMART_ADIS
This document defines and describes Java RMI (Remote Method Invocation). RMI allows a Java program running on one JVM to invoke methods on another JVM, enabling client-server programming. It discusses the goals of RMI including minimizing differences between local and remote objects. The architecture of RMI including layers for the application, proxies, remote references, and transport is described. Finally, it compares RMI to other remote object technologies like CORBA.
RMI allows Java objects to invoke methods on remote Java objects located in another Java Virtual Machine. It handles marshaling parameters, transportation between client and server, and unmarshaling results. To create an RMI application, interfaces define remote services, servers implement interfaces and register with the RMI registry, and clients lookup services and invoke remote methods similarly to local calls. Stub and skeleton objects handle communication between remote VMs.
The document discusses Remote Method Invocation (RMI) in Java. RMI allows objects running in one Java virtual machine to invoke methods on objects running in another Java VM. It has four layers: application layer, proxy layer, remote reference layer, and transport layer. The RMI architecture contains an RMI server, RMI client, and RMI registry. The server creates remote objects and registers them with the registry. The client looks up remote objects by name in the registry and invokes methods on them.
This document provides an overview of Java Remote Method Invocation (RMI) technology. It discusses that RMI allows applications to invoke methods on remote Java objects, hiding the underlying socket-level communication details. It describes the key components of RMI - the client, server, and RMI registry which maintains references to remote objects. It then presents a simple example to demonstrate implementing and using an RMI application for mathematical operations, including writing the service interface, server implementation, and client. Finally, it discusses strengths and weaknesses of RMI and compares it to another distributed object technology, CORBA.
This document provides an overview of how Java RMI (Remote Method Invocation) works. It discusses the key RMI classes and interfaces, the general architecture involving remote objects, stubs, skeletons and the registry. It also demonstrates building the required classes for a simple weather server example - the remote interface, remote object implementation, server and client. The document walks through compiling and running the weather server to showcase a basic RMI application.
This document provides an introduction and overview of Remote Method Invocation (RMI) in Java. It describes building a simple client-server application using RMI that allows a client to invoke methods on a Java object running on a remote server machine. The application involves defining a remote interface, implementing that interface on the server, generating stubs and skeletons, running an RMI registry on the server, and having the client lookup and invoke methods on the remote object.
The document describes the RMI architecture which allows objects in one Java virtual machine to invoke methods on objects residing in another Java VM. It discusses key concepts like stubs and skeletons which act as proxies, the remote reference layer for method invocation, and the RMI registry for lookup remote objects by name. It also provides steps to create a basic RMI application including defining the interface, implementing it, creating the server and client code, and running the application.
This document provides an overview of Java RMI (Remote Method Invocation), which allows objects to invoke methods on remote Java objects located elsewhere on a network. Key points:
- RMI allows one JVM to communicate with another and invoke methods remotely as if they were local.
- Remote interfaces define the methods that can be invoked remotely. The interface is shared between client and server code.
- When a remote method is invoked, a stub on the client side packages the parameters and sends them to the server, where the method is executed and results returned.
- Typical RMI applications have a server that creates remote objects and a client that looks them up and invokes their methods. The client interacts
RMI allows Java objects to call methods on other Java objects running in a different JVM. It works by passing object references between JVMs using marshaling and unmarshaling. Developing an RMI application involves defining a remote interface, implementing that interface in a class, running an RMI registry, starting the server, and having the client lookup and invoke methods on remote objects.
This PowerPoint presentation provides an in-depth understanding of Java RMI (Remote Method Invocation), a mechanism that enables communication between objects in different JVMs (Java Virtual Machines). The presentation covers the architecture of RMI, explaining key components such as stubs and skeletons and their role in remote communication. Additionally, it provides a step-by-step overview of how an RMI application works, helping developers understand its implementation and use cases. This resource is ideal for learners and professionals looking to explore distributed computing in Java.
RMI allows Java objects to run remotely by making remote method calls appear as local method calls. The document discusses RMI concepts like remote objects, stubs, skeletons, and registries. It provides examples of defining remote interfaces, implementing remote objects, registering objects, and making remote calls from a client.
This is an introduction into distributed computing using Java Remote Method Invocation (RMI) technology. RMI allows java applications to communicate to server or distributed applications across the network seamlessly. RMI can leverage proprietary protocols or standard CORBA IIOP protocol to send/receive messages. The presentation covered the following topics.
Presentation
------------
Session Outline:
- Overview of RMI
- Features of RMI
- Layers in RMI
- Creating an application
- Conclusion
Example code available at ChrisMatthews.us
Author: Chris Matthews
Copyright: eLink Business Innovations 2002
This document discusses distributed programming with Java RMI. It explains the key components of client-server systems and different distributed computing models like DCE, DCOM, CORBA, and Java RMI. It then describes how Java RMI works, the packages involved, and provides steps to implement a basic RMI application with a remote interface, server implementation, and client.
This document provides an overview of Remote Method Invocation (RMI) in Java. RMI allows programs to call methods on remote Java objects living in another Java Virtual Machine. It describes the key components of RMI including remote interfaces, remote objects, stubs, skeletons and the RMI architecture. It also provides a short example of an RMI application that calculates the sum of two integers by invoking a remote method from the client to the server.
Remote Method Invocation (RMI) allows Java objects to invoke methods on remote Java objects located on other hosts or machines. RMI uses stubs and skeletons as proxies to make remote calls appear local. The stubs act as local representatives for remote objects, while skeletons on the remote host receive the calls and forward them to the actual remote objects. RMI handles object serialization and deserialization to transfer objects between clients and servers.
This document discusses Java Remote Method Invocation (RMI), which allows Java objects to invoke methods on other Java objects running in another Java Virtual Machine (JVM). It describes how RMI works using a client-server model, with an interface defining remote methods, an implementation class on the server exporting objects, and clients looking them up by name. It provides code examples of an RMI server interface, implementation class, and client class, along with steps for compiling, running the rmiregistry, and potential error sources.
This document provides an overview of distributed objects and remote invocation. It discusses RPC/RMI models and implementation issues like parameter passing semantics and invocation semantics. It also covers stateless/stateful servers, server creation semantics, SunRPC, and Java RMI. SunRPC is described in more detail including interface definition, client and server code examples. Java RMI is compared to SunRPC and its mechanism involving proxies, skeletons, and the RMI registry is outlined.
This document discusses Remote Procedure Calls (RPC) and Remote Method Invocation (RMI) for building distributed and concurrent software. It describes how RMI improves upon RPC by adding object orientation, allowing objects in one process to invoke methods on objects in another process. It also discusses middleware layers for distributed communication and the steps involved in a remote procedure call, including the use of stubs and skeletons. Sample code is provided to illustrate setting up a basic RMI application in Java using interfaces, implementation classes, and a client and server.
RMI allows objects running on one Java Virtual Machine (JVM) to access objects running on another JVM, enabling the building of distributed applications. An RMI application has a client program that requests remote objects on a server program. The server program creates remote objects and makes their references available to clients. When a client invokes a method on a remote object, the request is passed through stubs and skeletons to the actual object on the server. The response then passes back to the client through the same path. The RMI registry allows clients to lookup remote objects by name.
This document provides an overview of Remote Method Invocation (RMI) in Java. It discusses the architecture of RMI applications including stubs, skeletons, and the transport layer. It describes how RMI allows objects in one JVM to invoke methods on objects in another JVM, enabling the development of distributed applications. The document outlines the steps to implement RMI, including creating remote interfaces, implementation classes, the server, and client. It also discusses marshalling, unmarshalling, and the role of the RMI registry.
Recently The Java Remote Method Invocation (RMI) system allows an object running in one Java virtual machine to invoke methods on an object running in another Java virtual machine. RMI provides for remote communication between programs written in the Java programming language.
Remote Method Invocation Day 8 of 10 of SMART ADIS
also: http://pageman.multiply.com/journal/item/412/Day_8_of_10_of_SMART_ADIS
This document defines and describes Java RMI (Remote Method Invocation). RMI allows a Java program running on one JVM to invoke methods on another JVM, enabling client-server programming. It discusses the goals of RMI including minimizing differences between local and remote objects. The architecture of RMI including layers for the application, proxies, remote references, and transport is described. Finally, it compares RMI to other remote object technologies like CORBA.
RMI allows Java objects to invoke methods on remote Java objects located in another Java Virtual Machine. It handles marshaling parameters, transportation between client and server, and unmarshaling results. To create an RMI application, interfaces define remote services, servers implement interfaces and register with the RMI registry, and clients lookup services and invoke remote methods similarly to local calls. Stub and skeleton objects handle communication between remote VMs.
The document discusses Remote Method Invocation (RMI) in Java. RMI allows objects running in one Java virtual machine to invoke methods on objects running in another Java VM. It has four layers: application layer, proxy layer, remote reference layer, and transport layer. The RMI architecture contains an RMI server, RMI client, and RMI registry. The server creates remote objects and registers them with the registry. The client looks up remote objects by name in the registry and invokes methods on them.
This document provides an overview of Java Remote Method Invocation (RMI) technology. It discusses that RMI allows applications to invoke methods on remote Java objects, hiding the underlying socket-level communication details. It describes the key components of RMI - the client, server, and RMI registry which maintains references to remote objects. It then presents a simple example to demonstrate implementing and using an RMI application for mathematical operations, including writing the service interface, server implementation, and client. Finally, it discusses strengths and weaknesses of RMI and compares it to another distributed object technology, CORBA.
This document provides an overview of how Java RMI (Remote Method Invocation) works. It discusses the key RMI classes and interfaces, the general architecture involving remote objects, stubs, skeletons and the registry. It also demonstrates building the required classes for a simple weather server example - the remote interface, remote object implementation, server and client. The document walks through compiling and running the weather server to showcase a basic RMI application.
This document provides an introduction and overview of Remote Method Invocation (RMI) in Java. It describes building a simple client-server application using RMI that allows a client to invoke methods on a Java object running on a remote server machine. The application involves defining a remote interface, implementing that interface on the server, generating stubs and skeletons, running an RMI registry on the server, and having the client lookup and invoke methods on the remote object.
The document describes the RMI architecture which allows objects in one Java virtual machine to invoke methods on objects residing in another Java VM. It discusses key concepts like stubs and skeletons which act as proxies, the remote reference layer for method invocation, and the RMI registry for lookup remote objects by name. It also provides steps to create a basic RMI application including defining the interface, implementing it, creating the server and client code, and running the application.
This document provides an overview of Java RMI (Remote Method Invocation), which allows objects to invoke methods on remote Java objects located elsewhere on a network. Key points:
- RMI allows one JVM to communicate with another and invoke methods remotely as if they were local.
- Remote interfaces define the methods that can be invoked remotely. The interface is shared between client and server code.
- When a remote method is invoked, a stub on the client side packages the parameters and sends them to the server, where the method is executed and results returned.
- Typical RMI applications have a server that creates remote objects and a client that looks them up and invokes their methods. The client interacts
RMI allows Java objects to call methods on other Java objects running in a different JVM. It works by passing object references between JVMs using marshaling and unmarshaling. Developing an RMI application involves defining a remote interface, implementing that interface in a class, running an RMI registry, starting the server, and having the client lookup and invoke methods on remote objects.
This PowerPoint presentation provides an in-depth understanding of Java RMI (Remote Method Invocation), a mechanism that enables communication between objects in different JVMs (Java Virtual Machines). The presentation covers the architecture of RMI, explaining key components such as stubs and skeletons and their role in remote communication. Additionally, it provides a step-by-step overview of how an RMI application works, helping developers understand its implementation and use cases. This resource is ideal for learners and professionals looking to explore distributed computing in Java.
RMI allows Java objects to run remotely by making remote method calls appear as local method calls. The document discusses RMI concepts like remote objects, stubs, skeletons, and registries. It provides examples of defining remote interfaces, implementing remote objects, registering objects, and making remote calls from a client.
This is an introduction into distributed computing using Java Remote Method Invocation (RMI) technology. RMI allows java applications to communicate to server or distributed applications across the network seamlessly. RMI can leverage proprietary protocols or standard CORBA IIOP protocol to send/receive messages. The presentation covered the following topics.
Presentation
------------
Session Outline:
- Overview of RMI
- Features of RMI
- Layers in RMI
- Creating an application
- Conclusion
Example code available at ChrisMatthews.us
Author: Chris Matthews
Copyright: eLink Business Innovations 2002
This document discusses distributed programming with Java RMI. It explains the key components of client-server systems and different distributed computing models like DCE, DCOM, CORBA, and Java RMI. It then describes how Java RMI works, the packages involved, and provides steps to implement a basic RMI application with a remote interface, server implementation, and client.
This document provides an overview of Remote Method Invocation (RMI) in Java. RMI allows programs to call methods on remote Java objects living in another Java Virtual Machine. It describes the key components of RMI including remote interfaces, remote objects, stubs, skeletons and the RMI architecture. It also provides a short example of an RMI application that calculates the sum of two integers by invoking a remote method from the client to the server.
Remote Method Invocation (RMI) allows Java objects to invoke methods on remote Java objects located on other hosts or machines. RMI uses stubs and skeletons as proxies to make remote calls appear local. The stubs act as local representatives for remote objects, while skeletons on the remote host receive the calls and forward them to the actual remote objects. RMI handles object serialization and deserialization to transfer objects between clients and servers.
This document discusses Java Remote Method Invocation (RMI), which allows Java objects to invoke methods on other Java objects running in another Java Virtual Machine (JVM). It describes how RMI works using a client-server model, with an interface defining remote methods, an implementation class on the server exporting objects, and clients looking them up by name. It provides code examples of an RMI server interface, implementation class, and client class, along with steps for compiling, running the rmiregistry, and potential error sources.
This document provides an overview of distributed objects and remote invocation. It discusses RPC/RMI models and implementation issues like parameter passing semantics and invocation semantics. It also covers stateless/stateful servers, server creation semantics, SunRPC, and Java RMI. SunRPC is described in more detail including interface definition, client and server code examples. Java RMI is compared to SunRPC and its mechanism involving proxies, skeletons, and the RMI registry is outlined.
This document discusses Remote Procedure Calls (RPC) and Remote Method Invocation (RMI) for building distributed and concurrent software. It describes how RMI improves upon RPC by adding object orientation, allowing objects in one process to invoke methods on objects in another process. It also discusses middleware layers for distributed communication and the steps involved in a remote procedure call, including the use of stubs and skeletons. Sample code is provided to illustrate setting up a basic RMI application in Java using interfaces, implementation classes, and a client and server.
RMI allows objects running on one Java Virtual Machine (JVM) to access objects running on another JVM, enabling the building of distributed applications. An RMI application has a client program that requests remote objects on a server program. The server program creates remote objects and makes their references available to clients. When a client invokes a method on a remote object, the request is passed through stubs and skeletons to the actual object on the server. The response then passes back to the client through the same path. The RMI registry allows clients to lookup remote objects by name.
This document provides an overview of Remote Method Invocation (RMI) in Java. It discusses the architecture of RMI applications including stubs, skeletons, and the transport layer. It describes how RMI allows objects in one JVM to invoke methods on objects in another JVM, enabling the development of distributed applications. The document outlines the steps to implement RMI, including creating remote interfaces, implementation classes, the server, and client. It also discusses marshalling, unmarshalling, and the role of the RMI registry.
Remote Method Invocation (RMI) allows objects running in one Java virtual machine to invoke methods on objects running in another Java virtual machine. RMI uses object serialization to marshal and unmarshal parameters and supports true object-oriented polymorphism. RMI is implemented using three layers - stub, remote reference, and transport connection layers. The stub and skeleton hide the underlying network implementation details and allow remote objects to be called similar to local objects. Security is an important consideration in RMI and a security manager must be installed and permissions configured to control access to remote objects and classes.
The document discusses Java Remote Method Invocation (RMI) which allows Java programs running on one computer to invoke methods on Java objects residing on other computers. RMI uses stub and skeleton patterns to transparently handle remote method calls similarly to local method calls. It also describes the three independent layers of RMI - the stub-skeleton layer, remote reference layer, and transport layer which handle different aspects of remote communication.
The document describes developing a distributed RMI application with a database. It involves:
1) Creating a remote interface and implementation class to access the database.
2) Compiling the class and starting the RMI registry.
3) Creating and running a server that binds the remote object.
4) Creating and running a client that looks up the remote object and invokes its methods.
Remote Method Invocation, Distributed Programming in java, Java Distributed Programming, Network Programming in JAVA, Core Java, Introduction to RMI, Getting Started with RMI, Getting Started with Remote Method Invocation, Distributed Programming, Java, J2SE
Report on mini project(Student database handling using RMI)shraddha mane
The document describes a student database project using Java RMI (Remote Method Invocation). A group of 4 students - Sonali Mali, Shraddha Mane, Amey Mhatre, and Omkar Mhatre - created a client-server application to insert, retrieve, and delete student records from a database using RMI. The application allows the client to add, view, and remove records by calling remote methods on the server, which handles database operations. The project was completed to fulfill a course requirement in distributed systems at Bharati Vidyapeeth College of Engineering.
This document provides information about implementing and using Remote Method Invocation (RMI) in Java. It describes how RMI allows objects in one Java Virtual Machine (JVM) to invoke methods on objects residing in another JVM, even on different computers. It discusses how RMI handles class loading and updates dynamically. It then explains how RMI works under the hood using stub and skeleton objects to marshal parameters and return values across the network. The document provides steps for writing an RMI program and includes a full code example of an RMI service that calculates powers and its client.
RMI allows objects in one Java Virtual Machine (JVM) to invoke methods on objects residing in another JVM. It uses stub and skeleton objects to enable remote communication between Java programs. The stub on the client side sends a call to the server-side skeleton, which then invokes the actual remote object. The key steps to build an RMI application are: defining the remote interface, implementing it, generating stub and skeleton objects, starting the RMI registry, running the server, and making calls from the client.
The document discusses Remote Method Invocation (RMI) in Java. RMI allows objects to invoke methods on objects residing in another Java Virtual Machine (JVM). It uses stub and skeleton objects to enable remote communication between applications. The stub acts as a client-side proxy and the skeleton receives incoming requests on the server-side. The document provides an example to demonstrate creating a remote interface, implementing it, compiling the stub and skeleton, starting the registry, and running a client and server application to invoke the remote method.
RMI allows Java objects to invoke methods on remote Java objects located in another JVM. It uses stubs and skeletons as proxies for remote objects. The client calls methods on the local stub which forwards the call to the remote skeleton which then calls methods on the actual remote object. Objects must implement the Remote interface and are registered with an RMI registry for lookup. The server implements the remote interface and registers objects with the registry, while the client looks up remote objects from the registry to invoke methods on them.
This document discusses Remote Method Invocation (RMI) in Java. RMI allows a method to be invoked on an object residing in a different Java Virtual Machine (JVM). It works through stubs and skeletons - stubs act as proxies for remote objects on the client side, while skeletons handle incoming calls on the server side. Developing RMI applications involves creating a remote interface, implementing it in a remote class that extends UnicastRemoteObject, compiling the class to generate stubs and skeletons, starting the RMI registry, and having the client access remote objects by lookup or direct construction.
Overview of Java RMI remoting.
RMI is a lightweight Java technology that provides access to remote methods, similar to RPC, but object-oriented. RMI basically provides remote object access for a client and object registration for servers.
RMI is both a Java API (java.rmi.* package) as well as a transport protocol definition for transporting RMI calls through a network.
RMI is a Java technology since it requires that client and server objects run in a JVM (Java Virtual Machine). By using IIOP as transport protocol, however, it is possible to connect RMI-clients to non-Java server objects (e.g. CORBA).
RMI defines the elements client, server, RMI registry where servers register their services and possibly a plain vanilla web server that can be used by clients to dynamically load object classes to access servers.
This document provides an overview of Java RMI (Remote Method Invocation), which allows objects to invoke methods on remote Java objects located elsewhere on a network. Key points:
- RMI allows one JVM to communicate with another and invoke methods remotely as if they were local.
- Remote interfaces define the methods that can be invoked remotely. The interface is shared between client and server code.
- When a remote method is invoked, a stub on the client side packages the parameters and sends them to the server, where the method is executed and results returned.
- Typical RMI applications have a server that creates remote objects and a client that looks them up and invokes their methods remotely.
RMI allows Java objects to make remote calls to methods on other Java objects located in different JVMs. The document discusses how to create remote objects that implement remote interfaces, generate stubs and skeletons, and look up and invoke methods on remote objects. It provides an example "Hello World" RMI application to demonstrate the basic steps of developing and running an RMI client and server.
This document defines and discusses Java RMI (Remote Method Invocation). RMI allows a Java program running on one JVM to invoke methods on another JVM, enabling client-server programming. The key components of the RMI architecture include stubs and skeletons that handle remote calls, a remote reference layer that manages references between JVMs, and a transport layer that establishes connections. RMI aims to minimize the differences between local and remote objects and simplify distributed programming.
Remote Method Invocation (RMI) allows programmers to execute remote functions and calls using the same semantics as local function calls. RMI uses stubs and skeletons, where the stub acts as a proxy for the remote object on the client side and the skeleton receives the calls on the server side. To use RMI, an interface must be defined and implemented on the server, stub and skeleton classes are generated, the remote object is registered with an RMI registry, and then clients can look up and invoke methods on the remote object.
If you have an access to an object on a different machine,
you can call methods of the remote object.of course, the method parameters must somehow be shipped to the other machine,the server must be informed to execute the method & the return value must be shipped back.
In RMI, the object whose methods makes the remote call is called the client object. The remote object is called the server object.The computer running the java code that calls the remote method is the client for that call.
The computer hosting the object that processes the call is the server for that call.
This document provides an overview of Remote Method Invocation (RMI) in Java. It describes how RMI allows objects to be distributed across machines and invoked remotely. The key steps to building an RMI application are discussed, including defining a remote interface, implementing remote objects, running the RMI registry, and compiling/running client and server code. An example is presented to demonstrate the required classes for a simple RMI application that retrieves a string remotely.
This document provides an overview of database management systems (DBMS). It discusses DBMS architecture, data models including entity-relationship and relational models, data schemas, data independence, and the entity-relationship model. It also covers relational data modeling, Codd's 12 rules for relational databases, and mapping from entity-relationship diagrams to relational schemas. The intended audience is computer science graduates and prerequisites include basic computer concepts.
This document provides an introduction to data structures and algorithms. It discusses how data structures store data efficiently and how they are used in enterprise applications. The target audience is computer science graduates and software professionals looking to learn about data structures and algorithms. Basic prerequisites include understanding C programming, text editors, and executing programs. The document outlines different sections to be covered, including basics of data structures and algorithms, asymptotic analysis, common algorithms like greedy, divide and conquer, and dynamic programming, and specific data structures like arrays.
This document provides an overview of wireless communication. It discusses key topics such as features of wireless communication including transmission distance and applications. It also outlines some advantages of wireless communication such as mobility and lack of need for wires. Finally, it introduces various terms used in mobile telephony and multiple access techniques including FDMA, TDMA, CDMA and more that allow multiple users to access the network simultaneously.
This document provides an overview of cryptography. It begins by explaining the origins of cryptography in ancient civilizations and how it has evolved over time. It then discusses the components of a cryptosystem, including plaintext, encryption/decryption algorithms and keys. Finally, it outlines different types of cryptosystems and their basic functions in encrypting and decrypting data to provide confidentiality during transmission.
This document provides an overview of cosmology and summarizes some of the major discoveries in the field. It introduces concepts like the expanding universe, Hubble's law, and the Big Bang theory. It also explains cosmological phenomena such as the cosmic microwave background radiation and discusses evidence that has helped scientists understand dark matter and dark energy. The tutorial is intended for students and early-career astronomers who want to learn more about cosmological observations and theories.
This document provides an overview of control systems and their analysis. It introduces various modeling methods for control systems including mathematical models using differential equations and transfer functions. It also discusses modeling of mechanical systems, block diagrams, time response analysis, stability analysis and other fundamental control systems concepts. The document contains 17 chapters and is intended to teach readers about analyzing and improving the performance of control systems.
This document provides an overview of computer logical organization. It discusses key concepts such as analog versus digital signals, different number systems including binary, and binary codes. It also covers topics like number system conversions, error detection/correction, and complement arithmetic which are important aspects of computer logical organization. The intended audience is students pursuing computer science degrees. Basic computer knowledge is assumed as a prerequisite.
This document provides an overview of computer fundamentals. It explains that a computer accepts raw data as input, processes it under a set of instructions, and produces output which is saved for future use. It is intended for beginners and advanced learners, covering topics such as hardware, software, operating systems, and how to get the most value from computers. The document also provides information on computer components, memory types, number systems, and how to purchase a computer.
This document provides an overview of compiler design. It describes the different phases of a compiler including lexical analysis, syntax analysis, and code generation. It also outlines the overall architecture of a compiler, discussing the analysis and synthesis phases. The document is intended for students interested in learning the basic principles of compilers.
This document provides an overview of communication technologies and networking. It begins by discussing the history of communication from early speech to the development of the telephone and telecommunication networks. It then outlines how computer networks have revolutionized modern communication. The document will cover the evolution of networks from ARPANET to the Internet, networking hardware and software components, and concepts of global communication. It is designed for readers interested in learning the basic concepts of how networks function.
This document provides an overview of biometrics and biometric systems. It discusses the basic components of a biometric system, including sensors to capture biometric data, a processing unit, a database to store templates, and an output interface. It also outlines the general process a biometric system uses for identification and verification. The document introduces key biometrics concepts and terminology. It describes the evolution of biometrics and some common applications of biometric systems.
BDD focuses on providing a shared process and tools to promote communication between software developers and business analysts. It uses examples written in a readable language to illustrate desired system behaviors. BDD emerged from test-driven development, which uses automated tests to drive development. A key BDD practice is specification by example, which involves collaboratively writing examples to illustrate requirements and then automating these examples as tests.
This document provides an introduction to basic computer concepts. It discusses that a computer receives input, processes it based on instructions, and provides output. It also notes that computers can perform repetitive tasks without error. The document then outlines that it will discuss the parts of a computer and microprocessors that enable efficient and correct task completion. It provides information on intended audience and prerequisites. Finally, it includes copyright information and a table of contents to guide the reader.
This document provides an overview of basic computer science concepts. It discusses the major components of a computer system including hardware, software, input/output devices. It also describes common operating systems like Windows and Unix, as well as network types including local area networks, metropolitan area networks, and wide area networks. The document is designed for students preparing for competitive exams to provide foundational computer science knowledge with no prerequisites.
This document provides an introduction to basic electronic components. It begins by discussing semiconductor physics concepts like quantum numbers, energy bands, and the Pauli exclusion principle. It then covers components like resistors, capacitors, inductors, and transistors. Resistors are discussed in terms of symbols, color coding, circuit connections in series and parallel, and types of resistors. Capacitors are similarly covered regarding symbols, how they work, color coding, capacitive reactance, temperature coefficients, and circuit connections. The document is intended for readers who want preliminary knowledge of basic electronic components.
The document discusses the objectives and fundamentals of auditing. It explains that the main objective of auditing is to ensure the financial reliability of an organization and provide an independent opinion on whether the books of accounts show a true and fair view. It also discusses the three main types of fraud that can be detected through auditing - misappropriation of cash, goods, and manipulation of accounts.
This document provides an overview of artificial neural networks (ANN). It describes ANN as parallel computing devices modeled after the human brain, with the objective of performing computational tasks faster than traditional systems. The document outlines some key concepts of ANN including its basic components like neurons and connections between neurons. It also discusses different types of ANN models and learning methods, including supervised and unsupervised learning. Finally, it notes that ANN can be useful for tasks like pattern recognition, classification, approximation, and data clustering.
This document provides an introduction to the topic of artificial intelligence. It discusses the goals and history of AI, as well as key areas of research like intelligent systems, search algorithms, fuzzy logic systems, natural language processing, and expert systems. The intended audience is students beginning their study of AI who want a broad overview of the field.
This document provides an overview of antennas used in communication systems. It begins by describing the intended audience, which are readers looking to learn about antenna fundamentals, parameters, types, and design considerations. The document then outlines topics that will be covered, including basic antenna terms, parameters, near and far field patterns, radiation patterns, beam width, polarization, and more. It also lists prerequisites of basic electromagnetic wave and communication system concepts. The document aims to explain how to calculate antenna parameters and select an appropriate antenna type for different applications.
This document provides an overview of analog communication techniques. It discusses various modulation techniques used in analog communication systems, including amplitude modulation (AM), double sideband suppressed carrier (DSBSC), single sideband suppressed carrier (SSBSC), and vestigial sideband (VSBSC) modulation. It also covers angle modulation techniques such as frequency modulation (FM) and phase modulation. The document provides mathematical expressions to describe the different modulation techniques and discusses modulators and demodulators used for each type of modulation.
Christian education is an important element in forming moral values, ethical Behaviour and
promoting social unity, especially in diverse nations like in the Caribbean. This study examined
the impact of Christian education on the moral growth in the Caribbean, characterized by
significant Christian denomination, like the Orthodox, Catholic, Methodist, Lutheran and
Pentecostal. Acknowledging the historical and social intricacies in the Caribbean, this study
tends to understand the way in which Christian education mold ethical decision making, influence interpersonal relationships and promote communal values. These studies’ uses, qualitative and quantitative research method to conduct semi-structured interviews for twenty
(25) Church respondents which cut across different age groups and genders in the Caribbean. A
thematic analysis was utilized to identify recurring themes related to ethical Behaviour, communal values and moral development. The study analyses the three objectives of the study:
how Christian education Mold’s ethical Behaviour and enhance communal values, the role of
Christian educating in promoting ecumenism and the effect of Christian education on moral
development. Moreover, the findings show that Christian education serves as a fundamental role
for personal moral evaluation, instilling a well-structured moral value, promoting good
Behaviour and communal responsibility such as integrity, compassion, love and respect. However, the study also highlighted challenges including biases in Christian teachings, exclusivity and misconceptions about certain practices, which impede the actualization of
♥☽✷♥
Make sure to catch our weekly updates. Updates are done Thursday to Fridays or its a holiday/event weekend.
Thanks again, Readers, Guest Students, and Loyalz/teams.
This profile is older. I started at the beginning of my HQ journey online. It was recommended by AI. AI was very selective but fits my ecourse style. I am media flexible depending on the course platform. More information below.
AI Overview:
“LDMMIA Reiki Yoga refers to a specific program of free online workshops focused on integrating Reiki energy healing techniques with yoga practices. These workshops are led by Leslie M. Moore, also known as LDMMIA, and are designed for all levels, from beginners to those seeking to review their practice. The sessions explore various themes like "Matrix," "Alice in Wonderland," and "Goddess," focusing on self-discovery, inner healing, and shifting personal realities.”
♥☽✷♥
“So Life Happens-Right? We travel on. Discovering, Exploring, and Learning...”
These Reiki Sessions are timeless and about Energy Healing / Energy Balancing.
A Shorter Summary below.
A 7th FREE WORKSHOP
REiki - Yoga
“Life Happens”
Intro Reflections
Thank you for attending our workshops. If you are new, do welcome. We have been building a base for advanced topics. Also, this info can be fused with any Japanese (JP) Healing, Wellness Plans / Other Reiki /and Yoga practices.
Power Awareness,
Our Defense.
Situations like Destiny Swapping even Evil Eyes are “stealing realities”. It’s causing your hard earned luck to switch out. Either way, it’s cancelling your reality all together. This maybe common recently over the last decade? I noticed it’s a sly easy move to make. Then, we are left wounded, suffering, accepting endless bad luck. It’s time to Power Up. This can be (very) private and quiet. However; building resources/EDU/self care for empowering is your business/your right. It’s a new found power we all can use for healing.
Stressin out-II
“Baby, Calm down, Calm Down.” - Song by Rema, Selena Gomez (Video Premiered Sep 7, 2022)
Within Virtual Work and VR Sims (Secondlife Metaverse) I love catching “Calm Down” On the radio streams. I love Selena first. Second, It’s such a catchy song with an island feel. This blends with both VR and working remotely.
Its also, a good affirmation or mantra to *Calm down* lol.
Something we reviewed in earlier Workshops.
I rarely mention love and relations but theres one caution.
When we date, almost marry an energy drainer/vampire partner; We enter doorways of no return. That person can psychic drain U during/after the relationship. They can also unleash their demons. Their dark energies (chi) can attach itself to you. It’s SYFI but common. Also, involving again, energy awareness. We are suppose to keep our love life sacred. But, Trust accidents do happen. The Energies can linger on. Also, Reiki can heal any breakup damage...
(See Pres for more info. Thx)
SEM II 3202 STRUCTURAL MECHANICS, B ARCH, REGULATION 2021, ANNA UNIVERSITY, R...RVSPSOA
Principles of statics. Forces and their effects. Types of force systems. Resultant of concurrent and
parallel forces. Lami’s theorem. Principle of moments. Varignon’s theorem. Principle of equilibrium.
Types of supports and reactions-Bending moment and Shear forces-Determination of reactions for
simply supported beams. Relation between bending moment and shear force.
Properties of section – Centre of gravity, Moment of Inertia, Section modulus, Radius of gyration
for various structural shapes. Theorem of perpendicular axis. Theorem of parallel axis.
Elastic properties of solids. Concept of stress and strain. Deformation of axially loaded simple bars.
Types of stresses. Concept of axial and volumetric stresses and strains. Elastic constants. Elastic
Modulus. Shear Modulus. Bulk Modulus. Poisson’s ratio. Relation between elastic constants.
Principal stresses and strain. Numerical and Graphical method. Mohr’s diagram.
R.K. Bansal, ‘A Text book on Engineering Mechanics’, Lakshmi Publications, Delhi,2008.
R.K. Bansal, ‘A textbook on Strength of Materials’, Lakshmi Publications, Delhi 2010.
Paul W. McMullin, 'Jonathan S. Price, ‘Introduction to Structures’, Routledge, 2016.
P.C. Punmia, ‘Strength of Materials and Theory of Structures; Vol. I’, Lakshmi
Publications, Delhi 2018.
2. S. Ramamrutham, ‘Strength of Materials’, Dhanpatrai and Sons, Delhi, 2014.
3. W.A. Nash, ‘Strength of Materials’, Schaums Series, McGraw Hill Book Company,1989.
4. R.K. Rajput, ‘Strength of Materials’, S.K. Kataria and Sons, New Delhi , 2017.
Here is the current update:
CURRENT CASE COUNT: 897
- Texas: 742 (+14) (55% of cases are in Gaines County). Includes additional numbers from El Paso.
- New Mexico: 79 (+1) (83% of cases are from Lea County)
- Oklahoma: 17
- Kansas: 59 (+3) (38.89% of the cases are from Gray County)
HOSPITALIZATIONS: 103
- Texas: 94 – This accounts for 13% of all cases in Texas.
- New Mexico: 7 – This accounts for 9.47% of all cases in New Mexico.
- Kansas: 3 – This accounts for 5.08% of all cases in Kansas.
DEATHS: 3
- Texas: 2 – This is 0.28% of all cases in Texas.
- New Mexico: 1 – This is 1.35% of all cases in New Mexico.
US NATIONAL CASE COUNT: 1,132 (confirmed and suspected)
INTERNATIONAL SPREAD
Mexico: 1,856(+103), 4 fatalities
- Chihuahua, Mexico: 1,740 (+83) cases, 3 fatalities, 4 currently hospitalized.
Canada: 2,791 (+273)
- Ontario, Canada: 1,938 (+143) cases. 158 (+29) hospitalizations
- Alberta, Canada: 679 (+119) cases. 4 currently hospitalized
Happy Summer Everyone. This is also timeless for future viewing.
You all have been upgraded from ‘Guest’ Students to ‘Graduate’ Students. Do Welcome Back. For new guests, please see our free weekly workshops from Spring ‘25’
Blessings, Love, and Namaste’.
Do Welcome to Summer ‘25’ for LDMMIA.
TY, for surviving our First Season/Term of our Reiki Yoga Workshops. These presentations/workshop are designed for your energy wellness.
Also, professional expansion for Summer ‘25’. All updates will be uploaded here and digital notes within our Merch Shop. (I am Completely, using the suggestions of AI for my Biz style. Its spooky accurate. So far, AI has been very helpful for office and studio admin. I even updated my AI avatars. Similar to my SL Meta avatar.)
Do take Care of yourselves. This is only a Bonus Checkin. The Next Workshop will be Lecture/Session 8. I will complete by Friday.
https://ldm-mia.creator-spring.com/
Odoo 18 Point of Sale PWA - Odoo SlidesCeline George
Progressive Web Apps (PWA) are web applications that deliver an app-like experience using modern web technologies, offering features like offline functionality, installability, and responsiveness across devices.
Prottutponnomotittwa: A Quiz That Echoed the Pulse of Bengal
On the 31st of May, 2025, PRAGYA – The Official Quiz Club of UEM Kolkata – did not merely organize another quiz. It hosted an ode to Bengal — its people, its quirks, its politics, its art, its rebellion, its heritage. Titled Prottutponnomotittwa, the quiz stood as a metaphor for what Bengal truly is: sharp, intuitive, spontaneous, reflective. A cultural cosmos that thrives on instinct, memory, and emotion.
From the very first slide, it became clear — this wasn’t a quiz made to showcase difficulty or elitism. It was crafted with love — love for Bangla, for its past, present, and its ever-persistent contradictions.
The diversity of the answer list tells the real story of the quiz. The curation was not random. Each answer was a string on a veena of cultural resonance.
In the “Cultural Pairings” round, Anusheh Anadil and Arnob were placed not just as musicians, but as voices of a modern, cross-border Bangla. Their works, which blend baul, jazz, and urban folk, show how Bengal exists simultaneously in Dhaka and Shantiniketan.
The inclusion of Ritwik Chakraborty and Srijit Mukherjee (as a songwriter) showed how the quiz masters understood evolution. Bangla cinema isn’t frozen in the Ray-Ghatak past. It lives, argues, breaks molds — just like these men do.
From Kalyani Black Label to Radhunipagol Chal, consumer culture too had its place. One is liquid courage, the other culinary madness — both deeply Bengali.
The heart truly swelled when the answers touched upon Baidyanath Bhattacharya and Chandril. Both satirists, both sharp, both essential. It was not just about naming them — it was about understanding what different types of literature means in a Bengali context.
Titumir — the play about a peasant rebel who built his own bamboo fort and dared to challenge the British.
Krishnananda Agamvagisha — the mystical Tantric who shaped how we understand esoteric Bengali spiritualism.
Subhas Chandra Bose — the eternal enigma, the braveheart whose shadow looms large over Bengal’s political psyche.
Probashe Ghorkonna — a story lived by many Bengalis. The medinipur daughter, who made a wholesome family, not only in bengal, but across the borders. This answer wasn’t just information. It was emotion.
By the end, what lingered was not the scoreboard. It was a feeling.
The feeling of sitting in a room where Chalchitro meets Chabiwala, where Jamai Shosthi shares the stage with Gayatri Spivak, where Bhupen Hazarika sings with Hemanga Biswas, and where Alimuddin Road and Webskitters occupy the same mental map.
You don’t just remember questions from this quiz.
You remember how it made you feel.
You remember smiling at Keet Keet, nodding at Prabuddha Dasgupta, getting goosebumps at the mention of Bose, and tearing up quietly when someone got Radhunipagol Chal right.
This wasn’t a quiz.
This was an emotional ride of Bangaliyana.
This was — and will remain — Prottutponnomotittwa.
Types of Actions in Odoo 18 - Odoo SlidesCeline George
In Odoo, actions define the system's response to user interactions, like logging in or clicking buttons. They can be stored in the database or returned as dictionaries in methods. Odoo offers various action types for different purposes.
How to Setup Lunch in Odoo 18 - Odoo guidesCeline George
In Odoo 18, the Lunch application allows users a convenient way to order food and pay for their meal directly from the database. Lunch in Odoo 18 is a handy application designed to streamline and manage employee lunch orders within a company.
How to Create a Stage or a Pipeline in Odoo 18 CRMCeline George
In Odoo, the CRM (Customer Relationship Management) module’s pipeline is a visual representation of a company's sales process that helps sales teams track and manage their interactions with potential customers.
Introduction to Online CME for Nurse Practitioners.pdfCME4Life
Online CME for nurse practitioners provides a flexible, cost-effective way to stay current with evidence-based practices and earn required credits without interrupting clinical duties. Accredited platforms offer a wide range of self-paced courses—complete with interactive case studies, downloadable resources, and immediate digital certificates—that fit around demanding schedules. By choosing trusted providers, practitioners gain in-depth knowledge on emerging treatments, refine diagnostic and patient-management skills, and build professional credibility. Know more at https://cme4life.com/the-benefits-of-online-cme-for-nurse-practitioners/
Updated About Me. Used for former college assignments.
Make sure to catch our weekly updates. Updates are done Thursday to Fridays or its a holiday/event weekend.
Thanks again, Readers, Guest Students, and Loyalz/teams.
This profile is older. I started at the beginning of my HQ journey online. It was recommended by AI. AI was very selective but fits my ecourse style. I am media flexible depending on the course platform. More information below.
AI Overview:
“LDMMIA Reiki Yoga refers to a specific program of free online workshops focused on integrating Reiki energy healing techniques with yoga practices. These workshops are led by Leslie M. Moore, also known as LDMMIA, and are designed for all levels, from beginners to those seeking to review their practice. The sessions explore various themes like "Matrix," "Alice in Wonderland," and "Goddess," focusing on self-discovery, inner healing, and shifting personal realities.”
Based in Wauconda, Diana Enriquez teaches dual-language social studies at West Oak Middle School, guiding students in grades 6-8. With a degree from Illinois State University and an ESL/Bilingual certification, she champions diversity and equity in education. Diana’s early experience as a special education paraprofessional shaped her commitment to inclusive and engaging learning.
"Hymenoptera: A Diverse and Fascinating Order".pptxArshad Shaikh
Hymenoptera is a diverse order of insects that includes bees, wasps, ants, and sawflies. Characterized by their narrow waists and often social behavior, Hymenoptera play crucial roles in ecosystems as pollinators, predators, and decomposers, with many species exhibiting complex social structures and communication systems.
Order: Odonata Isoptera and Thysanoptera.pptxArshad Shaikh
*Odonata*: Odonata is an order of insects that includes dragonflies and damselflies. Characterized by their large, compound eyes and agile flight, they are predators that feed on other insects, playing a crucial role in maintaining ecological balance.
*Isoptera*: Isoptera is an order of social insects commonly known as termites. These eusocial creatures live in colonies with complex social hierarchies and are known for their ability to decompose wood and other cellulose-based materials, playing a significant role in ecosystem nutrient cycling.
*Thysanoptera*: Thysanoptera, or thrips, are tiny insects with fringed wings. Many species are pests that feed on plant sap, transmitting plant viruses and causing damage to crops and ornamental plants. Despite their small size, they have significant impacts on agriculture and horticulture.
3. Java RMI
ii
TableofContents
About the Tutorial .....................................................................................................................................i
Audience....................................................................................................................................................i
Prerequisites..............................................................................................................................................i
Copyright & Disclaimer ..............................................................................................................................i
Table of Contents......................................................................................................................................ii
JAVA RMI ─ INTRODUCTION.................................................................................................1
Architecture of an RMI Application...........................................................................................................1
Working of an RMI Application.................................................................................................................2
Marshalling and Unmarshalling ................................................................................................................2
RMI Registry .............................................................................................................................................3
Goals of RMI .............................................................................................................................................3
JAVA RMI ─ RMI APPLICATION..............................................................................................4
Defining the Remote Interface..................................................................................................................4
Developing the Implementation Class (Remote Object)............................................................................5
Developing the Server Program ................................................................................................................5
Developing the Client Program .................................................................................................................7
Compiling the Application.........................................................................................................................8
Executing the Application .........................................................................................................................9
JAVA RMI ─ GUI APPLICATION............................................................................................11
Server Program.......................................................................................................................................15
Client Program........................................................................................................................................16
Steps to Run the Example .......................................................................................................................17
4. Java RMI
iii
JAVA RMI ─ DATABASE APPLICATION .................................................................................20
Creating a Student Class..........................................................................................................................20
Server Program.......................................................................................................................................24
Client Program........................................................................................................................................25
Steps to Run the Example .......................................................................................................................26
5. Java RMI
4
RMI stands for Remote Method Invocation. It is a mechanism that allows an object residing
in one system (JVM) to access/invoke an object running on another JVM.
RMI is used to build distributed applications; it provides remote communication between Java
programs. It is provided in the package java.rmi.
ArchitectureofanRMIApplication
In an RMI application, we write two programs, a server program (resides on the server) and
a client program (resides on the client).
Inside the server program, a remote object is created and reference of that object is
made available for the client (using the registry).
The client program requests the remote objects on the server and tries to invoke its
methods.
The following diagram shows the architecture of an RMI application.
JAVA RMI ─ INTRODUCTION
6. Java RMI
5
Let us now discuss the components of this architecture.
Transport Layer ─ This layer connects the client and the server. It manages the
existing connection and also sets up new connections.
Stub ─ A stub is a representation (proxy) of the remote object at client. It resides in
the client system; it acts as a gateway for the client program.
Skeleton ─ This is the object which resides on the server side. stub communicates
with this skeleton to pass request to the remote object.
RRL (Remote Reference Layer) ─ It is the layer which manages the references
made by the client to the remote object.
WorkingofanRMIApplication
The following points summarize how an RMI application works:
When the client makes a call to the remote object, it is received by the stub which
eventually passes this request to the RRL.
When the client-side RRL receives the request, it invokes a method called invoke() of
the object remoteRef. It passes the request to the RRL on the server side.
The RRL on the server side passes the request to the Skeleton (proxy on the server)
which finally invokes the required object on the server.
The result is passed all the way back to the client.
MarshallingandUnmarshalling
Whenever a client invokes a method that accepts parameters on a remote object, the
parameters are bundled into a message before being sent over the network. These
parameters may be of primitive type or objects. In case of primitive type, the parameters are
put together and a header is attached to it. In case the parameters are objects, then they are
serialized. This process is known as marshalling.
At the server side, the packed parameters are unbundled and then the required method is
invoked. This process is known as unmarshalling.
7. Java RMI
6
RMIRegistry
RMIregistry is a namespace on which all server objects are placed. Each time the server
creates an object, it registers this object with the RMIregistry (using bind() or reBind()
methods). These are registered using a unique name known as bind name.
To invoke a remote object, the client needs a reference of that object. At that time, the client
fetches the object from the registry using its bind name (using lookup() method).
The following illustration explains the entire process:
GoalsofRMI
Following are the goals of RMI:
To minimize the complexity of the application
To preserve type safety
8. Java RMI
7
Distributed garbage collection
Minimize the difference between working with local and remote objects
9. Java RMI
8
To write an RMI Java application, you would have to follow the steps given below:
Define the remote interface
Develop the implementation class (remote object)
Develop the server program
Develop the client program
Compile the application
Execute the application
DefiningtheRemoteInterface
A remote interface provides the description of all the methods of a particular remote object.
The client communicates with this remote interface.
To create a remote interface –
Create an interface that extends the predefined interface Remote which belongs to
the package.
Declare all the business methods that can be invoked by the client in this interface.
Since there is a chance of network issues during remote calls, an exception named
RemoteException may occur; throw it.
Following is an example of a remote interface. Here we have defined an interface with the
name Hello and it has a method called printMsg().
import java.rmi.Remote;
import java.rmi.RemoteException;
// Creating Remote interface for our application
public interface Hello extends Remote {
void printMsg() throws RemoteException;
}
JAVA RMI ─ RMI APPLICATION
10. Java RMI
9
DevelopingtheImplementationClass(RemoteObject)
We need to implement the remote interface created in the earlier step. (We can write an
implementation class separately or we can directly make the server program implement this
interface.)
To develop an implementation class –
Implement the interface created in the previous step.
Provide implementation to all the abstract methods of the remote interface.
Following is an implementation class. Here, we have created a class named ImplExample
and implemented the interface Hello created in the previous step and provided body for this
method which prints a message.
// Implementing the remote interface
public class ImplExample implements Hello
{
// Implementing the interface method
public void printMsg() {
System.out.println("This is an example RMI program");
}
}
DevelopingtheServerProgram
An RMI server program should implement the remote interface or extend the implementation
class. Here, we should create a remote object and bind it to the RMIregistry.
To develop a server program –
Create a class that extends the implementation class implemented in the previous
step. (or implement the remote interface)
Create a remote object by instantiating the implementation class as shown below.
Export the remote object using the method exportObject() of the class named
UnicastRemoteObject which belongs to the package java.rmi.server.
Get the RMI registry using the getRegistry() method of the LocateRegistry class
which belongs to the package java.rmi.registry.
Bind the remote object created to the registry using the bind() method of the class
named Registry. To this method, pass a string representing the bind name and the
object exported, as parameters.
11. Java RMI
10
Following is an example of an RMI server program.
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server extends ImplExample{
public Server() {}
public static void main(String args[]) {
try {
// Instantiating the implementation class
ImplExample obj = new ImplExample();
// Exporting the object of implementation class
// (here we are exporting the remote object to the stub)
Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
// Binding the remote object (stub) in the registry
Registry registry = LocateRegistry.getRegistry();
registry.bind("Hello", stub);
System.err.println("Server ready");
} catch (Exception e) {
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}
}
12. Java RMI
11
}
DevelopingtheClientProgram
Write a client program in it, fetch the remote object and invoke the required method using
this object.
To develop a client program –
Create a client class from where you want invoke the remote object.
Get the RMI registry using the getRegistry() method of the LocateRegistry class
which belongs to the package java.rmi.registry.
Fetch the object from the registry using the method lookup() of the class Registry
which belongs to the package java.rmi.registry. To this method you need to pass a
string value representing the bind name as a parameter. This will return you the
remote object down cast it.
The lookup() returns an object of type remote, down cast it to the type Hello.
Finally invoke the required method using the obtained remote object.
Following is an example of an RMI client program.
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
private Client() {}
public static void main(String[] args) {
try {
// Getting the registry
Registry registry = LocateRegistry.getRegistry(null);
// Looking up the registry for the remote object
Hello stub = (Hello) registry.lookup("Hello");
13. Java RMI
12
// Calling the remote method using the obtained object
stub.printMsg();
// System.out.println("Remote method invoked");
} catch (Exception e) {
System.err.println("Client exception: " + e.toString());
e.printStackTrace();
}
}
}
CompilingtheApplication
To compile the application –
Compile the Remote interface.
Compile the implementation class.
Compile the server program.
Compile the client program.
Or,
Open the folder where you have stored all the programs and compile all the Java files as
shown below.
Javac *.java
14. Java RMI
13
ExecutingtheApplication
Step 1: Start the rmi registry using the following command.
start rmiregistry
This will start an rmi registry on a separate window as shown below.
15. Java RMI
14
Step 2: Run the server class file as shown below.
Java Server
Step 3: Run the client class file as shown below.
java Client
17. Java RMI
16
End of ebook preview
If you liked what you saw…
Buy it from our store @ https://store.tutorialspoint.com