School Server Specification
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 and add new ideas and experiments, the server allow them to share their knowledge 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 to be a publishing site for a child's data. OLPC wants children to be able to read documents, create new documents, share documents with others and be able to explore the larger world. The school server supports this through the school library, which includes any documents from a child's journal that they have marked for sharing with other students.
The school server supports a child's exploration, through extending and protecting their data storage. By extending the storage provided by the laptop, a child is not constrained by limited resources. They can create, or copy and modify, as much as they want. By providing a continuous backup of their laptop storage, a child is freed 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. The XO laptop was 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 will support three wireless mesh networking interfaces using external WLAN modules. Multiple school server machines will be used to support larger schools, still appearing to the students and teachers as a single school server
The relationship between laptop and school server is not one of client and server. The servers are best considered as more capable, persistently available peers of the laptops. A number of services such as storage or telephone directory are difficult (or costly) to provide in a distributed manner, and are better relegated to the school server.
In addition to providing centralized services to the XO laptops in its network, the school server also extends the functionality of the laptops by providing additional storage, applications, and connectivity. These extensions include Internet access for all laptops in the mesh, backup of individual laptops, and access to content from the school library.
Internet Access
The server provides Internet access for all XO laptops. The laptops are connected to one another and to the Internet using school's wireless mesh network. Individual machines don't need to be within wireless range of the school; other XO laptops may relay their connection to the school. To accommodate the great 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 functionality is caching of pages and media accessed on the Web. Image files, video, or audio can be slow to download over a limited Internet connection. 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. Because the content is already available on the school server, subsequent requests for the same content can be served very quickly. This not only allows for much more rapid sharing of web pages and media by a class or group of users, but also reduces traffic 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 a faster browsing experience.
If a country chooses to filter a school's access to the Internet, the school server performs 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 in 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.
Backup
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. In addition, as the XO laptops have limited storage capacity, 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 from the school server to another server in the Internet is planned, but the 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). At this point, older documents stored on the laptop will be removed to make room for new documents. Those documents are then archived on the school server. Hiding this multi-level storage model from students is one feature of the new Journal-style 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.
Library
The school server also houses a library that contains media content for both students and teachers at the school. This local library is distributed across school servers and laptops in a school as well as across a regional library located on the Internet. Books and other media in the library may be accessed directly from the school server or downloaded onto the laptops. The content in the school library comes from a variety of sources: OLPC, OEPC, the country, the regional school organization, other schools, and teachers and students in the school. The library also houses software updates and repair manuals for the laptop.
The 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, and is named a Regional Library. Each school server has a local 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.
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...) which combine to provide library functionality.
Discovery of Materials
Any XO laptop can maintain an index of materials seen on other local XOs as well as on school and regional servers, and can send requests for material 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 connection. 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. It also minimizes the load on 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 use by school servers using highly asymmetrical (DSL, satellite) network connections. One solution is a well-connected regional or country-level server with ample storage that can mirror the unique content from each school. This server can also take care of backing up the school's content. 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 peer-to-peer 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. And while this protocol may serve well for mirroring content onto the school servers, using it for student accesses to the library would require a more complex client than a browser.
===Library Contribution and Collaborative Learning=== Teachers and students should certainly have tools to create and a place to store (and share) any resources they create. One possible tool is a local wiki available on each school server. Wikis are websites (as well as software applictions) that allow users to freely add or edit content displayed on the site. They are a powerful and effective tools for collaborative authoring.
If a wiki proves to be too cumbersome, however, it is probably best replaced with a more function-oriented information organization tool such Rhaptos or Moodle, and an online extension of the journal which supplants blogging.
In either case, software that allows students and teachers to engage in collaborative projects will be made available-either 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, the task of writing an essay might involve forming an author group of students from different schools in the school district, each working with the collaborative tool. Over the course of the semester or the holidays, the students work together on an essay about a chosen topic. The author group cooperates 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 offer advice on how to collaborate. Collaborative projects not only hone the student's computer skills, they also build writing and communication skills.
Exchanging published work with other communities could also be done using a USB key, taking a class portfolio (using moodle pages) to another village. Distance collaboration can also be done in an asynchronous way, much like standard post mail. Each school has its page or set of pages in Moodle, and they travel by land to another school where kids contribute, comment, peer-review, and send them back again.
What the School Server is
The school server is a bundle of software which may be run on a variety of platforms, allowing it to support schools of 20 to 2000 students in size. OLPC will design and build two varieties of school server (small and large), supporting 20 and 150 students respectively. An XO laptop may even serve as a school server, although this is not economical except for emergencies. Multiple servers may be used to support larger schools, appearing to the students and teachers as a single server. OLPC will also support efforts by individual countries to build their own school servers. All the software running on the school server, like the laptop, will be free and open source.
Hardware
The 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 different school server hardware platforms planned at this time:
- A "small" server that is based on the XO laptop motherboard and 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 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
In order to facilitate software development, the school server is currently 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 adequately support the additional students.
Storage
Each server is equipped with at least one hard disk drive, providing the storage resources for the library and laptop backup. The size of this disk drive varies, and will certainly 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), or 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 also be backed up remotely to facilitate recovery after disk failure.
Connectivity
The network interfaces provided on the school server will vary. One interface will be dedicated to connecting to the Internet, prossibly through an external DSL or satellite modem. In the larger 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.
Software
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, 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.
Trial1 Server Differences
In order to support trials of the XO laptop software while the software is still under development, a limited functionality release of both XO laptop and server software is being made. This software, while operational, is missing some key functionality (such as the Journal), has some "unexpected features", and may be difficult to configure.
From a user's perspective, the main difference in the school server functionality between this Trial1 software and the full release is in sharing and backup of documents they create.
In the full release of the XO laptop software, the Journal application will provide the mechanism for students to access documents that they have created, irrespective of their location (on the laptop or moved to longer-term storage on the school server.) It will also provide a method for children to indicate which of their creations they wish to share with others. As the Journal application does not currently include this functionality, a temporary substitute has been provided.
Each student's XO laptop will automatically copy all documents they create on their laptop to a unique directory on the school server. The contents of this directory will be available through the school library (at /schoolserver/childs_nickname/), for sharing with other students.
Documents in the student's home directory on the XO will be deleted as the XO's local storage (flash memory) fills up. As this happens, students will still be able to access their older (deleted) documents. Using the browser application on their laptops, students can easily download or restore from the school server any of their older documents (or those of another student) for re-editing or inclusion in another document.