System and method for integrating external services into process workflow environments
Abstract
A system and method are provided for integrating external services into process workflow environments. The method can include subscribing to one or more topics in an external domain coupled to at least one external microservice to be notified of incoming messages, the topics in the external domain being mapped to topics in an internal domain coupled to a message broker for routing messages within the internal domain. The method can also include subscribing to the one or more topics in the internal domain to be notified of outgoing messages to the at least one external microservice and detecting an incoming message published to a first topic by a first external microservice. The method can also include sending the incoming message to the first topic of the internal domain, detecting an outgoing message from the first topic or a second topic of the internal domain, and publishing the outgoing message to the first external microservice or another external microservice via a corresponding topic in the external domain.
Claims
exact text as granted — not AI-modifiedThe invention claimed is:
1. A device for integrating external services into process workflow environments, the device comprising:
a processor;
a communications module coupled to the processor; and
a memory coupled to the processor, the memory storing computer executable instructions that when executed by the processor cause the processor to:
subscribe to one or more external topics in an external domain to be notified of incoming messages from at least one external microservice coupled via the external domain, wherein a message broker coupled via an internal domain maps the one or more external topics to respective one or more internal topics in the internal domain, the message broker for routing messages within the internal domain;
subscribe to the one or more internal topics to be notified of outgoing messages from the internal domain, wherein each of the one or more external topics and the one or more internal topics correspond to a service task in a state of a process workflow that has been translated from a workflow graph;
detect an incoming message published by a first external microservice of the at least one external microservice to a first external topic of the one or more external topics corresponding to a current task of the process workflow;
notify subscribers to a first internal topic of the one or more internal topics corresponding to the first external topic of the incoming message;
obtain a data object for the current task in the process workflow based on the first external topic or the first internal topic;
determine one or more next tasks in the process workflow;
update the data object based on the one or more next tasks or the current task;
detect an outgoing message comprising the updated data object, the outgoing message published to a second internal topic of the one or more internal topics, the outgoing message comprising a corresponding service task to be performed by the first external microservice or another external microservice;
publish the outgoing message to the first external microservice or the other external microservice via an external topic of the one or more external topics corresponding to the second internal topic; and
having a workflow state change of the process workflow updated.
2. The device of claim 1 , wherein the computer executable instructions further cause the processor to:
save state information to a state service to persist changes to the one or more external topics while executing the process workflow.
3. The device of claim 1 , wherein the outgoing message from the internal domain is detected by subscribing to the message broker that is configured to route messages within the internal domain.
4. The device of claim 3 , wherein the message broker is stateless and wherein the computer executable instructions further cause the processor to:
save state information to a state service to persist changes to the one or more internal topics while executing the process workflow.
5. The device of claim 3 , wherein the message broker subscribes to the one or more internal topics in the internal domain from all non-service tasks to be notified of internal messages.
6. The device of claim 1 , wherein the one or more internal topics or the one or more external topics are arranged into a plurality of subprocesses.
7. The device of claim 6 , wherein the first internal topic and the second internal topic are part of separate subprocesses.
8. The device of claim 1 , wherein the one or more internal topics or the one or more external topics have corresponding workflow tasks that have been translated for a process workflow environment from the workflow graph to a file and data interchange format.
9. The device of claim 8 , wherein the workflow graph is translated from a business process model and notation (BPMN) format to a JavaScript object notation (JSON) file and data interchange format.
10. The device of claim 1 , wherein the first external microservice publishes a data intake task.
11. The device of claim 1 , wherein the first external microservice publishes a service task.
12. A method of integrating external services into process workflow environments, the method comprising:
subscribing to one or more external topics in an external domain to be notified of incoming messages from at least one external microservice coupled via the external domain, wherein a message broker coupled via an internal domain maps the one or more external topics to respective one or more internal topics in the internal domain, the message broker for routing messages within the internal domain;
subscribing to the one or more internal topics to be notified of outgoing messages from the internal domain, wherein each of the one or more external topics and the one or more internal topics correspond to a service task in a state of a process workflow that has been translated from a workflow graph;
detecting an incoming message published by a first external microservice of the at least one external microservice to a first external topic of the one or more external topics corresponding to a current task of the process workflow;
notifying subscribers to a first internal topic of the one or more internal topics corresponding to the first external topic of the incoming message;
obtaining a data object for the current task in the process workflow based on the first external topic or the first internal topic;
determining one or more next tasks in the process workflow;
updating the data object based on the one or more next tasks or the current task;
detecting an outgoing message comprising the updated data object, the outgoing message published to a second internal topic of the one or more internal topics, the outgoing message comprising a corresponding service task to be performed by the first external microservice or another external microservice;
publishing the outgoing message to the first external microservice or the other external microservice via an external topic of the one or more external topics corresponding to the second internal topic; and
having a workflow state change of the process workflow updated.
13. The method of claim 12 , further comprising:
saving state information to a state service to persist changes to the one or more external topics while executing the process workflow.
14. The method of claim 12 , wherein the outgoing message from the internal domain is detected by subscribing to the message broker that is configured to route messages within the internal domain.
15. The method of claim 14 , wherein the message broker is stateless and the method further comprising:
saving state information to a state service to persist changes to the one or more internal topics while executing the process workflow.
16. The method of claim 14 , wherein the message broker subscribes to the one or more internal topics in the internal domain from all non-service tasks to be notified of internal messages.
17. The method of claim 12 , wherein the one or more internal topics or the one or more external topics are arranged into a plurality of subprocesses.
18. The method of claim 12 , wherein the one or more internal topics or the one or more external topics have corresponding workflow tasks that have been translated for a process workflow environment from the workflow graph to a file and data interchange format.
19. The method of claim 18 , wherein the workflow graph is translated from a business process model and notation (BPMN) format to a JavaScript object notation (JSON) file and data interchange format.
20. A non-transitory computer readable medium for integrating external services into process workflow environments, the non-transitory computer readable medium comprising computer executable instructions for:
subscribing to one or more external topics in an external domain to be notified of incoming messages from at least one external microservice coupled via the external domain, wherein a message broker coupled via an internal domain maps the one or more external topics to respective one or more internal topics in the internal domain, the message broker for routing messages within the internal domain;
subscribing to the one or more internal topics to be notified of outgoing messages from the internal domain, wherein each of the one or more external topics and the one or more internal topics correspond to a service task in a state of a process workflow that has been translated from a workflow graph;
detecting an incoming message published by a first external microservice of the at least one external microservice to a first external topic of the one or more external topics corresponding to a current task of the process workflow;
notifying subscribers to a first internal topic of the one or more internal topics corresponding to the first external topic of the incoming message;
obtaining a data object for the current task in the process workflow based on the first external topic or the first internal topic;
determining one or more next tasks in the process workflow;
updating the data object based on the one or more next tasks or the current task;
detecting an outgoing message comprising the updated data object, the outgoing message published to a second internal topic of the one or more internal topics, the outgoing message comprising a corresponding service task to be performed by the first external microservice or another external microservice;
publishing the outgoing message to the first external microservice or the other external microservice via an external topic of the one or more external topics corresponding to the second internal topic; and
having a workflow state change of the process workflow updated.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.