Sequence DiagramThe components in the swimlanes of the following diagram refer to the components shown here: Identity Selector Service. 
Description of sequence steps 1. Browser gets RP page 2. HBX detects RSS-P tag in RP page 3. HBX calls ISS.getRSS(rpaURL, schema). Where 'rpaURL' (Relying Party Agent URL) is the URL of the page that the browser landed on. 'schema' is the schema desired by the RP page. The first thing ISS does is look in a table called the ledger to see if it can find a row whose first two fields match the page we just landed on and the protocol tag we found (RSS-P). Each row in the table is the quadruple {rpaURL, protocol, object, src} where rpaURL is the URL of an RP page, protocol is either RSS-P or InfoCard, object is (for RSS-P protocol) an object that holds the contextURL that should be posted to the RP site, src is a reference to a DS (Digital Subject). This table is initially empty (no rows). Assuming the table is empty or a match can't be found then ISS will do step 3.1 below. If a matching row is found then ISS simply returns the value of the 'object' field in the row. 3.1 ISS calls ContextCreator.createContext(ctxtId, boolean userEdit=FALSE). Where ctxtID is a contextId created from the rpaURL (mangled not to use special characters, etc, but unique). For the RSS-P case the userEdit will be false--so we don't ask the user to manually enter in the context/DS properties in a web form. Instead we'll inherit/copy them from one of the master context/DSs. 3.1.1 ContextCreator creates a new context 'newCtxt' 3.1.1.3 the newly create context uses a callback to get the params that it needs. (Currently just 'schema') 3.1.3 ContextCreator adds a DS to the newly created context 3.1.3.1 The newly created DS needs to initialize its property values. The set of properties is specified by the schema. The values should by copied from one or more of the existing "middle tier" context's DSs. Note it can read only from "middle" tier (also known as "master") contexts only if the context has been marked "default" (by the user). For each property in the schema, it should attempt to "read" the value of this property from one of the existing master context's DSs after 3.2: ISS should (A) look up the value of 'contextURL' --the URL of .context.rss feed and (B) add a new row to the ledger table {rpaURL, RSS-P, contextURL, DSref=null} (the last field isn't used).
Last Modified 5/30/06 9:08 PM
|