All comments addressed
authorhttp://petefoth.myopenid.com/ <http://petefoth.myopenid.com/@web>
Tue, 6 Dec 2011 10:20:06 +0000 (05:20 -0500)
committerwww-data <www-data@project-moonshot.org>
Tue, 6 Dec 2011 10:20:06 +0000 (05:20 -0500)
design/revisedclientarchitecture.mdwn

index d9ea3c9..20e7bf3 100644 (file)
@@ -35,17 +35,9 @@ The re-factored Moonshot Client software will have the following components:
 
 *_identity-storage-server_*  encapsulates the Identity Store in a library offering a CRUD API which _identity-manager-lib_ uses to access the store.
 
-- is accessed directly *only* by _identity-manager-lib_. 
-- protects the store from multiple concurrent write accesses.
-- re-implemented per platform and per storage strategy so:
-
-  * one version each for Linux, Mac OS and Windows, local storage. DBus provides an appropriate mechanism under Linux (and possibly Mac OS X) for protecting the store from multiple concurrent write access. DBus is not supported on Windows, so the Windows implementation will use a different mechanism. This version will re-use storage-related code from src/moonshot-window.vala etc. The Mac implementation will either use DBus, or it will use the Mac OS X Keychain to store identities (see mailing list thread beginning [here](https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1112&L=MOONSHOT-COMMUNITY&F=&S=&X=2C162240A9A66326F2&P=3272)).
-  * one version for web storage, restful API. (Not in scope for this iteration).
-  * other versions as required for different storage solutions  (Not in scope for this iteration).
-
 *_identity-provisioning_* - not implemented in the initial implementation. Provides CRUD operations via files and via the command line. Implemented in portable code as far as possible. Uses _identity-manager-lib_ and *_identity-manager-ui-lib_*. Consists of:
 
-- *_identity-provisioning-file-handler_* - processes .msht (and, in future iterations, json, and maybe other format) files for file-based provisioning operations. .msht is an an XML-based file format. The MIME type os 'application/moonshot+xml'. An association is created on install so that these files are automatically opened by _identity-provisioning-file-handler_ when clicked. Currently implemented as *_moonshot-webp_*, allowing only install access. In future iterations it will also allow uninstall/revoke access. 
+- *_identity-provisioning-file-handler_* - processes .msht (and, in future iterations, json, and maybe other format) files for file-based provisioning operations. .msht is an an XML-based file format. The MIME type is 'application/moonshot+xml'. An association is created on install so that these files are automatically opened by _identity-provisioning-file-handler_ when clicked. Currently implemented as *_moonshot-webp_*, allowing only install access. In future iterations it will also allow uninstall/revoke access. 
 
 - *_identity-provisioning-cli-handler_* - provides a command line API to identity CRUD functions
 
@@ -82,9 +74,17 @@ Uses the APIs provided by the *_identity-storage-server_* component (_-dbus-loca
 
 It has no UI, so that it can be used in circumstances where interaction with a user is not possible (e.g. in headless servers). Any needed interaction with the User is done by client software.
 
-### Implementation Note
+**Implementation Note:** In this architectural view, _identity-manager-ui-lib_ and _identity-manager-lib_ have distinct roles. They could therefore be implemented as separate libraries, but it is probably better to combine them in a single library. In my view this would have advantages both for those implementing and for those using the software.
+
+### Detail _identity-storage-server_ component
+- is accessed directly *only* by _identity-manager-lib_. 
+- protects the store from multiple concurrent write accesses.
+- re-implemented per platform and per storage strategy so:
+
+  * one version each for Linux, Mac OS and Windows, local storage. DBus provides an appropriate mechanism under Linux (and possibly Mac OS X) for protecting the store from multiple concurrent write access. DBus is not supported on Windows, so the Windows implementation will use a different mechanism. This version will re-use storage-related code from src/moonshot-window.vala etc. The Mac implementation will either use DBus, or it will use the Mac OS X Keychain to store identities (see mailing list thread beginning [here](https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1112&L=MOONSHOT-COMMUNITY&F=&S=&X=2C162240A9A66326F2&P=3272)).
+  * one version for web storage, restful API. (Not in scope for this iteration).
+  * other versions as required for different storage solutions  (Not in scope for this iteration).
 
-In this architectural view, _identity-manager-ui-lib_ and _identity-manager-lib_ have distinct roles. They could therefore be implemented as separate libraries, but it is probably better to combine them in a single library. In my view this would have advantages both for those implementing and for those using the software.
 
 ### Detail _identity-provisioning_ component