User:Holt/XS Community Edition/0.2/Project Specifications: Difference between revisions
No edit summary |
|||
(21 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
School Server - Community Edition 0.2 Project Specifications |
School Server - Community Edition 0.2 Project Specifications |
||
Contents [hide] |
|||
==Summary== |
|||
==Executive summary== |
|||
The school server is very similar in concept to a standard home wireless router. In everyday usage it provides various services which extend capabilities of the connected laptops while being totally transparent to the user. |
The school server is very similar in concept to a standard home wireless router. In everyday usage it provides various services which extend capabilities of the connected laptops while being totally transparent to the user. |
||
Line 9: | Line 8: | ||
<li>Network connection – various services similar to what you would find in a home router. |
<li>Network connection – various services similar to what you would find in a home router. |
||
<li>Presence server – Augments sugar's native collaboration functionality. |
<li>Presence server – Augments sugar's native collaboration functionality. |
||
<li>Squid -- Caches pages to speed requests for multiple requests for the same page. |
|||
<li>Web filtering – Enables schools to comply with local legal restrictions on internet access for children. |
|||
<li>Activity Update Server -- enable local repository of Activities. |
|||
<li>Security – XO related security services. |
|||
<li>FUTURE - Web filtering – Enables schools to comply with local legal restrictions on internet access for children. |
|||
<li>Content management -- ??? |
|||
<li>FUTURE - Security – XO related security services. |
|||
<li>FUTURE - Content management |
|||
</ul> |
</ul> |
||
Line 18: | Line 19: | ||
The XS-CE has two different types of reference user: |
The XS-CE has two different types of reference user: |
||
<ul> |
<ul> |
||
<li> |
<li> Skilled sysadmins running micro-deployments |
||
<li> OLPC-AU |
<li> OLPC-AU schools. |
||
</ul> |
</ul> |
||
As a result this design might not apply in all situations in all deployments. |
As a result this design might not apply in all situations in all deployments. These limitations ease design and development while creating a functional reference implementation. |
||
==Hardware== |
==Hardware== |
||
School servers can be run on XO-1.75. |
|||
To reduce inventory and maintenance costs, the target hardware for the school server will be recent XO laptop. Due to hardware limitations on early XO's, design and implementation of a fully functional server becomes difficult. |
|||
===XO-1.75=== |
|||
In common usage, the XO may be augmented by two off the shelf USB devices: |
|||
In common usage, the XO may be augmented by SD cards and two off the shelf USB devices: |
|||
<ul> |
<ul> |
||
<li>External hard drive – Allows the server to provide additional storage capabilities. |
<li>FUTURE --External hard drive – Allows the server to provide additional storage capabilities. |
||
<li>Network connector – Allow the server to offer internet access to connected XO's. |
<li>Network connector – Allow the server to offer internet access to connected XO's. |
||
</ul> |
</ul> |
||
This strategy it is simple for a deployment to inventory and maintain school servers. |
|||
== Deliverable== |
|||
NOTE: Limiting the hardware to XO simplifies the implement and testing process because their fewer possible configurations to deal with. Supporting multiple platform would be a good for a future release. |
|||
[edit]Deliverable |
|||
A RPM combined with tested installation instructions necessary to convert a standard XO-1.75 into a School Server. |
|||
The final deliverable from the community will be an image which can be flashed onto a laptop by deployment support staff. |
|||
At initial |
FUTURE - An image combined with tested installation instruction which can be flashed onto a laptop by deployment support staff. At initial 'power on' the support staff or teacher will be greeted by a simple GUI to do initial configuration. |
||
A single RPM or meta package necessary to convert a standard XO into a School Server should also be possible. |
|||
==OS== |
==OS== |
||
The school server will be based on OLPC-OS 12.1 on FC17 |
|||
To keep things simple and consistent the school server will run the same OS as the classroom laptops. Both teachers and support staff will already be familiar with the system. |
|||
NOTE: Limiting the deliverable to single OS variant meets the requirement to work on a XO while limiting complexity. Future releases can add additional Operating Systems. |
|||
NOTE: Limiting the deliverable to single a OS variant meets the base requirements while limiting complexity. |
|||
==User Interface== |
==User Interface== |
||
Command Line – Command line configuration should be discouraged at all levels. Target users are often not familiar with the linux system administration. Initial setup or fixing a problem with their server is not a good time to introduce system administration skill. |
|||
Browser based GUI. – The primary configuration tool will be a browser based GUI. This technology is well understood by developers. Many end uses have familiarity with Browser based setup. |
|||
FUTURE - Browser based GUI. – The primary configuration tool will be a browser based GUI. This technology is well understood by developers. Many end uses have familiarity with Browser based setup. |
|||
A browser based allow admin from three physical proximity distances: 1. On screen. Initial setup and admin of security sensitive services can be limited to on screen. 2. On site. Subsequent management of non security sensitive services can be done by a teacher or local admin logging in to the machine. 3. Remote. Deployment level support staff can log in and remotely maintain and monitor services. |
|||
Remote |
FUTURE - Remote administration – There are several systema such as CFEngine and puppet which enables remote management. While not immediately required by AU it is highly desirable by large deployment. |
||
==Modular design== |
|||
Command Line – Command line configuration should be discouraged at all levels. Target users are often not familiar with the linux system administration. Initial setup or fixing a problem with their server is not a good time to introduce system administration skill. |
|||
NOTE: Is is possible or useful to create a Sugar base configuration tool? |
|||
One of the key design criteria of all successful community based projects is modularity. The original XS suffered because developers used monolithic design to overcome hardware limitations on the XO-1. The improvements in the XO-1.75 allow for the potential inefficiencies of modularity. |
|||
[edit]Modular design |
|||
==Core Server== |
|||
The core server will contain 5 services which can be extended via extended services. |
|||
Service: Network setup<br> |
|||
Purpose: <br> |
|||
Provider: xs-setup-network <br> |
|||
Service: Dynamic Host Configuration Protocol<br> |
|||
Purpose: Schoolserver and clients need to be on same subnet.<br> |
|||
Provider: dhcpd |
|||
Service: Iptables -- Network Address Translation (NAT)<br> |
|||
Purpose: Permits all XO’s to access the internet.<br> |
|||
Provider: gateway |
|||
Service: Internet domain name server<br> |
|||
Prupose: <br> |
|||
Provider: named <br> |
|||
Service: Backup of student work and restore<br> |
|||
Purpose: <br> |
|||
Provider: idmgr |
|||
Service:Jabber server <br> |
|||
Purpose: collaboration > 15 clients needs to work. <br> |
|||
Provider: ejabberd |
|||
==Extended Services== |
|||
Service: Web server<br> |
|||
Purpose: Building block for many other extended services<br> |
|||
Provider: apache<br> |
|||
Service: proxy server and web cache<br> |
|||
Purpose: bandwidth, web-filtering, web-monitoring <br> |
|||
Provider: squid<br> |
|||
Service: OLPC-update<br> |
|||
One of the key design criteria of all successful community based projects is modularity. The original XS suffered because Wad and Martin took used monolithic design overcome hardware limitations on the XO-1. The improvements in the XO-1.75 and XO-4 allow for the potential inefficiencies of modularity. |
|||
Purpose: OLPC-update is necessary to update the kernel of XO<br> |
|||
Provider: rsync<br> |
|||
Service: Activity update<br> |
|||
Purpose: Enables teachers to easily distribute new or updated activities to their students<br> |
|||
Provider: activity updater<br> |
|||
Service: Virtual Private Network (VPN)<br> |
|||
The core server will contain 3 components: 1. Initial setup and configuration. 2. GUI framework. 3. Core services with GUI panels. The core server will be extended via extended services. |
|||
Purpose: Creating secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities<br> |
|||
Initial Setup |
|||
Provider: open vpn<br> |
|||
Service: Network setup Purpose: Provider: xs-setup-network |
|||
GUI Framework |
|||
The GUI permits permits configuration of the network interfaces: Already existing network and internet gateway Choose fixed ip and gateway use dhcp automatic assignment Establish a gateway to the internet, setup WAN and LAN: Use dhcp to setup WAN Manually setup WAN address, gateway, dns Use either of the above methods to set up LAN It permits enabling and disabling of services -- supported and enabled for this release are dhcp, iptables/gateway, named, ejabberd. |
|||
Core Services |
|||
Service: Dynamic Host Configuration Protocol Purpose: Schoolserver and clients need to be on same subnet. Provider: dhcpd |
|||
Service: Iptables -- Network Address Translation (NAT) Purpose: Permits all XO’s to access the internet Provider: gateway |
|||
Service: Internet domain name server Prupose: Provider: named |
|||
Service:Jabber server (AnnaS) Purpose: collaboration > 15 clients needs to work Provider: ejabberd |
|||
Extended Services |
|||
Service: proxy server and web cache (XavierC) Purpose: bandwidth, web-filtering, web-monitoring Provider: squid |
|||
Service: Content filtering (TimM??) Purpose: age-appropriate surfing, legal compliance, religious risks Provider: dansguardian |
|||
Service: Backup of student work and restore (JerryV, SameerV, GeorgeH) Purpose: also for stats/metrics, with incumbent surveillance risks Provider: idmgr |
|||
Service: (JerryV, GeorgeH) Purpose: Journal submissions to teacher, academic record (homework etc) Provider: WebDAV |
|||
Service: (DSD, GeorgeH) Purpose: remote upgrading/admin of XS servers (semi-automated) Provider: Puppet |
|||
Service: (GeorgeH, GeraldA) Purpose: local distribution/replication of Sugar Activities etc Provider: pdsh |
|||
Service: Book server (SameerV, AlexK, GeorgeH struggling!) Purpose: compete with Khan Academy? Provider: pathagar |
Latest revision as of 00:45, 11 February 2013
School Server - Community Edition 0.2 Project Specifications
Summary
The school server is very similar in concept to a standard home wireless router. In everyday usage it provides various services which extend capabilities of the connected laptops while being totally transparent to the user. These services can include:
- Network connection – various services similar to what you would find in a home router.
- Presence server – Augments sugar's native collaboration functionality.
- Squid -- Caches pages to speed requests for multiple requests for the same page.
- Activity Update Server -- enable local repository of Activities.
- FUTURE - Web filtering – Enables schools to comply with local legal restrictions on internet access for children.
- FUTURE - Security – XO related security services.
- FUTURE - Content management
Reference User
The XS-CE has two different types of reference user:
- Skilled sysadmins running micro-deployments
- OLPC-AU schools.
As a result this design might not apply in all situations in all deployments. These limitations ease design and development while creating a functional reference implementation.
Hardware
School servers can be run on XO-1.75.
XO-1.75
In common usage, the XO may be augmented by SD cards and two off the shelf USB devices:
- FUTURE --External hard drive – Allows the server to provide additional storage capabilities.
- Network connector – Allow the server to offer internet access to connected XO's.
This strategy it is simple for a deployment to inventory and maintain school servers.
Deliverable
A RPM combined with tested installation instructions necessary to convert a standard XO-1.75 into a School Server.
FUTURE - An image combined with tested installation instruction which can be flashed onto a laptop by deployment support staff. At initial 'power on' the support staff or teacher will be greeted by a simple GUI to do initial configuration.
OS
The school server will be based on OLPC-OS 12.1 on FC17
NOTE: Limiting the deliverable to single a OS variant meets the base requirements while limiting complexity.
User Interface
Command Line – Command line configuration should be discouraged at all levels. Target users are often not familiar with the linux system administration. Initial setup or fixing a problem with their server is not a good time to introduce system administration skill.
FUTURE - Browser based GUI. – The primary configuration tool will be a browser based GUI. This technology is well understood by developers. Many end uses have familiarity with Browser based setup.
FUTURE - Remote administration – There are several systema such as CFEngine and puppet which enables remote management. While not immediately required by AU it is highly desirable by large deployment.
Modular design
One of the key design criteria of all successful community based projects is modularity. The original XS suffered because developers used monolithic design to overcome hardware limitations on the XO-1. The improvements in the XO-1.75 allow for the potential inefficiencies of modularity.
Core Server
The core server will contain 5 services which can be extended via extended services.
Service: Network setup
Purpose:
Provider: xs-setup-network
Service: Dynamic Host Configuration Protocol
Purpose: Schoolserver and clients need to be on same subnet.
Provider: dhcpd
Service: Iptables -- Network Address Translation (NAT)
Purpose: Permits all XO’s to access the internet.
Provider: gateway
Service: Internet domain name server
Prupose:
Provider: named
Service: Backup of student work and restore
Purpose:
Provider: idmgr
Service:Jabber server
Purpose: collaboration > 15 clients needs to work.
Provider: ejabberd
Extended Services
Service: Web server
Purpose: Building block for many other extended services
Provider: apache
Service: proxy server and web cache
Purpose: bandwidth, web-filtering, web-monitoring
Provider: squid
Service: OLPC-update
Purpose: OLPC-update is necessary to update the kernel of XO
Provider: rsync
Service: Activity update
Purpose: Enables teachers to easily distribute new or updated activities to their students
Provider: activity updater
Service: Virtual Private Network (VPN)
Purpose: Creating secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities
Provider: open vpn