[Server-devel] XSCE 0.3
Tony Anderson
tony_anderson at usa.net
Wed May 29 00:53:32 EDT 2013
Hi,
This is going to take some time to provide a useful reply.
Perhaps, the easiest way is to comment on the XSCE specification:
Summary
>The school server is very similar in concept to a standard home
wireless router.
The school server is a server. The router provides network access to the
server.
>In everyday usage it provides various services which extend
capabilities of the connected laptops while being totally transparent to
the user.
The school server provides the storage capacity not available on the XO.
In the deployments I serve, there is no internet access. The school
server is 'an internet in a box'.
>These services can include:
>Network connection – various services similar to what you would
find in a home router.
This service is provided by a router.
>Presence server – Augments sugar's native collaboration functionality.
Yes - this has always been a part of XS.
>NEW IN 0.4 - Web filtering – Enables schools to comply with
local/legal restrictions on internet access for children.
This has been deployed by OLE Nepal since XS-0.4 in the form of Dan's
Guardian - no need to re-invent this wheel. This is, of course,
irrelevant in deployments not connected to the internet.
>NEW IN 0.4 - XS-Stats - Enables deployments to collect anonymous
student usage.
School staff need the ability to keep a 'gradebook' with information on
student accomplishments that is not anonymous. The above feature is a
need for the deployers, not the school.
>NEW IN 0.4 - Backup and Restore.
This has been provided since XS-0.4. The primary problem here is that
the backup is considered as a backup (for use in emergency restore
situations). The real need is to maintain the Journal on the school
server for active recall as needed. Over time, the Journal grows to fill
the available capacity on the XO. Currently, the fix is to delete
Journal items. The current backup also deletes these items from the backup.
Currently, I am using a modified ds_backup.py script which treats the
Journal as a store for documents. These are uploaded to the school
server. Metadata only entries are uploaded to a log and deleted from the
datastore. The user has the option to delete documents from the data
store and then to reload them from the school server.
>[edit] Reference User
>The XS-CE has two different types of reference user:
Skilled sysadmins running micro-deployments
Mid-sized deployment with limited onsite sysadmins
The user of a server are the client computers. In general, a school
server should need no admin attention beyond morning start up and
evening shut down during a school year. The development arm of the
deployment should prepare updates for installation between school years.
>[edit] Hardware
School servers can be either an XO or standard x86 based hardware.
[edit] XO
XSCE v0.4 will run on all 4 XO laptops:
XO 1 - Likely experimental
XO 1.5
XO 1.75
XO 4
In common usage, the XO may be augmented by SD cards and two off the
shelf USB devices:
Network connector – Allow the server to offer internet access to
connected XO's.
2 USB ethernet dongles.
NEW IN 0.4 -- External USB hard drive – Allows the server to
provide additional storage capabilities.
The school server platform should meet the following requirements:
1. Large memory capacity (2GB+)
2. Large persistent store (500GB+)
3. Operates directly from 12vdc battery (e.g. car or marine
deep cycle)
4. Low power consumption (e.g. <2x XO 4.0). Power consumption
dictates the size of the solar panel required to charge the batteries.
5. Headless operation. Schools with a monitor, keyboard, and
mouse attached the school server will be tempted to use them as a client
system - with negative impact on stability.
6. Low cost (e.g. < 2x an XO or < $400)
Most other requirements are satisfied automatically be the system chip
set (e.g usb ports, ethernet port, etc.)
>[edit] Standard Hardware
>For greater flexibility some schools will want to use standard hardware.
Trim-Slice.
Raspberry Pi
The Trim-Slice indeed appears to meet the requirements for a school
server. I plan to try one in the next few weeks. One interesting
possibility is to boot from an SD card for installation and
trouble-shooting (via SSH).
The Raspberry Pi is attractive (esp. for low cost); however, I am
concerned about it's physical packaging in a school environment.
>Diligent volunteers can help make x86, x86-64bit, and ARM support
increasingly widespread.
[edit] Deliverable
[edit] RPM
XS-0.7 is deliverable now, albeit without ARM support.
A RPM combined with tested installation instructions necessary to
convert a standard XO or Fedora-compatible computer into a School Server.
[edit] IMAGE
XS-0.7 has tested installation instructions - although the mkusbinstall
could be made a little more robust. As mentioned above, it could be
possible on the Trim-Slice to install the school server as an image on a
hard drive from an SD card.
>NEW IN 0.4 -- A downloadable USB flash drive image, combined with
tested installation instructions, which permit deployment staff to
install XSCE software without an internet connection.
[edit] Base OS
OLPC-OS 13.2.0
Fedora 18
I consider running a school server on an XO as similar to using a Smart
car as a school bus. I realize that bureaucratic procurement problems at
some large deployments may make this the only option. Luckily that is
not a problem so far at deployments I am servicing.
>[edit] Modular design
>One of the key design criteria of successful community-based projects
is modularity.
>Plug in services
[edit] Configuration Tools
[edit] GUI
>Command line configuration/administration should eventually be
discouraged as the system matures. Future target users are often not
familiar with Linux system administration. Initial setup or fixing a
problem with their server is not a good time to introduce system
administration skill.
System administrators and a deployments development team will use the
command line because it is the most efficient tool available. In
general, server administration is not and should not be done on a
production machine.
[edit] Remote Configuration
>NEW IN 0.4 -- Remote administration – There are several systems such
as CFEngine and puppet which enables remote management.
[edit] Command Line
The problem here is that the school server is not connected to the
internet. There are many available and proven technologies to manage
networked computers.
It would be handy if the XOs at a school could be managed from the
school server. Perhaps Puppet is the right technology for this task.
Where a 'mother ship' is possible managing school servers (and XOs) at
multiple schools, the problem is often that the school server connection
to the internet (WAN) is via DHCP. One solution is for the school server
to call home periodically.
???
>>[edit] Core Server
>>>The core server will contain five 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 student work
Purpose: To back up student work
Provider: idmgr
Idmgr registers XO laptops by serial number. Registration is a
requirement for backup which is provided by ds_backup.sh and
ds_backup.py. (run by chron).
Service: Restore student work
Purpose: ???
Provider: ???
>Service:Jabber server Purpose: collaboration > 15 clients needs to work.
Provider: ejabberd
[edit] Extended Services
Actually, Ejabberd serves all connected XOs (>100 at most schools). I
doubt that 'collaboration' in this technical sense is widely used in
deployments. Sadly, it is not in the deployments I service.
Currently, all XOs are connected in the same emulated 'mesh' network. I
think this would be better configured so that XOs in a single classroom
form a 'mesh'. This can be done by the administration tools included
with Ejabberd.
>Service: Web server
Purpose: Building block for many other extended services
Provider: apache
Apache, of course, services web requests.
>Service: proxy server and web cache
Purpose: bandwidth, web-filtering, web-monitoring
Provider: squid
I suspect that squid is of little use for school servers not connected
to the internet. It will certainly be needed if all connected XOs are
surfing.
I really think that we may never see a deployment which provides direct
XO access to the internet for all XOs due to cost and bandwidth issues.
In the developing world, the internet provider is a telecom company
which charges for time and megabytes downloaded. Most require special
contracts for shared usage. A more likely scenario is that the school
server will download information from the internet (e.g. email) in batch
by a cron job.
>>Service: Moodle
Purpose:
Provider:
Purpose is well described by a blank entry. I have not heard of a
deployment making a constructive use of Moodle. It is, of course, a
standard part of XS.
>>Service: OLPC-update
Purpose: OLPC-update is necessary to update the kernel of XO
Provider: rsync
While this is available, I have never been able to make use of it.
Generally, the XO software should be updated only between school years.
In this context, there is a need to update much more than the kernel. I
am not sure rsync is the right vehicle (what do you do about the
datastore, for example?) The school server gives access to all of the
activities on ASLO; how does rsync deal with a different installed base
of activities on different XOs?
>Service: Activity update
Purpose: Enables teachers to easily distribute new or updated activities
to their students
Provider: activity updater
I assume this refers to Sugar activities. With a school server, the
situation is more complex. Teachers can assign specific activities using
a Sugar Activity (e.g. Memorize with a specific quiz or to read a
specific text or to write a report or to take a test). I have not found
the 'Activity update' to be useful.
>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: openvpn
I assume this could be a good alternative where a 'mother ship' is feasible.
>NEW IN 0.4 -- Service: Content filtering (TimM??)
Purpose: age-appropriate surfing, legal compliance, religious risks
Provider: dansguardian and opendns
One concern - the development team for the deployment must make it very
clear (in writing - CYA) that the school server provides a filtering
mechanism but the responsibility for using this capability belongs
totally to the school administration. I don't think any of us want to be
the target of legal action if some child finds something inappropriate
on the internet.
NEW IN 0.4 -- Service: 1-N WebDEV(JerryV, GeorgeH)
Purpose: Journal submissions to teacher, academic record (homework etc)
Provider: WebDAV
This is an important requirement. Is this implementation documented?
>NEW IN 0.4 -- Service: Statistics Collection
Purpose: Collects users statics for academic research
Provider: pilot monitoring system
>NEW IN 0.4 -- Service: Book server (SameerV, AlexK, GeorgeH struggling!)
Purpose: compete with Khan Academy?
Provider: pathagar
OLE Nepal has provided Pustakalaya capability on the school server since
XS-0.4. This capability is provided at the schools I am servicing using
Django (as does Pathagar). The webkit based Browse Activity supports the
library directly (eliminating the need for the Library activity). The
important point is that there are two parts to this requirement: (1) a
means to add items to the library and (2) a means to download items
selected by the user to the XO for offline use.
>>NEW IN 0.4 -- Service: Internet in Box
Purpose: Provide offline content
Provider: ???
[edit] Future Features and Objectives
I hope to have the opportunity to work with 'Internet in a Box' this
summer. Possibly, XS could be installed on the Seagate device. Possibly,
the content on the Seagate could be added to the school server.
>> Browser-based GUI Config - as primary configuration tool? To
configure install setup and core services?
Puppet remote management (future service below, design goals
reviewed May 2013)
>> ejabberd roster admin
Currently availbale with ejabberd.
>>Consideration of other devices (Android, Kindle, iPods, iPads)
As clients>.
>>Content curation (beyond dumping stuff into Apache directories)
I am not sure I understand what is meant here. Certainly the deployment
is responsible for curating the content on the school server.
Khan Academy
Currently installed at the schools I am servicing, including the
exercises. There are 40 topics for primary school (through pre-algebra).
There is some difficulties. The videos can be converted to ogv at
considerable expense in computer time (ffmpeg2theora). Alternatively,
mp4 and mp3 capability can be added to the XOs. The videos and exercises
are licensed under Creative Commons. However, the student profile is
not. This means an alternative must be developed.
[edit] Future services
Please consider adding features and objectives to this list if you feel
they should be included in a future release. If you consider the feature
important and are willing and able to do the necessary work please sign
your name to take responsibility for that service.
Service: (GeorgeH, Gerald, AnnaS)
Purpose: local distribution/replication of Sugar Activities etc
Provider: pdsh
Done.
Service: MediaWiki
Purpose:
Provider:
Done
Note: Daniel Drake has provided an effective mechanism to add
capabilities to the server via 'usbmount'. MediaWiki can be added by a
simple script (the only tricky part is adapting to pgsql). Wiki4Schools
is also available. Django was added in the same way.
There are some capabilities that would be very desirable:
1. Email. This requires an email client on the XO (there have been some
attempts to build such a activity, e.g. Gmail.activity). The email
system should operate locally among the registered XOs as well as
batch-forward and receive email via usb key from a local internet cafe
or from a periodic connection via gsm. The system should also provide
mailing lists (e.g. school computer club).
2. Printer. The ability to attach a printer to the school server. XOs
should be able to put printable items in a print queue. The school
administration should be able to select which items are to be printed
(ink and paper cost $). Having print drivers on the XO should not be
required.
3. Portable Journal. In the Lesotho schools, there are not enough XOs
for one to be permanently assigned to a student or teacher. Even in a
true OLPC environment, laptops at home will be used by family members.
There should be a login facility to identify users. Separate datastores
should be kept for each user. The datastore backup should backup up by
user, not serial-number. The Journal should enable a logged-in user to
load his/her Journal from the school server (metadata) and documents as
needed. This facility should certainly support changing laptop
assignment (e.g. when the user's laptop needs repair).
4. Wiki collaboration. The school server in general assumes that it is
provided by an external deployment and that it will not be modified by
the clients (except for the Journal). There should be a means for
students and teachers to create collaborative documents, Wiki-style.
Perhaps this can be done by setting up a local wiki in mediawiki.
Perhaps, something like Tiddly-wiki or etherpad would be useful.
The school server provides services. There can never be a definitive
specification of those services. At least, the above are my thoughts at
the moment.
Tony
On 05/28/2013 10:39 PM, David Farning wrote:
> Tony,
>
> I was wondering if you have gotten to take a look at the XSCE project
> lately. We have done a lot of modularization so that people can test out
> different ideas on a common platform.
>
> Any thought on if your work can be adopted to run on XSCE as an
> 'extended service'?
>
> --
> David Farning
> Activity Central: http://www.activitycentral.com
More information about the Server-devel
mailing list