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.
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.
The file example describes an implementation of a stateful external plug-in in the Python programming language.
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 net.juniper.smgt.sae.sspPlugin.PluginInterfacePOA 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:
- aName is a prefix for finding properties in the properties object, which are named "Plugin.<aName>.<property>"
- aProp is a property object that contains system configuration data
Generated on Tue Jun 15 10:17:14 2010 for SAE CORBA Plug-In Service Provider Interface (SPI) by