Mô hình lập trình SOA để triển khai thực hiện các dịch vụ Web, Phần 8: Các dịch vụ Web dựa vào con người - Pdf 20

Mô hình lập trình SOA để triển khai thực hiện các dịch vụ Web, Phần 8: Các
dịch vụ Web dựa vào con người
Matthias Kloppmann, Kỹ thuật viên cao cấp, IBM
Stefan Liesche, Kiến trúc WebSphere Portal, IBM Development Laboratory
Gerhard Pfau, Kiến trúc sư trưởng, IBM
Marcia Stockton, Kỹ thuật viên cao cấp, IBM
Tóm tắt: Sự tham gia của con người vào trong cấu thành dịch vụ là một khía
cạnh tương đối mới của kiến trúc hướng dịch vụ (Service-Oriented Architecture -
SOA), nó mở rộng các cách thức mà phần mềm có thể mô hình hóa cách con
người làm việc và tương tác trong một công việc kinh doanh như thế nào. Bài viết
này mô tả các chức năng được cung cấp bởi Trình quản lý nhiệm vụ của con người
(Human Task Manager) của IBM WebSphere® Process Server (Máy chủ qui trình
WebSphere của IBM) và việc sử dụng chúng trong một cổng web (portal).
Các giao diện người dùng cho SOA
Tự động hóa toàn bộ các quy trình nghiệp vụ là ước muốn, nhưng trong thực tế lại
không thể thực hiện được, do có một số hoạt động nhất định yêu cầu óc phán đoán
hoặc tri thức chuyên gia của con người ví dụ như việc xử lý bằng tay các tình
huống đặc biệt hoặc chấp thuận các yêu cầu luôn luôn được con người thực
hiện. Trong bối cảnh qui trình nghiệp vụ tổng thể, một nhiệm vụ của con người là
một dịch vụ giống như bất kỳ nhiệm vụ nào khác, chỉ trừ việc nhiệm vụ được thực
hiện bằng một hoạt động của con người (thay vì một chương trình) và bởi một
người (thay vì một máy tính).
Vì vậy, trong mô hình lập trình SOA, các hành động của con người có thể được
thể hiện như là các dịch vụ web. Khi được gọi, các dịch vụ thông báo cho một
người về một nhiệm vụ phải thực hiện và chuyển các dữ liệu đầu vào sang một
dạng thích hợp. Sau khi nhiệm vụ được hoàn thành và có một kết quả, dịch vụ đó
trả về cho bên gọi nó, chuyển kết quả đến đó như là dữ liệu đầu ra. Sự kiện kết quả
có liên quan đến công việc do con người làm có thể hoàn toàn trong suốt với bên
gọi. Kịch bản này sử dụng cách triệu gọi không đồng bộ để hỗ trợ các dịch vụ diễn
ra trong thời gian dài; một lời gọi thủ tục từ xa (remote procedure call-RPC) theo
chế độ đồng bộ là không phù hợp đối với nhiệm vụ do con người thực hiện (hay

dịch vụ web, bởi vì quy tắc áp dụng khi chọn người chấp thuận thứ hai nhất thiết
phải loại trừ người chấp thuận đầu tiên.
Phần mở rộng BPEL4People của Ngôn ngữ thực thi quy trình nghiệp vụ (Business
Process Execution Language) dành cho các dịch vụ web cung cấp các mở rộng cần
thiết để mở rộng các quy trình nghiệp vụ, có nhúng các nhiệm vụ do con người
làm. Nó cũng đề cập đến các kịch bản ở đó các nhiệm vụ của con người được biểu
hiện như là các dịch vụ web độc lập không trong suốt để có thể được gọi, chẳng
hạn từ một quá trình BPEL hay một chương trình được viết bằng Java™.
Phần dưới đây mô tả mô hình lập trình cho các nhiệm vụ của con người. Các nhiệm vụ của con người
Một kiểu thành phần nhiệm vụ của con người triển khai thực hiện một nhiệm vụ
do con người làm, để đưa con người tham gia vào cả trong các quy trình nghiệp vụ
lẫn trong các chuỗi dàn dựng dịch vụ bất kỳ. Các nhiệm vụ của con người chạy
trong trình quản lý nhiệm vụ của con người (Human Task Manager), một thùng
chứa đặc biệt dành cho các nhiệm vụ của con người trong WebSphere Process
Server (Máy chủ quá trình WebSphere).
Để hỗ trợ kịch bản sử dụng này, một nhiệm vụ của con người có một giao diện
đơn giản với chính xác chỉ một hoạt động. Hoạt động này có một thông báo đầu
vào, một thông báo đầu ra và không hay vài thông báo lỗi. Hình 1 cho thấy giao
diện của nhiệm vụ chấp thuận như là một ví dụ.

Hình 1. Giao diện của một nhiệm vụ chấp thuận

Tên hiển thị, lời mô tả và tài liệu hướng dẫn của nhiệm vụ cũng có thể được xác
định như là các thuộc tính. Tên hiển thị (display name) là tên nhiệm vụ dễ đọc với
con người, các doanh nhân có thể hiểu được; nó đại diện cho nhiệm vụ này trong
một danh sách nhiệm vụ. Ví dụ, một nhiệm vụ chấp thuận có thể có tên là Credit
Approval. Lời mô tả (description) tóm tắt ngắn gọn nhiệm vụ để làm gì và phải

ràng buộc về thời gian. Nếu một nhiệm vụ của con người tiến triển quá chậm
không đáp ứng được các SLA, Trình quản lý nhiệm vụ của con người (Human
Task Manager) có khả năng gửi các thông báo leo thang từng bước (escalation).
Mỗi nhiệm vụ có thể có các giá trị thiết lập riêng dành cho thông báo leo thang
từng bước. Hình 3 minh họa các giá trị thiết lập dành cho thông báo leo thang từng
bước của một nhiệm vụ chấp thuận.

Hình 3. Các giá trị thiết lập thông báo leo thang từng bước của một nhiệm vụ
chấp thuận

Quá trình leo thang từng bước, tương tự như các đồng hồ đếm thời gian, có thể
được định nghĩa cho các trạng thái nhiệm vụ khác nhau. Việc leo thang, bắt đầu
khi nhiệm vụ đạt đến một trạng thái đã cho, không làm bất cứ điều gì cho đến khi
một khoảng thời gian định trước trôi qua. Nếu nhiệm vụ đó đã tiến triển như mong
đợi, việc leo thang này bị hủy bỏ, coi như thừa. Nếu nhiệm vụ không tiến triển,
quá trình leo thang kích hoạt một hành động đã định trước và ví dụ, gửi một e-mail
cho một hoặc nhiều người nhận thông báo leo thang đã định trước.
Trong ví dụ ở Hình 3, một quá trình leo thang được lên lịch biểu khi nhiệm vụ trở
nên sẵn sàng; đó là, sau khi nó khởi đầu. Sau một đoạn thời gian nhất định, nếu
không có người chủ tiềm năng nào tuyên bố nhận nhiệm vụ đó thì quá trình leo
thang sẽ được kích hoạt và thông báo cho những người chủ có tiềm năng bằng e-
mail rằng công việc đó chờ đợi họ.
Sau khi một chủ sở hữu tuyên bố nhận nhiệm vụ chấp thuận này, một chuỗi các
quá trình leo thang sẽ chuyển sang trạng thái hoạt động. Nếu một nhiệm vụ đã
được tuyên bố nhận làm không thể được hoàn thành đúng lúc, chuỗi quá trình leo
thang gửi các thông báo lên chuỗi quản lý. Điều này cho phép quản trị viên nghiệp
vụ có cơ hội để phân công lại nhiệm vụ này cho người khác.
Các nhiệm vụ của con người được trình bày trên danh sách công việc cá nhân của
người dùng. Một người sử dụng sẽ chỉ nhìn thấy nhiệm vụ mà anh ta hay chị ta có
nhiệm vụ xem xét, như các thiết lập nhân lực cho nhiệm vụ đã chỉ rõ (đã nói qua ở

và trả kết quả cho nhiệm vụ của con người.
Những người dùng có thể khởi chạy nhiều trang nhiệm vụ dành cho các nhiệm vụ
khác nhau, cùng một kiểu hoặc nhiều kiểu khác nhau. Khi một người dùng hoàn
thành một nhiệm vụ, trang nhiệm vụ đóng lại và tự động biến mất khỏi phần dẫn
hướng của người sử dụng. Người dùng có thể đóng và khởi chạy lại các trang
nhiệm vụ khi cần thiết. Tất cả các trang nhiệm vụ sẽ đóng lại khi kết thúc phiên
làm việc của người dùng.
Những người dùng đang thực hiện một nhiệm vụ cũng có thể khai thác một mảng
các khả năng cộng tác do cổng web cung cấp, ví dụ như gửi thông báo tức thời,
các khái lược người sử dụng và v.v. Ví dụ, để tạo điều kiện hợp tác, Trình quản lý
nhiệm vụ của con người có thể liệt kê các đồng nghiệp khác đang thực hiện các
nhiệm vụ có liên quan. Một UI minh họa các khả năng này được hiển thị trong
Hình 6.

Hình 6. Trang web nhiệm vụ

Các trang nhiệm vụ thường được lấp đầy bằng một số loại portlet. Các portlet xử
lý nhiệm vụ kết nối người sử dụng với nhiệm vụ; chúng lấy ra các thông báo đầu
vào của nhiệm vụ để hiển thị cho người dùng xem và chuyển phát các dữ liệu do
người sử dụng nhập vào như là các thông báo đầu ra của nhiệm vụ. Các portlet xử
lý nhiệm vụ (xem Hình 7) có thể được tạo ra tự động từ các đặc tả kỹ thuật của
giao diện nhiệm vụ (hãy nhớ lại chẳng hạn ví dụ giao diện trong Hình 1).

Hình 7. Trình thủ thuật phát triển Portlet quá trình

Việc hỗ trợ các portlet giúp cho người dùng thu thập các thông tin cần thiết để
hoàn thành một nhiệm vụ. Các portlet thường không tương tác trực tiếp với các
nhiệm vụ, mà sử dụng các khả năng portlet hợp tác để, ví dụ, tương tác với các
portlet xử lý nhiệm vụ trên trang nhiệm vụ.


hơn chưa được trình bày trong bài viết này.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status