Giới thiệu về Amazon Simple Workflow
amazon swf
1
AWS
17
White

egd-ngocnd viết ngày 06/03/2019

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

Order process

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

  1. Xác nhận order
  2. Nếu order hợp lệ, yêu cầu thành toán
  3. Nếu đã được thanh toán, ship order
  4. 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ó
AWS SWF actors overview

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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

egd-ngocnd

2 bài viết.
2 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
1 0
1. Định nghĩa XML là ngôn ngữ đánh dấu có thể mở rộng XML được thiết kế để lưu trữ và truyền dữ liệu XML được thiết kế để cả máy và người đều hi...
egd-ngocnd viết 6 tháng trước
1 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
2 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!