Internet2 "Neternship"
Summer, 2005
The focus of this project is to provide students with the
opportunity to collaboratively create or enhance a piece
of software that takes advantage of the advanced network
features provided by Internet2.
Goals
- Provide a small group of students the opportunity to interact with
students and faculty from other campuses through a distributed
programming project
- Introduce students to collaborative
tools that are currently
in use across Internet2 and the commodity Internet
- Produce
functioning software by the end of the term that addresses
all functionality identified at the outset of the project
Benefits to Students and Campus
- Hands-on experience for students in advanced network programming fundamentals
- Collaborative experience will put students in touch with
new communities: network infrastructure, video, collaborative
tool providers, researchers, etc.
- Introduction to Internet2 (technology, staff and community) will
be beneficial not only for the participating students, but also
for campus staff. Contact points deep into the Internet2 community
will be useful for future questions regarding networking at
the campus and backbone level.
- Opportunity not only for students, but for campuses to
to contribute to the advancement of networking as a whole.
The tools and technologies created will be publicize by Internet2 and
can be cross-referenced for local announcements.
Requirements and Assumptions
- The students will participate via independent study on their own
campuses. Final grading and credit will be determined by each
student's local campus instructor/advisor. Students are expected
to be self-motivating and know when to ask for help.
- Students will participate in a weekly "class" using the Internet2
Commons video conferencing infrastructure (H.323), AccessGrid,
VRVS, and/or ConfXP.
- Students are expected to be proficient in network programming and
familiar with compile/debug tools for the languages. Languages
possibilities will probably be C, C++, and/or Java, but
specifics will be determined once the student group is assembled.
- Each student's instructor will be available for one online
"class" instruction. The instructor will provide Q&A, guidance,
and consultant-style assistance.
- Software will be produced under the Internet2 Intellectual Property
Framework
- Software compilation should rely only on open source software.
Specifically, open source tools should be used for compilation,
linked libraries, etc. Software can be created using any tools
(e.g., closed source editors).
Interesting and Useful Additional Skills?
- Database knowledge
- Network routing
- Graphics programing (UI and 2D, do not expect 3D will be useful)
- Glue languages like Perl, Python and/or Ruby might be useful.
Potential Project Ideas
Internet2 Detective
- Currently, there are at least 3 source trees (in
at least that many languages). It would be useful to
consolidate these into one main trunk. The core code
is envisioned to be C (via gcc) and the cross-platform
GUI could be implemented through wxWindows. This would
also be a good opportunity to look at the ways in which
the code could be modularized/layered to more easily
support expanded functionality.
- The Internet2 Detective currently covers a small number
of network tests to provide insight into a host's bandwidth
capabilities. Adding diagnostic features (on a per-platform
basis) would move this from a measurement to a diagnostic
tool. Initial work that can be leveraged is available in
Java from the NDT, Network Diagnostic
Tester.
DigitalVideo (DV) and the AccessGrid (AG)
- AG
is a multi-site, multi-camera, video-conferencing tool
that has traditionally relied on H.323. Improvements
and cost reduction in consumer hardware now provide an
opportunity for higher quality video. DV support is
available for Linux. The Windows and OS/X implementations
are sub-optimal, but (barely) functional source code exists.
Optimizing the DV tree would provide existing users with
significant improvements in quality while opening the
door to an entirely new class of users.
Collaborative Tool
- A variety of collaboration tools exist and most do
not integrate well with one another. VRVS's reliance on
VNC is one of the more plausible, successful examples.
It would be interesting to provide a cross platform
mechanism to collaborate on documents such as the
Mac specific tool subEthaEdit. (TCY has specific
ideas on this, but has many possibilities and may not provide
enough constraints for a good project.)
Calendar
Oct 2004
- Initial distribution of this proposition
- Identify instructors who are interested in participating
- Through instructors, identify potential students
Nov 2004
- Select 2-4 potential project
ideas
- Through instructors, recruit and select students
Dec 2004
- Identify instructors
and students who will participate
- Create calendar for participants (start dates, meeting
times, end date, demo opportunity, etc.)
Jan 2005-May 2005
- "Neternship" in progress
- "Neternship concludes with final presentation
|