School Server Specification

Revision as of 09:55, 2 December 2007 by Chief Mike (talk | contribs) (+Category:SchoolServer)
Jump to: navigation, search
  This page is monitored by the OLPC team.
  english | 한국어 | español HowTo [ID# 81837]  +/-  

The XO laptops and the publishing tools that come with them make possible the development and free sharing of learning materials customized to every locale and culture. Projects shared across a small group help students to discover their own capacity for teaching and learning. Projects shared across a group of thousands have the power to create tools, artifacts, and resources with a diversity, specificity, and comprehensiveness that could not otherwise exist.

If the laptops help fulfill one part of this vision, then the school server fulfills another. A network of laptops connected through a network of local and regional servers greatly expands the possibilities for learning. School servers provide access to libraries of knowledge, ideas, experiments, and art that others have created, giving students examples and references on which to build. As students study new areas, develop new ideas and experiments, and conceive of large-scale projects, the servers allow them to share these ideas with those around them. The school server is truly an integral part of the OLPC experience.

What the School Server Supports

The main role of the school server is as a publishing site for a child's data. OLPC wants children to be able to read and modify documents, create new documents, share documents with others, and explore the larger world. The school server supports this through a school library, which includes any documents from a child's journal that they have marked to be shared with other students.

The school server supports a child's exploration, storing and protecting their data. With the extra storage provided by school servers, children can create, or copy and modify, as much as they want. By providing a continuous backup of the data on their laptops, servers help free children of concerns that they will lose their creations, even if they modify the laptop software itself.

What the School Server Provides

The school server provides centralized services and support for the laptops. XO is designed to be durable and to run on limited power, therefore it has no moving parts and minimal external connectivity. This means flash memory instead of a hard drive, and no wired network connections. To download applications, store and backup large files, and to communicate with the Internet, the laptops in the mesh periodically connect to the school server.

The school server comes in two sizes, small and large, that support approximately 20 and 150 laptops respectively. The small server has one built-in mesh interface with an option to add another externally. The large server has more processing capacity and memory, and supports three wireless mesh networking interfaces using external WLAN modules. Multiple school servers will be used to support larger schools, still appearing to students and teachers as a single 'server'.

The relationship between laptop and school server is not the traditional one of client and server. School servers are effectively more capable, persistently available peers of the laptops. A number of services, such as storage or a telephone directory, are difficult or costly to provide in a distributed manner, and better relegated to the school server.

In addition to providing centralized services to XO laptops in its network, a school server also extends the functionality of the laptops by providing Internet access and caching for all laptops in the mesh, backup of individual laptops, and access to content from the school library.

Internet Access

When connected to the Internet, a school server provides this access to all XO laptops on its network. The laptops are connected to one another and to the Internet using the school's wireless mesh network. Individual machines don't need to be within direct wireless range of the school; other XO laptops may relay their connection to the school. To accommodate the number of students in larger schools, up to three physically overlapping mesh networks may be deployed per school. The school server provides the connection between these school mesh networks and the Internet using built-in wireless mesh network interfaces.

In addition to providing connectivity, the school server provides other networking functions that improve the Web experience for students in a school. One crucial function is local caching of pages and media accessed on the Web. Caching is the practice of storing a copy of any web content retrieved from the Internet on a local server - in this case, the school server. Image files, video, or audio can be slow to download over a limited Internet connection. When this content is already available on the school server, subsequent requests for the same content can be served very quickly. This both allows for much more rapid sharing of web pages and media by a class or group of users, and reduces traffic and bandwidth on the shared Internet connection.

Another function provided is caching of Internet domain name information. A typical web page requires translation of two to three domain names before displaying. In a manner similar to that used for content, these translated domain names are stored locally on the school server and reused for subsequent requests, resulting in faster browsing.

If a country chooses to filter a school's access to the Internet, the school server could perform the filtering operation. OLPC does not currently provide network filtering software, but will work with countries to meet their requirements.

The school server will also provide computers other than XO laptops at the school with connectivity. However, until the wireless mesh interface used by the laptops becomes available on other computers, this connectivity must be provided through an alternate network. This alternate network may be wired or wireless. If it is wireless, access points other than those provided with the school server will be needed. In order to avoid interference with a school's mesh networks, it is strongly recommended that any non-mesh wireless networks in the school use 802.11a technology.


The school server provides reliable data storage to the laptop and maintains a backup copy of a student's work. If their laptop is stolen, lost, or broken, their work can be recovered from the server. This backup facility also archives older work that is no longer stored locally on the XO.

In the event of accidental data destruction, all files recently created by a student can be restored from the school server using a process similar to that used for upgrading the laptop software. A redundant backup of student work is planned, from the school server to another server on the Internet; this process will vary from country to country.

As students use their laptops, it is expected that they will exceed its limited storage capacity (around 800 Megabytes of user space). At this point, older documents stored on the laptop will be removed to make room for new documents. Those documents will then be archived on the school server. Not encumbering the students with this multi-level storage model is a feature of the new Journal interface planned for the laptop. The Journal will automatically and transparently restore deleted documents to the laptop if a student wishes to access or edit them.


The school server houses a library of media, applications, and texts for children and teachers in the area. This school library is distributed across school servers and laptops in a school, and connected to a regional library located on the Internet. Books and media in the library may be accessed directly from the school server or downloaded onto the laptops. The library also houses software updates, repair manuals for the laptop, and new laptop activities.

The school library, at its core, is a local copy of a library assembled by the school's country and region, with help from OLPC. This set of documents is assembled on a country/region server, named a Regional Library. Each individual school server has a section of its library consisting of documents submitted by students and teachers using that server. This is called a Classroom Library. The collection of classroom libraries provided by the school servers at a particular school (there will typically be 2 to 15) is called a School Library. School library content comes from a variety of sources: teachers and students in the school, regional school organizations, the country and [inter]national libraries, school and regional servers in other countries, OLPC, and other free knowledge communities worldwide.

A number of library attributes (discovery and availability of materials, library contributions, collaborative learning) are discussed in following sections. It is important to note that the library is not a single service, but rather a set of services (wiki or wiki+, http cache, bittorrent client, codecs, etc...) that combine to provide library functionality.

Discovery of Materials

Any XO laptop maintains an index of materials on its own machine, as well as those seen on other nearby XOs and on school and regional servers, and can send requests for materials over the mesh or network. School servers maintain a similar but larger index, collating requests for materials and evaluating whether they can be fulfilled over the mesh. A pre-determined subset of the regional library is mirrored in the school library; the remainder of the documents are available over the Internet. Requests that cannot be fulfilled locally can be queued for request from regional servers or the Internet.

Availability of Materials

When a user requests a document from the school or regional library, the document is cached locally for a specified period of time. Caching of recently accessed documents via transparent HTTP proxy provides the best user experience, given limited connectivity. This also minimizes the load on the network connection to the regional library.

Supplying school library content from one school to a large number of other schools is also a challenge due to the limited bandwidth available for uplink from a typical school. Unfortunately, the architecture most useful for nonprofit content distribution is peer-to-peer (P2P), which is not well suited for school servers using highly asymmetrical (DSL, satellite) network connections. One solution is a well-connected regional or country-level 'seed' server with ample storage that can mirror unique content from each school. This server could also provide redundant backup of school libraries. P2P access protocols may be used to reduce the load on these seed servers, and make use of any regional schools with good uplink connectivity.

Note: A P2P protocol may be used to help scale the regional library, but it must be sensitive to the fact that many schools have very limited upstream bandwidth and can not participate as peers. While this protocol may serve well for mirroring content onto school servers, using it to provide on-demand access to library materials by students would require a client that is more complex than a browser.

Library Contribution and Collaborative Learning

Teachers and students should have tools to create and a place to store (and share) any resources they create. One such tool is a local 'wiki' available on each school server. Wikis are websites and software applications that allow users to freely add or edit content displayed on the site. They are powerful and effective tools for collaborative authoring. Other collaborative tools such as Rhaptos and Moodle have been developed specifically for school environments, and will be supported by the Library. The online extension of the Journal can provide students with the ability to blog and set up a shared window into their writing and work.

In any case, software that allows students and teachers to engage in collaborative projects will be made available — either directly on the laptop or for download from the school server. By working through their school servers, several schools in a district may collaborate on the same project. For example, an essay project might involve forming an author group of students from different schools in a district, all working through collaborative tools. Over the course of the semester or the holidays, students could work together on an essay about a chosen topic, even cooperating with other regional groups to contribute to a larger project in a chosen knowledge area (similar to Wikipedia projects). The results can be graded by tutors and teachers. Mentors can help to locate information or to offer advice on how to collaborate. Collaborative projects hone not only the student's writing and communication skills, but their computer skills as well.

What the School Server is

The school server is a bundle of software that may be run on a variety of platforms, allowing it to support schools of 20 to 2000 students. OLPC will design and build two varieties of school server, small and large, supporting 20 and 150 students respectively. An XO laptop can even serve as a school server in a pinch, though this is not economical. Multiple servers may be used to support larger schools, appearing to the students and teachers as a single 'server'. OLPC will support efforts by individual countries to build their own school servers. All software running on the school server, like the laptop, will be free and open source.


School server hardware is rather conventional, taking advantage of economies of scale in the personal computer industry to provide adequate performance at a minimum cost. There are three school server hardware platforms planned:

  • A "small" server based on the XO laptop motherboard, designed to serve up to 25 laptops
  • XS: A "large" school server, designed to serve up to 150 laptops
  • XSX: An early prototype built using off-the-shelf PC components used for server software development and early trials

None of the school server platforms will support direct user interaction. They will not be equipped with a keyboard, graphics capabilities, or a display. If interaction is needed, such as for limited server configuration and management, it will be done via the network using a laptop.

Processor & Memory

To facilitate software development, the school server is being developed for the x86 family of processors. Other processor architectures may be supported in the future. The processor in the small server will be the same as that used in the laptop, running at 466 MHz. The large server will have more processing power, with processor speeds of at least 1 GHz.

Like the laptop, the small server will have 256 Megabytes of memory. The large server will be provided with at least one Gigabyte of memory, to support the additional students.


Each server is equipped with at least one hard disk drive, providing storage resources for the library and laptop backup. The size of this disk drive varies, and will increase over time. In the small server, a 2.5" laptop drive will provide 40 to 60 Gigabytes of storage, and in the larger servers a 3.5" drive will provide 320 to 400 Gigabytes of storage.

Additional storage may be added to a school server, both by installing a second, internal disk drive, and through external interfaces. The supported interfaces are: serial ATA (SATA), parallel ATA (IDE), and universal serial bus (USB) 2.0. Only USB will be supported externally.

The school server's operating system and critical services will be housed in solid state storage (flash ROM), allowing the server to continue providing a crucial subset of services even if the disk drive has failed. The unique (locally generated) content on the school server will be backed up remotely to facilitate recovery after disk failure.


Network interfaces provided on the school server will vary. One interface will be dedicated to connecting to the Internet, possibly through an external DSL or satellite modem. In the large server, a wired interface will be provided for connecting multiple school servers together, as well as providing network connectivity to non-XO computers that might exist in the school.

All school servers will have two or three Marvell wireless mesh networking interfaces. These interfaces will be external to the server, connected (and powered) through three-meter USB cables. The interfaces are used to connect the server to the XO laptop wireless mesh network.


Like the XO laptop, the software on the school server will be based on the Fedora distribution of Linux. Services and interpreters available for use by applications include SQL, Java, PHP, Python, and Perl. The web server will be Apache 2, and collaborative tools will include several wikis and Moodle.

Virtual servers (see the BitFrost security specification) will allow software applications developed at the local or regional level to execute on the school server without compromising either the security or reliability of the server. Virtual servers constrain applications in the amount of resources (processor, memory, disk, and network) that they may consume.

A description of the XS implementation of school server software provides further information.