Tải bản đầy đủ (.pdf) (11 trang)

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 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (353.23 KB, 11 trang )

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


bất kỳ dịch vụ diễn ra trong thời gian dài nào khác).
Việc biểu hiện một nhiệm vụ của con người như là một dịch vụ web có thêm lợi
thế ở chỗ là sự tự động hóa hoặc tổ hợp các bước tự động hóa và các bước do con
người làm, có thể được thay thế cho việc triển khai thực hiện của con người mà
không phải viết lại mã của phần còn lại của qui trình nghiệp vụ. Đây không phải là
đề xuất thay thế những con người lao động bằng phần mềm hoặc đề xuất rằng các
máy tính trong tương lai sẽ ra lệnh cho con người như kẻ nô lệ! Thay vào đó, việc
mô hình hóa một hoạt động do con người triển khai thực hiện như một dịch vụ
web là một sự lựa chọn thiết kế hợp lý, bởi vì giải pháp thay thế nó – đó là thực
hiện một số bước trong dàn dựng qui trình nghiệp vụ và chỉ đơn giản dừng lại bất
cứ khi nào cần đến tri thức chuyên gia của con người, sau đó khởi động lại màn
dàn dựng ở bước tiếp sau đó, mà không có bất kỳ sự kết nối logic nào giữa hai
chuỗi tách rời nhau ấy – rõ ràng có nhiều nhược điểm.
Ví dụ, hãy xem xét một quá trình xử lý các đơn đòi hỏi tiền bảo hiểm. Đâu đó
trong quá trình này, đơn đòi hỏi tiền bảo hiểm phải được chấp thuận trước khi trả
tiền đền bù cho người yêu cầu. Dưới dạng thô sơ ban đầu, một người nhận được
thông tin đòi đền bù và quyết định xem sẽ chấp thuận đơn đòi hỏi đền bù, từ chối
nó, hay gọi một người điều chỉnh lại các tính toán tổn thất. Không thay đổi dòng
chảy của qui trình nghiệp vụ tổng thể, bước này có thể được thay thế bởi một dịch
vụ trong đó các quy tắc nghiệp vụ tự động hóa thủ tục chấp thuận đúng thông lệ
trong khi vẫn để dành lại những quyết định khó khăn hơn cho con người. Các
chuyên gia con người, bây giờ được giảm bớt các công việc văn phòng thường
nhật, sẽ rỗi rãi hơn để tập trung vào các kỹ năng duy nhất của họ xử lý các trường
hợp phức tạp. Sự thay đổi này đã cải thiện cả kết quả kinh doanh lẫn gia tăng sự
hài lòng với công việc của các nhân viên.
Sự bao gói lại theo một cách trong suốt một nhiệm vụ con người như là một dịch
vụ web không phải lúc nào cũng nên làm. Hãy xem xét quá trình phức tạp mà ở đó
hai người khác nhau cần phải chấp thuận một yêu cầu (được gọi là nguyên tắc bốn
mắt hay sự phân chia các trách nhiệm). Các nhiệm vụ như vậy cần phải biểu diễn
rõ ràng như là nhiệm vụ của con người, không phải nửa mờ nửa rõ dưới dạng các

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

làm gì với nó - ví dụ, chấp thuận hoặc từ chối một yêu cầu tín dụng. Thuộc tính tài
liệu hướng dẫn (documentation) cung cấp thêm thông tin chi tiết. Mỗi thuộc tính
tên hiển thị, lời mô tả và tài liệu hướng dẫn có thể được biểu hiện theo nhiều
ngôn ngữ để cho phép một lực lượng lao động đa dạng và đa quốc gia.
Các nhiệm vụ cũng có kiểm soát truy nhập, ai là người được phép làm cái gì. Từ
quan điểm kinh doanh, điều quan trọng nhất là chỉ đúng người có quyền mới có
thể quyết định chấp thuận. Ví dụ, trong một công ty ở đây tất cả những người có
quyền chấp thuận thuộc nhóm những người chấp thuận (approvers) trong danh bạ
nhân lực của công ty, thì định nghĩa nhân lực là những chủ nhân tiềm năng của
nhiệm vụ chấp thuận có thể như sau:

Hình 2. Các giá trị thiết lập nhân lực của nhiệm vụ chấp thuận

(Lưu ý: Màn hình này sẽ chỉ được nhìn thấy khi một nhà phát triển hoặc một nhà
phân tích quá trình nghiệp vụ lần đầu tiên định nghĩa một nhiệm vụ của con người,
chứ các cá nhân, những người sau đó sẽ thực hiện các nhiệm vụ này không nhìn
thấy).
Có thể định nghĩa một số vai trò con người đối với một nhiệm vụ. Những người
chủ (owners) tiềm năng là những người có đủ khả năng để thực hiện nhiệm vụ đó.
Một hoặc nhiều quản trị viên (administrators) có trách nhiệm quản lý nhiệm vụ.
Một tập hợp những người khác ngoài người chủ và quản trị viên – có thể có
quyền đọc hoặc chỉnh sửa dữ liệu nhiệm vụ. Cuối cùng, có thể chỉ định rõ những
người được cấp quyền tạo ra các cá thể nhiệm vụ.
Ở chế độ đang chạy, các giá trị thiết lập nhân lực của một nhiệm vụ sẽ được sử
dụng để lấy ra một tập hợp người sử dụng phù hợp từ danh bạ nhân viên của công
ty, ví dụ bằng cách đưa ra một truy vấn Giao thức truy nhập danh bạ gọn nhẹ
(Lightweight Directory Access Protocol - LDAP) hoặc gửi một yêu cầu tới sổ
đăng ký người dùng WebSphere.
Các Thỏa thuận mức dịch vụ (Service Level Agreement - SLA) với các khách
hàng có thể yêu cầu rằng các giai đoạn trong qui trình nghiệp vụ tuân theo một số

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 ở

trên). Trong các ứng dụng lớn có nhiều người sử dụng và nhiều nhiệm vụ đồng
thời, một người sử dụng cần có khả năng sắp xếp danh sách nhiệm vụ của mình
theo các tiêu chí. Danh sách nhiệm vụ có thể được sắp xếp theo tên, theo mức ưu
tiên (chỉ thấy các nhiệm vụ có mức ưu tiên nhất định; hoặc nhìn thấy đầu tiên các
nhiệm vụ có mức ưu tiên cao) và theo mức liên quan về nghiệp vụ. Để tạo điều
kiện phân loại và lọc, doanh nghiệp cũng có thể định nghĩa các kiểu nhiệm vụ và
các thuộc tính tuỳ chỉnh bất kỳ (các cặp tên-giá trị).
Các cổng web (portal) đã được chấp nhận rộng rãi để kết nối mọi người vào các hệ
thống CNTT trong các doanh nghiệp hiện nay. Các nhân viên tương tác với một
giao diện người dùng (UI) của cổng để thực hiện các công việc của họ, cộng tác
với các đồng nghiệp và tương tác với các khách hàng, các đối tác và các nhà cung
cấp. Các nhiệm vụ của con người, được kết hợp với một UI của cổng, cung cấp
một cách hiệu quả để triển khai thực hiện sự tham gia của con người vào quy trình
nghiệp vụ.

Hình 4. Portlet của danh sách nhiệm vụ

Trong môi trường cổng web tích hợp, một người có thể vừa truy cập vào một danh
sách nhiệm vụ (xem Hình 4) và vừa tiếp tục thực hiện các nhiệm vụ. Có một trang
nhiệm vụ do quản trị viên cổng web định nghĩa, kết hợp với từng nhiệm vụ. Người
sử dụng chuyển hướng tới các trang đó chỉ đơn giản bằng cách nhấn chuột trên
nhiệm vụ đó trong danh sách nhiệm vụ.

Hình 5. Các giá trị thiết lập UI của nhiệm vụ trong cổng web

Cổng web khởi chạy các trang nhiệm vụ kèm theo chỉ khi người sử dụng đang
thực hiện (đã tuyên bố nhận) một nhiệm vụ cụ thể bằng cách chuyển đường liên
kết với nhiệm vụ đó tới một portlet. Nó cung cấp một tham chiếu đến trang nhiệm
vụ cho portlet. Đến lượt mình, portlet hiển thị đường liên kết dẫn hướng, sử dụng
tham chiếu này để lấy các thông tin có liên quan đến nhiệm vụ cho người sử dụng

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ụ.



Tóm tắt
Các dịch vụ web dựa vào con người cung cấp khả năng để đưa sự tham gia của
con người dưới dạng một triển khai thực hiện dịch vụ một cách trong suốt vào
trong các ứng dụng hướng dịch vụ bất kỳ. Các nhiệm vụ của con người, như
WebSphere Process Server (Máy chủ qui trình WebSphere) đã đưa ra, cung cấp cơ
sở hạ tầng cho các dịch vụ web dựa vào con người. Chúng dựa vào các chức năng
nhân viên đã biết từ các hệ thống luồng công việc (workflow) cổ điển, với các
chức năng của chúng đã được mở rộng để bao gồm cả các khả năng thông báo và
quá trình leo thang từng bước tinh vi hơn, cũng như khả năng để xác định rõ các
giao diện người dùng dựa trên Cổng web WebSphere (WebSphere Portal) dành
cho các nhiệm vụ của con người. Có thể tìm thấy nhiều thông tin hơn về cách làm
thế nào để sử dụng Cổng web WebSphere, cung cấp các giao diện người dùng cho
các ứng dụng SOA trong Phần 5 của loạt bài này "Các giao diện người dùng
hướng dịch vụ" (developerWorks, 08. 2005).
Khái niệm về các nhiệm vụ của con người đã giành được sự thừa nhận của ngành
công nghiệp và việc tiêu chuẩn hóa nó đang diễn ra. Một tài liệu chung do IBM và
SAP xuất bản (xem Tài nguyên để tìm đường liên kết đến các trang Web) đề xuất
các hướng tương lai cho việc tiêu chuẩn hóa của các nhiệm vụ của con người. Nó
mô tả một mở rộng cho tiêu chuẩn WS-BPEL sắp tới (xem Tài nguyên) bao gồm
các nhiệm vụ của con người để đưa con người tham gia vào các qui trình nghiệp
vụ.
Bài viết này đã tập trung vào các nhiệm vụ con người làm như là một phương tiện
triển khai thực hiện dịch vụ dựa vào con người trong bối cảnh của các qui trình
nghiệp vụ và các ứng dụng hướng dịch vụ. Nhiều kịch bản sử dụng khác, hướng
đến phía khách nhiều hơn, vượt ra ngoài phạm vi của bài viết này, trong đó nhiều
người sử dụng các ứng dụng để tương tác với các dịch vụ được tự động hóa và các
dịch vụ dựa vào con người. Một ví dụ là một danh sách nhiệm vụ được một người
sử dụng để tạo và quản lý các nhiệm vụ được tự động hóa hay dựa vào con người.
Bài viết "Các giao diện người dùng hướng dịch vụ" mô tả chi tiết nhiều kịch bản

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

×