On 30 Sep 2005, at 01:35, Chris wrote:
The issue isn't the provider side, it's the consumer side. I thought the whole point of ESB was that I can provide a myriad of provider BCs eventually getting to a service implementation. For example, I could configure my JBI XyzConsumerVMBC to route to an XyxProviderHessianBC. The point being I don't want to have to go through another transformation; I want to be able to have my client retrieve (or have an implementation injected) a POJO implementation of an interface and not care where the true implementation is. I want my client to invoke a method on a Java interface and not care what the implementation is. If I have to use JMS, I'm locked into JMS.

Using Spring's remoting solutions, I can, through configuration only, have my client code to an interface, the implementation I retrieve via the ApplicationContext, and choose a variety of (java- oriented) protocols. If I want a concrete implementation, my ApplicationContext refers to a local implementation. If I need a remote implementation, I use the appropriate remoting solution. I want the same freedom in ServiceMix. Is what I diagrammed in the original post adequate, or is there a better way?

So you're looking at this from an application developer's perspective right - you want a type-safe POJO to some service and to invoke it through a POJO interface like Spring Remoting right?

Then you might invoke the service locally; or you could use spring remoting and some transport protocol to get to the actual service. FWIW Lingo already does Spring remoting using JMS. I've pondered about adding JBI support in Lingo; so you could keep your Spring remoting layer and use it to invoke operations inside of JBI and so forth. Is that the kind of thing you mean?

Other options are to use something like JAX-WS where you take your interfaces and POJOs and it auto-generates a WSDL (or the other way around) then your client can use HTTP/JMS under the covers while you stick to your POJO interface. Similarly you can deploy your implementation inside JAX-WS (or currently, inside ServiceMix using a JAX-WS binding) and expose the service to POJOs or JBI endpoints alike.

So going back to your original question; if you want an in-JVM interface which takes a POJO client stub and converts it into JBI operations; - we'd just need to wire in JBI as a transport into either the JAX-WS RI or Celtix.

James




Philip Dodds wrote:


This looks more akin to using JAX-WS to generate a SOAP interface, once you have a WSDL for you SOAP interface you can use JAXB 2.0 to generate a set of POJO's so that you can call the SOAP interface through a POJO. You might find this approach better than developing a specific BC for it. You might want to have a look at the stuff James has done on WS-Notification where he is using JAX-WS and JAXB 2:

See http://www.servicemix.org/WS+Notification, and also http:// servicemix.org/maven/ws/jaxws/wspojo/apidocs/org/servicemix/wspojo/ notification/package-summary.html <http://servicemix.org/maven/ws/ jaxws/wspojo/apidocs/org/servicemix/wspojo/notification/package- summary.html> and http://servicemix.codehaus.org/maven/ws/jaxws/ wspojo/apidocs/index.html.

Cheers

P



On 9/29/05, *Chris* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Is it reasonable to create a BC that is basically a specific VM
    interface?  The way I see it, is why go through another
    transformation (e.g. JMS) rather than just create a specific BC
    for the interface in question.




Am I missing something? Or is this an appropriate use of ServiceMix?






James
-------
http://radio.weblogs.com/0112098/

Reply via email to