summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/sca-java-bindingjsonrpc.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/sca-java-bindingjsonrpc.html')
-rw-r--r--site/trunk/site-publish/sca-java-bindingjsonrpc.html343
1 files changed, 343 insertions, 0 deletions
diff --git a/site/trunk/site-publish/sca-java-bindingjsonrpc.html b/site/trunk/site-publish/sca-java-bindingjsonrpc.html
new file mode 100644
index 0000000000..28d3ca27e4
--- /dev/null
+++ b/site/trunk/site-publish/sca-java-bindingjsonrpc.html
@@ -0,0 +1,343 @@
+
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <!-- generateKeywords macro -->
+ <META name="description" content="Apache Tuscany">
+ <META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture, sca, service component architecture, das, sdo, csa, ruby, opensource">
+ <!-- generateKeywords macro end -->
+
+ <LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
+ <LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANY/$images/favicon.ico">
+ <TITLE>Apache Tuscany : SCA Java binding.jsonrpc</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+
+ <BODY onload="init()">
+ <!-- topNav macro -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
+ </TD>
+ <TD>
+ <A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
+ </TD>
+
+ <TD width="100%">
+ &nbsp;
+ </TD>
+
+ <!-- Adds the edit page link to the top banner-->
+ <TD valign="bottom">
+ <DIV style="padding: 2px 10px; margin: 0px;">
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=54462">
+ <IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
+ </DIV>
+ </TD>
+
+ </TR>
+ </TABLE>
+ <!-- topNav macro end -->
+
+ <!-- breadCrumbs macro -->
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
+ &nbsp;<A href="home.html" title="Apache Tuscany">Apache Tuscany</A>&nbsp;&gt;&nbsp;<A href="home.html" title="Home">Home</A>&nbsp;&gt;&nbsp;<A href="sca-overview.html" title="SCA Overview">SCA Overview</A>&nbsp;&gt;&nbsp;<A href="sca-java.html" title="SCA Java">SCA Java</A>&nbsp;&gt;&nbsp;<A href="java-sca-documentation-menu.html" title="Java SCA Documentation Menu">Java SCA Documentation Menu</A>&nbsp;&gt;&nbsp;<A href="" title="SCA Java binding.jsonrpc">SCA Java binding.jsonrpc</A>
+ </TD>
+
+ <TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
+ <A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>&nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+ <!-- breadCrumbs macro end -->
+
+
+ <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
+ <TR>
+ <TD align="left" valign="top">
+
+ <!-- pageContent macro -->
+ <DIV id="PageContent">
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <TABLE class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><TBODY><TR>
+<TD class="confluenceTd" valign="top" width="15%">
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #C3CDA1;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #C3CDA1;background-color: #C3CDA1;"><B>General</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="home.html" title="Home">Home</A><BR>
+<A href="http://www.apache.org/licenses/LICENSE-2.0.html" class="external-link" rel="nofollow">License </A><BR>
+<A href="sca-java-get-involved.html" title="SCA Java Get Involved">Get Involved</A><BR>
+<A href="sca-java-found-a-bug.html" title="SCA Java Found A Bug">Found a Bug?</A></P>
+</DIV></DIV>
+
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>SCA Java</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="sca-java.html" title="SCA Java">SCA Java Home</A><BR>
+<A href="tuscany-dashboard.html" title="Tuscany Dashboard">SCA Dashboard</A><BR>
+<A href="java-sca-tools.html" title="Java SCA Tools">Tools </A><BR>
+<A href="tuscany-sca-java-faq.html" title="Tuscany SCA Java - FAQ">FAQ</A></P>
+</DIV></DIV>
+
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>SCA Java 1.x</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="sca-java-releases.html" title="SCA Java Releases">Downloads</A><BR>
+<A href="java-sca-documentation-menu.html" title="Java SCA Documentation Menu">Documentation</A><BR>
+<A href="https://svn.apache.org/repos/asf/tuscany/sca-java-1.x/trunk/" class="external-link" rel="nofollow">1.x Source Code</A><BR>
+<A href="http://tinyurl.com/8rlxd3" class="external-link" rel="nofollow">Roadmap</A></P>
+</DIV></DIV>
+
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>SCA Java 2.x</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="sca-java-2x-releases.html" title="SCA Java 2.x Releases">Downloads</A><BR>
+<A href="http://tuscany.apache.org/documentation-2x/" class="external-link" rel="nofollow">Documentation</A><BR>
+<A href="https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/" class="external-link" rel="nofollow">2.x Source Code</A><BR>
+<A href="http://tinyurl.com/8rlxd3" class="external-link" rel="nofollow">Roadmap</A></P>
+</DIV></DIV>
+
+
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>Documentation</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="sca-java-user-guide.html" title="SCA Java User Guide">User Guide</A><BR>
+<A href="sca-java-architecture-guide.html" title="SCA Java Architecture Guide">Architecture Guide</A><BR>
+<A href="sca-java-development-guide.html" title="SCA Java Development Guide">Developer Guide</A><BR>
+<A href="sca-java-extension-development-guide.html" title="SCA Java Extension Development Guide">Extension Developer Guide</A></P>
+</DIV></DIV>
+
+<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>Resources</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
+<P><A href="tuscany-sca-java-faq.html" title="Tuscany SCA Java - FAQ">FAQ</A><BR>
+<A href="https://svn.apache.org/repos/asf/incubator/tuscany/java/sca" class="external-link" rel="nofollow">Source Code</A></P>
+</DIV></DIV>
+</TD>
+<TD class="confluenceTd" valign="top" width="85%">
+
+<H3><A name="SCAJavabinding.jsonrpc-%3Cbinding.jsonrpc%3E"></A>&lt;binding.jsonrpc&gt;</H3>
+
+<P>Tuscany supports <A href="http://json-rpc.org/" class="external-link" rel="nofollow">JSON-RPC</A> as a protcol for use with SCA services by using the &lt;binding.jsonrpc&gt; SCDL extension. This enables remote web browser clients to easily make RPC style calls to server-side SCA components.</P>
+
+<P>The complete timeline of available and future plans is given in the <A href="http://tuscany.apache.org/sca-java-roadmap.html" class="external-link" rel="nofollow">Tuscany Web 2.0 Roadmap</A></P>
+
+<H3><A name="SCAJavabinding.jsonrpc-UsingtheTuscanyJSONRPCbinding"></A>Using the Tuscany JSON-RPC binding</H3>
+
+<P>You could use this binding without any configuration, or by providing a specific service URI. <BR>
+To include it on a SCA service choose one of the SCDL examples below :</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+ &lt;binding.jsonrpc/&gt;
+</PRE>
+</DIV></DIV>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+ &lt;binding.jsonrpc uri=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//localhost:8080/store/catalog&quot;</SPAN>/&gt;</SPAN>
+</PRE>
+</DIV></DIV>
+
+<H3><A name="SCAJavabinding.jsonrpc-ConsumingJSONRPCservicesontheclientapplication"></A>Consuming JSON-RPC services on the client application</H3>
+
+<P>Any JSON-RPC client may be used to access SCA services which use &lt;binding.jsonrpc&gt;, below we are going to describe different ways you could consume the Tuscany JSON-RPC services in your client application.</P>
+
+<H4><A name="SCAJavabinding.jsonrpc-UtilizingTuscanyImplementation.widget"></A>Utilizing Tuscany Implementation.widget</H4>
+
+<P>When your web client application is defined as an SCA component utilizing <A href="sca-java-implementationwidget.html" title="SCA Java implementation.widget">Tuscany Widgets</A>, a JavaScript is generated which may be included within an HTML document to properly inject services references to SCA references defined on the same HTML document.</P>
+
+<P>This script is used by simply including the following tag within the HTML page :</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;script type=<SPAN class="code-quote">&quot;text/javascript&quot;</SPAN> src=<SPAN class="code-quote">&quot;html-page-name.js&quot;</SPAN> /&gt;
+</PRE>
+</DIV></DIV>
+
+<P>This initializes the proxys for the SCA services which can then be injected into SCA references to make requests to the server-side components. For example, if there was a service named &quot;myService&quot; which had operations &quot;aOnewayRequest&quot; and &quot;anRpcRequest&quot; the scripts in the HTML page could now invoke these operations with the following:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-comment">//@Reference
+</SPAN><SPAN class="code-keyword">var</SPAN> myService = <SPAN class="code-keyword">new</SPAN> Reference(<SPAN class="code-quote">&quot;myService&quot;</SPAN>);
+myService.aOnewayRequest(args);
+</PRE>
+</DIV></DIV>
+<P>or</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-comment">//@Reference
+</SPAN><SPAN class="code-keyword">var</SPAN> myService = <SPAN class="code-keyword">new</SPAN> JSONRpcClient(<SPAN class="code-quote">&quot;myService&quot;</SPAN>);
+myService.anRpcRequest(args, responseFunction);
+</PRE>
+</DIV></DIV>
+
+<P>Also see <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=SCA%2BJava%2Bimplementation.widget&linkCreation=true&fromPageId=54462" class="createlink">Tuscany Widgets</A> for more details.</P>
+
+<H4><A name="SCAJavabinding.jsonrpc-UtilizingaJavaScriptClientProxy"></A>Utilizing a JavaScript Client Proxy</H4>
+
+<P>To simplify the task for web browsers developers Tuscany provides a 'binding-jsonrpc.js&quot; JavaScript client proxy code that can be included in your application. </P>
+
+<P>After copying the script to your application, it can be used bu simply including the following tag within the HTML page :</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;script type=<SPAN class="code-quote">&quot;text/javascript&quot;</SPAN> src=<SPAN class="code-quote">&quot;binding-jsonrpc.js&quot;</SPAN> /&gt;
+</PRE>
+</DIV></DIV>
+
+<P>This initializes the proxys for the SCA services which can then be used make requests to the server-side components. Based on the scenario described above, below are the to invoke these operations.</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">var</SPAN> myService = <SPAN class="code-keyword">new</SPAN> JSONRpcClient(<SPAN class="code-quote">&quot;Catalog&quot;</SPAN>).service;
+myService.aOnewayRequest(args);
+</PRE>
+</DIV></DIV>
+<P>or</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">var</SPAN> myService = <SPAN class="code-keyword">new</SPAN> JSONRpcClient(<SPAN class="code-quote">&quot;Catalog&quot;</SPAN>).service;
+myService.anRpcRequest(args, responseFunction);
+</PRE>
+</DIV></DIV>
+
+<H4><A name="SCAJavabinding.jsonrpc-HandlingJSONRPCResponsewithcallbacks"></A>Handling JSON-RPC Response with callbacks</H4>
+
+<P>In that example 'responseFunction' is the name of a function which is called to process the response and which gets called asynchronously on another thread when the response is avaialble. RPC requests are done this way instead of the simpler &quot;answer = myService.anRpcRequest(args)&quot; to avoid hanging the browser while the (potentially slow) request is being processed. An example of the responseFunction for the previous example is:</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+function responseFunction(answer){
+ <SPAN class="code-comment">// <SPAN class="code-keyword">do</SPAN> something with answer
+</SPAN>}
+</PRE>
+</DIV></DIV>
+
+<H4><A name="SCAJavabinding.jsonrpc-Handlingerrors"></A>Handling errors</H4>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-comment">//initialization code
+</SPAN><SPAN class="code-keyword">try</SPAN>{
+ myService.anRpcRequest(args, responseFunction);
+} <SPAN class="code-keyword">catch</SPAN>(e) {
+ <SPAN class="code-comment">//handle error
+</SPAN> alert(e);
+}
+
+function responseFunction(answer, exception){
+ <SPAN class="code-comment">//handle exception information
+</SPAN> <SPAN class="code-keyword">if</SPAN>(exception){
+ alert(exception.message);
+ <SPAN class="code-keyword">return</SPAN>;
+ }
+ <SPAN class="code-comment">// <SPAN class="code-keyword">do</SPAN> something with answer
+</SPAN>}
+
+</PRE>
+</DIV></DIV>
+
+<H4><A name="SCAJavabinding.jsonrpc-UsingSCAJSONRPCserviceswithDojo"></A>Using SCA JSON-RPC services with Dojo</H4>
+
+<P>Apache Tuscany JSON-RPC services provide built-in support for <A href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book9" class="external-link" rel="nofollow">Dojo RPC</A>. The <A href="http://dojotoolkit.org/" class="external-link" rel="nofollow">Dojo</A> toolkit is a popular framework for writing Ajax/Web 2.0 style browser client applications. Tuscany SCA services which use &lt;binding.jsonrpc&gt; will by default support the <A href="http://dojo.jot.com/SMD" class="external-link" rel="nofollow">Simple Method Description (SMD) </A> protocol. SMD is similar to ?wsdl for Web services, entering a service endpoint appended with ?smd will return a SMD descriptor for the service. </P>
+
+<P>Using Tuscany SCA services with Dojo can therefore be as simple as the following:</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+ <SPAN class="code-keyword">var</SPAN> myService = <SPAN class="code-keyword">new</SPAN> dojo.rpc.JsonService(<SPAN class="code-quote">&quot;myService?smd&quot;</SPAN>);
+</PRE>
+</DIV></DIV>
+
+<H4><A name="SCAJavabinding.jsonrpc-Supporteddatatypes"></A>Supported data types</H4>
+
+<P>The JSON-RPC binding utilize the Databinding Framework to provide support for the following data transformations :</P>
+
+<UL>
+ <LI>Primitive Type &lt;==&gt; JSON &lt;==&gt; Primitive Type</LI>
+ <LI>Array of Primitive Type &lt;==&gt; JSON &lt;==&gt; Array of Primitive Type</LI>
+ <LI>Java bean &lt;==&gt; JSON &lt;==&gt; Java bean</LI>
+ <LI>List &lt;==&gt; JSON &lt;==&gt; List</LI>
+ <LI>Map &lt;==&gt; JSON &lt;==&gt; Map</LI>
+ <LI>Set &lt;==&gt; JSON &lt;==&gt; Set</LI>
+</UL>
+
+
+<H4><A name="SCAJavabinding.jsonrpc-Someexamples%3A"></A>Some examples:</H4>
+
+<P>There are two samples showing using &lt;binding.jsonrpc&gt;, one which uses the Dojo Toolkit on the client, and another which uses the Tuscany scaDomain.js script. The samples are <A href="https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/helloworld-dojo/" class="external-link" rel="nofollow">helloworld-dojo</A> and <A href="https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/helloworld-jsonrpc/" class="external-link" rel="nofollow">helloworld-jsonrpc</A>.</P>
+
+
+<H3><A name="SCAJavabinding.jsonrpc-SecurityPolicysupportinHTTPandWeb2.0Bindings"></A>Security Policy support in HTTP and Web 2.0 Bindings</H3>
+
+<DIV class="panelMacro"><TABLE class="infoMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>work in progress</TD></TR></TABLE></DIV>
+
+<H3><A name="SCAJavabinding.jsonrpc-Scenarios"></A>Scenarios</H3>
+
+<UL>
+ <LI>A Web 2.0 application requires that a user get authenticated before it can access the application.</LI>
+ <LI>A Web 2.0 application requires that all communication between client/server be done using SSL.</LI>
+ <LI>A given service, exposed using a web 2.0 binding requires user authentication.</LI>
+ <LI>A given operation, exposed using a web 2.0 binding requires user authentication.</LI>
+</UL>
+
+
+<H3><A name="SCAJavabinding.jsonrpc-PolicyInterceptor"></A>Policy Interceptor</H3>
+
+<P>The design approach that is being considered is to inject policy security interceptors, that would properly validate and enforce the security intents.<BR>
+The authentication will be done using JAAS modules for authentication, and initially we would support authenticating to a list of username/password supplied by the application or using an LDAP.</P>
+
+<P><SPAN class="image-wrap" style="display: block; text-align: center"><IMG src="sca-java-bindinghttp-security-policy-section.data/high_level_design.jpg" style="border: 0px solid black"></SPAN></P>
+
+
+<DIV class="panelMacro"><TABLE class="infoMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD><B>Differences between &lt;binding.jsonrpc&gt; and &lt;binding.dwr&gt;</B><BR>The current Tuscany SCA runtime supports &lt;binding.jsonrpc&gt; and &lt;binding.dwr&gt; which provide similar functionality. The differences are:
+<UL>
+ <LI>&lt;binding.jsonrpc&gt; supports the SMD protocol enabling easy use with Dojo, &lt;binding.ajax&gt; does not support SMD</LI>
+ <LI>&lt;binding.ajax&gt; supports SCA references and using <A href="http://en.wikipedia.org/wiki/Comet_(programming)" class="external-link" rel="nofollow">COMET</A> style asynchronous operation, &lt;binding.jsonrpc&gt; does not</LI>
+ <LI>&lt;binding.jsonrpc&gt; uses the standard <A href="http://json-rpc.org/" class="external-link" rel="nofollow">JSON-RPC</A> protocol, &lt;binding.dwr&gt; uses a proprietry protocol using <A href="http://getahead.org/dwr/" class="external-link" rel="nofollow">DWR</A></LI>
+</UL>
+
+
+<P>These differences should be resolved by the Tuscany SCA 1.0 release.</P></TD></TR></TABLE></DIV>
+
+<DIV class="panelMacro"><TABLE class="warningMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD><B>Changes since 0.90 release</B><BR>The Tuscany JSON-RPC and Ajax binding's have had significant functional and useability changes since the 0.90 release. It is recomended that if possible the latest code is used (the description on this page is based on the latest code).</TD></TR></TABLE></DIV>
+
+</TD></TR></TBODY></TABLE>
+ </DIV>
+ </DIV>
+ </DIV>
+ <!-- pageContent macro end -->
+
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- footer macro -->
+ <SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </SCRIPT>
+ <SCRIPT type="text/javascript">
+ _uacct = "UA-1174707-5";
+ urchinTracker();
+ </SCRIPT>
+
+ <A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>
+
+ <DIV class="footer">
+ Copyright � 2003-2012, The Apache Software Foundation&nbsp;&nbsp;</BR>
+ Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
+ </DIV>
+ <!-- footer macro end -->
+
+ </BODY>
+</HTML>