Platform Team/Sugar Network/Implementation
Summary
The requirements:
- Implement the initial server in a short period of time;
- Server should work on XO laptops;
- System should support synchronisation between distributed servers and provide full featured text search.
That's why using Active Document to:
- Server should be as simple/lightweight as possible;
- No SQL, just NoSQL;
- Since server should support full featured text search, use Xapian and keep it as a "NoSQL replacement" with storing data directly in files system;
- If server will start serving users from the Internet and current implementation won't manage to handle multiple requests, another implementation might be created.
All resources are being represented as Active Document's classes, resource objects as Active Document's objects.
Usage
Public instance
Testing instance is api.network.sugarlabs.org
. It support HTTPS connections using StartSSL certificate.
Add the 18.85.44.120 api.network.sugarlabs.org
IP to /etc/hosts
file.
Local instance
Attach Server:Factory repository. For Ubuntu repositories, download GPG key:
wget -qO- <REPO-URL>/Release.key | sudo apt-key add -
And install sugar-network-server
package.
To see current configuration:
sugar-network-server config
By default, server will keep database in /var/lib/sugar-network
directory. To change configuration, tweak /etc/sugar-network-server.conf
file.
To start server:
/etc/init.d/sugar-network-server start
Todo
- Network notifications framework to, e.g., let client cache resources and refetch them only on updates. Reuse existing or implement something similar to Facebook's real-time updates.
- Support collaborative work on Wiki pages for different resources.
Getting involved
- Submit your bug report or feature request.
- Browse our implementation discussions, and post your feedback. (You should join this discussion list in order to avoid having your messages postponed for moderation.)
- Sugar Server Kit's Gitorious project for server side libraries.
- Sugar Network's Gitorious projects itself.