diff options
Diffstat (limited to 'sca-java-2.x/contrib/samples/learning-more/binding-comet/single-response-webapp/README')
-rw-r--r-- | sca-java-2.x/contrib/samples/learning-more/binding-comet/single-response-webapp/README | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/sca-java-2.x/contrib/samples/learning-more/binding-comet/single-response-webapp/README b/sca-java-2.x/contrib/samples/learning-more/binding-comet/single-response-webapp/README deleted file mode 100644 index 57702664d7..0000000000 --- a/sca-java-2.x/contrib/samples/learning-more/binding-comet/single-response-webapp/README +++ /dev/null @@ -1,79 +0,0 @@ -Tuscany - Learning More - Binding Comet - Autocomplete Webapp ------------------------------------------------------------------ - -This sample demonstrates how Tuscany can expose services via Comet techniques -as well as how to interact with them using Tuscany's javascript API. - -This project contains a service (CountryService) that handles requests asking -for country names starting with a certain prefix. The service implementation -uses a country repository to fetch the necessary data. - -By adding <tuscany:binding.comet/> to a service definition, the Tuscany runtime -will handle the communication between the browser client and the service -implementation using Comet techniques. This enables bidirectional communication -over HTTP, therefore enabling server push. For more information, check -http://en.wikipedia.org/wiki/Comet_(programming). - -The comet binding is using the Atmosphere Framework under the hood to acomodate -as many deployment envorinments as possible. Basically, it checks if the -application server supports Servlet 3.0 falling back to a number of native -comet solutions provided by vendors (Jetty, Tomcat, WebLogic, GlassFish and -others). If none is available, Atmosphere will fallback to blocking IO. - -Invoking comet services can be done using Tuscany's javascript API which simulates -SCA in the browser. It uses the Atmosphere jQuery plugin under the hood. In order -to use it, the following script has to be included in the client page: - <script type="text/javascript" - src="tuscany-comet-js/org.apache.tuscany.sca.CometComponentContext.js"> - </script> - -The javascript toolkit permits choosing between two comet techniques: HTTP streaming -and long polling. More detailed information about them can be found on the previously -mentioned wikipedia page. - -First, a connect operation has to be issued in order to initiate communication -with the server side using the technique of your choice. This is done using the -connection method as follows: - SCA.TuscanyComet.connect('streaming'); // for HTTP streaming - SCA.TuscanyComet.connect('long-polling'); // for long polling - SCA.TuscanyComet.connect(); // starts with HTTP streaming and falls back to long polling if necessary - -The Tuscany Comet toolkit will inject proxies for all services defined in the composite -that are using binding.comet. All invocation and connection management is handled -under the hood so in order to invoke a comet service, the following should be called: - SCA.CometComponentContext.<service name>.<operation name>(<parameters>, callback); - -The callback parameter is the function that will handle responses received for a -certain service operation. It has a single argument which is the response: - function callback(response) { - // handle response - }; - -Note that the data exchange is automatically handled by the binding, so the -parameters should have the same structure as the data types defined in the method -definition. Also, the response will have the same data type as the return type of -the service method. Objects are passed over the wire in JSON format. - -Another detail worth mentioning is that the binding will use a single HTTP -connection to handle communication between a browser client and all services -defined using binding.comet in the same composite. Requests and responses will get -multiplexed via the same channel and get routed to the appropriate service -implementation, respectively javascript function. This is done in order to avoid -the 2 HTTP connection limit imposed by browsers. For more info, check -http://www.openajax.org/runtime/wiki/The_Two_HTTP_Connection_Limit_Issue. - -In order to run the sample, you can execute "mvn clean install t7:run" which will -start a Tomcat 7 instance automatically or use "mvn package" and deploy the resulting -war to the application server of your choice. - -Next, point your browser at - http://localhost:8080/sample-binding-comet-autocomplete-webapp/ - -You can see how suggestions are being received in real time when characters are -entered in the text field. You can see the persistent HTTP streaming connection -or long polling subsequent connections using the developer tools provided by -your browser. - -The comet binding is an experimental binding so community feedback is much -appreciated. Feel free to send comments or suggestions on the Apache Tuscany -dev mailing list (dev@tuscany.apache.org).
\ No newline at end of file |