Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Giới thiệu về Amazon Simple Workflow
Các khái niệm chính trong Amazon Simple Workflow
Workflow
Tập hợp các công viêc được thực hiện tuần tự theo từng bước, đầu ra của bước trước là dữ liệu đầu vào để thực hiện bước sau. Mỗi bước cần thực hiện được gọi là một task.
Ví dụ về workflow trong bài toán e-commerce:
Mô tả các steps của công việc xử lý đơn hàng trong ứng dụng e-commerce cơ bản, mỗi step có thể được thực hiện bởi người hoặc máy
Workflow được bắt đầu khi khách hàng đặt hàng (trên web hoặc smart phone). Bao gồm 4 steps
- Xác nhận order
- Nếu order hợp lệ, yêu cầu thành toán
- Nếu đã được thanh toán, ship order
- Nếu order được ship, lưu lại thông tin order
Những task này là một tập hợp tuần tự các bước, bước trước hoàn thành thì mới có thể bắt đầu bước tiếp theo. Các bước có thể được thực hiện bởi con người hoặc máy. Amazon SWF
hỗ trợ việc phân tán, phân chia process thành các step để thực hiện một cách độc lập. Những steps được thực hiện tự đông bằng máy thì có thể được cài đặt bằng những ngôn ngữ, công cụ khác nhau phù hợp với thế mạnh của từng team.
Amazon SWF
Là một dịch vụ của amazon web services, được sử dụng cho việc điều phối kết hợp, lưu trữ trạng thái hoạt động, cầu nối giao tiếp giữa các task trong một workflow. Là công cụ để xây dựng các ứng dụng phân tán.
Ngoài việc quản lý thực hiện tuần tự trong từng workflow, Amazon SWF
cũng hộ trợ việc xử lý đồng thời giữa các process (Thuộc các workflow khác nhau). Các task song song có thể được thực hiện cùng một thời điểm bởi các ứng dụng hoặc con người khác nhau(gọi là worker
) nhằm tăng tốc độ của hệ thống. Amazon SWF
đảm bảo mỗi task chỉ được thực hiện duy nhất bởi 1 worker
. Amazon SWF kết hợp với desiders
thực hiện điều phối luồng xử lý.
Amazon SWF Actors
Trong quá trình vận hành, Amazon SWF
tương tác với các loại actor khác nhau. Actor bao gồm: workflow starters
, deciders
, hoặc activity workers
. Các actor này giao tiếp với Amazon SWF
thông qua API.
Mô hình kiến trúc Amazon SWF
và các actors xung quanh nó
Workflow Starters
Là bất kỳ hành động nào dẫn đến việc khởi tạo luồng hoạt động workflow. Như trong ví dụ nêu ở đầu bài workflow starters
có thể là website nơi mà khách hàng đặt hàng. Cũng có thể là trên ứng dụng smartphone. (Web tiki, ứng dụng tiki ...)
Deciders
Quyết định quá trình vận hành, phối hợp giữa các step trong một workflow. Deciders
điều khiển luồng thực hiện của các activity task
trong 1 workflow
. Khi có một sự kiện xảy ra trong workflow
, (ví dụ: Hoàn thành xong một step). Amazon SWF
sẽ tạo ra một decision task
với đầu vào là lịch sử trạng thái của workflow
và assign task này cho decider. Khi decider nhận task, nó sẽ phân tích trạng thái hiện tại của workflow, dựa trên logic yêu cầu nghiệp vụ ra quyết định cho bước thích hợp tiếp theo, sau đó gửi về cho Amazon SWF
để lên lịch thực hiện.
Workflow
sẽ được đóng khi decider gửi về cho Amazon SWF
một decide thông báo hoàn tất workflow
.
Activity Workers
Là 1 tiến trình hoặc thread đảm nhiệm việc thực hiện activity task
(step) trong một workflow
. activity task
là một thành phần workflow, tương ứng với một bước trong logic nghiệp vụ của ứng dụng.
Activity Workers
pull liên tục để nhận task từ Amazon SWF
.
TODO
Cơ chế lập lịch của Amazon Simple Workflow
- Lập lịch cho task decision khi worflow khởi tạo và khi trạng thái của workflow thay đổi như khi step được hoàn thành
Để tránh confict Amazon SWF assign mỗi task decision tới chính xác 1 decider và chỉ cho phép duy nhất một decision thực hiện tại 1 thời điểm trong 1 workflow.
-
Các khái niệm liên quan giữa workflow và deciders
Logical Design Registered As Performed By Receives & Performs Generates Workflow Workflow Type Decider Decision Task Decisions - Khi activity worker hoàn thành task, gửi lên Amazon SWF báo cáo task hoàn thành cùng kết quả của task. Amazon SWF cập nhật lịch sử với một events task hoàn thành và lập lịch cho 1 decision task
- Amazon SWF assign mỗi task activity tới chính xác một activity worker. Khi task đã được assigned thì không có activity nào khác được thực hiện task này nữa
- Các khái niệm liên quan tới activities
Logical Design Registered As Performed By Receives & Performs Generates Activity Activity Type Activity Worker Activity Task Result Data Project Demo
Với chương trình demo này, để hình dung đơn giản cách tương tác với
AWS SWF
sử dụng aws-sdk-php workflow, mình thiết kế với 2 step: first activity và second activity. Các bạn có thể tham khảo ở code - Khi activity worker hoàn thành task, gửi lên Amazon SWF báo cáo task hoàn thành cùng kết quả của task. Amazon SWF cập nhật lịch sử với một events task hoàn thành và lập lịch cho 1 decision task



