Matetika aho no miresaka momba ny maritrano microservice miaraka amin'ny olona tsy Java: C#, Node.JS/JavaScript developers, na Golang enthusiasts. Izy rehetra dia miatrika ny zava-misy fa mila motera orkestra amin'ny maritrano microservice izy ireo na fitaovana tsotra hanamafisana ny fizotran'ny asa sy hahazoana fahafahana manafatra, mitantana ny fotoana, Saga ary manonitra ny fifanakalozana.
Sehatra BPM miaraka amin'ny loharano misokatra avy amin'ny Camunda tsara ho an'ny asa toy izany. Iray amin'ireo endri-javatra fototra amin'ny vokatra ny fahatsaran'ny mpamorona. Saingy raha mijery ny antontan-taratasiny ianao dia mety ho hitanao fa ny hatsaram-panahin'i Camunda dia natao indrindra ho an'ny mpamorona Java. Ny sehatra dia manome fahafahana maro hampifandray ny fiasanao sy ny fanitaranao manokana, saingy vita amin'ny Java daholo izany. Tena izany ve?
Tsia! Raha ny marina, azonao atao mora foana ny mampandeha ny Camunda tsy misy fahalalana Java ary manamboatra ny maritrano ho kaody amin'ny fiteny tianao. Ato amin'ity lahatsoratra ity isika dia hijery:
rafitra fototra;
REST API;
torohevitra momba ny tranomboky mpanjifa efa misy ho an'ny fiteny hafa ankoatry ny Java;
ohatra amin'ny fampiasana C# sy Node.JS;
fomba hampandehanana ny mpizara Camunda (Docker na Tomcat).
maritrano
Nosoratana amin'ny Java i Camunda ary mila Java Virtual Machine (JVM) mba hihazakazaka. Camunda dia manome REST API ahafahanao manoratra amin'ny fiteny tianao ary mampiasa REST miaraka amin'i Camunda:
Ny workflows ao Camunda dia voafaritra ao amin'ny BPMN, izay rakitra XML amin'ny ankapobeny. Afaka mampiasa modely izy io Modeler Camunda.
Mihazakazaka Camunda amin'ny alàlan'ny sary Docker efa namboarina
Ny fomba tsotra indrindra hampandehanana ny Camunda dia ny fampiasana Docker. Ny fomba hafa hampandehanana ny Camunda dia voalaza ato amin'ity lahatsoratra ity.
Amin'ity tranga ity, mihazakazaka fotsiny:
docker run -d -p 8080:8080 camunda/camunda-bpm-platform:latest
Tsy mila manahy momba ny Linux, Java Virtual Machines na Tomcats ianao. Ny dockerfiles sy ny antontan-taratasy fototra (ohatra, torolalana amin'ny fampifandraisana amin'ny angon-drakitra ilaina) dia hita ao amin'ny Github.
Raha te hampandeha ny Camunda Enterprise Edition ianao dia afaka miova mora foana dockerfile.
Na izany aza, misy ny lafy ratsiny amin'ny fampandehanana an'i Camunda amin'ny fampiasana Docker: ianao dia hiafara amin'ny dikan-teny Tomcat izay tsy ahitana ny fanamboarana farany. Mba hahazoana izany, afaka mamorona sary Docker ianao mifototra amin'ny fizarana Tomcat tadiavina, araka ny aseho amin'ity ohatra ity, na ampiasao ny iray amin'ireo vahaolana voalaza etsy ambany.
Mametraka Modely Process
Andeha hojerentsika ohatra iray amin'ny fampiasana ny maodely Saga ho an'ny famandrihana fitsangatsanganana mahazatra izay tianao hanentanana hetsika telo misesy ary hanonerana amim-pahamendrehana ny hetsika mahomby raha sendra misy tsy fahombiazana any aoriana. Aseho amin'ny endrika BPMN, toa izao:
Azonao ampiasaina izao REST API ho an'ny fametrahana modely amin'ny dingana. Andeha atao hoe notahirizinao ho trip.bpmn izany ary nihazakazaka Camunda tamin'ny alàlan'ny Docker mba hita ao amin'ny localhost:8080:
Afaka mihazakazaka ianao izao toe-javatra vaovao workflow mampiasa ny REST API ary mampita ny angon-drakitra tianao ho hita amin'ny maha-variable ohatra ny workflow:
Ny fanontaniana mahaliana manaraka dia ny fomba ampiasana ny fomba fiasa toy ny famandrihana fiara i Camunda? Camunda dia tsy afaka miantso avy hatrany ny serivisy (Push-Principle), amin'ny fampiasana sasany namboarina connectors, fa apetraho ao anatin'ny karazana filaharana voaorina ihany koa. Ny mpiasa dia afaka mahazo ny asa amin'ny alalan'ny REST, manatanteraka ny asa, ary mitatitra ny fahavitan'ny Camunda (Principle Pull).
Ka mila manao aloha ianao fetchAndLock (satria ny mpiasa hafa dia afaka mahazo asa miaraka amin'ny fampitomboana ny rafitra):
Dia lazao amin'i Camunda izany nahavita ny asany ny mpiasa (mariho fa tsy maintsy miditra ny ID asa ivelany voaray tamin'ny fangatahana voalohany ianao):
Izay ihany - tsy mila Java ianao hatreto, sa tsy izany? Ary ampy ny manomboka izany!
Tranomboky mpanjifa
Ny fiantsoana ny REST API dia mora amin'ny fiteny fandaharana rehetra. Amin'ny JavaScript dia mety ny manao izany amin'ny JQuery, ary amin'ny C# dia azonao ampiasaina ny System.Net.Http sy Newtonsoft.Json. Mila fotoana anefa izany. Noho izany dia azonao atao ny mampiasa tranomboky mpanjifa sasany.
Amin'izao fotoana izao dia misy tranomboky mpanjifa efa vonona:
C #:rohy и rohy. Ireo tetik'asa roa ireo dia ao anatin'ny fanjakana manelanelana ary saika tsy misy hetsika, fa azo ampiasaina ho toy ny fanombohana tsara;
PHP: rohy dia tsy tranomboky tena feno ary tsy ahitana ny fanovana API farany indrindra, fa mahafantatra tetikasa mampiasa azy aho.
Ankoatra ny JavaScript sy Java, ny tranomboky mpanjifa dia tsy anisan'ny vokatra Camunda mihitsy. Aza manantena azy ireo hanohana ny endri-javatra REST API rehetra an'i Camunda. Satria tsy manome endri-javatra iray ny tranomboky iray dia tsy midika izany fa tsy ao izany, jereo foana ny Camunda REST API. Ny tetikasa mahazatra dia mampiasa tranomboky ho toy ny fanombohana sy môdely.
Ohatra amin'ny C#
Amin'ny fampiasana ny tranomboky mpanjifa etsy ambony dia afaka manoratra tsotra izao isika:
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", "..." }
});
Ny kaody loharano miasa feno dia azo jerena amin'ny Internet: rohy. Misy ohatra iray hafa hita ao amin'ny rohy.
Misy fampahalalana bebe kokoa azo jerena ao amin'ny tranokala github.com
Fomba hafa hanombohana Camunda
Sary Docker manokana miaraka amin'ny "Camunda standalone WAR"
Ho solon'ny sary Docker efa namboarina avy amin'ny Camunda, azonao atao ny manomana Tomcat ny tenanao (ohatra, mifototra amin'ny sary ofisialy Docker Tomcat) ary avy eo mandika Camunda ao anatiny ho iray amin'ireo antsoina hoe rakitra WAR.
Raha manana fepetra fanampiny maro ianao ary afaka manamboatra tontolo fananganana Java dia azonao atao koa ny manamboatra ady Camunda Standalone. Manangana fananganana Maven toy ny amin'ireto ohatra ireto: fananganana Maven miaraka amin'ny fanamafisana ady na fivoriambe Maven miaraka amin'ny Overlay.
Famoahana ny fizarana Camunda Tomcat
Safidy iray hafa dia ny misintona fotsiny ny fizarana Camunda Tomcat, sokafy ary amboary izany. Mba hanaovana izany dia mila ny Java Runtime Environment (JRE) napetraka ao amin'ny solosainao. Mety ho mora izany alaivo avy eto.
Raha hanova ny angon-drakitra na hanao zavatra hafa ianao dia mila manamboatra Tomcat tahaka voalaza ao amin'ny antontan-taratasy. Fantatro fa mety ho sarotra ny Tomcat, saingy tena tsotra izany. Ary Google dia manana ny valin'ny zavatra rehetra mety ilainao amin'ny dingana.
Mihazakazaka Camunda mampiasa Tomcat
Ny safidy farany dia ny manamboatra Tomcat ny tenanao ary mametraka Camunda ao, manaraka ny famaritana ny fametrahana. Izany dia hanome anao fahafahana hampiasa izay dikan-Tomcat tianao, na, ohatra, mametraka azy ho serivisy Windows.
Famoahana ny Camunda amin'ny famokarana
Amin'ny ankapobeny, mila manao fanamboarana farany ianao mba hampandeha an'i Camunda. Camunda dia manana torolalana mamaritra izany amin'ny antsipiriany, saingy tsy hikasika azy ireo amin'ity lahatsoratra ity aho - Hanome ohatra iray fotsiny aho: ny REST API amin'ny fizarana dia tsy namboarina ho an'ny fanamarinana amin'ny alàlan'ny default. Mety te hanova izany ianao.
Famintinana
Araka ny efa tsikaritrareo, ny fanombohana Camunda dia tena mora, na inona na inona fiteny ampiasainao. Ny teboka manan-danja dia ny fifandraisana rehetra dia atao amin'ny alàlan'ny REST API. Tsotra ihany koa ny fametrahana, indrindra rehefa mampiasa Docker.