Skip to content

📊 Diagram: DocProc

🔗 Link to Original Paper/Article

View Full Main Source

📝 Short Description

This diagram shows the flow of data from the DocProc system. As described in the main source this diagram consists of three main parts: (i) the customer facing part (left-hand side), which provides dashboards and self-service facilities to customer administrators for uploading templates, managing accounts, and uploading batches of raw data, (ii) the document generation facilities (depicted in the middle) that involve scheduling document generation jobs, and generating PDF documents, and (iii) the document delivery subsystem, which is responsible for orchestrating the delivery of documents (right-hand side)

🔤 Abbreviations

None

📖 Extensive Description (if possible)

For a more detailed description of the overall and inner workings of the system read the main source. Differences between this DFD and the one from the main source can be due to missing labels in the main source dfd, which we inferred as basic requests and confirmation data exchanges. In this section we explain the DFD of this application, which as mentioned earlier consists of three different parts.

In the first part, about the consumer facing part, the diagram starts with the Customer Admin node which sends the document_templates, raw_data and admin_credentials (needed to log into the system) to the Customer Organization Dashboard, which returns the status after receiving them. In the upper part of the diagram there is the DocProc Admin which sends the necessary infomation for the organization_enrollment (customer enrollment) to the Admin Dashboard, which receives this in addition to the DocProc admin_credentials from Admin Credentials. The Admin Dashboard also send certain permissions to the customer organization to the Customer organization Dashboard. This last node then stores the document_templates from the Template Storage.

Regarding the second part about the document generation, first the Customer Organization Dashboard sends the raw_data to the Input Verification node, which verifies the correctness of the raw data. This node then send the raw_data to the Raw Data Storage and a batch_validation (confirmation that the raw data batch received from the customer is valid) to the Generation Scheduler. This last node in turn sends a validation_feedback to te Input Verification node. The Generation Scheduler also receives the next_generated_job (raw data batch job) from the Document Generation node to schedule a generation of documents. The Document generation node also sends the generated_pdf to the Generated PDFs Archive Storage.

In this last part about the delivery of the documents first the generated_pdfs are retrieved from the Generated PDFs Archive Storage by the Delivery Scheduler. Here the generated_pdfs can follow 2 different paths. The first one is to the Personal Document Store where the generated_pdfs can then be retrieved by the Recipient. For retrieving these pdfs this node sends an auth_request and a registe_request in return. The second path is sending the generated_pdfs to the Delivery Manager which then forwards them to the Print Service, Email and Zoomit nodes. Thee last two nodes can then send a request for the delivery_status of the documents to the Delivery Manager.

🏷️ Label description

  • 🗂️ Data Labels:

    • Data:

      • OrganizationEnrollemnt: Information for enrolling an organization/customer
      • AdminCredentials: Credentials needed for the administrator (docProc or customer) to use the system
      • CustomerRawData: Raw data from the customer to be put into the documents
      • DocumentTemplates: Templates where the raw data is going to be filled in by DocProc
      • NextGenerationJob: Information to the Generation Scheduler for the next batch of documents that need to be generated
      • GeneratedPDFs: Documents to be generated by DocProc
      • ScheduleDelivery: Schedule for the delivery of documents to the customer
      • Permissions: Permission given by the admin dashboard to the customer dashboard
      • BatchValidation: Confirmation that the batch of raw data is valid
      • ValidationFeedback: Feedback/confirmation from the validation of the batch
    • Reports:

      • Error: Error report from the Customer Organization Dashboard to the customer (e.g. failed raw data loading)
      • Staus: Status from the uploading of the data by the customer to its dashboard
    • Requests:

      • Enrollment: Request for enrollment of an organization
      • DeliveryStatus: Request for knowing the delivery status of the documents
      • Register: Request for registering into the Personal Document Store
      • Authenticate: Request for authentication into the Personal Document Store
  • 🏷️ Node Labels:

    • Module:

      • DeliveryManager: This node belongs to the Delivery Manager module/component
    • SecurityLevel:

      • Secure: This node is secure

⚠️ Constraints

  • The generated pdfs (possibly containing sensitive information) should never flow to a node which is not secure

    1. secure: data Data.GeneratedPDFs neverFlows vertex !SecurityLevel.Secure

🚨 Violations

  • None