Camunda là gì

  • Activiti là một quy trình công việc nhẹ nhàng và Nền tảng quản lý quy trình kinh doanh [BPM] dành cho doanh nhân, nhà phát triển và quản trị viên hệ thống. Cốt lõi của nó là một công cụ xử lý BPMN 2 siêu nhanh và chắc chắn cho Java.

  • Imixs-BPMN là một công cụ lập mô hình miễn phí, tận dụng tối đa tất cả các khả năng của tiêu chuẩn BPMN và bổ sung cho chúng các tính năng của một công cụ xử lý công việc mạnh mẽ. Imixs-BPMN tăng cường Khung mô hình hóa BPMN2 của Eclipse với các khí…

  • Phần mềm trực tuyến của chúng tôi, Iterop, là giải pháp của bạn. Với Iterop, bạn có thể lập mô hình, định cấu hình sau đó phát các quy trình kinh doanh của mình để cải thiện, theo dõi và giám sát năng suất của bạn. Theo dõi trao đổi dữ liệu của bạn …

  • jBPM là bộ quản lý quy trình kinh doanh [BPM] linh hoạt. Nó làm cầu nối giữa các nhà phân tích kinh doanh và nhà phát triển. Các động cơ BPM truyền thống có trọng tâm chỉ giới hạn cho những người không có kỹ thuật.

BPM truyền thống hoặc ứng dụng kết hợp chặt chẽ mặc dù được thiết kế theo cách chính xác nhưng theo thời gian do bổ sung chức năng mới và thiếu hỗ trợ sản phẩm phiên bản cũ, nó thường dẫn đến các vấn đề sau:

  • Hệ thống nặng khó cài đặt và bảo trì.
  • Kiến trúc khép kín, khó tích hợp với chồng công nghệ hiện có.
  • Yêu cầu cách tiếp cận độc quyền của họ để phát triển ứng dụng, bị các nhà phát triển phần mềm không thích và hạn chế về tính linh hoạt.
  • Thiếu hỗ trợ cho BPMN hoặc thiếu các tính năng và công cụ.
  • Các vấn đề về hiệu suất và khả năng mở rộng.
  • Khó có được dịch vụ chuyên nghiệp chất lượng, giá cả phải chăng.
  • Tổng chi phí sở hữu [TCO] quá cao, một phần do phí bảo trì cao.

Do đó, chỉ còn lại tùy chọn thay thế hoặc thiết kế lại BPMS.

Các vấn đề với phương pháp tiếp cận thay thế

Trong khi xem xét cách tiếp cận thay thế hoặc thiết kế lại, điều đầu tiên bạn cần nghĩ đến là chi phí và tính linh hoạt khi thực hiện với kiến ​​trúc hiện đại. Làm cách nào để liên kết công cụ điều phối với dịch vụ vi mô? Nó phải tận dụng quy trình làm việc, thứ tự các hoạt động, xử lý thời gian chờ, các giao dịch kinh doanh phức tạp hoặc các tính năng thú vị khác. Trong tương lai, nó có thể dễ dàng thay thế bằng các động cơ điều phối khác.

Các nhà cung cấp BPM khác cung cấp giải pháp nhưng nền tảng cung cấp plug-in, các chức năng và phần mở rộng riêng nhưng tất cả điều này được thực hiện bằng Java.

Camunda có thể giúp gì cho các vấn đề trên?

Nền tảng BPM mã nguồn mở Camunda phục vụ rất tốt các trường hợp sử dụng này. Thật dễ dàng để chạy Camunda mà không cần bất kỳ kiến ​​thức Java nào và thiết lập một kiến ​​trúc để viết mã bằng ngôn ngữ mà bạn chọn. Camunda có thể được sử dụng như một máy chủ công cụ xử lý độc lập hoặc được nhúng bên trong các ứng dụng Java tùy chỉnh. Để có tính khả dụng và khả năng mở rộng cao, Camunda có thể chạy trên một cụm phân tán trong khi dựa trên một cơ sở dữ liệu được chia sẻ.

Ưu điểm cốt lõi của Camunda BPM so với các giải pháp BPM khác là tính linh hoạt cao hơn, sử dụng các công nghệ và kiến ​​thức tiêu chuẩn, giảm chi phí cấp phép và quá trình phát triển phần mềm được tăng tốc.

  • Giới thiệu kiến ​​trúc cơ bản và phương án thay thế
  • Mô hình BPMN
  • Giới thiệu API Camunda REST,
  • Các thư viện ứng dụng khách hiện có cho các ngôn ngữ khác ngoài Java,
  • Ví dụ sử dụng C # và Node.JS
  • mô tả các cách chạy máy chủ Camunda [Docker hoặc Tomcat].

Camunda được viết bằng Java và cần một Máy ảo Java [JVM] để chạy. Camunda cung cấp một API REST cho phép viết mã bằng bất kỳ ngôn ngữ nào và chỉ cần nói chuyện REST với Camunda:

API REST

Dưới đây là các lựa chọn thay thế mà chúng ta có thể xây dựng kiến ​​trúc với công cụ quy trình làm việc

  • Giao tiếp không đồng bộ bằng các lệnh và sự kiện [thường sử dụng bus thông báo hoặc sự kiện]
  • Giao tiếp điểm-điểm theo yêu cầu / phản hồi [thường là REST]
  • Phân phối công việc theo công cụ quy trình làm việc

Mô hình BPMN

Quy trình công việc trong Camunda được định nghĩa trong BPMN về cơ bản là một tệp XML. Nó có thể được mô hình hóa bằng đồ họa bằng Camunda Modeler. Camunda hỗ trợ BPMN 2.0 nên dễ dàng di chuyển quy trình BPMN hiện có từ sản phẩm BPMN khác sang Camunda trực tiếp bằng Cawemwo hoặc trình mô hình hóa.

  • Cawemo là nền tảng đặc tả quy trình BPMN của ngăn xếp Camunda. Mục đích chính của nó là cho phép các bên liên quan lập mô hình và cộng tác trên sơ đồ quy trình kinh doanh.
  • Sơ đồ luồng là cầu nối giữa đội ngũ kinh doanh và kỹ thuật, cho khả năng vẽ các luồng kinh doanh trừ đi các chi tiết kỹ thuật.
  • Đã tạo BPMN triển khai thêm trong các phần riêng biệt bằng cách sử dụng nhiều nút khác nhau thực sự xây dựng điều phối. Để biết chi tiết, vui lòng tham khảo ví dụ hiển thị trong sơ đồ trên

Triển khai quy trình

Camunda cung cấp API REST để triển khai và bắt đầu quá trình như sau:

  • Người ta có thể tận dụng API REST để triển khai mô hình quy trình. Tạo tệp quy trình BPMN và lưu nó với tên test.bpmn và khởi động Camunda bằng tomcat hoặc thông qua Docker để có sẵn trên "localhost: 8080"
curl -w "\n" \ -H "Accept: application/json" \ -F "deployment-name=trip" \ -F "enable-duplicate-filtering=true" \ -F "deploy-changed-only=true" \ -F "test.bpmn=@trip.bpmn" \ "//localhost:8080/engine-rest/deployment/create"
  • Bây giờ với quy trình API ở trên, nó sẽ triển khai để bắt đầu quy trình tương tự, hãy tham khảo ví dụ REST bên dưới.
curl \ -H "Content-Type: application/json" \ -X POST \ -d '{"variables":{"someData" : {"value" : "someValue", "type": "String"}},"businessKey" : "12345"}}' \ "//localhost:8080/engine-rest/process-definition/key/testfirstworkflow/start

Thư viện khách hàng

Gọi API REST thật dễ dàng từ bất kỳ ngôn ngữ nào. Trong JavaScript chỉ cần sử dụng JQuery và trong C #, bạn có thể sử dụng System.Net.Http và Newtonsoft.Json để làm như vậy. Chúng tôi có thể ẩn các chi tiết REST đằng sau một số thư viện khách hàng.

Tìm bên dưới tham khảo các thư viện khách hàng có sẵn trong Camunda:

Cả hai sáng kiến ​​đều ở trạng thái trung gian và không hoạt động nhưng có thể coi là một điểm khởi đầu tốt.

Ví dụ với C #

var camunda = new CamundaEngineClient["//localhost:8080/engine-rest/engine/default/", null, null]; // Deploy the BPMN XML file from the resources camunda.RepositoryService.Deploy["trip-booking", new List { FileParameter.FromManifestResource[Assembly.GetExecutingAssembly[], "FlowingTripBookingSaga.Models.FlowingTripBookingSaga.bpmn"] }]; Example with Node.js var Workers = require['camunda-worker-node']; var workers = Workers['//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 } }]; }];


Chạy Camunda trên Tomcat

Để thiết lập Tomcat và cài đặt Camunda vào nó, hãy làm theo mô tả cài đặt. Điều này cho phép bạn tự do sử dụng bất kỳ phiên bản Tomcat nào bạn thích hoặc ví dụ như cài đặt nó như một dịch vụ Windows.

Hình ảnh Docker tùy chỉnh với “Camunda độc lập WAR”

Để thay thế cho hình ảnh Docker được tạo sẵn từ Camunda, chúng tôi cũng có thể chuẩn bị cho Tomcat các yêu cầu bổ sung mở rộng và có khả năng thiết lập môi trường xây dựng Java, thậm chí có thể tùy chỉnh cuộc chiến độc lập này của Camunda.

Cách dễ nhất để chạy Camunda là sử dụng Docker.

Dockerfiles và một số tài liệu [ví dụ: cách kết nối tài liệu đó với lựa chọn cơ sở dữ liệu] có sẵn trên Github:

  • Người ta cũng có thể xây dựng hình ảnh docker dựa trên bản phân phối Tomcat thích hợp.

Video liên quan

Chủ Đề