Amazon SWF เป็นบริการเวิร์กโฟลว์ที่มีการจัดการอย่างเต็มรูปแบบสำหรับการสร้างแอปพลิเคชันที่ปรับขนาดได้และยืดหยุ่น Amazon SWF ให้บริการการเรียกใช้ API ที่ง่ายดายซึ่งสามารถดำเนินการจากโค้ดที่เขียนในภาษาใดก็ได้และทำงานบนอินสแตนซ์ EC2 ของคุณหรือเครื่องใดก็ได้ในโลกที่สามารถเข้าถึงอินเทอร์เน็ตได้
Amazon SWF ทำหน้าที่เป็นฮับการประสานงานที่โฮสต์แอปพลิเคชันของคุณโต้ตอบด้วย คุณสร้างเวิร์กโฟลว์ที่ต้องการด้วย Task ที่เกี่ยวข้องและตรรกะตามเงื่อนไขที่คุณต้องการนำไปใช้และจัดเก็บไว้ด้วย Amazon SWF แต่ละครั้งที่ดำเนินการเวิร์กโฟลว์ จะถือเป็นการดำเนินการเวิร์กโฟลว์หนึ่งครั้ง คุณตั้งโปรแกรมส่วนประกอบของแอปพลิเคชันของคุณเพื่อขอให้ทำ Task ในการดำเนินการเวิร์กโฟลว์ของคุณ และ Amazon SWF จะประสานงาน Task ให้เสร็จสมบูรณ์ตามลำดับที่คุณระบุไว้บนโฮสต์ของคุณ (ไม่ว่าโฮสต์จะอยู่ในคลาวด์หรือในองค์กรก็ตาม) แอปพลิเคชันจะสื่อสารกับ Amazon SWF โดยใช้ API เพื่อบันทึกความสำเร็จหรือความล้มเหลวของ Task ต่างๆ จากนั้น Amazon SWF จะดำเนินการต่อตามลำดับของ Task โดยการกำหนดงานเวิร์กโฟลว์ถัดไปให้กับโฮสต์แอปพลิเคชันหรือโดยการเรียกใช้ Task ที่ล้มเหลวอีกครั้ง ทั้งนี้จะขึ้นอยู่กับตรรกะทางธุรกิจของคุณ
เข้าสู่ระบบคอนโซลการจัดการของ AWS เพื่อเริ่มการดำเนินการเวิร์กโฟลว์ของ Amazon SWF หรือคุณจะเริ่มดำเนินการเวิร์กโฟลว์ผ่าน Amazon SWF API ของเราก็ได้เช่นกัน Amazon SWF ใช้อินเทอร์เฟซบริการในรูปแบบเว็บที่เรียบง่ายซึ่งใช้งานง่ายและยืดหยุ่นสูง:
- StartWorkflowExecution:เริ่มลำดับของ Task ในเวิร์กโฟลว์และทำให้ Task แรกพร้อมใช้งานกับโฮสต์แอปพลิเคชันใดตัวหนึ่ง
- DescribeWorkflowExecution: แสดงสถานะของ Task ต่างๆ และการดำเนินการเวิร์กโฟลว์ของคุณ
- PollForActivityTask: โฮสต์แอปพลิเคชันของคุณ (ในระบบคลาวด์หรือในองค์กร) ขอและดำเนินการ Tasks ต่างๆ ในเวิร์กโฟลว์ในลูปอย่างต่อเนื่อง
- RespondActivityTaskCompleted: โฮสต์แอปพลิเคชันจะบอกกับ Amazon SWF ว่าทำ Task เสร็จแล้ว จากนั้น Amazon SWF จะดำเนินการเวิร์กโฟลว์ต่อไปโดยทำให้ Task ถัดไปพร้อมใช้งานในโฮสต์แอปพลิเคชัน
- TerminateWorkflowExecution: หยุดการขับเคลื่อนการดำเนินการเวิร์กโฟลว์ที่เฉพาะเจาะจงให้ไปขั้นตอนข้างหน้า Amazon SWF จะไม่มอบหมาย Task ใด ๆ ในการดำเนินการเวิร์กโฟลว์เฉพาะนี้ให้กับโฮสต์แอปพลิเคชัน