Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Co-Mentors: Bram Luyten, Richard Rodgers, ???

Abstract

Excerpt

In the current DSpace implementation, a workflow system is present that allows content submitters to ingest an item in the repository, that can be reviewed by simply accepting the submitted content, changing some of the submitted metadata or rejecting the item so it can be altered by the submitter. The current collection workflow system contains up to three steps for the submission of files. Except for the metadata changes, there are no possibilities for changing any of the submission content during the different steps of the workflow system.


In more demanding situations these few steps and editing functionalities can be insufficient to suit the requirements of the repository managers. Therefor the workflow system should be transformed into a series of different steps which can be individually defined, and can be configured on a per collection basis. It should be possible to configure the workflow system as a modular system. This way, the repository managers can choose the number and order of different workflow steps for each collection and configure each of these steps for its specified function. Also, it should be possible to change more and different content in each step of the submission. This means that it is possible to define steps in which it is possible to change not only the metadata but also for example the submitted files. This way the repository manager can maintain some interaction with the submitter during the submission process. Changes to the submitted files or info by the submitter can be requested between different steps of the process. This approach gives a lot more freedom and can result in better submissions that are optimally suited for the repository.

...

In the current DSpace implementation, a workflow system is present that allows content submitters to ingest an item in the repository, that can be reviewed by simply accepting the submitted content, changing some of the submitted metadata or rejecting the item so it can be altered by the submitter. The current collection workflow system contains up to three steps for the submission of files. Except for the metadata changes, there are no possibilities for changing any of the submission content during the different steps of the workflow system.

Image RemovedImage Added

Workflow Step

Possible actions

1)

Can accept submission for inclusion, or reject submission.

2)

Can edit metadata provided by the user with the submission, but cannot change the submitted files. Can accept submission for inclusion, or reject submission.

3)

Can edit metadata provided by the user with the submission, but cannot change the submitted files. Must then commit to archive; may not reject submission.

...

An example of a more elaborate workflow is a peer reviewing workflow in which reviewers are invited who each have to review the given item, so that afterwards the appropriate manager can either approve or decline an item based on the individual reviews.
Differences in the editing possibilities could be that a submission initially just contains a short description and some metadata.
After the approval of these contents, extra files and information can be added to the submission and the reviewing process can continue.
Of course the existing functionalities of the workflow system will be preserved.
These contain the notification of the groups assigned to a step in the system, editing control and many more.
The new system will be completely backwards compatible with the current.

Image RemovedImage Added

Goal Breakdown

...

Configuration for a simple collection workflow (submit/accept-reject/accept-reject-edit metadata):

Code Block

<actions>
&#09;<action id="editMetadata" name="Edit Metadata" />
&#09;<action id="acceptRejectAbstract" type="acceptReject" />
&#09;<action id="uploadFullAbstract" type="uploadDocument" />
&#09;<action id="uploadFullText" type="uploadDocument" />
&#09;<action id="..." type="..." />
</actions>

<roles>
&#09;<role id="submitter" name="Author" />
&#09;<role id="convener" name="Convener" />
&#09;<role id="editorInChief" name="Editor-in-chief" />
</roles>

<workflow>
&#09;<step id="StartSubmission" name="Submit paper">
&#09;&#09;<action id="editMetadata" />
&#09;&#09;<action id="uploadAbstract" />
&#09;</step>
&#09;<step id="acceptRejectAbstractStep" name="Awaiting abstract approval">
&#09;&#09;<>
&#09;</step>
</workflow>

Example configuration for an elaborate (peer-reviewing) collection workflow:

Code Block

<actions>
&#09;<action id="editMetadata" type="EditMetadata">
&#09;&#09;<inputforms value="default" />
&#09;&#09;<continuationaction id="uploadAbstract" />
&#09;</action>
&#09;<action id="uploadAbstract" type="uploadDocument">
&#09;&#09;<uploadrequired value="true" />
&#09;&#09;<continuationaction id="acceptLicense" />
&#09;</action>
&#09;<action id="acceptLicense" type="acceptLicense">
&#09;&#09;<nextstep id="acceptRejectAbstractStep" />
&#09;</action>
&#09;<action id="uploadFullText" type="uploadDocument" />
&#09;<action id="assignReviewersForItem" type="assignRoleMembers">
&#09;&#09;<selectFromRole value="reviewer" />
&#09;&#09;<addToRole value="assignedReviewer" />
&#09;&#09;<assignmentMethod value="manual" />
&#09;&#09;<assignmentMethod value="SomeClass.biddingAlgorithm()" />
&#09;</action>
&#09;<action id="acceptAbstract" type="accept" />
&#09;<action id="returnAbstract" type="return" />
&#09;<action id="commitToArchive" type="archive" />

</actions>

<roles>
&#09;<role id="submitter" name="Author" />
&#09;<role id="metadataeditor1" name="Metadata Editor (1)" />
&#09;<role id="metadataeditor2" name="Metadata Editor (2)" />
&#09;<role id="metadataeditor3" name="Metadata Editor (3)" />
&#09;<role id="reviewer" name="Reviewer" />
&#09;<role id="assignedReviewer" name="Assigned Reviewer" />
&#09;<role id="convener" name="Convener" />
&#09;<role id="editorInChief" name="Editor-in-chief" />
</roles>

<workflow id="default">
&#09;<step id="StartSubmission" name="Submit paper" role="submitter">
&#09;&#09;<action id="editMetadata" nextStep="acceptRejectAbstractStep"/> <!-- list of actions to be chosen from -->
&#09;</step>
&#09;<step id="acceptRejectAbstractStep" name="Awaiting abstract approval" role="metadataeditor1"  defaultNextStep="editMetadataStep">
&#09;&#09;<action id="acceptAbstract" nextstep="EditMetadataStep" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="returnAbstract" nextstep="StartSubmission" />
&#09;</step>
&#09;<step id="editMetadataStep" name="Awaiting abstract approval" role="metadataeditor2">
&#09;&#09;<action id="editMetadata" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="acceptAbstract" nextStep="..." />
&#09;</step>
...
&#09;<step id="assignReviewers" name="..." role="convener">
&#09;&#09;<action id="assignReviewersForItem" nextstep="reviewFullText" /> <!-- list of actions to be chosen from -->
&#09;</step>
&#09;<step id="reviewFullText" name="Awaiting abstract approval" role="assignedReviewer">
&#09;&#09;<action id="editMetadata" /> <!-- list of actions to be chosen from -->
&#09;&#09;<action id="uploadDocument" />
&#09;&#09;<action id="acceptFullText" waitForAll="assignedReviwer" nextStep="..." />
&#09;</step>
&#09;<step id="commitArchive" name="Add to archive" role="convener">
&#09;&#09;<action id="commitToArchive" />
&#09;</step>
</workflow>

<workflow id="123456789/6546">
</workflow>

...

Design

Domain model analysis

Image RemovedImage Added

Action

  • These are the basic building blocks of the new workflow system
  • Different types of actions
  • Can be performed in a step
  • Can be linked to a next action for the same user to create a sequence of actions
  • Can be linked to a next step

...

  • Part of the workflow system
  • Can be looped
  • Step combinations are restricted by certain constraints
    • Example: it makes no sense to combine a reviewingstep and an acceptance step with the reviewstep as the last one in the sequence
  • Different categories of steps as described in the domain model analysis
  • Each step defines a role or number of roles
  • Can contain a sequence of actions

    Detailed Design

WorkflowPart

  • Generalization of Actions and Steps
  • Interface used for common parts in the workflow system
    • Selection of the next step/action (depending on the current action and eventually a choice for an action)

...

  • The execution of actions will be implemented using the Command design pattern
  • Action types
    • Actions to choose which action to perform next
      • Have different next actions or steps
    • Actions to perform a single operation
      • Make it possible to perform an operation
      • Has a pointer to a next action or a next step

...

  • More action types could be added
  • The interface for the exisiting existing actions could be improved