Differences between revisions 2 and 3
Revision 2 as of 2007-01-11 00:19:34
Size: 4492
Comment: typo fix
Revision 3 as of 2009-09-20 22:47:41
Size: 4492
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

Support for Async Callbacks

Async callbacks allow a component to perform a request on another component and to receive its response asynchronously via a callback. This feature follows the programming model specified in the SCA Client and Implementation Model for Java (found in http://osoa.org/display/Main/Service+Component+Architecture+Specifications).

Currently, async callbacks are supported for components wired via bindless references, and via references with a web services binding using Axis2 (WS/Axis2).

Async Callbacks via Bindless References

In this mode, a source component uses a reference that does not include a binding, which is then wired to a target component via a service that does not include a binding either. For an example, see the inner.composite sample. To illustrate, an excerpt of the SCDLs for the inner.composite sample is as follows:

Source Composite

Contained in InnerComposite.scdl

Target Composite

Contained in InnerComposite2.scdl

Containing Composite

Contained in default.scdl

Async Callbacks via WS/Axis2 Binding

In this mode, the reference and service used by the source and target components use a WS/Axis2 binding (<binding.ws/>). For an example, see the helloworldws-async and helloworldwsclient-async samples. A preview of the SCDLs is as follows:

Server side

Client side


Currently, async callbacks over WS/Axis2 has the following limitations:

  • The callback interface can only use a single method
  • The WSDL definition in use must include a port type that describes the callback interface separately, see resources/META-INF/wsdl/helloworld.wsdl

Tuscany/TuscanyJava/SCA_Java/AsyncCallbacks (last edited 2009-09-20 22:47:41 by localhost)