Aktor Amazon SWF - Amazon Simple Workflow Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktor Amazon SWF

Apa yang dimaksud dengan Aktor di Amazon SWF?

Selama operasinya, Amazon SWF berinteraksi dengan sejumlah jenis actors (aktor) terprogram yang berbeda. Aktor merupakan workflow starters (pemulai alur kerja), deciders (pengambil keputusan), atau activity workers (pekerja aktivitas). Aktor-aktor ini berkomunikasi dengan Amazon SWF melalui API-nya. Anda dapat mengembangkan aktor-aktor ini dalam bahasa pemrograman apa pun.

Diagram berikut menunjukkan arsitektur Amazon SWF, termasuk Amazon SWF dan aktornya.


               Entitas yang berbeda atau “aktor” dalam alur kerja Amazon SWF.

Pemulai Alur Kerja

Pemulai alur kerja merupakan aplikasi yang dapat memulai eksekusi alur kerja. Dalam contoh perdagangan elektronik, satu pemulai alur kerja bisa menjadi situs di mana pelanggan menempatkan pesanan. Pemulai alur kerja lainnya berupa aplikasi seluler atau sistem yang digunakan oleh perwakilan layanan pelanggan untuk melakukan pemesanan atas nama pelanggan.

Pengkeputusan

Pengambil keputusan merupakan implementasi dari logika koordinasi alur kerja. Pengambil keputusan mengontrol aliran tugas aktivitas dalam eksekusi alur kerja. Setiap kali perubahan terjadi selama eksekusi alur kerja, seperti penyelesaian tugas, tugas keputusan termasuk seluruh riwayat alur kerja akan diteruskan ke pengambil keputusan. Saat menerima tugas keputusan dari Amazon SWF, pengambil keputusan menganalisis riwayat eksekusi alur kerja untuk menentukan langkah berikutnya yang sesuai dalam eksekusi alur kerja. Pengambik keputusan mengkomunikasikan langkah-langkah ini kembali ke Amazon SWF menggunakan decisions (keputusan). Keputusan merupakan jenis data Amazon SWF yang dapat mewakili berbagai tindakan selanjutnya. Untuk daftar kemungkinan keputusan, buka Decision (Keputusan) di Referensi API Amazon Simple Workflow Service.

Berikut adalah contoh keputusan dalam format JSON, format yang ditransmisikan ke Amazon SWF. Keputusan ini jadwal tugas aktivitas baru.

{ "decisionType" : "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes" : { "activityType" : { "name" : "activityVerify", "version" : "1.0" }, "activityId" : "verification-27", "control" : "digital music", "input" : "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout" : "900", "taskList" : { "name": "specialTaskList" }, "scheduleToStartTimeout" : "300", "startToCloseTimeout" : "600", "heartbeatTimeout" : "120" } }

Pengambil keputusan menerima tugas keputusan ketika eksekusi alur kerja dimulai dan setiap kali perubahan status terjadi dalam eksekusi alur kerja. Pengambil keputusan terus melanjutkan eksekusi alur kerja dengan menerima tugas keputusan dan menanggapi Amazon SWF dengan lebih banyak keputusan sampai pengambil keputusan menentukan bahwa eksekusi alur kerja selesai. Kemudian menanggapi dengan keputusan untuk menutup eksekusi alur kerja. Setelah eksekusi alur kerja ditutup, Amazon SWF tidak akan menjadwalkan tugas tambahan untuk eksekusi tersebut.

Dalam contoh perdagangan elektronik, pengambil keputusan menentukan apakah setiap langkah dilakukan dengan benar, lalu menjadwalkan langkah berikutnya atau mengelola kondisi kesalahan apa pun.

Pengambil keputusan mewakili satu proses komputer atau utas. Beberapa pengambil keputusan dapat memproses tugas untuk jenis alur kerja yang sama.

Pekerja Aktivitas

Seorang pekerja aktivitas merupakan proses atau utas yang melakukan activity tasks (tugas aktivitas) yang merupakan bagian dari alur kerja Anda. Tugas aktivitas merupakan salah satu tugas yang Anda identifikasi dalam aplikasi Anda.

Untuk menggunakan tugas aktivitas di alur kerja Anda, Anda harus mendaftarkannya menggunakan konsol Amazon SWF atau tindakan RegisterActivityType.

Setiap pekerja aktivitas memilih Amazon SWF untuk tugas baru yang sesuai untuk dilakukan oleh pekerja aktivitas tersebut; tugas tertentu hanya dapat dilakukan oleh pekerja aktivitas tertentu. Setelah menerima tugas, pekerja aktivitas memproses tugas hingga selesai dan kemudian melaporkannya ke Amazon SWF bahwa tugas telah selesai dan memberikan hasilnya. Pekerja aktivitas kemudian memilih tugas baru. Para pekerja aktivitas yang terhubung dengan eksekusi alur kerja terus melakukan cara ini, yaitu memproses tugas hingga eksekusi alur kerja tersebut selesai dengan sendirinya. Dalam contoh perdagangan elektronik, pekerja aktivitas merupakan proses independen dan aplikasi yang digunakan oleh orang-orang, seperti pemroses kartu kredit dan karyawan gudang, yang melakukan langkah-langkah individual dalam proses.

Pekerja aktivitas mewakili satu proses komputer (atau utas). Beberapa pekerja aktivitas dapat memproses tugas dari jenis aktivitas yang sama.

Data Exchange Antar Aktor

Data input dapat diberikan ke eksekusi alur kerja saat dimulai. Demikian pula, data input dapat diberikan kepada pekerja aktivitas saat mereka menjadwalkan tugas aktivitas. Ketika tugas aktivitas selesai, pekerja aktivitas dapat mengembalikan hasilnya ke Amazon SWF. Demikian pula, pengambil keputusan dapat melaporkan hasil eksekusi alur kerja ketika eksekusi selesai. Setiap aktor dapat mengirim data ke, dan menerima data dari, Amazon SWF melalui string, yang bentuknya ditentukan oleh pengguna. Bergantung pada ukuran dan sensitivitas data, Anda dapat meneruskan data secara langsung atau meneruskan petunjuk ke data yang disimpan pada sistem atau layanan lain (seperti Amazon S3 atau DynamoDB). Baik data yang diteruskan secara langsung dan petunjuk ke penyimpanan data lain dicatat dalam riwayat eksekusi alur kerja; Namun, Amazon SWF tidak menyalin atau menyimpan data apa pun dari penyimpanan eksternal sebagai bagian dari riwayat.

Karena Amazon SWF mempertahankan status eksekusi lengkap dari setiap eksekusi alur kerja, termasuk input dan hasil tugas, semua aktor bisa menjadi stateless. Sehingga, pemrosesan alur kerja sangat terukur. Seiring bertambahnya beban pada sistem Anda, Anda cukup menambahkan lebih banyak aktor untuk meningkatkan kapasitas.