3.2.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

This protocol depends on an abstract data model that maintains information about the scan repository, PostScan jobs, and related objects. These objects represent processing filters and PostScan jobs within the scan repository, and they are used in this protocol to communicate the capabilities and status of the Repository and the processing status of any PostScan jobs.

A scan repository MUST behave as if it hosted the following objects in the hierarchy specified below:

Repository Configuration: The object that contains the List of Filters supported by the scan repository.

List of Filters: A filter is a processing object in the scan repository. The definition of a filter consists of a dialect and filter Configuration. Each filter can be accessed by a PostScan job to perform actions upon the scan documents of the job.

Repository Status: The object that contains the state of the scan repository and a list of state reasons.

List of PostScan jobs: A PostScan job is the basic unit of work within the scan repository. Each PostScan job will contain one or more scan documents and invoke filters to perform actions on these scan documents. Each PostScan job object MUST maintain the following data elements:

  • A Job Status object

  • A list of Filter Status objects

  • A Job Description

  • A list of scan documents

Job Status: The object that contains information about the status of a PostScan job. Each Job Status object MUST maintain the following data elements:

  • A token that uniquely identifies the PostScan job.

  • The state of the PostScan job.

  • A list of state reasons that give detailed information about the state of the PostScan job.

Filter Status: The object that contains information about the status of a single filter instance within a PostScan job. Each Filter Status object MUST maintain the following data elements:

  • The dialect of the filter. This dialect will match one of the filters contained in the Repository Configuration.

  • The state of the filter.

  • A list of state reasons that give detailed information about the state of the filter.

Job Description: The object that contains descriptive information about a PostScan job. Each Job Description object MUST maintain the following data elements:

  •  An Identifier that uniquely identifies the PostScan Process associated with the PostScan job.

  • The name of the PostScan Process associated with the PostScan job.

  • The name of the user who submitted the PostScan job.

Scan Document: The object that contains information about a single scanned image that is part of a PostScan job. The scan document object MUST maintain the following data elements:

  • A Id that is unique within the context of a PostScan job.

  • The description of the scan document.

  • The image file format of the scan document.

PostScan Process: The object that contains all the configuration and processing instructions required to scan documents at a scan device and then process the scanned documents at the scan repository. The data that make up a PostScan Process include a unique identifier, image acquisition settings, the name of a scan repository, and filter-specific instructions that specify how to process the scanned documents at the scan repository. The user selects a PostScan Process at the scan device. The scan device uses the information from the selected PostScan Process to scan the documents, find the scan repository, and tell the scan repository how to process the scanned images transferred as part of the PostScan job.

Filter Instructions: A set of data elements that a filter uses to determine how to process the scan documents of the scan job. The data elements are unique to each filter definition. This filter is identified by a dialect which will match one of the filters in the Repository Configuration.

The distributed scan environment typically consists of a management client, a directory service, a scan device, and a scan repository service. The management client is used by the administrator to create PostScan Process objects and query the scan repository service for configuration and status information. The directory service is where the PostScan Process objects are stored for accessing by the scan device and the scan repository service. The scan device will find PostScan Process objects for a user and based on one of these create a PostScan job in the scan repository. The data within a PostScan Process is used to determine how to scan the documents at the scan device, which scan repository service to work with, and then how to process the scanned documents once they are sent to the scan repository server.