สถาปัตยกรรมเชิงปฏิสัมพันธ์

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

  • Data module - โมดูลข้อมูลให้ข้อมูลที่เป็นนามธรรมและตรรกะทางธุรกิจทั้งหมด

  • Control module - โมดูลควบคุมระบุขั้นตอนของการควบคุมและการดำเนินการกำหนดค่าระบบ

  • View presentation module - โมดูลการนำเสนอมุมมองมีหน้าที่ในการนำเสนอภาพหรือเสียงของเอาต์พุตข้อมูลและยังมีอินเทอร์เฟซสำหรับการป้อนข้อมูลของผู้ใช้

สถาปัตยกรรมที่เน้นปฏิสัมพันธ์มีสองรูปแบบใหญ่ ๆ - Model-View-Controller (MVC) และ Presentation-Abstraction-Control(PAC). ทั้ง MVC และ PAC เสนอการสลายองค์ประกอบสามส่วนและใช้สำหรับแอปพลิเคชันแบบโต้ตอบเช่นเว็บแอปพลิเคชันที่มีการพูดคุยหลายครั้งและการโต้ตอบกับผู้ใช้ พวกเขามีความแตกต่างกันในขั้นตอนการควบคุมและองค์กร PAC เป็นสถาปัตยกรรมลำดับชั้นแบบเอเจนต์ แต่ MVC ไม่มีโครงสร้างลำดับชั้นที่ชัดเจน

รุ่นดูคอนโทรลเลอร์ (MVC)

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

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

รุ่น

Model เป็นส่วนประกอบหลักของ MVC ที่จัดการข้อมูลตรรกะและข้อ จำกัด ของแอปพลิเคชันโดยตรง ประกอบด้วยส่วนประกอบข้อมูลซึ่งรักษาข้อมูลดิบของแอปพลิเคชันและตรรกะของแอปพลิเคชันสำหรับส่วนต่อประสาน

  • เป็นอินเทอร์เฟซผู้ใช้ที่เป็นอิสระและจับพฤติกรรมของโดเมนปัญหาแอปพลิเคชัน

  • เป็นการจำลองซอฟต์แวร์เฉพาะโดเมนหรือการใช้โครงสร้างกลางของแอปพลิเคชัน

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

ดู

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

  • ดูข้อมูลร้องขอจากโมเดลของพวกเขาและสร้างการแสดงผลลัพธ์ให้กับผู้ใช้

  • สามารถดูข้อมูลเดียวกันได้หลายมุมมองเช่นแผนภูมิแท่งสำหรับการจัดการและมุมมองแบบตารางสำหรับนักบัญชี

ตัวควบคุม

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

  • ทำหน้าที่เป็นอินเทอร์เฟซระหว่างโมเดลและมุมมองที่เกี่ยวข้องและอุปกรณ์อินพุต

  • สามารถส่งคำสั่งไปยังโมเดลเพื่ออัปเดตสถานะของโมเดลและไปยังมุมมองที่เกี่ยวข้องเพื่อเปลี่ยนมุมมองการนำเสนอของโมเดล

MVC - ฉัน

เป็นสถาปัตยกรรม MVC เวอร์ชันที่เรียบง่ายซึ่งระบบแบ่งออกเป็นสองระบบย่อย -

  • The Controller-View - มุมมองตัวควบคุมทำหน้าที่เป็นอินเทอร์เฟซอินพุต / เอาต์พุตและการประมวลผลเสร็จสิ้น

  • The Model - โมเดลให้บริการข้อมูลและโดเมนทั้งหมด

MVC-I Architecture

โมดูลโมเดลจะแจ้งโมดูลมุมมองตัวควบคุมเกี่ยวกับการเปลี่ยนแปลงข้อมูลใด ๆ เพื่อให้การแสดงข้อมูลกราฟิกใด ๆ เปลี่ยนไป ผู้ควบคุมยังดำเนินการตามความเหมาะสมกับการเปลี่ยนแปลง

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

MVC - II

MVC – II เป็นการปรับปรุงสถาปัตยกรรม MVC-I ซึ่งโมดูลมุมมองและโมดูลควบคุมแยกจากกัน โมดูลแบบจำลองมีบทบาทที่ใช้งานได้เช่นเดียวกับใน MVC-I โดยจัดเตรียมฟังก์ชันหลักและข้อมูลทั้งหมดที่ฐานข้อมูลสนับสนุน

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

MVC-II Architecture

แอปพลิเคชั่น MVC

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

แอปพลิเคชัน MVC เหมาะสำหรับแอปพลิเคชันที่มีการแบ่งส่วนที่ชัดเจนระหว่างโมดูลเพื่อให้ผู้เชี่ยวชาญที่แตกต่างกันสามารถมอบหมายให้ทำงานในด้านต่างๆของแอปพลิเคชันดังกล่าวได้

Advantages

  • มีชุดเครื่องมือเฟรมเวิร์กผู้ขาย MVC มากมาย

  • หลายมุมมองที่ซิงโครไนซ์กับโมเดลข้อมูลเดียวกัน

  • ง่ายต่อการเสียบใหม่หรือเปลี่ยนมุมมองอินเทอร์เฟซ

  • ใช้สำหรับการพัฒนาแอปพลิเคชันที่ผู้เชี่ยวชาญด้านกราฟิกผู้เชี่ยวชาญด้านการเขียนโปรแกรมและผู้เชี่ยวชาญด้านการพัฒนาฐานข้อมูลกำลังทำงานในทีมโครงการที่ออกแบบ

Disadvantages

  • ไม่เหมาะสำหรับแอปพลิเคชันที่มุ่งเน้นตัวแทนเช่นแอปพลิเคชันมือถือและหุ่นยนต์แบบโต้ตอบ

  • ตัวควบคุมและมุมมองหลายคู่ตามโมเดลข้อมูลเดียวกันทำให้โมเดลข้อมูลใด ๆ มีราคาแพง

  • การแบ่งระหว่างมุมมองและคอนโทรลเลอร์ไม่ชัดเจนในบางกรณี

การนำเสนอ - นามธรรม - การควบคุม (PAC)

ใน PAC ระบบจะจัดเรียงเป็นลำดับชั้นของตัวแทนความร่วมมือจำนวนมาก (triads) ได้รับการพัฒนาจาก MVC เพื่อรองรับความต้องการใช้งานของตัวแทนหลายรายนอกเหนือจากข้อกำหนดแบบโต้ตอบ

ตัวแทนแต่ละคนมีสามองค์ประกอบ -

  • The presentation component - จัดรูปแบบการนำเสนอข้อมูลด้วยภาพและเสียง

  • The abstraction component - ดึงข้อมูลและประมวลผลข้อมูล

  • The control component - จัดการงานเช่นขั้นตอนการควบคุมและการสื่อสารระหว่างอีกสององค์ประกอบ

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

ไม่มีการเชื่อมต่อโดยตรงระหว่างองค์ประกอบนามธรรมและองค์ประกอบการนำเสนอในแต่ละตัวแทน ส่วนประกอบการควบคุมในแต่ละตัวแทนทำหน้าที่สื่อสารกับตัวแทนอื่น ๆ

รูปต่อไปนี้แสดงแผนภาพบล็อกสำหรับเอเจนต์เดียวในการออกแบบ PAC

PAC กับตัวแทนหลายคน

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

  • ตัวแทนแต่ละคนมีงานที่ได้รับมอบหมายเฉพาะของตนเอง

  • สำหรับตัวแทนระดับกลางบางคนไม่จำเป็นต้องใช้การนำเสนอแบบโต้ตอบดังนั้นจึงไม่มีองค์ประกอบการนำเสนอ

  • ส่วนประกอบการควบคุมจำเป็นสำหรับเอเจนต์ทั้งหมดซึ่งตัวแทนทั้งหมดสื่อสารกัน

รูปต่อไปนี้แสดงตัวแทนหลายตัวที่มีส่วนร่วมใน PAC

Applications

  • มีผลสำหรับระบบโต้ตอบที่ระบบสามารถแยกย่อยออกเป็นเอเจนต์ความร่วมมือจำนวนมากในลักษณะตามลำดับชั้น

  • มีผลเมื่อคาดว่าการมีเพศสัมพันธ์ระหว่างตัวแทนจะหลวมเพื่อให้การเปลี่ยนแปลงในตัวแทนไม่ส่งผลกระทบต่อผู้อื่น

  • มีประสิทธิภาพสำหรับระบบกระจายที่ตัวแทนทั้งหมดกระจายอยู่ห่าง ๆ และแต่ละคนมีฟังก์ชันการทำงานของตัวเองพร้อมข้อมูลและอินเทอร์เฟซแบบโต้ตอบ

  • เหมาะสำหรับแอปพลิเคชันที่มีส่วนประกอบ GUI มากมายซึ่งแต่ละส่วนจะเก็บข้อมูลปัจจุบันและอินเทอร์เฟซแบบโต้ตอบและต้องการสื่อสารกับส่วนประกอบอื่น ๆ

ข้อดี

  • รองรับการทำงานหลายอย่างและหลายการดู

  • รองรับการใช้ซ้ำของตัวแทนและความสามารถในการขยาย

  • ง่ายต่อการเสียบตัวแทนใหม่หรือเปลี่ยนตัวแทนที่มีอยู่

  • รองรับการทำงานพร้อมกันโดยที่เอเจนต์หลายตัวทำงานพร้อมกันในเธรดที่แตกต่างกันหรืออุปกรณ์หรือคอมพิวเตอร์ที่แตกต่างกัน

ข้อเสีย

  • ค่าใช้จ่ายเนื่องจากสะพานควบคุมระหว่างการนำเสนอและนามธรรมและการสื่อสารของการควบคุมระหว่างตัวแทน

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

  • การแยกการนำเสนอและนามธรรมอย่างสมบูรณ์โดยการควบคุมในแต่ละตัวแทนทำให้เกิดความซับซ้อนในการพัฒนาเนื่องจากการสื่อสารระหว่างตัวแทนจะเกิดขึ้นระหว่างการควบคุมของตัวแทนเท่านั้น