intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:11

143
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

Nội dung Text: 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

  1. 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).
  2. 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.
  3. 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ó
  4. 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ụ.
  5. 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ụ
  6. 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ọ.
  7. 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ụ.
  8. 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.
  9. 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ử
  10. 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
  11. 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.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2