E masani ona ou talanoaina le fausaga o le microservice ma tagata e le o ni Java: C#, Node.JS/JavaScript developers, poʻo Golang enthusiasts. O i latou uma o loʻo feagai ma le mea moni latou te manaʻomia se masini faʻapipiʻi i totonu o le microservice architecture pe naʻo se meafaigaluega e faʻamalieina ai le galuega ma maua ai le tomai e faʻatonu ai, faʻatautaia taimi, Saga ma fefaʻatauaʻiga tau.
BPM tulaga ma puna tatala mai Camunda lelei mo galuega faapena. O le faauo a le atina'e o se tasi lea o vaega taua o le oloa. Ae afai e te vaʻavaʻai i ana faʻamaumauga, atonu e te maua le lagona o le faʻafeiloaʻiga a Camunda e faʻatatau i Java developers. O le faʻavae e maua ai le tele o avanoa e faʻafesoʻotaʻi ai au lava galuega ma faʻaopoopoga, ae o loʻo faia uma i Java. E moni ea?
Leai! O le mea moni, e faigofie ona e taʻavale Camunda e aunoa ma se malamalama Java ma faʻapipiʻi le fausaga e faʻailoga i soʻo se gagana e te filifilia. I lenei tusiga o le a tatou vaʻai i:
fausaga faavae;
MALOLO API;
fautuaga ile faletusi o lo'o iai mo gagana e ese mai Java;
faʻataʻitaʻiga o le faʻaaogaina o C # ma Node.JS;
auala e faʻatautaia ai le server Camunda (Docker poʻo Tomcat).
atiga
Camunda ua tusia i Java ma e manaʻomia se Java Virtual Machine (JVM) e tamoe. Ua saunia e Camunda se REST API e mafai ai ona e tusitusi i soʻo se gagana e te manaʻo ai ma faʻaoga REST ma Camunda:
O galuega i Camunda o loʻo faʻamatalaina i le BPMN, o lona uiga o se faila XML. E mafai ona faʻataʻitaʻiina e faʻaaoga Camunda Fa'ata'ita'i.
Faʻatautaia Camunda e ala i se ata Docker na fausia muamua
O le auala pito sili ona faigofie e taʻavale ai Camunda o le faʻaaogaina lea o Docker. O isi auala e faʻatautaia ai Camunda o loʻo faʻamatalaina mulimuli ane i lenei tusiga.
I lenei tulaga, tau lava o le tamoe:
docker run -d -p 8080:8080 camunda/camunda-bpm-platform:latest
E te le tau popole e uiga i Linux, Java Virtual Machines poʻo Tomcats. Dockerfiles ma faʻamaumauga autu (mo se faʻataʻitaʻiga, faʻatonuga mo le faʻafesoʻotaʻi i faʻamaumauga manaʻomia) o loʻo avanoa ile Github.
Afai e te manaʻo e taʻavale Camunda Enterprise Edition, e faigofie ona e sui faila faila.
Ae ui i lea, o loʻo i ai le tasi i lalo i le faʻaogaina o Camunda ma Docker: o le ae faʻamutaina se faʻamatalaga o Tomcat e le o taimi uma e aofia ai mea fou. Ina ia faʻataʻamilo i lenei mea, e mafai ona e fatuina se ata Docker oe lava e faʻavae i luga o le tufatufaina o Tomcat manaʻomia, e pei ona faʻaalia i lenei faʻataʻitaʻiga, pe faʻaaoga se tasi o fofo o loʻo faʻamatalaina i lalo.
Fa'atulagaina o se Fa'ata'ita'iga Fa'agasologa
Se'i o tatou va'ai i se fa'ata'ita'iga e fa'aaoga ai le fa'ata'ita'iga Saga mo se fa'ailoga masani o femalagaaiga e te mana'o e fa'atupu ai ni gaioiga se tolu ma fa'amalieina le taui o gaioiga manuia pe a o'o i se fa'aletonu mulimuli ane. Tuuina atu i le BPMN foliga, e pei o lenei:
O lea e mafai ona e faʻaaogaina REST API mo le fa'atinoina o fa'ata'ita'iga. Fa'apea na e fa'asaoina e pei o trip.bpmn ma tamo'e Camunda e ala i Docker ina ia maua i localhost:8080:
O lea ua mafai ona e tamoe fa'asologa fou o galuega fa'aaoga le REST API ma pasi fa'amaumauga e te mana'o e va'ai i ai e fai ma suiga o fa'ata'ita'iga o galuega:
O le isi fesili manaia o le fa'afefea ona fa'aosoina e Camunda faiga e pei o le tusiina o se ta'avale? E le gata ina mafai e Camunda ona valaau vave auaunaga (Push-Principle), e faʻaaoga ai nisi ua fausia i totonu feso'ota'iga, ae tu'u fo'i mea faigaluega i totonu o se ituaiga fa'apipi'i i totonu. Ona mafai lea e le tagata faigaluega ona maua mea faigaluega e ala i le REST, faatino le galuega, ma lipoti atu le maeʻa i Camunda (Pull-Principle).
O lea e tatau ona e faia muamua fetchAndLock (talu ai e mafai e isi tagata faigaluega ona maua galuega i le taimi e tasi e fua ai le faiga):
Ona taʻu atu lea ia Camunda ua maea galuega a le tagata faigaluega (ia matau e tatau ona e ulufale i le ID galuega i fafo na maua i le talosaga muamua):
O le mea lena - e te leʻi manaʻomia se Java i le taimi nei, saʻo? Ma ua lava lena e amata ai!
Client Library
Vala'au le REST API e faigofie i so'o se gagana polokalame. I le JavaScript e faigofie ona fai lenei mea e faʻaaoga ai le JQuery, ma i le C # e mafai ona e faʻaogaina System.Net.Http ma Newtonsoft.Json. Ae o le a umi se taimi. E mafai la ona e fa'aogaina se faletusi a tagata fa'atau.
O lo'o iai i le taimi nei le tele o faletusi a le au faipisinisi o lo'o avanoa:
C #:ссылка и ссылка. O nei galuega uma e lua o loʻo i totonu o se tulaga vavalalata ma e toetoe a leai se gaioiga, ae mafai ona avea o se amataga lelei;
PHP: ссылка e le o se faletusi atoatoa ma e le aofia ai suiga fou API, ae ou te iloa galuega faatino e faʻaaogaina.
Vagana ai le Javascript ma le Java, o faletusi a tagata o tausia e le o se vaega o le oloa a Camunda lava ia. Aua le fa'amoemoe latou te lagolagoina uma fa'aaliga REST API a Camunda. Ona e le o maua e le faletusi se vaega patino e le o lona uiga e leai, siaki pea le Camunda REST API. O galuega masani e fa'aaogaina faletusi e fai ma amataga ma fa'ata'ita'iga.
Fa'ata'ita'iga ile C#
I le faʻaaogaina o le faletusi o loʻo i luga, e mafai ona matou tusia:
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", "..." }
});
E mafai ona maua i luga ole laiga i luga ole laiga: ссылка. O loʻo maua se isi faʻataʻitaʻiga i ссылка.
E mafai ona maua nisi fa'amatalaga ile upegatafa'ilagi github.com
Isi auala e amata ai Camunda
Ata fa'apitoa Docker fa'atasi ma le "Camunda standalone WAR"
I le avea ai ma se isi mea i le ata Docker muamua na fausia mai Camunda, e mafai ona e saunia Tomcat oe lava (mo se faʻataʻitaʻiga, faʻavae i luga o ata Docker Tomcat) ona kopi lea o Camunda i totonu o se tasi o faila faila WAR.
Afai e tele au manaʻoga faʻaopoopo ma e mafai ona faʻapipiʻiina se siosiomaga fausia Java, e mafai foi ona e faʻatulagaina le taua a Camunda Standalone. Seti se fale Maven e pei o nei faʻataʻitaʻiga: fausia Maven faʻatasi ma le faʻatulagaina o taua po o le faapotopotoga Maven fa'atasi ma Fa'alava.
Tatalaina le tufatufaina o Camunda Tomcat
O le isi filifiliga o le naʻo le siiina mai o le tufatufaina o Camunda Tomcat, tatala ma taʻavale. Ina ia faia lenei mea, e te manaʻomia le Java Runtime Environment (JRE) faʻapipiʻi i lau komepiuta. E mafai ona faigofie download mai iinei.
Ina ia suia le database pe fai se isi mea e te manaʻomia e faʻapipiʻi Tomcat pei faʻamatalaina i totonu o faʻamaumauga. Ou te iloa e foliga faigata Tomcat, ae e matua faigofie lava. Ma o Google e iai tali i mea uma e te manaʻomia i le faagasologa.
Ta'avale Camunda fa'aaoga Tomcat
Ole mea mulimuli ole faʻapipiʻi Tomcat oe lava ma faʻapipiʻi Camunda i totonu, mulimuli i le faʻamatalaga faʻapipiʻi. O lenei mea o le a tuʻuina atu ai ia te oe le avanoa e faʻaaoga ai soʻo se lomiga o Tomcat e te manaʻo ai, pe, mo se faʻataʻitaʻiga, faʻapipiʻi e avea o se auaunaga a le Windows.
Fa'alauiloa ole Camunda ile gaosiga
E masani lava, o le a manaʻomia oe e fai se seti mulimuli e faʻagasolo ai Camunda. Camunda o loʻo i ai taʻiala e faʻamatala auiliili ai lenei mea, ae o le a ou le paʻi atu ia i latou i lenei tusiga - O le a naʻo se tasi o faʻataʻitaʻiga: o le tufatufaina atu o le REST API e le o faʻatulagaina mo le faʻamaonia e ala i le faaletonu. Atonu e te mana'o e sui lenei mea.
Faʻaopoopo i luga
E pei ona e maitauina, o le amataina o Camunda e matua faigofie lava, e tusa lava po o le a le gagana e te faʻaaogaina. O le mea autu o fesoʻotaʻiga uma e faia i le REST API. O le faʻapipiʻiina e faigofie tele, aemaise lava pe a faʻaaoga Docker.