You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Niklas Gustavsson <ni...@protocol7.com> on 2010/03/12 14:53:28 UTC

Fwd: Google Summer of Code: Bring out your projects

Hey

GSoC is coming up, see more below. Anyone got ideas for projects?

I'm considering volunteering as a mentor for a project on implementing
BoSH/WebSockets for Vysper.

/niklas


---------- Forwarded message ----------
From: Ross Gardler <rg...@apache.org>
Date: Fri, Mar 12, 2010 at 1:03 AM
Subject: Google Summer of Code: Bring out your projects
To: pmcs@apache.org, private@incubator.apache.org, code-awards@apache.org


It is time for your project to start preparing for GSoC if you have
not already done so.

Things you need to do if you want to consider being a mentor:

- understand what it means to be a mentor [1]

- propose your project ideas [2] (the process is different this year)

- subscribe to code-awards@apache.org

We need your project ideas now, so please get to work, see [2]

You can see the current list of ideas at [3]

Ross

[1] http://community.apache.org/guide-to-being-a-mentor.html
[2] http://community.apache.org/guide-to-being-a-mentor.html
[3] https://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12314021

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Niklas Gustavsson <ni...@protocol7.com>.
On Wed, Mar 31, 2010 at 9:33 AM, Bernd Fondermann
<be...@googlemail.com> wrote:
> On Wed, Mar 31, 2010 at 02:41, Bogdan Ciprian Pistol
> <bo...@gmail.com> wrote:
>> For SSL encryption I am thinking of putting the SSL filter by default
>> if the port 443 is configured for xbosh. To configure 2 IO filter
>> chains in MINA I don't know any other way but just to create a new
>> NioSocketAcceptor with a different chain.
>>
>> I'll write more when I'll advance with the implementation.
>
> Wait a second. We are not at implementation level at this point, you
> are wasting time.

I think it would be great for want-to-be students to get working on
code even before any potential GSoC project would start. I would view
that as a regular contribution and for me be very good indication of
an excellent applicant.

But, as Bernd said, it's very important to also put in a good proposal.

/niklas

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Bernd Fondermann <be...@googlemail.com>.
On Wed, Mar 31, 2010 at 02:41, Bogdan Ciprian Pistol
<bo...@gmail.com> wrote:
> Hello,
>
> I am interested about this project for GSoC.
>
> I've started writing a PoC for this. I want to ask you if I'm going in
> the right direction.
>
> It would be nice if the server could handle both standard XMPP clients
> (5222) and xbosh (443 or 80). So MINA binds to 2 ports in TCPEndpoint
> (for this I added an extra xbosh configurable port in TCPEndpoint).

I prefer having a separate dedicated endpoint for BOSH, so we result
in 2 endpoints.

> The HTTP headers are decoded by XMLStreamTokenizer as XMLText
> (XMLRawToFragmentConverter#convert).

BOSH is a protocol. XMPP is a protocol. Each protocol deserves it's
own protocol handling code.

> So when receiving HTTP there would be 2 options:
> 1) To use the current XMLStreamTokenizer decoder and add a new <body/>
> o.a.v.xmpp.Stanza  (ignoring the XMLText headers)
> 2) To have another decoder that decodes HTTP (having access to
> headers) and then process the <body/>.
> I know that xbosh says that we should ignore all the headers (except
> maybe Accept-Encoding), but maybe there is some use for them.

BOSH tunnels XMPP through HTTP. The spec says exactly how to do it.
The scope of this GSoC project is to have a working compliant BOSH
implementation.
If we have that, we might start think about going beyond.

>
> Another option would be to parse the XMLText thrown in
> XmppIoHandlerAdapter#messageReceivedNoStanza, but I incline to think
> that this is not the right place.
>
> I chose option 2) with the decoder option chosen like this:
>
> public ProtocolDecoder getDecoder(IoSession s) throws Exception {
>                if (((InetSocketAddress) s.getLocalAddress()).getPort() == xboshPort) {
>                        return new XBoshDecoder(new XMLStreamTokenizer(new StanzaBuilderFactory()));
>                } else {
>                        return new XMLStreamTokenizer(new StanzaBuilderFactory());
>                }
>    }
>
> And the XBoshDecoder uses the Apache AsyncWeb HTTP codec that does a
> nice job at parsing HTTP.
>
> Do you think this is overkill? I have some doubts, but I like that all
> the HTTP information is available.

The specs are very clear about this. Please read XEP-0124, 3.
Architectural Assumptions, carefully.
There is a HTTP server running. This could be AsyncWeb HTTP, for
example, embedded into Vysper, but could also be a stand-alone
program/process.
This is a special webserver, though. It can extract XMPP stanzas from
HTTP requests and forward them to Vysper's core stanza handling + it
can receive stanzas and respond them back to HTTP agents.

> For SSL encryption I am thinking of putting the SSL filter by default
> if the port 443 is configured for xbosh. To configure 2 IO filter
> chains in MINA I don't know any other way but just to create a new
> NioSocketAcceptor with a different chain.
>
> I'll write more when I'll advance with the implementation.

Wait a second. We are not at implementation level at this point, you
are wasting time.
That's not how GSoC works.
If you want to get this into GSoC, please refer to

http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/userguide#depth_students

If you already checked 1. and 2., you are at positon "3. Submitting
your proposal".
Don't take it easy. This is the most important step at all.
It's the basis for measuring you proposal against all the other
proposals from Apache.

  Bernd

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Bogdan Ciprian Pistol <bo...@gmail.com>.
Hello,

I am interested about this project for GSoC.

I've started writing a PoC for this. I want to ask you if I'm going in
the right direction.

It would be nice if the server could handle both standard XMPP clients
(5222) and xbosh (443 or 80). So MINA binds to 2 ports in TCPEndpoint
(for this I added an extra xbosh configurable port in TCPEndpoint).

The HTTP headers are decoded by XMLStreamTokenizer as XMLText
(XMLRawToFragmentConverter#convert).

So when receiving HTTP there would be 2 options:
1) To use the current XMLStreamTokenizer decoder and add a new <body/>
o.a.v.xmpp.Stanza  (ignoring the XMLText headers)
2) To have another decoder that decodes HTTP (having access to
headers) and then process the <body/>.
I know that xbosh says that we should ignore all the headers (except
maybe Accept-Encoding), but maybe there is some use for them.

Another option would be to parse the XMLText thrown in
XmppIoHandlerAdapter#messageReceivedNoStanza, but I incline to think
that this is not the right place.

I chose option 2) with the decoder option chosen like this:

public ProtocolDecoder getDecoder(IoSession s) throws Exception {
		if (((InetSocketAddress) s.getLocalAddress()).getPort() == xboshPort) {
			return new XBoshDecoder(new XMLStreamTokenizer(new StanzaBuilderFactory()));
		} else {
			return new XMLStreamTokenizer(new StanzaBuilderFactory());
		}
    }

And the XBoshDecoder uses the Apache AsyncWeb HTTP codec that does a
nice job at parsing HTTP.

Do you think this is overkill? I have some doubts, but I like that all
the HTTP information is available.

For SSL encryption I am thinking of putting the SSL filter by default
if the port 443 is configured for xbosh. To configure 2 IO filter
chains in MINA I don't know any other way but just to create a new
NioSocketAcceptor with a different chain.

I'll write more when I'll advance with the implementation.

Thanks,

Bogdan

On Tue, Mar 16, 2010 at 11:02 AM, Niklas Gustavsson
<ni...@protocol7.com> wrote:
> On Tue, Mar 16, 2010 at 8:31 AM, Ashish <pa...@gmail.com> wrote:
>> Which project are we submitting?
>
> I've added the BOSH/WebSockets project:
> https://issues.apache.org/jira/browse/VYSPER-189
>
> /niklas
>

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Niklas Gustavsson <ni...@protocol7.com>.
On Tue, Mar 16, 2010 at 8:31 AM, Ashish <pa...@gmail.com> wrote:
> Which project are we submitting?

I've added the BOSH/WebSockets project:
https://issues.apache.org/jira/browse/VYSPER-189

/niklas

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Ashish <pa...@gmail.com>.
Which project are we submitting?

On Fri, Mar 12, 2010 at 7:54 PM, Emmanuel Lecharny <el...@gmail.com> wrote:
> On 3/12/10 2:53 PM, Niklas Gustavsson wrote:
>>
>> Hey
>>
>> GSoC is coming up, see more below. Anyone got ideas for projects?
>>
>> I'm considering volunteering as a mentor for a project on implementing
>> BoSH/WebSockets for Vysper.
>>
>
> I always wanted to build some tooling on top of MINA, and we already found a
> name for it :
> MinaReal
>
> It would be some kind of Ethereal, with plugged protocol decoder, and using
> http://jpcap.sourceforge.net/ to capture packets.
>
> Does it sound a good idea ?
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.nextury.com
>
>
>



-- 
thanks
ashish

Blog: http://www.ashishpaliwal.com/blog
My Photo Galleries: http://www.pbase.com/ashishpaliwal

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Dave Roberts <da...@saaconsultants.com>.
On 12/03/2010 14:24, Emmanuel Lecharny wrote:
> 
> I always wanted to build some tooling on top of MINA, and we already 
> found a name for it :
> MinaReal
> 
> It would be some kind of Ethereal, with plugged protocol decoder, and 
> using http://jpcap.sourceforge.net/ to capture packets.
> 
> Does it sound a good idea ?

Yes, a very good idea.

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Bernd Fondermann <be...@googlemail.com>.
On Fri, Mar 12, 2010 at 15:35, Ashish <pa...@gmail.com> wrote:
> On Fri, Mar 12, 2010 at 7:54 PM, Emmanuel Lecharny <el...@gmail.com> wrote:
>> On 3/12/10 2:53 PM, Niklas Gustavsson wrote:
>>>
>>> Hey
>>>
>>> GSoC is coming up, see more below. Anyone got ideas for projects?
>>>
>>> I'm considering volunteering as a mentor for a project on implementing
>>> BoSH/WebSockets for Vysper.

+1, great!

>> I always wanted to build some tooling on top of MINA, and we already found a
>> name for it :
>> MinaReal
>>
>> It would be some kind of Ethereal, with plugged protocol decoder, and using
>> http://jpcap.sourceforge.net/ to capture packets.
>>
>> Does it sound a good idea ?
>
> a big +1, I just wanted to put this proposal, and here you are with the same.
>
> WebSockets is also a real good addition. May be we can have 2 projects :)

Actually, the original idea of GSoC is the other way round: Students
bring their own ideas to the projects.
Obviously, it is advisable for the project itself to make as many
proposals as would fit to attract many students.
There is a ranking process and only the best ones get accepted.

  Bernd

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Ashish <pa...@gmail.com>.
On Fri, Mar 12, 2010 at 7:54 PM, Emmanuel Lecharny <el...@gmail.com> wrote:
> On 3/12/10 2:53 PM, Niklas Gustavsson wrote:
>>
>> Hey
>>
>> GSoC is coming up, see more below. Anyone got ideas for projects?
>>
>> I'm considering volunteering as a mentor for a project on implementing
>> BoSH/WebSockets for Vysper.
>>
>
> I always wanted to build some tooling on top of MINA, and we already found a
> name for it :
> MinaReal
>
> It would be some kind of Ethereal, with plugged protocol decoder, and using
> http://jpcap.sourceforge.net/ to capture packets.
>
> Does it sound a good idea ?

a big +1, I just wanted to put this proposal, and here you are with the same.

WebSockets is also a real good addition. May be we can have 2 projects :)

I don't if jpcap was in my thoughts, its jni wrapper over libpcap. Do
we actually need to capture packets?

Here are my thoughts on the tool
1. Display the MINA App topology like Server/client configuration, chains etc
2. Display real time stats of the system, meaning a real good
integration with JMX
3. Facilitate to take thread dumps
and add more to it :)

I am not sure if I can be a Mentor or not, but would like to be
actively associated with the project :)
I am customizing TDA (Thread Dump Analyzer) for my needs (something to
help me with my paid job)

thanks
ashish

Re: Fwd: Google Summer of Code: Bring out your projects

Posted by Emmanuel Lecharny <el...@gmail.com>.
On 3/12/10 2:53 PM, Niklas Gustavsson wrote:
> Hey
>
> GSoC is coming up, see more below. Anyone got ideas for projects?
>
> I'm considering volunteering as a mentor for a project on implementing
> BoSH/WebSockets for Vysper.
>    
I always wanted to build some tooling on top of MINA, and we already 
found a name for it :
MinaReal

It would be some kind of Ethereal, with plugged protocol decoder, and 
using http://jpcap.sourceforge.net/ to capture packets.

Does it sound a good idea ?

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com