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

Limitations

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

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