Hi,

The simplest approach is to create a binding interface contract in WSDL out of the java interface using document-literal-wrapper style, set the databinding to an XML one such as AXIOM, DOM or XMLString, then the databinding framework will create a wrapper XML element representing the payload.

JavaBeans will be treated as JAXB objects with default Java/XML mapping rules. They will be marshaled as XML too.

Thanks,
Raymond

--------------------------------------------------
From: "Wojtek Janiszewski" <[EMAIL PROTECTED]>
Sent: Wednesday, July 23, 2008 3:25 PM
To: <[email protected]>
Subject: Re: [DISCUSS] Next steps to develop CORBA support for Tuscany

Hi, Raymond.

Do we need to use any specific schema for message body, or we introduce our own?

To fill argument, result and faults attributes we will use serializers from SDO and JAXB. How about Java serializable objects? Are there any XML serializers to use, or can we just use standard object serialization (ie. writeObject(..) from ObjectOutputStream)?

Thanks,
Wojtek

Raymond Feng wrote:
Hi, Wojtek.

I have looked into the code to support binding.sca over CORBA (or RMI/IIOP). There is one issue I would like to bring up. At this moment, we pass the input/output/fault data based on the operation signature to/from CORBA. This approach works well if all the data types are RMI/IIOP-friendly, such as primitive types or Serializable classes. But it will have trouble deal with XML-friendly data types such as JAXB or SDO which are not necessarily java Serializable. By the SCA spec, the remotable interfaces should be mappable to WSDL (which hints XSD). Favoring XML over Java as the wire format will make more sense in the SOA world. In fact, that's why we initially implement binding.sca over Web Service.

I suggest that we take a slight different approach to exchange data for binding.sca over the CORBA transport. We will define a fixed CORBA operation to exchange the input/output/fault data. For example,

public interface SCABindingService {
   String invoke(String inputMessage) throws WrappedServiceException;
}

WrappedServiceException will be used to wrap a business fault (in XML String format).
public class WrappedServiceException extends Exception {
   private String faultMessage;

   public String getFaultMessage();
   public void setFaultMessage(String faultMessage);
}

All the data will be represented as XML strings in UTF-8 encoding following the JAX-WS document-literal-wrapper style. For example,

Request:
<op1 ...>
   <arg0>...</arg0>
   ...
   <argN>...</argN>
</op1>

Response:
<op1Response ...>
   <return>...</return>
</op1>

Fault:
<fault1 ...>
   ...
</fault1>

What do you think?

Thanks,
Raymond

--------------------------------------------------
From: "Wojtek Janiszewski" <[EMAIL PROTECTED]>
Sent: Tuesday, July 22, 2008 11:35 AM
To: <[email protected]>
Subject: Re: [DISCUSS] Next steps to develop CORBA support for Tuscany

Doing (2) sounds good to me as well, and one other thing as you've made such great progress with the binding would be write some doc about it for the wiki like we have for the other extensions. You could add a page in http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Home to work on it and use the others as examples, eg [1], [2], [3].

   ...ant

[1] http://tuscany.apache.org/sca-java-bindingjms.html
[2] http://tuscany.apache.org/sca-java-bindingejb.html
[3] http://tuscany.apache.org/sca-java-bindingws.html


Hi,
I've just created first version of CORBA binding doc [1]. I'm wondering if I should describe how user should provide correct Java interface - now I just linked to mapping rules on OMG site.
Any comments and edits are appreciated!

Thanks,
Wojtek

[1] - http://cwiki.apache.org/confluence/display/TUSCANYWIKI/SCA+Java+binding.corba

Reply via email to