# Contents for Programming WebLogic RMI

# Understanding WebLogic RMI

The following sections introduce and describe the features of WebLogic RMI.

- What is WebLogic RMI?
- Features of WebLogic RMI

# What is WebLogic RMI?

Remote Method Invocation (RMI) is the standard for distributed object computing in Java. RMI enables an application to obtain a reference to an object that exists elsewhere in the network, and then invoke methods on that object as though it existed locally in the client's virtual machine. RMI specifies how distributed Java applications should operate over multiple Java virtual machines.

This document contains information about using WebLogic RMI, but it is not a beginner's tutorial on remote objects or writing distributed applications. If you are just beginning to learn about RMI, visit the JavaSoft Web site and take the RMI tutorial.

# Features of WebLogic RMI

The following tables highlight important features of WebLogic implementation of RMI:

Table 1-1 WebLogic RMI Features

Feature | WebLogic RMI
--- | ---
Overall performance | Enhanced by WebLogic RMI integration into the WebLogic Server framework, which provides underlying support for communications, scalability, management of threads and sockets, efficient garbage collection, and server-related support.
Standards compliant | Compliance with the JavaTM 2 Platform Standard Edition 1.4 API Specification
WebLogic RMI compiler | Stubs and skeletons dynamically generated by WebLogic RMI at run time, which obviates need to explicitly run `weblogic.rmic`, except for clusterable or Internet Inter-ORB Protocol (IIOP) clients.
Failover and Loadbalancing | WebLogic Server support for failover and loadbalancing of RMI objects.
Security Support | No Security Manager required. WebLogic Server implements authentication, authorization, and J2EE security services.
Transaction Support | WebLogic Server supports transactions in the Sun Microsystems, Inc., JavaTM 2, Enterprise Edition (J2EE) programming model.
Dynamic Proxies | A class used by the clients of a remote object. In the case of RMI, skeleton and a stub classes are used. The stub class is the instance that is invoked upon in the client's Java Virtual Machine (JVM). The skeleton class, which exists in the remote JVM, unmarshals the invoked method and arguments on the remote JVM, invokes the method on the instance of the remote object, and then marshals the results for return to the client.