Konsep Dasar AWS Flow Framework: Struktur Aplikasi - AWS Flow Framework untuk Java

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

Konsep Dasar AWS Flow Framework: Struktur Aplikasi

Secara konseptual, aplikasi AWS Flow Framework terdiri dari tiga komponen dasar: permulaan alur kerja, pekerja alur kerja, dan pekerja aktivitas. Satu atau beberapa aplikasi host bertanggung jawab untuk mendaftarkan pekerja (alur kerja dan aktivitas) dengan Amazon SWF, memulai pekerja, dan menangani pembersihan. Para pekerja menangani mekanisme pelaksanaan alur kerja dan dapat diimplementasikan pada beberapa host.

Diagram ini mewakili aplikasi AWS Flow Framework dasar:

Aplikasi AWS Flow Framework skematis
catatan

Menerapkan komponen-komponen ini dalam tiga aplikasi terpisah secara konseptual nyaman, tetapi Anda dapat membuat aplikasi untuk menerapkan fungsi ini dalam berbagai cara. Misalnya, Anda dapat menggunakan aplikasi host tunggal untuk pekerja aktivitas dan alur kerja, atau menggunakan host aktivitas dan alur kerja terpisah. Anda juga dapat memiliki beberapa pekerja aktivitas, masing-masing menangani serangkaian aktivitas yang berbeda pada host yang terpisah, dan seterusnya.

Ketiga komponen AWS Flow Framework berinteraksi secara tidak langsung dengan mengirimkan permintaan HTTP ke Amazon SWF, yang mengelola permintaan. Amazon SWF melakukan hal berikut:

  • Mempertahankan satu atau beberapa daftar tugas keputusan, yang menentukan langkah selanjutnya yang harus dilakukan oleh pekerja alur kerja.

  • Mempertahankan satu atau beberapa daftar tugas aktivitas, yang menentukan tugas mana yang akan dilakukan oleh pekerja aktivitas.

  • Mempertahankan step-by-step riwayat mendetail dari eksekusi alur kerja.

Dengan AWS Flow Framework, kode aplikasi Anda tidak perlu berurusan langsung dengan banyak detail yang ditunjukkan pada gambar, seperti mengirim permintaan HTTP ke Amazon SWF. Anda cukup memanggil metode AWS Flow Framework dan kerangka kerja menangani detail di balik layar.

Peran Pekerja Aktivitas

Pekerja aktivitas melakukan berbagai tugas yang harus diselesaikan oleh alur kerja. Terdiri dari:

  • Implementasi aktivitas, yang mencakup serangkaian metode aktivitas yang melakukan tugas tertentu untuk alur kerja.

  • ActivityWorkerObjek, yang menggunakan permintaan polling panjang HTTP untuk polling Amazon SWF untuk tugas aktivitas yang akan dilakukan. Saat tugas diperlukan, Amazon SWF merespons permintaan tersebut dengan mengirimkan informasi yang diperlukan untuk melakukan tugas tersebut. ActivityWorkerObjek kemudian memanggil metode aktivitas yang sesuai, dan mengembalikan hasilnya ke Amazon SWF.

Peran Pekerja Alur Kerja

Pekerja alur kerja mengatur eksekusi berbagai aktivitas, mengelola aliran data, dan menangani aktivitas yang gagal. Terdiri dari:

  • Implementasi alur kerja, yang mencakup logika orkestrasi aktivitas, menangani aktivitas yang gagal, dan sebagainya.

  • Klien aktivitas, yang berfungsi sebagai proksi untuk pekerja aktivitas dan memungkinkan pekerja alur kerja menjadwalkan aktivitas untuk dieksekusi secara asinkron.

  • WorkflowWorkerObjek, yang menggunakan permintaan polling panjang HTTP untuk polling Amazon SWF untuk tugas keputusan. Jika ada tugas di daftar tugas alur kerja, Amazon SWF merespons permintaan tersebut dengan mengembalikan informasi yang diperlukan untuk melakukan tugas tersebut. Kerangka kerja kemudian mengeksekusi alur kerja untuk melakukan tugas dan mengembalikan hasilnya ke Amazon SWF.

Peran Pemula Alur Kerja

Pemula alur kerja memulai instans alur kerja, juga disebut sebagai eksekusi alur kerja, dan dapat berinteraksi dengan instans selama eksekusi untuk meneruskan data tambahan ke pekerja alur kerja atau mendapatkan status alur kerja saat ini.

Starter alur kerja menggunakan klien alur kerja untuk memulai eksekusi alur kerja, berinteraksi dengan alur kerja sesuai kebutuhan selama eksekusi, dan menangani pembersihan. Pemula alur kerja dapat berupa aplikasi yang dijalankan secara lokal, aplikasi web, AWS CLI atau bahkan AWS Management Console.

Bagaimana Amazon SWF Berinteraksi dengan Aplikasi Anda

Amazon SWF memediasi interaksi antara komponen alur kerja dan mempertahankan riwayat alur kerja yang mendetail. Amazon SWF tidak memulai komunikasi dengan komponen; itu menunggu permintaan HTTP dari komponen dan mengelola permintaan sesuai kebutuhan. Sebagai contoh:

  • Jika permintaan berasal dari pekerja, polling untuk tugas yang tersedia, Amazon SWF merespons langsung ke pekerja jika tugas tersedia. Untuk informasi selengkapnya tentang cara kerja polling, lihat Polling untuk Tugas di Panduan Developer Amazon Simple Workflow Service.

  • Jika permintaan adalah notifikasi dari pekerja aktivitas bahwa tugas telah selesai, Amazon SWF mencatat informasi dalam riwayat eksekusi dan menambahkan tugas ke daftar tugas keputusan untuk memberi tahu pekerja alur kerja bahwa tugas telah selesai, memungkinkannya untuk melanjutkan ke langkah selanjutnya.

  • Jika permintaan berasal dari pekerja alur kerja untuk menjalankan aktivitas, Amazon SWF mencatat informasi dalam riwayat eksekusi dan menambahkan tugas ke daftar tugas aktivitas untuk mengarahkan pekerja aktivitas agar menjalankan metode aktivitas yang sesuai.

Pendekatan ini memungkinkan pekerja untuk berjalan di sistem apa pun dengan koneksi Internet, termasuk instans Amazon EC2, pusat data perusahaan, komputer klien, dan sebagainya. Mereka bahkan tidak harus menjalankan sistem operasi yang sama. Karena permintaan HTTP berasal dari pekerja, tidak diperlukan port yang terlihat secara eksternal; pekerja dapat berjalan di belakang firewall.

Untuk Informasi Selengkapnya

Untuk diskusi yang lebih menyeluruh tentang cara kerja Amazon SWF, lihat Panduan Developer Amazon Simple Workflow Service.