[zeromq-dev] Research and student involvement
sustrik at 250bpm.com
Sun Apr 25 22:07:00 CEST 2010
There was a question on IRC about the possibility of students being
involved in the research. I am answering via mailing list as it may be
interesting to a larger audience.
Firstly, there's no 0MQ GSoC project this year. Mea culpa! Hopefully,
there will be one next year.
Secondly, any student can do programming/research as a private person.
As for doing research as a part of curriculum, there's a question of IP
rights to consider. As far as I understand, IP rights for any work done
within curriculum belong to the school.
Thus, to provide patches to 0MQ, school must be OK with submitting the
patches under MIT license.
As for the research the issue is more complex. The best solution would
be to do it under auspices of IETF, which defines sensible and not
overly restricting rules for handling copyrights (BCP 78) and patents
As for actual work that may be done by students it ranges from simple
programming tasks suitable for assignments for undergraduates to major
problems worth of PhD. thesis.
Off the top of my head:
Algorithms and data structures: Improve memory footprint (and thus
performance) of 0MQ topic matching algorithm.
Operating systems: Implement O(1) scheduler with priorities.
Statistics: Define sound statistical model for evaluation of latency &
Application design: Define coherent model for passing topic
subscriptions up the (possible unreliable) pub/sub hierarchy and
implement it. Or: Define reliability model(s) to improve overall
reliability of the system -- including persistence -- and implement it.
Microarchitectures: Formally describe and prove the correctness of
lock-free algorithms used in 0MQ. Optionally, provide a reference
implementation on microarchitecture of your choice.
Networking: Define how 0MQ API can be integrated with Berkeley sockets.
Optionally, write a wrapper library to implement the integration.
Security: Define optimal security model for a use case of your choice.
Use cases with untrusted middle nodes are of special interest.
Experimental: Test the impact of different hardware/software
technologies on performance of 0MQ.
Generic: Research how location of endpoints can be done, taking into
account existing Internet standards.
More information about the zeromq-dev