Implementation Road Map

Authors: Eric Hoffert & Tom Snyder

Adding OpenSAM to an application is an incremental process. We divide OpenSAM functionality into three levels to clarify the relationship among components and suggest an implementation strategy.

Each level of functionality is useful in several ways and can be prototyped, implemented, correctness-tested, usability-tested, assessed, demonstrated , refined, and deployed to customers. This continuous process allows you to frequently fine-tune your system and make tangible progress every week.

 

The three levels are:

100 Level

Core application launch and editing of documents. Does not require WebDAV.

200 Level

Application launch, browsing of centrally stored documents and content such as images, maintenance of a "current folder" across applications, and custom document attributes maintained in meta-data. 

300 Level 

Real-time addition of applications to the system, application launch dispatch, document bundling, thumbnails, UI and preferences control, etc. 

 

Consider adding OpenSAM to your application or service by implementing the OpenSAM techniques below from top to bottom. While most applications are either a Home Application or a Productivity Application, some can contain elements of both and will implement portions of both columns.

 

OpenSAM Level 

Home Application Provides

Productivity Application Provides

 

 

100 Level

 

Core
Application
Launch

  • Allocate and track time-limited session IDs.
  • Accept the Session ID in HTTP Authenticated GET/PUT requests.
  • Offer GET/PUT access to stored documents in a URL namespace. The URL namespace may be hierarchical (with folders) or may be flat.
  • UI to generate and display an application launch link to create new documents or to edit existing documents. Supports a static pre-defined set of OpenSAM applications to launch.

 Time to implement: 2-6 weeks.

  • Acceptance and tracking of StorageSessionId, StorageServerUrl, StorageUserName and new=, open= and newSaveAsFilename SSO CGI parameters.
  • Make request to StorageServerUrl server to log in. Just-in-time provision new accounts.
  • Fetch document to edit from StorageServerUrl via GET of the URL given in the open= or new= CGI parameter.
  • Save document to StorageServerUrl server via PUT of the open= or newSaveAsFilename= CGI parameters. 

Time to implement: in as little as 1 week using the open source OpenSAM modules.

 

CGI Parameters: 

StorageServerUrl, StorageSessionId, StorageUserName, StoragePassword, new, open, newSaveAsFileName.

 

 

 

200 Level

 

Application
File Browsing
Mimics Desktop

  • Everything for the 100 Level.
  • Offer WebDAV PROPFIND request to get a list of documents stored in a folder.
  • Support WebDAV PROPPATCH and store such attributes associated with documents.
  • Support a hierarchical folder namespace in which documents are stored.
  • Pass to apps a user's current folder in the newSaveAsFolder and openFromFolder CGI parms.
  • Everything for the 100 Level.
  • Make PROPPATCH requests to server and display files listings to user.
  • Allow user to select WebDAV stored files and images and insert them into documents or link to them from your screens.
  • Accept and utilize file location CGI params newSaveAsFolder and openFromFolder so user stays grounded in their current folder when switching among apps.
  • Accept and pass back to server the StorageSessionData so server can identify the exact context of all document write-backs.
  • Accept and store to server document meta-data passed in as StorageMeta_anyname CGI parameters.

 

 

CGI Parameters: 

StorageSessionData, StorageMeta_anyname, newSaveAsFolder, openFromFolder.

 

 

 

300 Level

 

Real-time
Mashup
Creation

Application
Integration
Exceeds that
of Desktop

 

  • Everything for the 200 Level.
  • Ability to read an application ADF file and dynamically add that application to the system. Maintain associations between file extensions, mime types, and applications. Dynamically populate your document lists and other UI with application launch buttons or links.
  • Enable the user to set UI preferences and pass those preferences to launched applications via StorageUI CGI parameters.
  • Provide application launch dispatch services to enable other OpenSAM applications launch apps according to the users settings.
  • Accept from applications thumbnail images of their documents and display them appropriately to the user.
     
  • Everything for the 200 Level.
  • Have an ADF file describing the application.
  • Accept and implement the appropriate subset of StorageUI preferences CGI parameters, including at least StorageUITimeZone.
  • Offer UI to the users to create, edit, and save meta-data values attached to their documents. For example, a keywords text box would be in the Save dialog box so that a user could easily attach keywords to their document.
  • Provide UI to the user to launch other OpenSAM apps and embed within their documents the content of other apps.
  • Generate document thumbnail images and store them on the Home Application for use by all apps in the mashup.