Basic Concepts

OiL is an extensible component-based architecture for object request brokers (ORB). An ORB provides an infrastructure to perform remote method invocations (RMI) on objects residing in separated processes, possibly through a network. The use of an ORB is one of the most common ways to develop distributed object-oriented applications. OiL is available though the The oil Module.

OiL is a very flexible ORB and almost every one of its aspects can be changed by replacement of its components (see the Internal Architecture). Nevertheless, OiL relies on three fundamental concepts that define the programming model supported:

Is the medium remote invocations are sent through. To perform remote invocations, it is necessary to create at least one broker. Multiple brokers can be used to define multiple ways to perform or receive invocations.
Is an object registered in a broker to receive remote invocations. The services provided by a servant can be accessed by remote clients.
Is a local object that represents a remote servant. All method invocations on a proxy result in a similar invocation on the remote servant it represents.


An essential feature common in almost every ORB is the support for multithreading. OiL supports a cooperative multithreading model which is implemented over the coroutines provided by Lua. This model of multithreading is considerably different from preemptive multithreading, which is supported by most modern platforms. For a complete discussion about the multithreading model supported by standard OiL see section Cooperative Multithreading.

Copyright (C) 2004-2008 Tecgraf, PUC-Rio

This project is currently being maintained by Tecgraf at PUC-Rio.