Chỉ có một lợi ích thực sự, nhưng nó rất lớn:
Tách biệt mối quan tâm .
Vì vậy, thay vì logic xử lý phối hợp được nhúng trong hệ thống của chúng tôi, nó trở thành và cấu hình bên ngoài. Một bản đồ, về cơ bản. Bạn có thể thay đổi nó một cách độc lập (nhiều hơn nữa), bạn có thể có nhiều quy trình, nhiều phiên bản quy trình, nhiều phiên bản của nhiều quy trình đang chạy cùng một lúc và tất cả đều vượt trội trong bất kỳ giải pháp hợp lý nào.
Trong lịch sử, khái niệm về SoC đã chiến thắng nhiều lần - bắt đầu từ nguyên tắc Unix "làm một việc, nhưng làm tốt" và được áp dụng nhiều lần - như có các thành phần máy chủ chuyên dụng như ESB, các hệ thống bền bỉ khác nhau, bộ nhớ đệm, cân bằng tải , giám sát, như tách CSS khỏi HTML, v.v.
Quy trình kinh doanh của bạn và quy tắc luồng của nó thường trực giao với dữ liệu của bạn, "màn hình" UI hoặc "phân cấp" của người dùng. Vì vậy, nó có ý nghĩa hoàn hảo để phát triển và thay đổi nó tách biệt với các khía cạnh khác của hệ thống. Đó là tiền đề mà BPM đã xuất hiện vào đầu những năm 1990.
Kể từ đó, nhiều công cụ và ngôn ngữ đã được tạo ra để hỗ trợ khái niệm này, trong đó nổi tiếng nhất là BPMN - một ngôn ngữ đồ họa để tạo ra "sơ đồ" trực tiếp ánh xạ tới các quy trình. Trong khi mọi người phàn nàn rằng nó lớn và khó sử dụng (có hơn 100 ký hiệu trong từ vựng) và ủng hộ các phương pháp hiện đại như S-BPM (chỉ có 5 ký hiệu cơ bản), thì thực tế công nghiệp hiện nay là bám vào BPMN hoặc các dẫn xuất, tập con hoặc anh chị em của nó.
Bạn không hài lòng với BPMN:
Các lập trình viên ở đây dường như đang thực hiện một khối lượng công việc đáng kể trong lớp đường và hộp, mà đối với tôi trông giống như một ngôn ngữ lập trình trực quan thực sự cơ bản, nhảm nhí.
Nhưng nó không tệ) Có lý thuyết đằng sau nó. Và phiên bản 2.0 đã có một cái nhìn sâu sắc tốt từ những thiếu sót 1.0.
Nếu bạn sẽ đi xa như vậy, tại sao không sử dụng một số loại ngôn ngữ kịch bản?
Mô hình bắt buộc và ngôn ngữ kịch bản không phải lúc nào cũng là câu trả lời tốt nhất. Như bạn có thể thấy trong các ngôn ngữ khai báo (như HTML, CSS, SQL, Dropols hoặc nội bộ của Nginx, Graddle và Maven, Puppet, v.v.), mã kết quả có thể nhỏ hơn và gọn gàng hơn so với phiên bản được viết bằng " ngôn ngữ đàng hoàng " , như Java hoặc C ++ ".
Về điểm khác của bạn:
theo như tôi có thể nói, là các ngôn ngữ lập trình trực quan tại thời điểm này, hoàn chỉnh với các điều kiện và vòng lặp.
Bạn đã nhìn vào Sự kiện và Kích hoạt chưa? BPMN là một ngôn ngữ và bạn phải học nó trước khi sử dụng, hoặc ít nhất là làm quen với nó.
Trong phần mềm, BPMN là XML, do đó bạn có thể chỉnh sửa bằng tay hoặc tạo. Và bạn có thể kiểm soát phiên bản vì XML dựa trên văn bản. Tuy nhiên, chỉ cần có một XML có thể được dịch thành sơ đồ, nghe có vẻ không giúp ích gì cho bạn, và điều đó đúng - viết trình phân tích cú pháp hoặc trình soạn thảo của riêng bạn cho nó là một nhiệm vụ khó khăn và tốn kém với những lợi ích đáng ngờ.
May mắn thay, đã có các công cụ tại thị trường mà exaclty đó.
Activiti là miễn phí, và khá phổ biến đối với cả nhà phát triển và chủ sở hữu busines, vì giá ban đầu ( không ), tính sẵn có của thông tin và sự khiêm tốn. Điểm cuối cùng thực sự độc đáo, vì Activi chỉ tập trung vào việc quản lý các quy trình kinh doanh của bạn, mà không cố gắng ràng buộc bạn với các giải pháp trọn gói. Ngoài ra, nó mở - vì vậy bạn chỉ cần biết Java và REST để khởi động và chạy. Hạn chế là phía khách hàng, logic tích hợp và ứng dụng / doanh nghiệp và toàn bộ kiến trúc được dành cho nhà phát triển, vì vậy nếu nhóm phát triển của bạn yếu - hãy chuẩn bị cho thất bại. Tổng chi phí sở hữu có thể cao đáng ngạc nhiên đối với một công cụ miễn phí ;)
Ở phía bên kia của quang phổ là Pega (Pega PRPC), vị vua trị vì của các hệ thống BPM (theo Gartner và Forester), có vẻ tốt đáng ngạc nhiên đối với tuổi của nó. Ứng dụng này có khả năng CRM, OCR và (nếu tôi không nhầm) khả năng nhận dạng giọng nói, phân tích dự đoán, quản lý quy tắc kinh doanh và trình soạn thảo UI WYSIWYG. Nó đi kèm với một thẻ giá nghiêm trọng, mặc dù. Không chỉ tốn kém, mà tất cả sự phát triển đang được thực hiện trong một ứng dụng web, điều đó có nghĩa là bạn phải sử dụng trình duyệt, đó là IE8 (cộng với một số plugin, cộng với các bản hack xấu xí, như sử dụng Excel để chỉnh sửa bảng dữ liệu). Ngoài ra, chỉnh sửa Java, Javascript hoặc HTML / CSS cũng đang được thực hiện với trình duyệt web - vì vậy hãy nói lời tạm biệt với các bài kiểm tra đơn vị, tô sáng mã IDE, tái cấu trúc và tất cả các đồ chơi lập trình của bạn mà bạn yêu thích.
Mặt tốt của nó? bạn có thể triển khai hệ thống phức tạp TRONG VÒNG TUẦN [ PDF , xem trang 22]. Và có, kết quả không được đảm bảo.
IBM gần đây (theo tốc độ thời gian của doanh nghiệp) đã mua lại Lombardi và hiện đang cung cấp giải pháp rất cạnh tranh (nhưng sau đó bạn sẽ phải mua mọi thứ ibm , bạn biết). Appian là nhà cung cấp trẻ, những người có những hiểu biết thú vị và phản hồi tích cực, nhưng cách họ viết (hai ngôn ngữ DSL bổ sung ngoài hình ảnh trực quan) chỉ không hấp dẫn tôi.
Có những người chơi khác, và giải pháp của họ. Hầu hết trong số họ là đồng bằng kinh khủng. Giống như - mắt, não và trái tim của bạn sẽ chảy máu theo nghĩa đen, khi bạn chỉ cần nhìn vào chúng. Vì vậy, hãy tin vào lòng can đảm của bạn và đừng khiến nhà phát triển và người dùng ghét bạn.
Lưu ý kết thúc:
Hệ thống BPM tương tự cho các quy trình, Photoshop là gì cho hình ảnh. Đừng sợ rằng nó trực quan. Đừng bắt nó làm công việc không phù hợp với nó (hãy nhớ các trang web được tạo hoàn toàn bằng Photoshop, bên cạnh không thể chỉnh sửa?). Giữ cho nó đơn giản và không tạo ra lỗi;)