Bài này chúng ta và cafedev sẽ tìm hiểu về SWF là gì? trong AWS, trước khi chúng ta bắt đầu sử dụng AWS một cách dễ dàng hơn.

1. SWF là gì?

  • SWF là viết tắt của Simple Workflow Service .
  • Nó là một dịch vụ web được sử dụng để xây dựng các ứng dụng có thể mở rộng và linh hoạt.
  • Nó cung cấp các lệnh gọi API đơn giản có thể được thực thi từ mã được viết bằng bất kỳ ngôn ngữ nào và có thể chạy trên phiên bản EC2 của bạn hoặc bất kỳ máy nào của bạn ở bất kỳ đâu trên thế giới có truy cập internet. Ví dụ: bạn đang xây dựng một ứng dụng bao gồm các mô-đun khác nhau và để phối hợp giữa các mô-đun khác nhau; chúng tôi dựa vào SWF trong aws. SWF hoạt động như một điều phối viên và nó có quyền kiểm soát tất cả các mô-đun của một ứng dụng.
  • Nó cho phép bạn xây dựng các ứng dụng và giúp bạn dễ dàng điều phối công việc trên các thành phần phân tán.
  • SWF cung cấp sự phân tách hợp lý giữa tất cả các thành phần của một dự án.
  • SWF liên quan đến việc điều phối các nhiệm vụ khác nhau như quản lý các phụ thuộc giữa các tác vụ, lập lịch và đồng thời phù hợp với luồng logic của ứng dụng. Bạn không phải quản lý các tác vụ theo cách thủ công; SWF sẽ làm mọi thứ cho bạn.

Hãy hiểu qua một ví dụ.

Giả sử khách hàng đã đặt hàng.

Bước 1: Bạn phải xác minh đơn hàng. Bạn có các phiên bản EC2 của mình, và họ đi kiểm tra xem đơn đặt hàng còn hàng hay không. Khi đơn hàng đã được xác minh, tức là bạn đã có hàng thì chuyển sang bước 2.

Bước 2: Bây giờ, nó hoạt động trên thẻ Tín dụng Tính phí . Nó kiểm tra xem tính phí của thẻ tín dụng đã thành công hay chưa.

Bước 3: Nếu nạp thẻ thành công, chúng tôi sẽ tiến hành giao hàng. Vận chuyển một đơn hàng cần sự tương tác của con người. Con người mang đơn đặt hàng từ kho và nếu sản phẩm đã được đóng hộp có nghĩa là nó đã sẵn sàng để vận chuyển.

Bước 4: Hoàn thành hồ sơ là cơ sở dữ liệu cho biết sản phẩm đã được đóng hộp và vận chuyển đến địa chỉ đích. Nó cũng cung cấp số theo dõi. Đây là phần cuối của quy trình làm việc điển hình.

2. Công nhân và người quyết định SWF

  • Công nhân là các chương trình tương tác với Amazon SWF để nhận nhiệm vụ, xử lý nhiệm vụ đã nhận và trả kết quả.
  • Bộ quyết định là một chương trình cung cấp sự điều phối các tác vụ như đặt hàng, đồng thời, lập lịch, v.v. theo logic ứng dụng.
  • Cả nhân viên và người quyết định đều chạy trên cơ sở hạ tầng đám mây như Amazon EC2 hoặc các máy phía sau tường lửa.
  • Người quyết định có cái nhìn nhất quán về tiến độ của các nhiệm vụ và bắt đầu các nhiệm vụ mới trong khi Amazon SWF lưu trữ các nhiệm vụ và giao chúng cho nhân viên xử lý chúng.
  • Amazon SWF đảm bảo rằng nhiệm vụ chỉ được giao một lần và không bao giờ bị trùng lặp.
  • Công nhân và Người quyết định không phải theo dõi trạng thái thực thi vì Amazon SWF duy trì trạng thái lâu dài.
  • Cả công nhân và người quyết định đều hoạt động độc lập và mở rộng quy mô nhanh chóng.

3. Domains SWF

  • Miền(Domains) là vùng chứa tách biệt một tập hợp các loại, thực thi và danh sách nhiệm vụ với những người khác trong cùng một tài khoản.
  • Quy trình làm việc, các loại hoạt động và thực thi quy trình công việc đều nằm trong phạm vi một miền.
  • Bạn có thể đăng ký miền bằng cách sử dụng Bảng điều khiển quản lý AWS hoặc hành động RegisterDomain trong Amazon SWF API.

Các tham số được chỉ định ở định dạng JSON ( Ký hiệu đối tượng Javascript ). Định dạng được hiển thị bên dưới: 

RegisterDomain  
{  
    "name" : "867530901";  
    "Description": "music";  
     "workflowExecutionRetentionPeriodInDays": "60";  
}

Ở đây,

workflowExecutionRetentionPeriodInDays xác định số ngày của khoảng thời gian lưu giữ.

Lưu ý: Quy trình làm việc tối đa có thể là 1 năm và giá trị của nó được tính bằng giây.

4. Sự khác biệt b / w SQS và SWF

  • Amazon SWF cung cấp API hướng tác vụ trong khi Amazon SQS cung cấp API hướng tin nhắn.
  • Amazon SWF đảm bảo rằng nhiệm vụ chỉ được giao một lần và không bao giờ bị trùng lặp. Với Amazon SQS, thư có thể được sao chép và nó cũng có thể cần đảm bảo rằng thư chỉ được xử lý một lần. 
  • SWF theo dõi tất cả các tác vụ và sự kiện trong một ứng dụng trong khi SQS triển khai theo dõi mức ứng dụng của riêng mình khi một ứng dụng sử dụng nhiều hàng đợi.

5. Đặc điểm của SWF

  • Amazon SWF có thể mở rộng tự động mở rộng quy mô tài nguyên cùng với việc sử dụng ứng dụng của bạn. Không cần quản trị thủ công dịch vụ dòng công việc khi bạn thêm nhiều dòng công việc đám mây hơn hoặc tăng mức độ phức tạp của dòng công việc.
  • Amazon SWF đáng tin cậy chạy tại các trung tâm dữ liệu sẵn có cao của Amazon, do đó, theo dõi trạng thái được cung cấp bất cứ khi nào ứng dụng cần. Amazon SWF lưu trữ các tác vụ, gửi chúng đến các thành phần ứng dụng tương ứng, theo dõi tiến trình của chúng.
  • Amazon SWF đơn giản thay thế hoàn toàn sự phức tạp của các giải pháp quy trình công việc cũ và phần mềm tự động hóa quy trình bằng dịch vụ internet quy trình công việc đám mây mới. Nó giúp các nhà phát triển không cần phải quản lý quá trình tự động hóa để bạn có thể tập trung vào chức năng duy nhất của một ứng dụng.
  • Phân tách logic
    Amazon SWF cung cấp sự phân tách hợp lý giữa luồng điều khiển theo logic từng bước của công việc nền của bạn và các đơn vị công việc thực tế có chứa logic nghiệp vụ. Do sự tách biệt hợp lý, bạn có thể quản lý, duy trì và mở rộng quy mô riêng biệt “máy móc trạng thái” của ứng dụng khỏi logic nghiệp vụ. Theo sự thay đổi của các yêu cầu kinh doanh, bạn có thể dễ dàng quản lý logic nghiệp vụ mà không phải lo lắng về bộ máy nhà nước, phân công nhiệm vụ và kiểm soát luồng.
  • Amazon SWF linh hoạt cho phép bạn sửa đổi các thành phần ứng dụng, tức là bạn có thể sửa đổi logic ứng dụng trong bất kỳ ngôn ngữ lập trình nào và chạy chúng trong đám mây hoặc tại chỗ.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!