apache-tuscany/site/trunk/site-publish/sca-java-roadmap.html
2014-11-21 09:30:19 +00:00

266 lines
14 KiB
HTML
Raw Permalink Blame History

<!--
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 Roadmap</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=89958">
<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="" title="SCA Java Roadmap">SCA Java Roadmap</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%"><P></P>
<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>
</TD>
<TD class="confluenceTd" valign="top" width="85%">
<H2><A name="SCAJavaRoadmap-Web2.0Roadmap"></A>Web 2.0 Roadmap</H2>
<H3><A name="SCAJavaRoadmap-JSONRPC"></A>JSON-RPC</H3>
<P><B>Scenarios:</B></P>
<UL>
<LI>A client application invoke a SCA Service using JSON-RPC and the invocation returns a business exception. <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0">
<UL>
<LI>e.g Empty catalog throws a Busines Exception. Business Exception should properly propagate and display nicely to client.</LI>
</UL>
</LI>
<LI>A client application invoke a SCA Service using JSON-RPC and the invocation returns a runtime exception. <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0">
<UL>
<LI>e.g Try to retrieve catalog items from a catalog service that is un-available. Runtime exception properly propagate and display nicely to client.</LI>
</UL>
</LI>
<LI>A client application needs to access a service exposed trough JSON-RPC binding that requires authentication.
<UL>
<LI>e.g make sure if nobody can get to the catalog if it's not authenticated</LI>
</UL>
</LI>
</UL>
<P><B>Features/JIRAS</B></P>
<UL>
<LI>Exceptions not properly reported to client by JSONRPC binding (TUSCANY-1961) <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Support for security (this will require exploratory work to understand what SCA security policies make sense to implement) (TUSCANY-2394 )</LI>
<LI>Business Exception reporting, business exceptions raised by a service should be transported to the client through JSON and reported to the client as proper JavaScript business exceptions (TUSCANY-2394 ) <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Better runtime exception reporting, runtime exceptions occurring as part of a JSON-RPC interaction should be properly reported to the JavaScript client. (TUSCANY-2394) <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Complete data binding support, a set of test cases should be written to make sure that the POJO and JAXB patterns supported in Java components have a proper mapping to JSON and that the application developer can easily understand the corresponding representation of these objects in JavaScript. (TUSCANY-2394) <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Build some samples that consume publicly available JSON services (e.g from programmableweb, or yahoo)</LI>
</UL>
<H3><A name="SCAJavaRoadmap-ATOM"></A>ATOM</H3>
<P><B>Scenarios</B></P>
<P><B>Features/JIRAS</B></P>
<UL>
<LI>Complete support for ATOM API
<UL>
<LI>Analyze specification gaps</LI>
<LI>Complete support for location header</LI>
<LI>Full support for lastmodified in HTTP headers and etags <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0">
<UL>
<LI>needs to involve application logic, to properly find the lastmodified data...</LI>
</UL>
</LI>
</UL>
</LI>
<LI>Support for postMedia and putMedia, including the ability to stream that content in the target application component</LI>
<LI>Support for security (this will require exploratory work to understand what SCA security policies make sense to implement)
<UL>
<LI>Provide security support for verb actions (e.g. delete)</LI>
<LI>ATOM pub users often need to login. Google GDATA supports SSO</LI>
<LI>Provide support for Authentication|Encryption|Signatures ???</LI>
</UL>
</LI>
<LI>Enhanced error reporting, mapping errors like resource not found to HTTP 404. Other errors might be mapped to HTTP 500 with proper exception in the message body. <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Ability to negotiate content types (XML, JSON etc) and use the corresponding Tuscany data bindings to provide data with the requested content type <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Enhance performance on low-bandwidth by providing gZipped contents enabled by http headers</LI>
<LI>Improve the client side programming model by researching available JavaScript Atom API or investigate creating one.<IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"></LI>
<LI>Integrate Atom binding with persistence repository (e.g database and implementation.data.xml)
<UL>
<LI>investigate how to handle relationships (e.g When you have a customer that owns multiple accounts, you can define HREF to a account feed, but how do you handle that sub-set of accounts that the customer owns.)</LI>
</UL>
</LI>
<LI>ATOM workspace support</LI>
</UL>
<P><B>References:</B></P>
<UL>
<LI>Atom publish protocol : <A href="http://tools.ietf.org/html/rfc5023" class="external-link" rel="nofollow">http://tools.ietf.org/html/rfc5023</A></LI>
<LI>Atom syndcation protocol : <A href="http://tools.ietf.org/html/rfc4287" class="external-link" rel="nofollow">http://tools.ietf.org/html/rfc4287</A></LI>
</UL>
<H3><A name="SCAJavaRoadmap-Widget"></A>Widget</H3>
<P><B>Scenarios</B></P>
<P><B>Features/JIRAS</B></P>
<UL>
<LI>Support references wiring to services from multiple hosts/ports (cross domain support using on demand js pattern)</LI>
<LI>Add support for other bindings (e.g DWR)</LI>
<LI>Support widget implementation over web-app</LI>
</UL>
<UL>
<LI>
<UL>
<LI>Discuss possible deprecation of scaDomain.js</LI>
</UL>
</LI>
<LI>Enable support for google widgets (using shindig)</LI>
<LI>Upgrade to latest open ajax (tutorial)</LI>
</UL>
<H2><A name="SCAJavaRoadmap-Sample%2CScenariosandTutorial"></A>Sample, Scenarios and Tutorial</H2>
<UL>
<LI>Integrate implementation-data-xml to provide data feeds.
<UL>
<LI>Use store tutorial to drive this item</LI>
</UL>
</LI>
</UL>
<UL>
<LI>PhotoGallery scenario ?</LI>
</UL>
</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 <20> 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>