Macam-macam Application Services : Mengenal SWF
Amazon SWF (Simple Workflow Service) adalah layanan manajemen alur kerja (workflow) dari Amazon Web Services (AWS)
Apa itu SWF?
- SWF adalah singkatan dari Simple Workflow Service.
- Ini adalah layanan web yang digunakan untuk membangun aplikasi yang dapat diskalakan dan tangguh.
- SWF menyediakan panggilan API sederhana yang dapat dieksekusi dari kode yang ditulis dalam bahasa apa pun dan dapat dijalankan di instance EC2 atau mesin mana pun yang terhubung ke internet. Sebagai contoh, sedang membangun sebuah aplikasi yang terdiri dari berbagai modul, dan untuk mengkoordinasikan antara berbagai modul; mengandalkan SWF di AWS. SWF bertindak sebagai koordinator, dan memiliki kontrol atas semua modul aplikasi.
- Hal ini memungkinkan untuk membangun aplikasi dan membuatnya mudah untuk mengkoordinasikan pekerjaan di seluruh komponen yang terdistribusi.
- SWF menyediakan pemisahan logis di antara semua komponen proyek.
- SWF terlibat dalam mengoordinasikan berbagai tugas seperti mengelola ketergantungan antar-tugas, penjadwalan, dan konkurensi sesuai dengan aliran logis aplikasi. Tidak perlu mengelola tugas secara manual; SWF akan melakukan segalanya untuk Anda.
Contoh :
- Langkah 1: Anda harus memverifikasi pesanan. Anda memiliki instance EC2 Anda, dan mereka pergi dan memeriksa apakah pesanan tersedia atau tidak. Setelah pesanan diverifikasi, yaitu, Anda memiliki stok, lalu lanjutkan ke langkah 2.
- Langkah 2: Sekarang, ini bekerja pada kartu kredit Charge. Ini memeriksa apakah tagihan kartu kredit telah berhasil atau tidak.
- Langkah 3: Jika tagihan kartu kredit berhasil, kami akan mengirimkan pesanan. Pengiriman pesanan membutuhkan interaksi manusia. Manusia membawa pesanan dari gudang, dan jika produk telah dikemas berarti produk tersebut telah siap untuk dikirim.
- Langkah 4: Record Completion adalah database yang menyatakan bahwa produk telah dikemas dan dikirim ke alamat tujuan. Database ini juga menyediakan nomor pelacakan. Ini adalah akhir dari alur kerja yang umum.
SWF Workers and Deciders
- Pekerja adalah program yang berinteraksi dengan Amazon SWF untuk mendapatkan tugas, memproses tugas yang diterima, dan mengembalikan hasilnya.
- Decider adalah program yang menyediakan koordinasi tugas seperti pemesanan, konkurensi, penjadwalan, dan lain-lain sesuai dengan logika aplikasi.
- Baik pekerja maupun decider berjalan di infrastruktur cloud seperti Amazon EC2, atau mesin di balik firewall.
- Pengambil keputusan mengambil pandangan yang konsisten ke dalam kemajuan tugas dan memulai tugas baru sementara Amazon SWF menyimpan tugas dan menugaskannya ke pekerja untuk memprosesnya.
- Amazon SWF memastikan bahwa tugas hanya diberikan satu kali dan tidak pernah diduplikasi.
- Pekerja dan Pengambil Keputusan tidak perlu melacak status eksekusi karena Amazon SWF mempertahankan status tersebut secara permanen.
- Baik pekerja maupun penentu berjalan secara independen dan berskala cepat.
SW Domains
- Domain adalah wadah yang mengisolasi sekumpulan jenis, eksekusi, dan daftar tugas dari yang lain di dalam akun yang sama.
- Alur kerja, jenis aktivitas, dan eksekusi alur kerja semuanya tercakup dalam domain.
- Dapat mendaftarkan domain dengan menggunakan AWS Management Console atau tindakan RegisterDomain di Amazon SWF API.
- Parameter ditentukan dalam format JSON (Javascript Object Notation). Formatnya ditunjukkan di bawah ini:
Di mana
workflow Execution Retention Period In Days mendefinisikan jumlah hari periode retensi.
Differences b/w SQS and SWF
- Amazon SWF menyediakan API berorientasi tugas sementara Amazon SQL menyediakan API berorientasi pesan./li>
- Amazon SWF memastikan bahwa tugas hanya diberikan satu kali dan tidak pernah diduplikasi. Dengan Amazon SQS, pesan dapat diduplikasi dan mungkin juga perlu memastikan bahwa pesan diproses hanya sekali./li>.
- SWF melacak semua tugas dan peristiwa dalam aplikasi sementara SQS mengimplementasikan pelacakan tingkat aplikasinya sendiri ketika aplikasi menggunakan beberapa antrian.
Features of SWF
- Scalable : Amazon SWF secara otomatis menskalakan sumber daya seiring dengan penggunaan aplikasi Anda. Tidak diperlukan administrasi manual untuk layanan alur kerja saat Anda menambahkan lebih banyak alur kerja cloud atau meningkatkan kompleksitas alur kerja.
- Reliable : Amazon SWF berjalan di pusat data Amazon yang sangat tersedia, oleh karena itu pelacakan status disediakan kapan pun aplikasi membutuhkannya. Amazon SWF menyimpan tugas, mengirimkannya ke komponen aplikasi masing-masing, dan melacak kemajuannya.
- Simple : Amazon SWF sepenuhnya menggantikan kerumitan solusi alur kerja lama dan perangkat lunak otomasi proses dengan layanan internet alur kerja cloud yang baru. Ini menghilangkan kebutuhan pengembang untuk mengelola proses otomatisasi sehingga Anda dapat fokus pada fungsionalitas unik aplikasi.
- Logical Separation : Amazon SWF menyediakan pemisahan logis antara aliran kontrol logika bertahap pekerjaan latar belakang Anda dan unit pekerjaan aktual yang berisi logika bisnis. Karena pemisahan logis, Anda dapat secara terpisah mengelola, memelihara, dan menskalakan “mesin negara” aplikasi Anda dari logika bisnis. Sesuai dengan perubahan kebutuhan bisnis, Anda dapat dengan mudah mengelola logika bisnis tanpa perlu khawatir tentang mesin negara, pengiriman tugas, dan kontrol aliran.
- Flexibel : Amazon SWF memungkinkan Anda untuk memodifikasi komponen aplikasi, yaitu, Anda dapat memodifikasi logika aplikasi dalam bahasa pemrograman apa pun dan menjalankannya di cloud atau di lokasi.