• Document retrieval. A popular document retrieval system with a huge database is the Google search engine. To support efficient retrievals, each server uses a parallel multiserver architecture to maintain a subcollection of documents and a local vocabulary index. When retrieving documents, every server matches the user-supplied keywords with its local vocabulary index in parallel. The search engine then consolidates results from all servers to obtain a list of relevant documents. To support high availability, the system can deploy replicated parallel servers.
• Multiplayer gaming. Multiplayer online gaming lets remote users interact in a shared game. It can become computationally demanding when there are numerous users interacting with the game continuously. In such a situation, the service provider can use a parallel architecture to distribute the workload among multiple servers by dividing the users into groups or the game scene into regions for individual servers to handle. 2
• Multimedia applications and streaming. Multimedia applications give users diverse, multimedia information. To enable interactive response, such applications often employ media streaming, which requires the server to spend a prolonged time period managing each delivery task. For example, YouTube and Google Earth deliver on-demand videos and high-quality satellite images, which are partitioned among parallel servers, to users. Because multimedia applications might be composed of many subapplications, such as those that deliver satellite images, 3D -building models, and hotel information in Google Earth, a hybrid multiserver architecture is useful. In this approach, a distributed architecture can serve the entire application, and a parallel architecture is assigned to serve each subapplication.
Component-based architectures. Commercial e-learning systems are powerful, integrated systems that provide critical functions in a single package to satisfy e-learning stakeholders' requirements. However, such complex, monolithic systems have difficulty meeting requirements for every level of the educational hierarchy, and a change in the domain knowledge might require system-wide modifications. 3 Alternatively, component-based architectures might be a promising approach because they would replace such monolithic e-learning systems with a community of distributed communicating servers. Such architectures should provide one-stop comprehensive support for teachers and students and enable the e-learning community to reuse existing educational systems as components. The architectures' openness and flexibility would let educational systems developers compete by offering better or more innovative services.
Other alternatives come from the open source community, which has been developing options such as Moodle ( www.moodle.com), in which educators can integrate new features into existing e-learning systems at minimal cost.
Distributed protocols. We can implement distributed e-learning systems using Web services technology that fundamentally supports a component-based architecture via standardized tools. 3 For example, the Web Services Description Language (WSDL; www.w3.org/TR/wsdl) supplies a common language that lets providers describe and publish their services, whereas SOAP ( www.w3.org/TR/soap/) lets users invoke Web services that can communicate and move data among platforms. These Web services enable efficient reuse of services and content across e-learning systems. On the other hand, the dynamic and distributed nature of both servers and learning resources requires software-agent technology to provide adaptive and intelligent support to both learners and tutors. Agents are software programs that can auto-nomously cooperate with each other and interact with users. For example, we can use agents to develop, at the application layer, adaptive hypermedia (AH) systems that adapt the learning process for individual students on the basis of their preferences and knowledge. 4
Open-access learning resources. To support users' (learners and software agents) open access to educational materials and facilitate interchangeable and reusable content, several standardization bodies, such as the Advanced Distributed Learning Initiative ( www.adlnet.gov) have issued educational standards, 5 which are especially important for large-scale, distributed learning environments. Some of them focus on prescribing methods for storing learning content in a way that facilitates information exchange across learning systems. Standards for describing learning content, such as Learning Object Metadata (LOM), enable learning-object repositories to provide an efficient search for learning content. In contrast, other standards focus on interoperability among e-learning system components so those components are reusable and replaceable. The Shareable Content Object Reference Model ( www.adlnet.gov/scorm/), for example, bundles a set of widely accepted standards and specifications that enables conforming e-learning systems to exchange and reuse learning materials.