Orchestration vs. Choreography


182

อะไรคือความแตกต่างระหว่างการประสานงานบริการและการออกแบบท่าเต้นของบริการจากมุมมองภายในองค์กร

คำตอบ:


334

เทคโนโลยีพื้นฐานเช่น (XML, SOAP, WSDL) จัดให้มีวิธีการอธิบายค้นหาและเรียกใช้บริการในรูปแบบของเอนทิตี้ของตนเอง อย่างไรก็ตามเทคโนโลยีเหล่านี้ไม่ได้ให้รายละเอียดของพฤติกรรมที่หลากหลายเกี่ยวกับบทบาทของบริการในการทำงานร่วมกันที่ซับซ้อนมากขึ้น การทำงานร่วมกันนี้รวมถึงลำดับของกิจกรรมและความสัมพันธ์ระหว่างกิจกรรมที่สร้างกระบวนการทางธุรกิจ มีสองวิธีในการสร้างกระบวนการนี้: การประสานบริการและออกแบบท่าเต้นบริการ

บริการการประสานงาน

Service orchestration หมายถึงกระบวนการทางธุรกิจที่ดำเนินการได้ในศูนย์กลางเดียว (orchestrator) ที่ประสานการทำงานร่วมกันระหว่างบริการต่างๆ ผู้ประพันธ์มีหน้าที่รับผิดชอบในการเรียกใช้และรวมบริการต่างๆ

ความสัมพันธ์ระหว่างบริการที่เข้าร่วมทั้งหมดอธิบายโดยจุดปลายเดียว (เช่นบริการประกอบ) การประสานรวมถึงการจัดการธุรกรรมระหว่างบริการส่วนบุคคล Orchestration ใช้วิธีการรวมศูนย์สำหรับองค์ประกอบบริการ

orchestration

บริการออกแบบท่าเต้น

บริการออกแบบท่าเต้นเป็นคำอธิบายทั่วโลกของบริการที่เข้าร่วมซึ่งถูกกำหนดโดยการแลกเปลี่ยนข้อความกฎการโต้ตอบและข้อตกลงระหว่างจุดปลายสองจุดหรือมากกว่านั้น ออกแบบท่าเต้นใช้วิธีการกระจายอำนาจสำหรับองค์ประกอบบริการ

การออกแบบท่าเต้น

ท่าเต้นอธิบายการโต้ตอบระหว่างบริการหลายอย่างโดยที่ orchestration เป็นตัวแทนของการควบคุมจากมุมมองของฝ่ายหนึ่งฝ่ายใด นี่หมายความว่าการออกแบบท่าเต้นนั้น แตกต่างจากorchestration ที่เกี่ยวข้องกับตรรกะที่ควบคุมการโต้ตอบระหว่างบริการที่เกี่ยวข้องที่ควรอยู่


7
ภาพที่ยอดเยี่ยมเพื่อแสดงทั้งสอง! คุณรับมาจากที่ไหน
David Mann

6
@DavidMann ขอบคุณมากสำหรับความคิดเห็นของคุณและโปรด upvote หากคุณคิดว่ามันมีประโยชน์กับคุณ ฉันทำไดอะแกรมเหล่านี้ใน Visio และเป็นแรงบันดาลใจที่ฉันใช้ในการเขียนเรียงความบริการ อย่างไรก็ตามฉันตระหนักว่าคำตอบนี้เมื่อ 2 ปีก่อนเมื่อฉันเพิ่งเริ่มอ่านเกี่ยวกับองค์ประกอบของบริการ ฉันจะอัปเดตคำตอบนี้พร้อมการอ้างอิงและขยายสิทธิ์ของทั้งคู่
Andrei

@Andrei: คงไม่ง่ายไปกว่านี้อีกแล้ว
Anshul Nigam

มันมีเหตุผลที่จะผสมผสานการประสานและท่าเต้น? เช่นมีการเตรียมการสำหรับเวิร์กโฟลว์หลักแบบซิงโครนัส แต่จากนั้นการออกแบบท่าเต้นเพื่อสตรีมเหตุการณ์ async กลับไปสู่ความสามารถของแหล่งข้อมูล (ไมโครไซต์) ในสถานการณ์ของฉันวิธีการนี้อาจช่วยฉันไม่ต้องทำ saga / state-machine และตรรกะการชดเชย
Ryan.Bartsch

1
ผู้อ่านบางคนอาจอนุมานจากแผนภาพการประสานของคุณว่าการประสานหมายถึงการร้องขอแบบซิงโครนัสจากบริการควบคุมไปจนถึงการให้บริการ ฉันต้องการชี้แจงว่าการสื่อสาร Invoke-Reply นั้นสามารถทำได้โดยใช้วิธีการแบบอะซิงโครนัสรวมถึง ผ่านนายหน้าข้อความ
Christoph

34

การตรวจสอบบริการ : คุณรวมบริการหลาย ๆ อย่างเข้าด้วยกันด้วยตรรกะแบบตายตัว ตรรกะนี้มีการอธิบายไว้ในที่เดียว คุณสามารถจินตนาการถึงทีมของคนที่มีผู้จัดการที่ทำการจัดการแบบไมโคร ผู้จัดการจะบอกสิ่งที่ควรทำเมื่อใดและใครควรทำ สมาชิกในทีมไม่สนใจเป้าหมายทั้งหมดของงานผู้จัดการรวมเอาท์พุทเป็นส่งมอบเดียว ตัวอย่างที่ปฏิบัติได้คือกระบวนการ BPEL กระบวนการ BPEL ประกอบด้วยตรรกะสามารถเรียกใช้บริการหลายอย่างและรวมการตอบสนองของพวกเขาเป็นบริการเดียว

บริการออกแบบท่าเต้น : ตรรกะการตัดสินใจถูกแจกจ่ายโดยไม่มีจุดศูนย์กลาง คุณสามารถจินตนาการถึงบ้านที่ทุกคนมุ่งหวังเพื่อผลประโยชน์ร่วมกันและทำงานอย่างมืออาชีพโดยไม่ต้องมีการจัดการแบบไมโคร หรือคุณสามารถจินตนาการร่างกายมนุษย์ที่ซึ่งสมาชิกต่างพึ่งพากันและทำงานเพื่อเป้าหมายร่วมกัน ตัวอย่างที่ใช้งานได้จริงคือการประมวลผลที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งเอเจนต์เปิดใช้งานโดยเหตุการณ์และทำงาน ตัวแทนทั้งหมดทำระบบร่วมกัน ไม่มีตรรกะแบบรวมศูนย์ ความเป็นไปได้ในการออกแบบท่าเต้นอาจยิ่งไกลเกินกว่าการเตรียมการเนื่องจากมันสอดคล้องกับโลกแห่งความเป็นจริงมากขึ้น

ความคิดเห็นของฉันคือเราไม่จำเป็นต้องแยกแยะระหว่างสองสิ่งนี้มากเท่าที่เราจำเป็นต้องมุ่งเน้นไปที่ตรรกะทางธุรกิจ ในที่ที่มีจุดตรรกะเพียงจุดเดียวเราจะทำการประสานงาน ในกรณีที่ปัญหาไม่สามารถครอบคลุมด้วยตรรกะที่เป็นศูนย์กลางเราถูกบังคับให้ออกแบบท่าเต้นต่อไป นั่นคือเหตุผลที่เรามักจะเข้ามามีส่วนร่วมในด้านไอทีในขณะที่ choreograhy ยังคงเป็นแนวคิดทางวิชาการและเรื่องการวิจัย และบ่อยครั้งที่เราออกแบบท่าเต้นโดยที่ไม่รู้ตัวจริงเหมือนอยู่ในโลกแห่งความเป็นจริง


21

บริการสามารถแยกแยะระหว่างบริการของอะตอมและบริการที่ประกอบด้วยบริการอื่น ๆ เรียงความดังกล่าวเรียกว่า "orchestration" บางครั้งเวิร์กโฟลว์บางครั้งกระบวนการทางธุรกิจ ยกตัวอย่างเช่น BPEL เป็นภาษาออเคสตร้า แต่เรียกตัวเองว่า "ภาษาดำเนินกระบวนการทางธุรกิจ"

ไม่มีข้อกำหนดที่จำเป็นต้องให้บริการประกอบด้วยลำดับชั้น นั่นหมายความว่าสองบริการอาจพูดคุยกัน โปรโตคอลที่ทำงานระหว่างพวกเขาเรียกว่า "ท่าเต้น" อาจเป็นบริการที่สอง แต่โดยปกติจะมีมากกว่าสองบริการที่เกี่ยวข้อง แต่ละบริการในการออกแบบท่าเต้นอาจถูกมองว่าเป็นผู้ควบคุมการบริการพันธมิตร แต่ละบริการที่มีส่วนร่วมในการออกแบบท่าเต้นอาจถูกรับรู้ในฐานะ orchestration / เวิร์กโฟลว์ / กระบวนการ

orchestration แสดงให้เห็นถึงพฤติกรรมที่สมบูรณ์ของแต่ละบริการในขณะที่การออกแบบท่าเต้นรวมคำอธิบายพฤติกรรมของอินเตอร์เฟสของแต่ละบริการ

บทความทางวิทยาศาสตร์ที่ดีเกี่ยวกับการออกแบบท่าเต้นพฤติกรรมการเชื่อมต่อพฤติกรรมของผู้ให้บริการและการประสานเป็นหนึ่งต่อไปนี้: Dijkman, R. & Dumas, M. การออกแบบที่มุ่งเน้นบริการ: Multi-viewpoint Approach วารสารนานาชาติของระบบข้อมูลสหกรณ์, 2004, 13, 337-368


19

เนื่องจากเธรดเก่า แต่ยังคงเขียนถึงมันสำหรับผู้ที่จะสะดุดที่นี่เพื่อค้นหาคำถามนี้เหมือนที่ฉันทำ นี่เป็นคำถามที่ถกเถียงกันมากมายในสถาปัตยกรรมเชิงบริการ (SOA) ซึ่งต้องการคำอธิบายที่ชัดเจนกว่าสำหรับผู้เริ่มต้น

Orchestration: กระบวนการที่ดำเนินการได้

  • ใช้ในกระบวนการทางธุรกิจส่วนตัว
  • กระบวนการกลาง (ซึ่งอาจเป็นบริการบนเว็บอื่น) ใช้การควบคุมของบริการบนเว็บที่เกี่ยวข้องและประสานงานการดำเนินการต่าง ๆ บนเว็บเซอร์วิสที่เกี่ยวข้องในการดำเนินการ
  • บริการเว็บที่เกี่ยวข้องไม่ "รู้" (และไม่จำเป็นต้องรู้) ว่าพวกเขามีส่วนร่วมในกระบวนการจัดองค์ประกอบและพวกเขามีส่วนร่วมในกระบวนการทางธุรกิจในระดับที่สูงขึ้น
  • มีเพียงผู้ประสานงานกลางของ orchestration เท่านั้นที่ทราบถึงเป้าหมายนี้ดังนั้น orchestration จึงรวมศูนย์ด้วยคำจำกัดความที่ชัดเจนของการดำเนินการและลำดับของการเรียกใช้บริการเว็บ

ป้อนคำอธิบายรูปภาพที่นี่

การออกแบบท่าเต้น: การทำงานร่วมกันแบบหลายฝ่าย

  • ในทางตรงกันข้ามท่าเต้นไม่ได้อาศัยผู้ประสานงานส่วนกลาง แต่เว็บเซอร์วิสแต่ละบริการที่เกี่ยวข้องกับการออกแบบท่าเต้นนั้นจะรู้ได้อย่างชัดเจนว่าเมื่อใดที่จะต้องดำเนินการกับผู้ที่จะโต้ตอบ การออกแบบท่าเต้นเป็นความร่วมมือที่เน้นการแลกเปลี่ยนข้อความในกระบวนการธุรกิจสาธารณะ

  • ผู้เข้าร่วมทุกคนในการออกแบบท่าเต้นจำเป็นต้องตระหนักถึงกระบวนการทางธุรกิจการดำเนินการเพื่อดำเนินการข้อความที่จะแลกเปลี่ยนและเวลาของการแลกเปลี่ยนข้อความ

ป้อนคำอธิบายรูปภาพที่นี่

ออกแบบท่าเต้นเทียบกับ Orchestration

  • จากมุมมองของการแต่งเว็บเซอร์วิสเพื่อดำเนินกระบวนการทางธุรกิจการประสานเป็นกระบวนทัศน์ที่ยืดหยุ่นมากขึ้นและมีข้อได้เปรียบเหนือการออกแบบท่าเต้นต่อไปนี้:

  • การประสานงานของกระบวนการส่วนประกอบได้รับการจัดการจากศูนย์กลางโดยผู้ประสานงานที่รู้จัก

  • บริการเว็บสามารถรวมเข้าด้วยกันโดยไม่ทราบว่าพวกเขากำลังมีส่วนร่วมในกระบวนการทางธุรกิจขนาดใหญ่

  • สถานการณ์จำลองทางเลือกสามารถวางในกรณีที่เกิดข้อผิดพลาด

1
ที่จริงแล้วการออกแบบท่าเต้นมักจะอาศัยผู้ประสานงานกลาง - และโดยปกติผู้ประสานงานนั้นจะเป็นนายหน้าซื้อขายข้อความแบบหนึ่ง การไม่ใช้สิ่งที่ต้องการเช่นนายหน้าข้อความจะผูกบริการของคุณเข้าด้วยกันในรูปแบบที่ไม่ยืดหยุ่นมากซึ่งนำไปสู่ความเปราะบางและสามารถนำกลับมาใช้ใหม่ได้น้อย
Rodney P. Barbati

8

อังเดรและคนอื่น ๆ ทำงานได้ดีอธิบายว่าอะไรคือการประสานเสียงและท่าเต้นอะไร สำหรับสถาปนิกซอฟต์แวร์ที่เลือกระหว่างสองทางเลือกนี้เป็นสิ่งสำคัญเช่นกันในการเปรียบเทียบกับคุณภาพที่แตกต่างกัน

Orchestration ยังมีมากกว่าท่าเต้น

  • ความน่าเชื่อถือ:แพลตฟอร์ม Orchestration ได้รับการสนับสนุนในตัวสำหรับการจัดการข้อผิดพลาดและการจัดการธุรกรรม (ชดเชยธุรกรรม) ในการออกแบบท่าเต้นเวิร์กโฟลว์ที่พัฒนาเองและการจัดการข้อผิดพลาดมีแนวโน้มที่จะเกิดข้อผิดพลาดได้ง่ายขึ้น
  • ความสามารถในการปรับเปลี่ยนได้:การสร้างและการเปลี่ยนเวิร์กโฟลว์กระบวนการและองค์ประกอบบริการที่ซับซ้อนนั้นง่ายขึ้นในเครื่องมือ BPM ที่มองเห็นได้ในแพลตฟอร์มออร์เคสตร้า

การออกแบบท่าเต้นพร้อมกับการประสานเสียง

  • ประสิทธิภาพการทำงาน: Orchestration มีค่าใช้จ่ายประสิทธิภาพเนื่องจากการตีความสคริปต์เวิร์กโฟลว์และเลเยอร์เพิ่มเติมของแพลตฟอร์ม orchestration นั้น

  • ค่าใช้จ่าย: การออกแบบท่าเต้นไม่ต้องการมิดเดิลแวร์หรือภาษาเพิ่มเติมซึ่งเกี่ยวข้องกับเส้นโค้งการเรียนรู้และภาระการกำกับดูแล

แก้ไข

วิธีการแก้ปัญหา orchestration อาจแนะนำ SPOF หากองค์ประกอบ orchestrator ไม่ได้ใช้กลไกสำหรับความพร้อมใช้งานสูง ขอบคุณ @Deepak por ชี้ให้เห็นสิ่งนี้ในความคิดเห็น


3
ยกเว้นการออกแบบท่าเต้นต้องใช้มิดเดิลแวร์เพิ่มเติม ข้อกำหนด (ภารกิจ) จะต้องจับคู่กับโหนดอื่น หลังจากนั้นการออกแบบท่าเต้นก็จะถูกนำไปใช้ตรวจสอบและปรับใช้ การจัดการทั้งหมดนี้ต้องใช้เครื่องมือที่มักจะมีให้โดยมิดเดิลแวร์
อังเดร

1
orchestration ไม่ได้ทำให้เสียจุดเดียวของความล้มเหลวซึ่งไม่ใช่ในกรณีของการออกแบบท่าเต้น?
Deepak

6

ฉันว่าการออกแบบท่าเต้นเหมาะสำหรับองค์กรที่มีการกระจายอำนาจสูง คุณไม่จำเป็นต้องมีผู้ดำเนินกระบวนการทางธุรกิจส่วนกลาง สิ่งนี้เอื้อต่อการเติบโตและการพัฒนาที่เป็นอิสระของแต่ละหน่วยงานย่อย

(ฉันสมัครรับข้อมูลการตีความ orchestration vs. คำถามการออกแบบท่าเต้นนี้: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )


6

orchestrationนั้นมีประโยชน์เมื่อคุณสามารถควบคุมนักแสดงทั้งหมดในกระบวนการ - เมื่อพวกเขาอยู่ในการควบคุมเดียวและคุณสามารถกำหนดกิจกรรมได้ แน่นอนว่าบ่อยครั้งที่สุดเมื่อคุณระบุกระบวนการทางธุรกิจที่จะประกาศใช้ภายในองค์กรเดียวที่คุณสามารถควบคุมได้

การออกแบบท่าเต้นเป็นวิธีการระบุว่าฝ่ายสองฝ่ายหรือมากกว่านั้นไม่มีฝ่ายใดที่ควบคุมกระบวนการของฝ่ายอื่นหรืออาจมองเห็นกระบวนการเหล่านั้นได้สามารถประสานงานกิจกรรมและกระบวนการของตนเพื่อแบ่งปันข้อมูลและคุณค่า ใช้การออกแบบท่าเต้นเมื่อต้องการประสานงานข้ามโดเมนของการควบคุม / การมองเห็น คุณสามารถนึกถึงท่าเต้นในสถานการณ์ง่าย ๆ เช่นเดียวกับโปรโตคอลเครือข่าย มันกำหนดรูปแบบที่ยอมรับได้ของคำขอและการตอบสนองระหว่างฝ่ายต่างๆ


5

อีกวิธีในการดู Service Orchestration vs. Choreography:

- บริการประสานงาน: รอบ ๆ โดเมนธุรกิจ
- บริการออกแบบท่าเต้น: ท่ามกลางหลายโดเมนธุรกิจ


1

ในการประสานเสียงมีตัวนำและมีผู้เล่นเครื่องดนตรี ผู้เล่นเล่นตามวิธีที่ตัวนำดำเนินการ หากตัวนำถูกแทนที่การแสดงออกของฮาร์มอนิกจะแตกต่างกันนั่นคือมันยังคงเหมือนเดิม (บริการ) แต่มีผลลัพธ์ที่แตกต่างกัน ตัวอย่างเช่นเพื่อให้ข้อเสนอการจัดการทางการเงินบริการ orchestration จะดำเนินการโดยขอ (เรียกใช้) ผู้เล่นแต่ละคน (นิติบุคคลหรือบริการสาธารณูปโภคเช่นการตรวจสอบเครดิต) ที่จะเล่น (ผลตอบแทนหรือปรับ / ปรับปรุงการเล่น) ตามแม่แบบของตัวนำ (ธุรกิจ กฎ) ในการออกแบบท่าเต้นมีนักออกแบบท่าเต้นและมีกลุ่มนักเต้น การออกแบบท่าเต้นเป็นทิศทาง แต่นักเต้นแต่ละกลุ่มมีอิสระในการรู้ทิศทางนั้น


-1

orchestration โดยทั่วไปแล้วจะเชื่อมโยงบริการระดับล่างเข้าด้วยกัน มันเป็นเหมือนคนกลาง การออกแบบท่าเต้นช่วยลดการแต่งงานต่อ ฉันอธิบายรายละเอียดเพิ่มเติมที่นี่แล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.