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:
- eBudget - component allows the online definition and preparation of expenditure items, funding sources, periods of budgeting and budgets in structured form.
- ePlanning - component allows CAs to construct their procurement plan by scheduling of procedures during defined period as well as identification of potential individual procurement plans to be aggregated in order to launch a repetitive procedure.
- eAccess - component is responsible for receiving, validation and saving of core information about the procurement according to selected procurement method, geography, etc and it amendments. Apart from the initiation of a new Contracting Process, the eAccess includes the links to all related processes (such as definition of used budget or conducted prior notices).
- eClarification - component provides the option to ask questions and receive answers regarding the conditions of particular procurement as well as allow CAs to answering questions from EOs.
- eSubmission - component allows EOs to respond to Contract Notice by submitting their quotations electronically to a CA, including using templates created by the CA. On the CAs side, this component generates a standardized schema for a bid or proposal in the relevant procurement method, stores received bids or proposal until expiry of tender deadlines and allows secure opening of the received tenders upon expiry of the tender deadlines.
- eQualification - component handles legal, economic and quality qualification of the tenderers and its proposals. It is responsible for accessing EOs master data. It is also used for shortlist management of procedures that allow shortlisting prior to submission of tenders.
- eAuction - component facilitates the configuration and management of reverse auction held electronically.
- eAwarding - component allows preparation of the Contract Award Notice in a structured way. It also ensures exchange of documents with the tenderer during the awarding phase. eAwarding is responsible for all actions once evaluation is completed until the contract is created.
- eContracting - component allows rearation and creation of the Awarded Contracts in a structured way. It also ensures the interaction with the eGov infrastructure (Treasury, state registers, etc) during Contract preparation phase. eContracting is responsible for all actions once contract is created as a result of evaluation under specific procurement procedure until this contract is implemented.
- eNotice - component is in charge of generating Notices using the data available in the eAccess and other components. The notices will be generated in a structured way available to download or to send to third parties. The module will also allow the creation of all other needed types of notices for all types of procedures based on the tender specifications introduced in the eProcurement system.
Environment
In addition to the BPE and its components, the system also includes several additional logical and functional components:
- Chronograph
- Feed Point
- Master Data Service
- Document Service
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:
- The file size is checked - if the value is exceeded (50 Mb), the process is thrown
- The file format is checked for a valid format
- In case of a valid format, the file is saved:
- description is stored in the database according to the model
- 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:
- The owner is checked for compliance with the one to whom the document registration url was issued
- The hash is calculated using the checksum algorithm
- 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.
- It is checked for a valid format
- 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.
- Users’ Authentication
- Notification Service
- Digital signature
- Logging service
- Treasury
- Payment system
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)