Applying Peer-to-Peer Technology to the Building of Distributed Educational Systems

Article excerpt

Existing educational systems built for cooperative and collaborative activities are most often based on the client/server paradigm of distributed computing. This article shows that a new model for distributed computing, Peer-to-Peer (P2P), provides new opportunities for building distributed educational applications. It begins by reviewing general aspects of distributed educational applications and the design requirements for building such systems. Then, the applicability of several existing collaborative P2P applications to educational settings is examined. The final portion of the article is devoted to a description of the features offered by Acadia P2P-based Educational eXchange (APEX), an application designed by the authors. APEX is based on the Project JXTA P2P Framework.


With the increased availability of powerful personal computers and fast networks there is a growing trend towards distributed educational applications that emphasize interaction and team work. Groupware or computer-supported cooperative work (CSCW) refers to computer-based systems that provide an interface to a shared environment in order to support groups of people working towards a common goal (CSCW, 2003). One of the most popular models of distributed educational applications is the electronic classroom, in which every student and the teacher have access to a personal computer (Shneiderman, 1995). Another reason for the interest in this area of research is the growing number of universities which have built fully computerized campuses. For example, Acadia University (MacDougall, Muldner, & Tomek, 1998; Tomek & Muldner, 1999) provides each faculty member and full-time student with a laptop computer. In addition, each classroom and dormitory on the Acadia campus contains access points to the campus network. This provides many opportunities for various types of computer-supported interaction. There are two kinds of electronic classrooms using this technology: synchronous, face-to-face systems in which the teacher and students share the same room, and asynchronous, virtual classrooms in which students can be geographically dispersed as is the case with distance education.

Most known implementations of distributed educational applications use standard Java-based technologies (Muldner, 1998). The favored model for building such applications has been client/server, where numerous "thin" client systems containing little application logic interact with a much smaller number of "thick" server systems, which contain the bulk of the application logic (Leighton, 2003). The client/server model has several inherent weaknesses. First, a centralized server creates a bottleneck on the system's performance, scalability, and reliability. The reason for these problems is that the availability of a client/server-based application is entirely dependent on whether these servers are currently operational. Second, client/server applications tend to be monolithic in their design, which makes it difficult to extend an existing application without affecting the original functionality. As an example of a system that encounters these problems, consider an example-driven system, designed to allow students to share examples of programs in C (Muldner & Phang, 1999; Muldner & Shiv, 2000, 2001). In the client/server implementation, a student who wants to share examples with other students has to connect to the server, and leave a copy of these examples on the server, where other students can fetch them. This server creates a bottleneck in the sense mentioned.

Recent security attacks have increased the popularity of firewalls (Zwicky, Cooper, & Chapman, 2000), which provide a means of securing a network from outside attack by limiting the ability of computer systems located outside of the network to connect to computer systems inside the network. At the same time, since IP addresses are a scarce resource, most Internet Service Providers (ISPs) use dynamic IP addresses and network address translation (NAT) schemes (Network Address Translation FAQ, 2003), which provide a mapping between the internal network address of a computer system inside a subnetwork and the external network address that is reported to any systems located outside of the subnetwork. …