Hey Habr! เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเบฒโเบชเบฐโเปเบซเบเบตโเปเบซเปโเบเปเบฒเบโเบชเบปเบโเปเบโเบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเบญเบโเบเบปเบโเบเบงเบฒเบกโเปเบเปโ
เบงเบฑเบเบเบต 07.07.2020/XNUMX/XNUMX, เบเบฒเบเปเบ
เบเปเบญเบเบกเบฑเบเบเบฐเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ microservice เบเบฑเบเบเบปเบเบเบตเปเบเปเปเปเบกเปเบ Java: เบเบฑเบเบเบฑเบเบเบฐเบเบฒ C#, Node.JS/JavaScript developers, เบซเบผเบท Golang aficionados. เบเบงเบเปเบเบปเบฒเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบเบฐเปเบเบตเบเบซเบเปเบฒเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเปเบญเบเบเบฒเบเบเบปเบเปเบเบเบฒเบ orchestration เปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบธเบฅเบฐเบเบฒเบ, เบซเบผเบทเบเบฝเบเปเบเปเปเบเบทเปเบญเบเบกเบทเปเบเบทเปเบญเบเบฑเบเบเบธเบเบเบฐเบเบงเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบชเบฑเปเบ, เบเบฑเบเบเบฒเบเปเบงเบฅเบฒเบซเบกเบปเบเปเบงเบฅเบฒ, Saga เปเบฅเบฐเบเบฒเบเบเบปเบเปเบเบตเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒ.
เปเบงเบเบต BPM เบเบฑเบ
เบเปเป! เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ Camunda เปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบเบเปเปเบกเบตเบเบงเบฒเบกเบฎเบนเป Java เปเบฅเบฐเบเบฑเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบเปเบเบเบฒเบชเบฒเบเบตเปเบเปเบฒเบเปเบฅเบทเบญเบ. เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบ:
- เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบทเปเบเบเบฒเบ;
- REST API
- เบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบฅเบนเบเบเปเบฒเบเบตเปเบกเบตเบขเบนเปเบชเปเบฒเบฅเบฑเบเบเบฒเบชเบฒเบเบญเบเปเบซเบเบทเบญเบเบฒเบ Java;
- เบเบปเบงเบขเปเบฒเบเบเบตเปเปเบเป C# เปเบฅเบฐ Node.JS;
- เบงเบดเบเบตเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Camunda (Docker เบซเบผเบท Tomcat).
เบเบฒเบเบฑเบเบเบฐเบเบฐ
Camunda เบเบทเบเบเบฝเบเปเบงเปเปเบ Java เปเบฅเบฐเบเปเบญเบเบเบฒเบ Java Virtual Machine (JVM) เปเบเบทเปเบญเปเบฅเปเบ. Camunda เปเบซเป REST API เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฝเบเปเบเบเบฒเบชเบฒเปเบเบเปเปเบเปเบเบตเปเบเปเบฒเบเบกเบฑเบ เปเบฅเบฐเปเบเป REST เบเบฑเบ Camunda:
Workflows เปเบ Camunda เบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบ BPMN, เปเบเบดเปเบเปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบงเปเบกเปเบเปเบเบฅเป XML. เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเปเบฒเบฅเบญเบเบเปเบงเบ
เปเบฅเปเบ Camunda เบเปเบฒเบเบฎเบนเบ Docker เบเบตเปเบชเปเบฒเบเบเบถเปเบเบเปเบญเบ
เบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเบตเปเบชเบธเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ Camunda เปเบกเปเบเบเบฒเบเปเบเป Docker. เบงเบดเบเบตเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเบตเบเบเบปเบง Camunda เปเบกเปเบเปเบเปเบญเบฐเบเบดเบเบฒเบเบเปเปเบกเบฒเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป.
เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเบเบตเป, เบเบฝเบเปเบเปเบเปเบฒเปเบเบตเบเบเบฒเบ:
docker run -d -p 8080:8080 camunda/camunda-bpm-platform:latest
เบเปเบฒเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบงเบปเบเบเปเบฝเบงเบเบฑเบ Linux, JVMs เบซเบผเบท Tomcats. Dockerfiles เปเบฅเบฐเปเบญเบเบฐเบชเบฒเบเบเบทเปเบเบเบฒเบ (เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเปเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเบเปเบญเบเบเบฒเบ) เปเบกเปเบเบกเบตเบขเบนเป
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ Camunda Enterprise Edition เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฒเบเปเบฅเปเบ Camunda เบเบฑเบ Docker เบกเบตเบเปเปเปเบชเบเบซเบเบถเปเบ: เบเปเบฒเบเบเบฐเบชเบดเปเบเบชเบธเบเบเปเบงเบเบชเบฐเบเบฑเบเบเบญเบ Tomcat เบเบตเปเบเปเปเบเบฐเบเบญเบเบกเบตเบเบฒเบเปเบเปเปเบเบซเบฅเปเบฒเบชเบธเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker เบเบญเบเบเปเบฒเบเปเบญเบเปเบเบเบญเบตเบเปเบชเปเบเบฒเบเปเบเบเบขเบฒเบ Tomcat เบเบตเปเบเปเบญเบเบเบฒเบ, เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเบเบปเบงเบขเปเบฒเบเบเบตเป, เบซเบผเบทเปเบเปเบซเบเบถเปเบเปเบเบเบฒเบเปเบเปเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
เบเบฒเบเบเบณเปเบเปเบเบปเบงเปเบเบเบเบฐเบเบงเบเบเบฒเบ
เบเปเปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเบฒเปเบเปเปเบกเปเปเบเบ Saga เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเปเบเบตเบเบเบฒเบเปเบเบเบเบฅเบฒเบชเบชเบดเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฐเบเบธเปเบเบชเบฒเบกเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบดเบเบเปเปเบเบฑเบเปเบฅเบฐ gracefully เบเบปเบเปเบเบตเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเบเปเปเบกเบฒ. เปเบเบฑเบเบเบปเบงเปเบเบเปเบเบฎเบนเบเปเบเบ BPMN, เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเป:
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป
curl -w "n"
-H "Accept: application/json"
-F "deployment-name=trip"
-F "enable-duplicate-filtering=true"
-F "deploy-changed-only=true"
-F "[email protected]"
http://localhost:8080/engine-rest/deployment/creat
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ
curl
-H "Content-Type: application/json"
-X POST
-d '{"variables":{"someData" : {"value" : "someValue", "type": "String"}},"businessKey" : "12345"}}'
http://localhost:8080/engine-rest/<!-- -->process-definition/key/<!-- -->FlowingTripBookingSaga<!-- -->/start
เบเปเบฒเบเบฒเบกเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบเปเปเปเบเปเบกเปเบ: Camunda เปเบเบซเบฒเบเบฑเปเบเบเบญเบเปเบเบฑเปเบเบเบฒเบเบเบญเบเบฅเบปเบเปเบเบงเปเบ? Camunda เบเปเปเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเปเบเบซเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบเบต (Push-Principle) เปเบเบเปเบเปเบเบฒเบเบเบปเบงเปเบ
เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบ
curl
-H "Content-Type: application/json"
-X POST
-d <!-- -->'{"workerId":"worker123","maxTasks":1,"usePriority":true,"topics":[{"topicName": "reserve-car"}, "lockDuration": 10000, "variables": ["someData"]}]}'<!-- -->
http://localhost:8080/engine-rest/external-task/fetchAndLock
เปเบฅเปเบงเบเบญเบ Camunda เบงเปเบฒ
curl
-H "Content-Type: application/json"
-X POST
-d <!-- -->'{"workerId":"worker123", "variables": {}}'<!-- -->
http://localhost:8080/engine-rest/<!-- -->external-task/EXTERNAL_TASK_ID/complete
เบเบฑเปเบเปเบกเปเบเบกเบฑเบ - เปเบเบปเปเบฒเบเบฑเบเบเปเปเปเบเปเบเปเบญเบเบเบฒเบ Java, เปเบกเปเบเบเป? เปเบฅเบฐเบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบ!
เบซเปเบญเบเบชเบฐเปเบธเบเบฅเบนเบเบเปเบฒ
เบเบฒเบเปเบเบซเบฒ REST API เปเบกเปเบเบเปเบฒเบเปเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบผเปเบเบผเบกเปเบเป. เปเบ JavaScript, เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเบชเบฐเบเบงเบเปเบเบเปเบเป JQuery, เปเบฅเบฐเปเบ C#, เปเบเบเปเบเป System.Net.Http เปเบฅเบฐ Newtonsoft.Json. เปเบเปเบเบตเปเบเบฐเปเบเปเปเบงเบฅเบฒ. เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบฅเบนเบเบเปเบฒเบเปเบฒเบเบงเบเบซเบเบถเปเบ.
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบฅเบนเบเบเปเบฒเบเบตเปเบเบฝเบกเบเปเบญเบกเบซเบผเบฒเบเปเบกเปเบเบกเบต:
- javascript:
เบซเบเปเบฒเบเปเบฒเบญเบดเบ . เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบ Camunda; - Java:
เบซเบเปเบฒเบเปเบฒเบญเบดเบ . เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบ Camunda; - C #:
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ะธเบซเบเปเบฒเบเปเบฒเบญเบดเบ . เบเบฑเบเบชเบญเบเปเบเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบขเบนเปเปเบเบฅเบฑเบเบเบฒเบเปเบฅเบฐเบเบฐเบเบดเบเบฑเบ dormant, เปเบเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบต; - PHP:
เบซเบเปเบฒเบเปเบฒเบญเบดเบ - เบเปเปเบชเบปเบกเบเบนเบเปเบเบตเบเปเบเปเบฅเบฐเบเปเปเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบเบเปเบฝเบเปเบเบ API เบซเบผเปเบฒเบชเบธเบ, เปเบเปเบเปเบญเบเบฎเบนเปเบงเปเบฒเปเบเบเบเบฒเบเบเบตเปเปเบเปเบกเบฑเบ.
เบกเบตเบเปเปเบเบปเบเปเบงเบฑเปเบเบเบญเบ JavaScript เปเบฅเบฐ Java, เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบฅเบนเบเบเปเบฒเบเปเปเปเบกเปเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ Camunda เปเบญเบ. เบขเปเบฒเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบฐเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบ REST API เบเบฑเบเบซเบกเบปเบเบเบญเบ Camunda. เบเบฝเบเปเบเปเบเปเบญเบเบงเปเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเปเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบชเบฐเปเบเบฒเบฐเปเบเบซเบเบถเปเบเบเปเปเปเบเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบกเบฑเบเบเปเปเบขเบนเปเบเบตเปเบเบฑเปเบ, เปเบซเปเบเบงเบเปเบเบดเปเบ Camunda's REST API เบชเบฐเปเปเบต. เปเบเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบฑเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเปเบกเปเปเบเบ.
เบเบปเบงเบขเปเบฒเบ C#
เบเบฒเบเบเปเบฒเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบฅเบนเบเบเปเบฒเบเปเบฒเบเปเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฝเบเบเปเบฒเบเป:
var camunda = new CamundaEngineClient("http://localhost:8080/engine-rest/engine/default/", null, null);
// Deploy the BPMN XML file from the resources
camunda.RepositoryService.Deploy("trip-booking", new List<object> {
FileParameter.FromManifestResource(Assembly.GetExecutingAssembly(), "FlowingTripBookingSaga.Models.FlowingTripBookingSaga.bpmn")
});
// Register workers
registerWorker("reserve-car", externalTask => {
// here you can do the real thing! Like a sysout :-)
Console.WriteLine("Reserving car now...");
camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
});
registerWorker("cancel-car", externalTask => {
Console.WriteLine("Cancelling car now...");
camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
});
registerWorker("book-hotel", externalTask => {
Console.WriteLine("Reserving hotel now...");
camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
});
// Register more workers...
StartPolling();
string processInstanceId = camunda.BpmnWorkflowService.StartProcessInstance("FlowingTripBookingSaga", new Dictionary<string, object>()
{
{"someBookingData", "..." }
});
เบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบญเบญเบเปเบฅเบเป:
เบเบปเบงเบขเปเบฒเบเบเบฑเบ Node.js
var Workers = require('camunda-worker-node');
var workers = Workers('http://localhost:8080/engine-rest', {
workerId: 'some-worker-id'
});
workers.registerWorker('reserve-car', [ 'someData' ], function(context, callback) {
var someNewData = context.variables.someData + " - added something";
callback(null, {
variables: {
someNewData: someNewData
}
});
});
workers.shutdown();
เบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป
เบงเบดเบเบตเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเบตเบเบเบปเบง Camunda
เบฎเบนเบเบเบฒเบ Docker เปเบเบเบเบณเบเบปเบเปเบญเบเบเบฑเบ "Camunda standalone WAR"
เปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบเบฎเบนเบเบเบฒเบ Docker เบเบตเปเบชเปเบฒเบเปเบงเปเบเปเบญเบเบเบฒเบ Camunda, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบฝเบก Tomcat เบเบปเบงเบเปเบฒเบเปเบญเบ (เบเบปเบงเบขเปเบฒเบ, เบญเบตเบเบเบฒเบกเบฎเบนเบเบเบฒเบ Docker Tomcat เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ) เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฑเบเบฅเบญเบ Camunda เปเบเบปเปเบฒเปเบเปเบเบกเบฑเบเปเบเบฑเบเบซเบเบถเปเบเปเบเปเบเบฅเป WAR เบเบตเปเปเบญเบตเปเบเบงเปเบฒ.
เบเปเบฒเบเปเบฒเบเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฒเบเบงเบเบซเบผเบฒเบเปเบฅเบฐเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเปเปเบชเปเบฒเบ Java, เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเบชเบปเบเบเบฒเบก Camunda Standalone. เบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบ Maven เปเบเบฑเปเบเปเบเบเบปเบงเบขเปเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป: เบเบฒเบเบเปเปเบชเปเบฒเบ
เปเบฅเบตเปเบกเบเบฒเบเปเบเบเบขเบฒเบ Camunda Tomcat
เบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเปเบกเปเบเบเบฝเบเปเบเปเบเบฒเบงเบเปเปเบซเบฅเบเบเบฒเบเปเบเบเบขเบฒเบ Camunda Tomcat, unzip เบกเบฑเบ, เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบกเบฑเบ. เบญเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบฝเบเปเบเป Java Runtime Environment (JRE) เบเบตเปเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบเบญเบกเบเบดเบงเปเบเบตเบเบญเบเบเปเบฒเบ. เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ
เปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฐเบเปเบฝเบเบเบฒเบเบเปเปเบกเบนเบเบซเบผเบทเปเบฎเบฑเบเบชเบดเปเบเบญเบทเปเบเปเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบ configure Tomcat เบเบท
เปเบฅเปเบ Camunda เปเบเป Tomcat
เบเบฒเบเปเบฅเบทเบญเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ Tomcat เบเบปเบงเบเปเบฒเบเปเบญเบเปเบฅเบฐเบเบดเบเบเบฑเปเบ Camunda เปเบเบปเปเบฒเปเบเปเบเบกเบฑเบ,
เบเบฒเบเปเบเบตเบเบเบปเบง Camunda เปเบเบเบฒเบเบเบฐเบฅเบดเบ
เบเบปเบเบเบฐเบเบดเบญเบฑเบเบเบตเปเบเบฐเบเปเบญเบเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเปเบเบชเบธเบเบเปเบฒเบเปเบเบทเปเบญเปเบเบตเบเปเบเป Camunda. เบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเปเบ Camunda เบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบฅเบทเปเบญเบเบเบตเปเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบตเปเบเบดเปเบเปเบซเบเป, เปเบเปเบเปเบญเบเบเบฐเบเปเปเปเบเบปเปเบฒเปเบเปเบเบเบงเบเบกเบฑเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป - เบเปเบญเบเบเบฐเบเบฑเปเบเบเบทเปเบเบฝเบเปเบเปเบซเบเบถเปเบเบเบปเบงเบขเปเบฒเบ: REST API เบเบญเบเบเบฒเบเปเบเบเบขเบฒเบเบเปเปเปเบเปเบเบทเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเป.
Summing up
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบกเบฑเบเบเปเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบ Camunda, เปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบเบฒเบชเบฒเบเบตเปเบเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบเป. เบเบธเบเบชเปเบฒเบเบฑเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเปเบเบญเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเปเบฎเบฑเบเบเปเบฒเบ REST API. เบเบฒเบเบเบดเบเบเบฑเปเบเบเปเปเบเปเบฒเบเบซเบผเบฒเบ, เปเบเบเบชเบฐเปเบเบฒเบฐเปเบกเบทเปเบญเปเบเป Docker.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com