Jabber based Virtual Classroom Server
Bryan Mills
University of Pittsburgh
- Streaming XML messaging protocol based upon XMPP (xml messaging and
presence protocol)
- XMPP is an open standard designed to enable creation of software
to pass messages between clients
- Generally used to provide Chat services (like ICQ or AIM)
- Used by many different people as a basis for building a chat
service (see google talk)
What's the idea?
- Replace the current proprietary Virtual Classroom Server with an
open standards compliment Jabber server
- The initial goal was to show that a standard jabber server
provided the infrastructure necessary to support all the functions of the Virtual
Classroom
- Initially we will support group chat and individual chat then
overtime add the additional Virtual Classroom components (ie whiteboard)
Where to start
- Initially evaluated several jabber servers
- Strong preference towards a Java code-base since the current
Virtual Classroom client was written in Java
- Choose to base project upon
Wildfire
How can we use Jabber?
These are the base features of a jabber server and how we will use
them in the context of the virtual classroom.
Jabber |
VC |
Users |
Students and Teachers |
Groups |
Classes |
Group Chat |
Virtual ClassRoom |
Individual Chat |
Private Chat |
So what changes were made?
- Groups and group chat are separate entities in the current
wildfire server, but in our system they are linked (both equate to a classroom)
- The admin interface needs to modified to tie these two objects together (group
and group chat room)
- The users in the group should have access to the group chat room
- The admin interface should also be modified to indicate the
terminology changes from group=>classroom
How were the changes made?
- Created new JSP pages and added them to the wildfire admin
interface for managing classrooms
- Edited the admin interface navigation to reflect these changes
- Changed a few referencing pages
Where are the changes?
- Added jsp pages in src/web/vc-*.jsp
- Modified internationalization file
src/i18n/wildfire_i18n_en.properties (others need modified for broader
language support)
- Modified the presentation XML file src/resources/jar/admin-sidebar.xml
- Modified the web/WEB-INF/web.xml to reflect new name
- Thats it! Less than a 3000 line patch.
What do you need to build it?
How do you build from source?
- After expanding the source tar-ball goto the 'build'
directory
- Run 'ant' (you need to make sure your installation of ANT is in
your path and ANT_HOME environment variable is set
- This should build the entire wildfire server
- The binaries should be placed in the 'target' directory (at the
same level as the build directory)
Note: see print-out for more details. (just print this html document)
unix/linux commands to build and run the server.
tar -xzvf vc-server_src.tar.gz
cd vc_server_src/build
ant
### this should start the build
cd ../target
### this export sets the wildfire home to the current directory
export WILDFIRE_HOME=`pwd`
./bin/wildfire.sh
### this should start the server
### note that ./bin/wildfire.sh might not be executable so you might
### need to chmod it