Business Process Engine


The business processing engine (BPE) is the logical layer responsible for identifying an event, and then selecting and executing the appropriate reaction. It can also trigger a number of assertions. Processing involves tracking and analyzing streams of data from events to support better insight and decision making. With the recent explosion in data volume and diversity of data sources, this goal can be quite challenging for architects to achieve.

Architecture

A high-level architecture for building BPE is shown below. Depending on use cases, the components involved may vary.

Figure 15. General scheme of the Business Process Engine flow


Components

The general set of BPE components is as follows:

Environment

In addition to the BPE and its components, the system also includes several additional logical and functional components:

Chronograph

As soon as described architecture considered as an event-driven system, there must be a component responsible for storing and executing of scheduled events that may have any influence in any process executed in the system.

Methods

Chronograph component includes a single method responsible for the scheduling of different events under different processed executed in the system:

Schedule.Event()

Methods responsible for scheduling an event to be tracked against general systems’ time

POST /schedule?ocid=...&action=...&launchTime=...&phase=

{} // payload according to internal request model

201 OK
Content-Type
: application/json; charset=UTF-8

Incomes

Name

Type

Description

Obligation

Ocid

string

OCID of the target phase of the contracting process

mandatory

Action

string

schedule | cancel | replace

mandatory

launchTime

date-time

Time when this event is requested

mandatory

Phase

string

tenderPeriod.end | enquiryPeriod.end | awardPeriod.start

mandatory

Feed Point

The component is responsible for arrangement of real-time communication between different internal and external components of the system for transferring a personalized data as a closed feed.

Methods

Feed Point component includes following methods:

Title

Method

Description

Send.Message()

POST

Send a message to specific consumer

Master data Service

Master Data Service component provide master data information based on diferent ISO’s. The system provides this data using the following methods:

Methods

Title

Method

Description

Get.Countries()

GET

Method returns list of countries and its codes as in ISO-3166

Get.Regions()

GET

Method returns list of regions and its codes as in ISO-3166

Get.Localities()

GET

Method returns list of localities and its codes as in UN/LOCODE

Get.RegistratoinSchemas()

GET

Method returns list of schemes for specified country as in IATI

Get.Currencies()

GET

Method returns list of currencies and its codes as in ISO-4217

Get.MeasureUnitsGroups()

GET

Method returns list of measure groups as in UN/CEFACT 

Get.MeasureUnits()

GET

Method returns list of measure units and its codes as in UN/CEFACT

Get.CPV()

GET

Method returns a list of classes specified level of CPV

Get.CPVS()

GET

Method returns a list of classes of CPVs

Get.PMD()

GET

Method returns a list of codes of supported procurement methods

Get.Languages()

GET

Method returns list of languages and its codes as in ISO-639

Document Service

‘Document Service’ is a System Environment Component responsible for registering, uploading, archiving, organising and control of access to all documents (files), enabling long-term preservation of them in digital format and ensuring that they can be easily retrieved without conversions. Service also provides basic document management functionality for receipt, dispatch, storage and retrieval of documents.  

Requirements

Supported Document Formats (Media Types)

According to used Media Types Data standard next formats are supported by Document Service:

Images: jpg, png, gif, tif

Documents: doc, docx, xls, xlsx, pdf, rtf

Archives: rar, zip, 7s

Components

As a single part of System environment Document Service consist of several components:

File Repository Management System - Document Service Gateway

Gateway managing the access to the file repository: controls access and reads the files from the repository.

File Repository - Storage

Storage of the files attached to the tender notices, offers, and complaints.

Methods

Document Service component includes following methods:

Title

Method

Description

Register.Document()

POST

Method for registration of the new document

Upload.Document()

POST

Method to load a body of the document

Publish.Document()

POST

Method to publish a document

Get.Document()

GET

Method to retrieve a document


Registered.Document()

Register a document that will be nested in some information entity and a backup location for uploading the document file to the file repository. To register any document hash of such document should be send to DS. The result of document registration is the permanent link (URL) of such document in the file repository that will be returned within respond of DS as part of success data-package. This link can be put to parent entity an attribute of Document right after success registration. Further, a registered document with an identical hash must be uploaded.

Flow description

When document is received to be registered DS performs following actions:

  1. The file size is checked - if the value is exceeded (50 Mb), the process is thrown
  2. The file format is checked for a valid format
  3. In case of a valid format, the file is saved:
  4. description is stored in the database according to the model
  5. Returns file descriptions to the client according to the attribute composition

Example

POST /registration HTTP/1.1
Authorization:
Content-Length: 58
Content-Type: application/json
Host: HOST

{
 "data": {
   "hash":
"9a0364b9e99bb480dd25e1f0284c8555",
   "weight":
"1024",
   "fileName":
"file.txt"
 }
}

201 Created
Content-Type
: application/json; charset=UTF-8

{
 "data": {
   "id":
"9a0364b9e99bb480dd25e1f0284c8555",
   "url":
"https://HOST/get/389684cc28c242b79c97c56be5142e25",
   "dateModified":
"2017-12-25T17:05:56.044677"
 }
}


Upload.Document()

Previously registered Document could be uploaded into File Repository (Storage) latter. There is a time-frame setting that limits such “letter” but this setting defines by unique value in every particular implementation of eProcurement.Systems toolkit.  

Flow description

When document is received to be uploaded DS performs following actions:

  1. The owner is checked for compliance with the one to whom the document registration url was issued
  2. The hash is calculated using the checksum algorithm
  3. Compare the checksum of the received file and stored in the reserve by reference. In case of mismatch, an exception is returned and the process is terminated.
  4. It is checked for a valid format
  5. In case of a valid format, the file is saved:

Example

POST /upload/389684cc28c242b79c97c56be5142e25 HTTP/1.0
Authorization:
Content-Length: 58
Content-Type: multipart/form-data; boundary=----------a_BoUnDaRy572732436472$
Host: storage.eprocurement.systems

------------a_BoUnDaRy572732436472$
content
------------a_BoUnDaRy572732436472$--

201 Created
Content-Type: application/json; charset=UTF-8

{
 "data": {
   "url":
"https://HOST/get/389684cc28c242b79c97c56be5142e25"
 }
}

Get.Document()

If document is registered and stored in the Document Service it can be retrieved by any user after publication date for specific document is achieved (document is public and relevant link is published via Public Point). To retrieve needed file simple GET-request should be send to the Document Service.

Example

GET /get/389684cc28c242b79c97c56be5142e25 HTTP/1.0
Host: storage.eprocurement.systems

200 OK
Content-Disposition: attachment;
filename=file.txt
Content-Type: text/plain;
charset=UTF-8


External Environment (integrations)

The MTender system integrates the connections with the following government tools in order to manage the services and information.  

Sequence diagrams

This section describes the technical specifications of each of the processes that are managed through the Business Process Engine functionality, using accurate sequence diagrams.

Functionality

Description

001. BPE-EI

Management of ‘Expenditure Item’

002. BPE-FS

Management of ‘Funding Source’

003. BPE-PN/PIN

Management of ‘Periodic Notice’ or ‘Prior Information Notice’

004. BPE-CN

Management of ‘Contract Notice’

005. BPE-ENQUIRY

Management of clarification

006. BPE-PS/PQ-BID

Management of submission (pre-selection/pre-qualification)

007. 007.BPE-PS/PQ-TENDERPERIOD:END

Management of deadline of the submission stage

008.BPE-PS/PQ-AWARDING:STEP

Management  of awarding (pre-selection/pre-qualification)

009.BPE-PS/PQ-AWARDING:PROTOCOL

Management of end of awarding process

010.BPE-PS/PQ-AWARDING:END

Management of end of awarding stage and all phase

011.BPE-PS/PQ-START-NEW-STAGE

Management of start of next phase

012.BPE-EVALUATION-TENDERPERIOD:END

Management of end of bidding stage (evaluation)

013.BPE-EVALUATION-AWARDING:STEP

Management of awarding stage (evaluation)

014.BPE-EVALUATION-AWARDING:PROTOCOL

Management of end of awarding process

015.BPE-EVALUATION-AWARDING:END

Management of end of awarding stage and all phase

016.BPE-CONTRACTING-CONTRACT:PREPARATION

Management of contract preparation

017.BPE-CONTRACTING-CONTRACT:ACTIVATION

Management of closing of evaluation

BPE-EI: Management of ‘Expenditure Item’
Create new EI

Incomes

payload and params

EI command model according to API documentation

api endpoint

/do/ei

Execution diagram

Figure 16. Process sequence diagram (https://goo.gl/MC13EM)


001.1.2. Update existing EI

Incomes

payload and params

EI update model according to API documentation

endpoint

/do/ei

 Execution diagram

Figure 17. Process sequence diagram (https://goo.gl/Lntvbs)


BPE-FS: Management of  ‘Funding Source’
Create new FS

Incomes

payload and params

FS command model according to API documentation

endpoint

/do/fs

 Execution diagram

Process sequence diagram (https://goo.gl/Yow9kL)


Update existing FS

Incomes

payload and params

FS update model according to API documentation

endpoint

/do/fs

 Execution diagram

Process sequence diagram (https://goo.gl/yCYg3L)


BPE-PN/PIN: creation and management of ‘Periodic Notice’ or ‘Prior Information Notice’
Create new PN/PIN

Incomes

payload and params

CN command model according to API documentation

endpoint

/do/pn(pin)

 Execution diagram

Process sequence diagram (https://goo.gl/bzqJvR)

Update existing PN/PIN

Incomes

payload and params

CN update model according to API documentation

endpoint

/do/pn(pin)

 Execution diagram

Process sequence diagram (https://goo.gl/9HLmvB)        


BPE-CN: creation and management of ‘Contract Notice’
Create new CN

Incomes

payload and params

CN command model according to API documentation

endpoint

/do/cn

 Execution diagram

Depending of current stage of Contracting Process different ways of creation of CN will be used

When process will goes forward

Depending of current stage of Contracting Process different ways of publication will be use

When process will goes to end

Process sequence diagram (https://goo.gl/K9u2qm)

Update existing CN

Incomes

payload and params

CN update model according to API documentation

endpoint

/do/pn(pin)

 Execution diagram

Depending of current stage of Contracting Process different ways of publication will be used

Process sequence diagram (https://goo.gl/xCBeXh)

BPE-ENQUIRY: execution of flows of clarification
Create new Enquiry

Incomes

payload and params

ENQUIRY command model according to API documentation

endpoint

/do/enquiry

 Execution diagram

Process sequence diagram (https://goo.gl/b4d4Nv)


Answer on existing enquiry

Incomes

payload and params

ANSWER command model according to API documentation

endpoint

/do/enquiry

 Execution diagram

Process sequence diagram (https://goo.gl/bSh6Lj)


BPE-PS/PQ-BID: execution of flows of submission stage (pre-selection/pre-qualification phases)
Submit new bid

Incomes

payload and params

BID command model according to API documentation

endpoint

/do/bid

 Execution diagram

Process sequence diagram (https://goo.gl/h1XXsM)


Update existing bid

Incomes

payload and params

BID update model according to API documentation

endpoint

/do/bid

 Execution diagram

Process sequence diagram (https://goo.gl/HhgmhD)

BPE-PS/PQ-TENDERPERIOD:END: management of end of submission stage
Close of submission period in current phase (automated)

Incomes

payload and params

automated internal process

 Execution diagram

If there are enquiries without answers and procurement method required such answers mandatory, procedure will be suspended (flow will stops) till all needed answers received

If there are no enquiries without answers or such answers are optional according to current procurement method, process will go to next check

Depending of consistency of array of extracted bids, process may follow in a two different ways: if an array of extracted bids is empty, all contracting process will go to termination as ‘unsuccessful’

If an array of extracted bids is not empty, process will go to next check

Process sequence diagram (https://goo.gl/fhyYbW)


BPE-PS/PQ-AWARDING:STEP: execution of awarding stage (pre-selection/pre-qualification phases)
Update auto-generated ‘Award’

Incomes

payload and params

AWARD update model according to API documentation

endpoint

/do/award

 Execution diagram

Process sequence diagram (https://goo.gl/CTBPSD)


BPE-PS/PQ-AWARDING:PROTOCOL: execution of end of awarding process
Submit ‘Awarding Protocol’

Incomes

payload and params

PROTOCOL command model according to API documentation

endpoint

/do/protocol

 Execution diagram

Process sequence diagram (https://goo.gl/HFxsL9)


BPE-PS/PQ-AWARDING:END: management of end of awarding stage and all phase
Close of awarding period in current phase (automated)

Incomes

payload and params

automated internal process

 Execution diagram

If there are enquiries without answers and procurement method required such answers mandatory, procedure will be suspended (flow will stops) till all needed answers received

If there are enquiries without answers and procurement method required such answers mandatory, procedure will be suspended (flow will stops) till all needed answers received

If there are enquiries without answers and procurement method required such answers mandatory, procedure will be suspended (flow will stops) till all needed answers received

Process sequence diagram (https://goo.gl/LZJWun)

BPE-PS/PQ-START-NEW-STAGE: management of start of next phase
Launch new phase (automated)

Incomes

payload and params

automated internal process

 Execution diagram

Process sequence diagram (https://goo.gl/3NFUy4)

BPE-EVALUATION-TENDERPERIOD:END: management of end of bidding stage (evaluation phase)
Close of submission period in current phase (automated)

Incomes

payload and params

automated internal process

 Execution diagram

If there are enquiries without answers and procurement method required such answers mandatory, procedure will be suspended (flow will stops) till all needed answers received

Depending of consistency of array of extracted bids, process may follow in a two different ways: if an array of extracted bids is empty, all contracting process will go to termination as ‘unsuccessful’

If an array of extracted bids is not empty, process will go to next check

Process sequence diagram (https://goo.gl/7gyszq)


BPE-EVALUATION-AWARDING:STEP: execution of awarding stage (evaluation phase)
Update auto-generated ‘Award’

Incomes

payload and params

AWARD update model according to API documentation

endpoint

/do/award

 Execution diagram

Process sequence diagram (https://goo.gl/mnuVgu)


BPE-EVALUATION-AWARDING:PROTOCOL:  execution of end of awarding process
Update auto-generated ‘Award’

Incomes

payload and params

PROTOCOL patch according to API documentation

endpoint

/do/protocol

 Execution diagram

Process sequence diagram (https://goo.gl/XZqu4H)

BPE-EVALUATION-AWARDING:END: Management of end of awarding stage and all phase
Close of awarding period in current phase (automated)

Incomes

payload and params

automated internal process

 Execution diagram

Process sequence diagram (https://goo.gl/aQcDsZ)

BPE-CONTRACTING-CONTRACT:PREPARATION: preparation of contract  
Close of awarding period in current phase (automated)

Incomes

payload and params

AC update model according to API documentation

endpoint

/do/contract

 Execution diagram

Process sequence diagram (https://goo.gl/UkMH8W)


BPE-CONTRACTING-CONTRACT:ACTIVATION: contract activation and closing of evaluation phase
Close of awarding period in current phase (automated)

Incomes

payload and params

AC patch according to API documentation

endpoint

/issue/contract

 Execution diagram

Process sequence diagram (https://goo.gl/UYbKwG)