The following are definitions for the actors referenced in the use cases:
-
Client
Any entity requesting access to the service via the Application Program Interface (API). The entity may be a user accessing the web-based interface or another application accessing the API directly.
-
Service
The CAS server application responding to events based on defined policy.
-
Operator
A person assigned to maintenance and operations of the service.
-
Client requests access to the CAS.
-
Service prompts user for identifying information. (UI)
-
Client provides identifying information.
-
Service authenticates user.
-
Service determines authorized access.
-
Service grants user requested access.
Alternative: Authentication Failure
At step 4, authentication fails.
-
Allow client to re-enter identifying information and re-try.
Alternative: User Not Authorized
At step 5, the client is not authorized to access the service.
-
The requested action is not allowed.
-
Client requests access to a product.
-
Service determines authorized access.
-
Service grants client requested access.
Alternative: User Not Authorized
At step 2, the client is not authorized to access the specified product.
-
The requested action is not allowed.
-
Follow steps 1 through 6 from the
Service Access
use case.
-
Service prompts client for product type information. (UI)
-
Client provides product type information. (This includes name, a data element list and any tasks and rules to be associated with the product type. This will also include access rights and on-line retention policy.)
-
Service adds the product type to the catalog.
Alternative: Policy Modification
At step 4, product type already exists in the catalog.
-
The product type policy is updated in the catalog.
-
Service validates metadata content syntactically. (This includes structure and mandatory elements.)
-
Service validates metadata content semantically. (This includes valid domain values.)
Alternative: Syntactic Validation Failure
At step 1, syntactic validation fails.
-
Allow client to re-enter metadata and re-try. (UI)
Alternative: Semantic Validation Failure
At step 2, semantic validation fails.
-
Allow client to re-enter metadata and re-try. (UI)
-
Follow steps 1 through 6 from the
Service Access
use case.
-
Service prompts client for product information. (UI)
-
Client provides product information. (This includes product type, product name, metadata and product specification.)
-
Follow steps 1 through 2 from the
Metadata Validation
use case.
-
Service copies product files into on-line storage.
-
Service registers product in the catalog with initial version.
Alternative: New Version
At step 6, the next available version number for the given product name is assigned.
-
Follow steps 1 through 6 from the
Product Registration
use case.
-
Service determines the tasks to execute.
-
Service executes and evaluates all rules associated with a task.
-
Service executes each task assuming all associated rules are satisfied.
Alternative: Rule Not Satisfied
At step 3, a rule is not satisfied.
-
Service moves the associated task into the queue to be executed later after a predetermined wait-time has expired.
-
Follow steps 1 through 6 from the
Service Access
use case.
-
Service prompts client for a date/time range. (UI)
-
Client provides a date/time range.
-
Service returns task information that matches the date/time range.
-
Service determines whether a product is a candidate for moving to off-line storage based on access history and defined policies.
-
Service notifies the operator to move the product from on-line storage to off-line storage.
-
Operator moves the product from on-line storage to off-line storage.
-
Operator updates the product reference in the catalog to reflect the new location.
-
Follow steps 1 through 6 from the
Service Access
use case.
-
Service prompts client for product identifying information. (UI)
-
Client provides product identifying information. (This could include product type and/or metadata.)
-
Service returns product references that match the product identifying information. (This would include product name and version.)
-
Follow steps 1 through 4 from the
Product Query
use case.
-
Client provides product identifying information. (This would include product name and version.)
-
Service prompts client for product staging location. (U
I)
-
Client provides product staging location.
-
Service copies product from on-line storage to specified product staging location.
-
Follow steps 1 through 4 from the
Product Query
use case.
-
Client provides product identifying information. (This would include product name and version.)
-
Follow steps 1 through 3 from the
Product Access
use case.
-
Service determines product accessibility. (The product may be stored in on-line, near-line or off-line storage.)
-
Service prompts client for product staging location. (UI)
-
Client provides product staging location.
-
Service copies product from on-line or near-line storage to specified product staging location.
Alternative: Product is Off-line, Move On-line
At step 4, the product is determined to be in off-line storage.
-
Service notifies the client that the requested product is in off-line storage.
-
Service notifies the operator to move the product from off-line storage to on-line storage.
-
Operator moves the product from off-line storage to on-line storage.
-
Operator updates the product reference in the catalog to reflect the new location.
-
Operator notifies the client that the requested product is now available in on-
line storage.
-
Return to primary scenario at step 1.
Alternative: Product is Off-line, Stage
At step 4, the product is determined to be in off-line storage.
-
Service notifies the client that the requested product is in off-line storage.
-
Service notifies the operator to copy the product from off-line storage to a staging area.
-
Operator copies the product from off-line storage to a staging area.
-
Operator notifies the client that the requested product is now available in a staging area for some period of time.
-
Client copies the product from the staging area.
-
Operator removes the product from the staging area after the period of time has expired.
-
Follow steps 1 through 4 from the
Product Query
use case.
-
Client provides product identifying information. (This would include product name and version.)
-
Follow steps 1 through 3 from the
Product Access
use case.
-
Service removes all references to the product from the catalog.
-
Follow steps 1 through 4 from the
Product Query
use case.
-
Client prov
ides product identifying information. (This would include product name and version.)
-
Follow steps 1 through 3 from the
Product Access
use case.
-
Service prompts client for metadata modifications. (UI)
-
Client provides metadata modifications.
-
Follow steps 1 through 2 from the
Metadata Validation
use case.
-
Service updates metadata in the catalog for the specified product.
-
Follow steps 1 through 4 from the
Product Query
use case.
-
Client provides product identifying information. (This would include product name and version.)
-
Follow steps 1 through 3 from the
Product Access
use case.
-
Service prompts client for access rights modifications. (UI)
-
Client provides access rights modifications.
-
Service updates access rights in the catalog for the specified product.
The following functional requirements have been specified:
CAS.1
- The Catalog and Archive Service shall maintain a repository of products for a period of time determined by the policies of the controlling authority.
CAS.2
- The Catalog and Archive Service shall allow definition of policy applicable to the repository.
CAS.3
- The Catalog and Archive Service shall maintain policy for the repository.
CAS.4
- The Catalog and Archive Service shall register products in the repository.
CAS.5
- The Catalog and Archive Service shall allow products to consist of one or more items.
CAS.6
- The Catalog and Archive Service shall catalog metadata for a registered product.
CAS.7
- The Catalog and Archive Service shall validate metadata during product registration.
CAS.8
- The Catalog and Archive Service shall allow multiple versions of a product to be registered.
CAS.9
- The Ca
talog and Archive Service shall store products on on-line storage media.
CAS.10
- The Catalog and Archive Service shall query products from the repository.
CAS.11
- The Catalog and Archive Service shall retrieve products from the repository.
CAS.12
- The Catalog and Archive Service shall authenticate all accesses to the repository.
CAS.13
- The Catalog and Archive Service shall log all accesses to the repository.
CAS.14
- The Catalog and Archive Service shall execute client defined tasks triggered by an event.
CAS.15
- The Catalog and Archive Service shall specify the interface for client defined tasks.
CAS.16
- The Catalog and Archive Service shall execute client defined rules as a prerequisite to a task execution.
CAS.17
- The Catalog and Archive Service shall specify the interface for client defined rules.
CAS.18
- The Catalog and Archive Service shall manage task execution.
CAS.19
- The Catalog and Archive Service shall provide an Application Program Interface (API) for accessing the service.
CAS.20
- The Catalog and Archive Service shall run in a distributed environment allowing a client to access the service remotely.
CAS.21
- The Catalog and Archive Service shall store products on near-line storage media.
CAS.22
- The Catalog and Archive Service shall store products on off-line storage media.
CAS.23
- The Catalog and Archive Service shall remove products from the repository.
CAS.24
- The Catalog and Archive Service shall modify product metadata in the repository
.
CAS.25
- The Catalog and Archive Service shall authorize all accesses to the repository.
CAS.26
- The Catalog and Archive Service shall grant access to products in the repository for which a client is authorized.
CAS.27
- The Catalog and Archive Service shall restrict access to products in the repository for which a client is not authorized.
CAS.28
- The Catalog and Archive Service shall grant access to policy in the repository for which a client is authorized.
CAS.29
- The Catalog and Archive Service shall restrict access to policy in the repository for which a client is not authorized.
CAS.30
- The Catalog and Archive Service shall allow the product owner to assign access rights for a product.
CAS.31
- The Catalog and Archive Service shall record all accesses to products in the repository.