Line 1: |
Line 1: |
− | === Proposal for a client-initiated journal transfer === | + | __TOC__ |
| + | <br style="clear: both" /> |
| + | == Basic Usage == |
| | | |
− | == Workflow ==
| + | * This feature helps share Journal/Documents/Mounted-Drives' entries across XOs, via the following two mechanisms :: |
| | | |
− | * The server XO would make available its shares available via WebDAV, running in the context of "httpd" service.
| |
− | * The client XO would connect to the server XO via its browser.
| |
− | * Therafter, "Browse" would take over.
| |
| | | |
| | | |
− | == Details ==
| + | **Peer-to-Peer mode |
| + | *** Sharing in this mode is possible, only when the server and client XO(s) are on the same networks. Thus, peer-to-peer sharing would work on |
| + | **** XOs connected to the same Access Point. |
| + | **** Adhoc-Network connections. |
| | | |
− | * '''Setting up WebDAV on a server XO.'''
| |
− | ** Install package "httpd".
| |
− | ** Generate openssl "server.crt" and "server.key".
| |
− | <code>cd /etc/ssl/certs/</code>
| |
− | <code>sudo openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout ssl.key -out ssl.crt</code>
| |
− | ** Configure "/etc/httpd/conf.d/ssl.conf" to setup the WebDAV share. Sample file : [[media:ssl.conf]]
| |
− | ** Start service "httd".
| |
− | ** ALL THESE STEPS WOULD BE DONE AS PART OF OOB STAGE.
| |
| | | |
| | | |
− | * '''Exporting Data to WebDav, on a server XO.''' | + | **Via-School-Server mode |
− | ** Sascha's JournalToWebDAV workflow. | + | *** In this mode, an XO uploads an entry to the central School Server; from where the client XO(s) may download the entry. |
− | *** step 1 | + | *** This mode of sharing works as long as the School-Server is HTTP-pingable between the server and client XOs. Thus, this mode of sharing would work when |
− | *** step 2
| + | **** XOs are connected to the same Access Point (as long as school-server is pingable throughout). |
− | *** step 3
| + | **** XOs are connected to the different Access Points (as long as school-server is pingable throughout). |
− | *** step 4
| + | **** XOs are conencted to Adhoc-Network (as long as school-server is pingable throughout). |
− | ** Alternatively,
| |
− | *** we could have a "Share" listview in the bottom panel-tray; that would make a total of 4 types of listview - Journal, Documents, Mounted-Drives, Share. | |
− | *** "Share" would follow all the schematics of "Documents" type. After all, "Share" is just a folder in the filesystem (like "Documents"). | |
− | *** The corresponding folder is "/var/www/web1/web" (as configured in "/etc/httpd/conf.d/ssl.conf". | |
− | *** All entries in the "Share" folder would be available to client XOs. | |
| | | |
| | | |
| | | |
| | | |
− | In a server-initiated operation, the server is responsible for adequate delivery to all the clients, whatever the number may be.
| |
− | In a client-initiated operation, each client is responsible for herself only.
| |
| | | |
| | | |
− | {| class="wikitable"
| + | == Credits == |
− | |-
| + | * '''Plan Ceibal''' |
− | ! Option
| + | ** For supporting this feature development. |
− | ! Server-Initiated / Client-Initiated
| + | |
− | ! Secure Data Transfer
| + | |
− | ! Proxy Support
| + | * '''Sascha Silbe''' ''silbe@activitycentral.com'' |
− | ! Peer to Peer Support (Gabble/Salut)
| + | ** Initial Proposal for the solution based on WebDAV. |
− | |- | + | |
− | | Looping over "Send To" | + | |
− | | Server-Initiated | + | * '''Anish Mangal''' ''anish@activitycentral.com'' |
− | | | + | ** Showed why simply accessing the webdav shares via "Browse" activity won't work. |
− | | | + | ** The reason is that accessing Sugar-WebDAV shares via "Browse" (or in any browser), would show only the availability of files. But a Sugar-entry is more than just the (data) file; it is a combination of |
− | | Yes/Yes | + | *** Metadata-file |
− | |- | + | *** Data-file |
− | | Sascha's JournalToWebDAV | + | *** Preview-file (optional) |
− | | Client-Initiated | + | ** Also, the current workflow conforms to the sugar look-and-feel too. (Thanks again Anish). |
− | | | + | |
− | | | + | |
− | | | + | * '''Ruben Rodriguez''' ''ruben@activitycentral.com'' |
− | |- | + | ** Feedback on the "peer-to-peer" mechanism; now when the user clicks "Access Share", the user is directly taken to the newly mounted remote-share view. |
− | | Each XO acts as an independent WebDAV server; client uses browser | + | |
− | | Client-Initiated | + | |
− | | Yes (HTTPS over SSL) | + | * '''Nitika Mangal''' ''nitika@activitycentral.com'' |
− | | | + | ** Testing |
− | | /Yes | + | |
− | |}
| + | |
| + | * '''David Rodriguez''' ''daroal@activitycentral.com'' |
| + | ** Testing |
| + | |
| + | == Example Workflow for Peer-To-Peer Mode == |
| + | |
| + | |
| + | == NOTES == |
| + | ** An entry present in "Local Shares", is available to other peers, when the peer(s) mount this XO's shares. |
| + | ** Note that the entries present in "Local Shares", have nothing to do with the entries present in "School Server Shares". |
| + | ** In the following screenshots' example, "PEER 2" mounts the shares of "PEER 1"; and uses that to copy entries onto its own XO. Thus, the entry is copied from XO-of-PEER-1 to XO-of-PEER-2. |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == SCREENSHOTS == |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] "Journal" - View. == |
| + | :[[File:p11.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] Detail view of the journal-entry. Note the preview presence. == |
| + | :[[File:p12.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] Initial "Local Shares" View == |
| + | :[[File:p13.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] Copy the journal entry to "Local Shares", to make it available for sharing to other peers. == |
| + | :[[File:p14.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] "Local Shares" view, after copying the entry. == |
| + | :[[File:p15.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 1] The detail view in "Local Shares". NOTE that the preview MUST be present, and it must be same as that of "Journal". == |
| + | :[[File:p16.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Initial "Journal" - View. == |
| + | :[[File:p20.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Neighborhood View. == |
| + | :[[File:p21.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Click on "Access Share" of the peer, whose shares need to be accessed. == |
| + | :[[File:p22.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] The peer's shares are mounted. == |
| + | :[[File:p23.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Copy the entry to the journal. == |
| + | :[[File:p24.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Final "Journal" View. == |
| + | :[[File:p25.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [PEER 2] Detail-view of the entry. Note that the preview is the same as was on the remote peer. == |
| + | :[[File:p26.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == Example Workflow for Via-School-Server Mode == |
| + | |
| + | |
| + | == NOTES == |
| + | ** An entry present in "School Server Shares", is available to all the XOs. There isn't any mounting or anything required as such. |
| + | ** Note that the entries present in "School Server Shares", have nothing to do with the entries present in "Local Shares". |
| + | ** In the following screenshots' example, an XO uploads an entry to the school-server, and then downloads the same. HOWEVER, NOTE THAT ANY XO WOULD BE ABLE TO DOWNLOAD THE ENTRY PRESENT ON THE SCHOOL-SERVER, AND NOT ONLY NECESSARILY THE UPLOADER. |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == SCREENSHOTS == |
| + | |
| + | == [UPLOAD] Initially, no entries are present on the school-server. == |
| + | :[[File:sss1.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [UPLOAD] Choose an entry to upload to the school-server. == |
| + | :[[File:sss2.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [UPLOAD] Enter the pasphrase when prompted. == |
| + | :[[File:sss3.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [UPLOAD] After uploading, ensure that the entry has in fact been uploaded to the school-server. == |
| + | :[[File:sss4.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Initial "Documents" view. == |
| + | :[[File:sss5.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Choose to copy the entry from school-server, to "Documents". == |
| + | :[[File:sss6.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Enter (incorrect) password. == |
| + | :[[File:sss7.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] 'Passphrase not match' error occurs. == |
| + | :[[File:sss8.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Try copying again. == |
| + | :[[File:sss9.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Enter (correct) password. == |
| + | :[[File:sss10.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Confirm that the entry has been successfully downloaded. == |
| + | :[[File:sss11.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == [DOWNLOAD] Ensure that in the detail view, the uploader-details are present. == |
| + | :[[File:sss12.png|640px]] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == TEST-CASES THAT NEED TO PASS == |
| + | |
| + | * Inter-copying an entry between Journal/Documents/Mounted-Drives/Local-Shares/School-Server-Shares should behave in the same way. For eg, in the peer-to-peer mode, it was shown that the source-entry (on PEER-1) had a preview; the same was true when the entry finally arrived on PEER-2. In particular, the preview should "go along" as and when the entry goes, '''intra-XO''' or '''inter-XO'''. |
| + | |
| + | * Things should work fine, irrespective of the fact that whether the sharing is done via single-mode, or batch-mode. |