The Oplet Runtime Environment (ORE) is a platform for deploying network services. Some example services are:
The ORE makes no assumptions about what a service can do, or how it is implemented. To be a service, all the code needs to do is declared an interface for the service that extends com.nortelnetworks.ore.OpletService, and to provide an object that implements that interface. Services are distributed in a deployment unit called an oplet which controls when they are started and stopped. After it starts a service the oplet registers it with the ORE, and before it stops the service it unregisters it. This keeps the ORE's view of the currently available services up to date.
Services export their functionality to other oplets running on the network element (NE), and they can also make use of services provided by other oplets. Using such a service creates a dependency between the oplet providing this service and the other service. Information describing these dependencies is provided to the ORE by the oplet, and the ORE ensures that the dependencies are always satisfied. If, for some reason, a required service is unavailable a runtime error is generated.
Services are identified with a service description. These descriptions are comprised of two parts:
For example, an oplet that provides logging services might
declare an interface MyLogger, and then provide one
implementation that writes the log to local persistent storage,
and another implementation that transmits the log messages across
the network to a server. In this case the oplet provides two
different service objects that implement that
MyLogger interface. These objects would be
registered using different service descriptions. Both service
descriptions would use the MyLogger interface name,
but they would have different service-specific names.
There is no requirement that the oplet that provides the service interface is the only one that can provide an implementation of it. It is quite legal for two oplets to both register an implementation of a service, each with different service-specific names. For this to be possible, the oplet that does not contain the interface definition must declare a depdendency on that service.
Oplets use service descriptions to report their service
dependencies. Oplets that subclass ManifestOplet
declare their service dependencies in the oplet JAR file manifest
using a textual notation for
service descriptions.
| Top | ORE SDK V0.3.0, Mon Feb 14 14:00:19 PST 2000 | Rob Duncan |