Numerous options are available for enabling communication between the interface module and the vote server. An early implementation of our system had the interface module mail votes to the server and read votes from the server by accessing a data file exported by the server using the Andrew File System (AFS). To gain robustness and generality, we have followed the lead of the Net News system and chosen Berkeley sockets to be the primary means of communication between the IM and the vote server.
IMs needing to access collaborative filtering information from
a vote server open a TCP connection to a well known port where the
voted is listening. The connection is essentially stateless as all
commands are one line terminated by a newline (`n') and no
state is kept by the server between commands. The protocol allows
clients to request the names of all the groups that currently contain
articles which have votes cast for them; to cast votes for articles,
or to retrieve the votes cast for the articles in a group. The
protocol for communication is described in detail in
Appendix A.