You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by "G.W.G.K.N. Udayanga" <gw...@gmail.com> on 2011/04/01 16:35:13 UTC

Re:gsoc2011

I am G.W.G.K.N.Udayanga a fouth year(final year) student from the dept of
computer science & Engineering,university of moratuwa,Sri Lanka.I am
interested in doing "Implement the SOAP over TCP standard supported by Metro
and WCF(via plugin) <https://issues.apache.org/jira/browse/CXF-2256>" project
for gsoc 2011.Can you give some references relevant to this project and can
i know about the mentor for this project?

Re: gsoc2011

Posted by Daniel Kulp <dk...@apache.org>.
On Friday 01 April 2011 10:35:13 AM G.W.G.K.N. Udayanga wrote:
> I am G.W.G.K.N.Udayanga a fouth year(final year) student from the dept of
> computer science & Engineering,university of moratuwa,Sri Lanka.I am
> interested in doing "Implement the SOAP over TCP standard supported by
> Metro and WCF(via plugin)
> <https://issues.apache.org/jira/browse/CXF-2256>" project for gsoc
> 2011.Can you give some references relevant to this project and can i know
> about the mentor for this project?

The SOAP/TCP project would really be a continuation (and hopefully finishing) 
of a GSoC project that was done 2 years ago.   Unfortunately, for a variety of 
reasons, it was never completed. 

The obvious starting point for information would be the specification itself:
http://java.sun.com/webservices/reference/apis-docs/soap-tcp-v1.0.pdf

Unfortunately, the student discoverred that  the spec wasn't exactly 
"completely correct".   A lot of time was spent trying to reverse engineer 
various parts of the protocol that were different than what the spec said.   
That was the main reason for the project not completing.       You could also 
search on nabble or other archives to get some information about what was 
done.   For example:
http://cxf.547215.n5.nabble.com/SOAP-TCP-server-side-td576475.html
http://cxf.547215.n5.nabble.com/Re-SOAP-TCP-project-status-
td576580.html#a576584


So, what is the status of the code today?   The code from the last project is 
in the CXF codebase.   If you checkout a copy of CXF from subversion:
http://svn.apache.org/repos/asf/cxf/trunk/
in the rt/bindings/soap module, there is a org.apache.cxf.binding.soap.tcp 
package that contains the work he started.   It's pretty rough, likely needs 
some refactoring, but it could be a start.   The student did get a simple 
client/server "hello world" soap message to commincate using the SOAP/TCP 
stuff in CXF and interoperate with Metro for that simple service.  However, 
There were a LOT of things that were not there yet.   Off the top of my head 
(it's been a LONG time so I may have forgotten a bunch of things), the main 
things that stood out are:

1) Fastinfoset support - one of the main advantages of the SOAP/TCP spec was 
the support for using a STATEFUL fastinfoset grammar.  Thus, when using a 
client to make multiple calls, the messages become very small and fast.  The 
code right now just uses normal XML.

2) Multi-channel connection - the spec allows multiple clients to share the 
connection with requests and responses multiplexed across it.   RIght now, the 
code assumes a 1:1, none multiplexed connection like HTTP.   I'm not even sure 
if it's a persistent connection.   It may be per-request.   I don't remember.

3) SSL - definitely not even a thought yet.

It's never really been scalability tested or anything like that either.   I 
expect with the advances in Mina in the last 2 years, the async handling could 
also be greatly improved.


In anycase, if you  are interested in pursing this project, I'd be happy to be 
a mentor for it.   Definitely start looking into the code a bit and read the 
spec and start writing up a proposal.   I also encourage you to ask questions 
here if you run into problems.


-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog
Talend - http://www.talend.com