summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/sca-java-roadmap.html
blob: 0108ef997f79310098da42aa0d077cdeca86ac5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
<!--

    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 � 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>