(no commit message)
[devwiki.git] / design / revisedclientarchitecture.mdwn
index 16858cc..955809e 100644 (file)
@@ -1,4 +1,4 @@
-# Proposed changes
+## Revised Client Architecture
 
 The architecture of the initial implementation needs to be re-factored to with give better Model, View, Controller separation, allowing for:
 
@@ -6,7 +6,7 @@ The architecture of the initial implementation needs to be re-factored to with g
 - different storage strategies;
 - ease of maintenance.
 
-## Overview
+### Overview
 
 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)
@@ -16,7 +16,7 @@ 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
-- is the only means of accessing the identity-storage-server
+- 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.
@@ -24,9 +24,9 @@ The re-factored Moonshot Client software will have the following components:
 - protects the store from multiple concurrent write access
 - 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.
--- 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).
+  * 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.
+  * 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
 
@@ -35,7 +35,7 @@ The re-factored Moonshot Client software will have the following components:
 
 All of the components will be implemented in Vala. The shared libraries will be built with the -H option to enable access from C code, and introspection generated to allow use from other languages.. 
 
-## _identity-server_ detail
+### Detail _identity-server_ component
 
 Implemented as a shared library in Vala.
 
@@ -49,7 +49,7 @@ Uses the APIs provided by the *_identity-storage-server_* component (_-dbus-loca
 
 Uses GTK widgets for simple input from User.
 
-## _moonshout-ui_ detail
+### Detail _moonshout-ui_ component
 
 This is now just an App for managing Identities. It's *only* function is to allows a User to manage Identities and Services.
 
@@ -61,13 +61,13 @@ Instead, it *uses* APIs provided by libmoonshot.
 
 Implemented in Vala using GTK widgets.
 
-## _identity-provisioning_ detail 
+### 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, as well as 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-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_* provides via files.
 
-## Use Case Implementation
+### Use Case Implementation
 
 The re-factored software is designed to implement the following use cases that were part of the first iteration:
 
@@ -83,4 +83,4 @@ It is designed to extend the above Uses cases as follows:
 1. User can create, view, update and delete installed identities via the command line 
 1. User can create, view, update and delete installed identities using a script file
 
-Not all of these will be implemented in the current phase, but the software will be implemented in a way that facilitates their implementation if future phases.
+Not all of these will be implemented in the current phase, but the software will be implemented in a way that facilitates their implementation in future phases.