EDDP: Event Driven Document Processing

OpenGroupware Coils provides support for Event Driven Document Processing (EDDP). EDDP exploits the OpenGroupware's underlying message oriented model to allow for rapidly and efficiently performing transactions based upon document creation or modification. All entity related events are announced on the server's entity event exchange for any interested component to receive - events related to documents are collected by the coils.blob.event component.

OpenGroupware Coils currently [as of 0.1.49rc81] supports the following EDDP features:

  • Document auto-collection. Documents created in a specified folder hierarchy can be automatically assigned to a Collection entity.
  • Document auto-uncollection. Once a document is assigned certain properties the document can be automatically removed from a Collection entity.
  • Automated filing of new and revised documents. When a document is created or updated a copy of the document, or the current revision of the document, can be automatically copied as a new document to another location. The copied document will retain all the meta-data of the original document as well as being connected to the original via an object link entity.
  • PDF documents created or revised can be page bursted creating a new document in a specified located representing each page of the source document.
  • Documents created can be automatically submitted to an IPP queue for printing.
  • Invocation of work-flow processes when documents are created or revising withing a folder hierarchy. The documentation refers to this feature as "Special Processing" as it ties the open-ended flexibility of the OpenGroupware Integration Engine with document management.

One key aspect of EDDP is that event driven document actions can be daisy-chained. For example a folder can be configured to have new documents of type PDF page-bursted into another folder, the target folder of the page bursting action can itself be configured to auto-collect created within to be auto-collected. An application can then easily present a list of pages for review to a user - when the user reviews a page the act of applying a object property value to the document can cause the document to be automatically removed from the to be reviewed collection. By using the EDDP features of OpenGroupware Coils the application only needs to be concerned with retrieving the list of documents to be reviewed and applying an appropriate object property to the document [just two RPC operations - not counting the retrieval of the single page document for presenting to the user]. Multiple operations can be applied to a single folder - a folder could be configured to, for example, auto-file a new document to a specified location as well as automatically queue the document for printing.

In the upcoming day's we will look at each of the EDDP features in detail. If you can't wait all these features are documented in the current edition of WMOGAG.

Aside: At this time [as of 0.1.49rc81] the auto-print feature for new and update documents utilizes the same entity event exchange but it implemented as a separate service component: "coils.blob.autoprint". In time auto-print will hopefully be rolled into the coils.blob.event component to make a single component for processing document related events. Auto-print was the first component to utilize the entity event exchange concept and being a bit of an experiment was developed as a stand-alone component; coils.blob.event was developed subsequently to manage the range of EDDP functions supported by OpenGroupware Coils. The coils.vista.index and coils.blob.autothumb also process document related events but are unrelated to EDDP.