I have been working to try and understand the connections architecture in the jbi.xml and how it is best implemented?  As I understand it the SUM is responsible for creating the ServiceEndPoints for a SA, it will basically activate each of these, in the jbi.xml you can reference provides and consumes, however the container just ignores these and they are really just there for third-party tools that might want to show what is available.

 

The only bit the container seems to be interested in is the connections/connection, as I understand it if I have a service starting an InOnly exchange (in the example this is the quartz:QuartzProvider) and another service wishing to receive that message (the logger:LoggerConsumer) then I can join them up using the jbi.xml as shown below:

 

<connections>

            <connection>

                        <consumer service-name="quartz:QuartzProvider"

                                    endpoint-name="Notification" />

                        <provider service-name="logger:LoggerConsumer"

                                    endpoint-name="Consumer" />

            </connection>

</connections>

 

So under this model I can write JBI services that do not need to know where they publish to since that can be mapped in the jbi.xml.  However, there are a few bits I don’t understand.

 

The connection was originally made through an interface-name,  however in my SUM I can’t see how I can activate an ServiceEndPoint to an interface-name,  in fact I can’t see how interface names work in the context of a ServiceEndPoint,  I though that they were a way of specifying a endpoint without a service name or endpoint name.  Much is made in the specification about WSDL and interfaces and I would like to understand how that is tied to the endpoints,  I assumed that I could expose multiple interfaces to a service through different endpoints?

 

Next up it while when I create an exchange I can specify the name of the endpoint on which I wish to create the message I don’t see how this is achieved on a delivery channel, should I implement a delivery channel helper that is able to receive messages and then send them to a specific endpoint, and if so how I do determine the end point to which a message is destined?  This goes back to my first question which is really around exposing different interfaces to a service and being able to deliver the messages to those interfaces so that I am able to denote different endpoints?

 

So many questions! J

 

Cheers

 

P

Reply via email to