2011-02-02 19 views
23

Khách hàng của tôi đang tìm kiếm giải pháp Quản lý quy trình nghiệp vụ (BPM). Những gì họ cần là định tuyến tài liệu đơn giản và hệ thống phê duyệt. Trình điều khiển để triển khai hệ thống BPM là gì? Ngưỡng mà nhà phát triển nên đề xuất triển khai giải pháp BPM so với công cụ quy trình làm việc hoặc phát triển tùy chỉnh là gì?Làm cách nào để biết khi nào bạn cần giải pháp BPM?

Khi nào jBPM phù hợp? Khi nào một máy trạng thái được tích hợp vào một ứng dụng phù hợp? Vấn đề gì tồn tại mà xác định rằng bạn cần phải đi với một giải pháp tương tự như jBPM?

Tôi đang tìm một số ví dụ thế giới thực "chúng tôi đã cố gắng để xây dựng các giải pháp chính mình, nhưng cuối cùng lại đi với AquaLogic/jBPM/Lombardi vì _". Vui lòng điền vào chỗ trống.

+3

Tôi đề xuất bạn viết "BPM". – CesarGon

+0

Cảm ơn bạn đã đề xuất. Làm xong! – Sixty4Bit

+0

Bạn có thể cung cấp ví dụ về "giải pháp BPM" và "Công cụ quy trình làm việc" không? Ví dụ: jBPM có phù hợp với một trong các danh mục sau không: http://www.jboss.org/jbpm – orangepips

Trả lời

20

Tôi đã viết một công cụ luồng công việc, vì chủ lao động của tôi muốn sở hữu IP, được mô hình hóa sau jBPM. Bây giờ lý do bạn sử dụng một công cụ như vậy, thay vì tạo ra máy trạng thái hữu hạn của riêng bạn, có khả năng thay đổi mà không thay đổi sự kiên trì và hỗ trợ các trường hợp cạnh của quy trình dòng công việc như tôi sẽ giải thích.

Điều tiết thay đổi mà không thay đổi Persistence

điển hình của bạn, hoặc có lẽ tốt hơn để gọi nó là "ngây thơ", hữu hạn máy nhà nước thực hiện có tập hợp các bảng cơ sở dữ liệu chặt chẽ cùng với các dữ liệu được quản lý và xử lý nó chảy qua. Có thể có một cách để giữ các phiên bản trước đây và theo dõi ai đã thực hiện hành động nào trong quá trình này. Trường hợp này chạy vào các vấn đề thay đổi dữ liệu và cấu trúc quy trình. Sau đó, những bảng chặt chẽ này cần phải được thay đổi để phản ánh cấu trúc mới và có thể không tương thích ngược với cũ.

Công cụ luồng công việc vượt qua thử thách này theo hai cách, bằng cách sử dụng tuần tự hóa để biểu diễn dữ liệu và quy trình, và tóm tắt các điểm tích hợp, đặc biệt là bảo mật. Các khía cạnh serialization có nghĩa là dữ liệu và quá trình có thể di chuyển cùng nhau thông qua hệ thống. Điều này cho phép các cá thể dữ liệu cùng loại để thực hiện theo các quy trình hoàn toàn khác nhau đến mức mà quy trình có thể thay đổi khi chạy, bằng cách thêm một trạng thái mới chẳng hạn. Và không ai trong số này đòi hỏi phải thay đổi lưu trữ cơ bản.

Điểm tích hợp là phương tiện đưa các thuật toán vào quá trình và liên kết với các cửa hàng xác thực (tức là người dùng phải thực hiện hành động). Các thuật toán được tiêm có thể bao gồm việc xác định xem trạng thái có hoàn thành hay không, trong khi ví dụ lưu trữ xác thực là LDAP.

Giờ việc cân bằng là tìm kiếm khó. Ví dụ, vì dữ liệu được tuần tự hóa, thường không thể truy vấn thông tin lịch sử - ngoài việc truy xuất các bản ghi, deserialize và phân tích bằng mã.

Các trường hợp Cạnh

Khía cạnh khác của một công cụ workflow là kinh nghiệm nhúng vào thiết kế và chức năng mà bạn có thể sẽ không xem xét cán của riêng bạn và có thể sống để hối tiếc khi bạn cần nó của nó. Hai trường hợp đến với tâm trí của tôi là các tác vụ theo thời gian và các đường dẫn thực thi song song.

Nhiệm vụ đã định thời gian được gán trách nhiệm diễn viên cho dữ liệu sau một khoảng thời gian nhất định đã trôi qua. Ví dụ, nói một thông cáo báo chí là viết và gửi đi phê duyệt, và sau đó ngồi trong một tuần mà không xem xét. Những gì bạn có thể muốn hệ thống của bạn làm là xác định rằng tài liệu kéo dài và thu hút sự chú ý của các bên thích hợp.

Đường dẫn thực thi song song không phổ biến trong trải nghiệm của tôi (Hệ thống quản lý nội dung), nhưng vẫn là một tình huống phát sinh thường xuyên. Đó là ý tưởng cho rằng một phần dữ liệu nhất định được gửi xuống hai đường dẫn xem xét hoặc xử lý khác nhau, chỉ để được kết hợp lại ở một số điểm sau này. Loại vấn đề này yêu cầu phải có thuật toán hợp nhất hữu ích và khả năng biểu diễn dữ liệu nhân cùng một lúc. Dệt nó vào một giải pháp gia đình sau khi thực tế là phức tạp hơn nhiều so với nó có vẻ, đặc biệt là nếu bạn muốn theo dõi các dữ liệu lịch sử.

Kết luận

Nếu hệ thống của bạn không có khả năng thay đổi, cán riêng của bạn có thể là một giải pháp dễ dàng hơn, đặc biệt là nếu thay đổi có thể phá vỡ thông tin cũ. Nhưng nếu bạn nghi ngờ bạn có nhu cầu về loại độ bền đó hoặc sẽ gặp phải một số trường hợp không phổ biến nhưng gai góc, công cụ luồng công việc cung cấp tính linh hoạt và bảo hiểm cao hơn nhiều. thay đổi.

4

Có thể hỏi một số câu hỏi có thể hữu ích.

Quy trình có thay đổi không? Phiên bản cũ của quy trình có tồn tại trong khi phiên bản mới hơn của quá trình này có hiệu lực không? Có nên đo thời gian chạy của các quy trình (và mỗi bước) không?

Có phải về quy trình nghiệp vụ (phối hợp trạng thái của nhiều tài nguyên) hay vòng đời tài nguyên (chỉ trạng thái của một tài liệu/tài nguyên)? ...

Xin lỗi nếu nó không có nhiều câu trả lời.

+0

Có upvote của tôi cho những câu hỏi phân tích yêu cầu tuyệt vời và rất quan trọng. Vui lòng thêm nhiều hơn khi bạn nghĩ về chúng. –

25

Kiểm tra axit BPM (từ mô hình quy trình nghiệp vụ thiết yếu của Michael Havey, do O'Reilly xuất bản).

... BPM thích hợp chỉ dành cho các ứng dụng với một ý nghĩa quan trọng của nhà nước hay quá trình - đó là, ứng dụng mà là quá trình theo định hướng. Một ứng dụng vượt qua kiểm tra axit BPM nếu nó là quy trình hợp pháp theo định hướng. Việc áp dụng cơ quan du lịch, cho dụ, vượt qua bài kiểm tra vì nó là hiểu tốt nhất về tình trạng hành trình và được định nghĩa ở tất cả lần cách xa hành trình đã nhận. đặc điểm điển hình khác của một quá trình theo định hướng ứng dụng bao gồm:

  • dài chạy -

Từ đầu đến cuối, quá trình kéo dài giờ, ngày, tuần, tháng, hoặc hơn.

  • vẫn kiên trì trạng thái -

Bởi vì quá trình này là tồn tại lâu dài, tiểu bang của nó được tồn đến một cơ sở dữ liệu để rằng nó outlasts máy chủ lưu trữ nó

  • nặng, ngủ nhất thời gian -

Quá trình dành phần lớn thời gian của mình đang ngủ, đợi sự kiện kích hoạt tiếp theo xảy ra, tại đó điểm sẽ thức dậy và thực hiện một loạt hoạt động của .

  • Orchestration của hệ thống hoặc thông tin liên lạc của con người -

Quá trình này có nhiệm vụ quản lý và điều phối các truyền thông của hệ thống khác nhau hoặc diễn viên của con người.

... Ví dụ, trong một tự động máy rút tiền, cho phép người dùng truy vấn số dư tài khoản của họ, rút ​​tiền mặt, kiểm tra tiền gửi và tiền mặt, thanh toán hóa đơn và - bất kỳ ý nghĩa của quá trình là thoáng qua và không trọng yếu; máy ATM là bộ xử lý giao dịch trực tuyến , không phải là ứng dụng hướng quy trình.

+0

Cảm ơn bạn đã mô tả về BPM, nhưng khi nào bạn quyết định đầu tư thời gian và công sức để sử dụng BPM? Tôi có thể làm tất cả những gì bạn đang nói về với một máy trạng thái đơn giản và một API dịch vụ web tốt. Tại điểm nào điều đó trở thành "không đủ"? – Sixty4Bit

+3

Tôi từng có một hợp đồng mà tôi đã dành phần lớn thời gian của mình để thuyết phục chủ nhân của tôi không làm những gì họ đang trả tiền cho tôi. Đó là một dự án SOA/BPEL vinh quang, nơi tất cả các công cụ ưa thích được sử dụng để gỡ bỏ lịch trình FTP. Chỉ bây giờ, BPEL được cho là sẽ lên lịch các công việc FTP. Nó thật điên rồ. –

+2

Trước khi suy nghĩ này tự nhiên xảy ra với bạn, đây không phải là thời điểm tốt để giới thiệu BPM. –

1

Cuối cùng, tất cả các hệ thống kinh doanh xử lý thông tin liên quan đến doanh nghiệp là BPM hoặc hệ thống quy trình làm việc. Việc xử lý thông tin của bất kỳ doanh nghiệp nào cũng có thể được mô tả dưới dạng quy trình công việc hoặc "quy trình nghiệp vụ", liên quan đến vai trò và hoạt động.

Thực tế là các hoạt động kinh doanh này thường được mô tả bằng Java, C# hoặc các ngôn ngữ lập trình khác về cơ bản chỉ là kết quả của tự động hóa mà không có công nghệ đủ trưởng thành để kê toa và mô tả quy trình nghiệp vụ với đại lý tự động.

Sự nhấn mạnh là tăng trưởng, thời gian ra thị trường, v.v. và tin học hóa được thực hiện mà không cần suy nghĩ đúng đắn về bảo trì và linh hoạt lâu dài. 99% của những gì trong mã bây giờ không nên.

Ngược lại, các hệ thống điều khiển thời gian thực, trò chơi điện tử, tính toán hiệu năng cao, dự báo, phân tích toán học và toán học là những ví dụ về các vấn đề không tự mô tả. Đây là những thứ nên được thực hiện bởi máy tính và được duy trì bởi các chuyên gia máy tính.

Quy trình kinh doanh phải được quy định, mô tả và có thể đọc được bởi các chuyên gia hoạt động kinh doanh. Những lợi ích linh hoạt sẽ ngày càng được công nhận là công nghệ cho phép hệ thống công việc này trở nên tốt hơn và được chấp nhận rộng rãi hơn khi nền kinh tế thế giới nhấn mạnh "tăng trưởng".

3

Tôi sẽ xem xét kỹ hơn nhu cầu kinh doanh thúc đẩy nỗ lực của bạn (ví dụ: "trường hợp doanh nghiệp"). Theo hiểu biết của tôi BPM/quy trình làm việc có thể có một hoặc nhiều mục sau đây mục tiêu:

1.Tự động hóa các hoạt động

này thường được yêu cầu để thay thế con người với máy thông qua tự động hóa các nhiệm vụ, chẳng hạn như tạo tài liệu, lưu trữ thông tin, thông báo cho người sử dụng, vv

2. Theo dõi tiến trình của mỗi

Các công ty cần phải thiết lập theo dõi khi có một số lượng đáng kể các quy trình và người dùng doanh nghiệp mất dấu vết của họ như thường chạy chúng trong tài liệu văn phòng, email. Mọi yêu cầu bên ngoài cho trạng thái (ví dụ: từ một khách hàng) đều trở thành một cuộc điều tra.

3. Thiết lập kiểm soát

Đối với các nhà quản lý nó thường là quan trọng để có được cái nhìn cấp cao của quá trình này và nghiên cứu nó về mặt thống kê: xem KPIs được giữ ở, bất kỳ độ trễ, trường hợp ngoại lệ, vv

4. Quản lý trong quá trình trao đổi tài liệu và hợp tác

BPMS thường đóng vai trò như một công cụ trao đổi tài liệu, như họ thường cho phép chuyển đổi từ email và giao tiếp bằng lời nói để trao đổi theo dõi trong một BPM

5. Tự động trao đổi dữ liệu giữa các hệ thống doanh nghiệp

Đây là trường hợp tích hợp tinh khiết và thường được yêu cầu trong trường hợp khi một số hành động đã được thực hiện với (hoặc bằng) hệ thống khác nhau, và có cần phải tự động trao đổi thông tin giữa chúng.


Bây giờ, đầy đủ tính năng BPMS sẵn sàng để sử dụng là tốt cho 2, 3 và đôi khi 4. jBPM và động cơ công việc khác là tốt cho 1 và 3, nhưng với một caveat quan trọng - họ yêu cầu cấu hình phức tạp /phát triển.

Động cơ phối hợp quy trình dựa trên SOA (đôi khi được gọi là BPM!) Là tốt cho (5) và (3).

Vui lòng thêm vào danh sách và tranh luận! Tôi đã đăng bài đăng này làm bài đăng trên blog của mình và được xây dựng thêm một chút ở đây: http://processmate.net/do-you-need-a-bpm-or-a-workflow/

Các vấn đề liên quan