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