Java EE Service Engine as Service Provider and Service Consumer
JBI uses the abstract service model as the main basis of component interactions. As with other JBI runtime components, the Java EE Service Engine can act either as a service provider that performs a service, or as a service consumer that invokes a service.
Java EE Service Engine as a Service Provider
The Java EE Service Engine functions as a service provider by enabling an endpoint in the NMR. When a Java EE web service is deployed, the deployment runtime of application server notifies the Java EE Service Engine so that an endpoint is enabled in the NMR of the JBI runtime. The notification enables any component deployed in the NMR to access the Java EE web service. For example, a BPEL application running inside the BPEL service engine can access the Java EE web service by sending a normalized message to the endpoint enabled by the Java EE Service Engine. This way of accessing Java EE web services is an alternative to the normal web service client access defined by JAX-WS.
Java EE Service Engine as a Service Consumer
When a Java EE application needs to access an endpoint of a service provider deployed in the JBI runtime environment, the Java EE Service Engine communicates with the application server and the NMR in the JBI environment. In this case, the Java EE Service Engine normalizes the SOAP message that otherwise would have been used in the JAX-WS communication and sends it to the NMR. This normalized message is handled by a service that has been enabled by a service provider deployed in the JBI runtime environment. The following illustration depicts three JBI binding components acting as service providers, offering application-specific content to external clients.