To access services, AFEs use the interface called the VEMInterface implemented by the workspace object. The workspace object delegates the VEMInterface calls to its member VEM object, that truly implements the VEMInterface.
To bind to a service, the AFE calls the requestService() method on its workspace reference. The requestService() method takes the AFE instance, the name of the service, and a preferred list of attribute/value pairs as arguments. A Metis object, called a ServiceInfo, is returned that contains an instance of the service stub or, if desired, the service location. All information needed to access the service is now available to the AFE. Should a service fail while being used, the AFE can re-request a new service by calling the recoverService() method on the workspace, passing a reference to itself and the active ServiceInfo object.