SAE CORBA Plug-In Service Provider Interface (SPI)



The plug-in SPI is defined by CORBA IDL, which needs to be implemented by plug-ins. The use of CORBA allows for language-independent implementation as well as location-independent deployment.

Resolving the Object Reference

You must instantiate and initialize the plug-in and export its object reference to the SAE. You can export the object reference through a COSNamingService, or you can write the stringified IOR to a file. When the SAE sends the first event to a registered plug-in, it resolves the object reference. Subsequent events are sent to the established object reference unless the remote call fails. In case of a failure, the SAE resolves the object reference again. Then, if a plug-in restarts and instantiates a different object (that is, a different object reference), the SAE learns about the new object through the naming service or the file reference.

You can also configure the stringified IOR directly. However, you need to make sure that the same object (that is, the same object reference) is instantiated. For example, this can be achieved through a CORBA persistent reference.You can configure the SAE to resolve the object reference and specify which attributes to send to the external plug-in with SDX Configuration Editor. For more information about configuring external plug-ins on the SAE, see Configuring SAE Properties in SDX Components Guide, Vol. 1.

External Plug-In Example

The file example describes an implementation of a stateful external plug-in in the Python programming language.

Hosted Plug-Ins

Hosted plug-ins, like the external ones, implement the PluginInterface (or SyncPluginInterface) CORBA interface. Unlike the external ones, hosted plug-ins are instantiated (that is, hosted) by the SAE. As a result, they live in the same JVM process as the host SAE. For that to be possible, such plug-ins must be implemented in Java. Furthermore, they must extend and have a public constructor that matches the following signature or a default constructor:

<constructor name>(java.lang.String aName, java.util.Properties aProp) where:

Generated on Tue May 24 14:55:30 2011 for SAE CORBA Plug-In Service Provider Interface (SPI) by  doxygen 1.4.7