(no commit message)
[devwiki.git] / design / revisedclientarchitecture.mdwn
index 31124b1..17dfefc 100644 (file)
@@ -24,24 +24,25 @@ Specific requirements from the Statement of Work are
 
 This diagram shows the proposed new architecture.
 ![image](https://gitorious.org/petefoth-public-docs/petefoth-public-docs/blobs/raw/master/Moonshot/Proposed%20New%20Architecture.jpg)
+
 The re-factored Moonshot Client software will have the following components:
 
 *_identity-server_*  shared library offering C and Vala APIs.
 
-- provides Create / Read / Update / Delete functionality for IDs
+- provides Create / Read / Update / Delete functionality for Identities
 - is the only means of accessing the _identity-storage-server_
 - includes the server functionality initially implemented in UI
 
 *_identity-storage-server_*  encapsulates the Identity Store in a shared library offering a CRUD API to access the store.
 
-- protects the store from multiple concurrent write access
+- 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 Mac OSX for protecting the store from multiple concurrent write access. It 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.
   * 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 currently implemented. Provides CRUD operations via (for now) .msht and XML files, and via command line. Implemented in portable code as far as possible. Uses *_identity-server_*. Consists of
+*_identity-provisioning_* - not implemented in the initial implementation. Provides CRUD operations via (for now) .msht and XML files, and via command line. Implemented in portable code as far as possible. Uses *_identity-server_*. Consists of
 
 - *_identity-provisioning-file-handler_* - processes .msht (and, in future iterations, XML and/or json, and maybe other format) files for file-based provisioning operations. 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
@@ -54,9 +55,9 @@ Implemented as a shared library in Vala. Built with the -H option to enable acce
 
 Replaces the _libmoonshot_ component from the initial implementation.
 
-Owns the public APIs for accessing the Identity Store (rather than exposing currently APIs provided via DBus by moonshot-ui).
+Owns the public APIs for accessing the Identity Store (rather than, as in the initial implementation, exposing the APIs provided via DBus by _moonshot-ui_).
 
-Provides new APIs needed by identity-selector-ui to manage identities (e.g. CreateNewIdCard(), UpdateIdCard(), DeleteIdCard()) as well as the existing APIs provided by lib-moonshot (getIdentity(), GetDefaultIdentity(), InstallId_card()).
+Provides new APIs needed by identity-selector-ui to manage identities (e.g. CreateNewIdCard(), UpdateIdCard(), DeleteIdCard()) as well as the existing APIs provided in the initial implementation by _lib-moonshot_ (getIdentity(), GetDefaultIdentity(), InstallId_card()).
 
 Uses the APIs provided by the *_identity-storage-server_* component (_-dbus-local-storage-server_ on Linux and Mac, _-windows-local-storage-server_ on Windows).
 
@@ -66,9 +67,9 @@ It has no UI, so that it can be used in circumstances where interaction with a u
 
 This is now just an App for managing Identities. It's *only* function is to allows a User to manage Identities and Services.
 
-It no longer owns the IdentityStore.
-
-It no longer *provides* APIs (via DBus) for use by others via libmoonshot.
+It no longer owns the Identity Store.
+_
+It no longer *provides* the APIs (using DBus) that were used in the initial implementation by other components via _libmoonshot.
 
 Instead, it *uses* APIs provided by _identity-server_.
 
@@ -76,13 +77,13 @@ Implemented in Vala using GTK widgets, reusing code from src/moonshot-window.val
 
 ### Detail _identity-provisioning_ component
 
-The *_identity-provisioning-file-handler_* component replaces the moonshot-webp component. It provides the same InstallIdentityCard() functionality as the moonshot-webp component in the initial implementation. In future iterations, it will provide new functions to uninstall and revoke identities. It has no UI - any interaction with the User is done when the file is processed by the *_identity-server_*
+The *_identity-provisioning-file-handler_* component replaces the moonshot-webp component. It provides the same InstallIdentityCard() functionality as the moonshot-webp component in the initial implementation. In future iterations, it will provide new functions to uninstall and revoke identities. 
 
 The *_identity-provisioning-cli-handler_* component is not part of the current iteration. In a future iterations it is intended to provide via the command line the same functionality as *_identity-provisioning-file-handler_* but without requiring any interaction with the user.
 
 ### Use Case Implementation
 
-The re-factored software is designed to implement the following use cases that were part of the first iteration:
+The re-factored software is designed to implement the following use cases that were part of the initial implementation:
 
 1. User installs and identity by clicking on a .msht file downloaded from the Web
 1. User creates and installs an identity card using the UI