ScholarGate
ผู้ช่วย

รูปแบบสถาปัตยกรรมซอฟต์แวร์

รูปแบบสถาปัตยกรรมซอฟต์แวร์คือแผนผังการจัดระเบียบที่ถูกตั้งชื่อและสามารถนำกลับมาใช้ใหม่ได้ ซึ่งกำหนดประเภทของส่วนประกอบ (components) และตัวเชื่อมต่อ (connectors) ที่ระบบใช้ รวมถึงข้อจำกัดในการรวมกันของส่วนประกอบและตัวเชื่อมต่อเหล่านั้น

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

หัวข้อนี้ครอบคลุมรูปแบบคลาสสิก เช่น แบบชั้น (layered), ไคลเอนต์-เซิร์ฟเวอร์ (client-server), ท่อและตัวกรอง (pipe-and-filter), คลังข้อมูล (repository หรือ data-centered), ขับเคลื่อนด้วยเหตุการณ์ (event-driven) และเผยแพร่-สมัครสมาชิก (publish-subscribe), ไมโครเคอร์เนล (microkernel), และสถาปัตยกรรมเชิงบริการ (service-oriented) และไมโครเซอร์วิส (microservice); รูปแบบสถาปัตยกรรม REST สำหรับระบบเครือข่าย; และการแลกเปลี่ยนคุณสมบัติ (quality-attribute trade-offs) ที่เป็นแรงจูงใจในการเลือกรูปแบบหนึ่งเหนืออีกรูปแบบหนึ่ง

Core questions

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

Key theories

รูปแบบในฐานะคำศัพท์ของส่วนประกอบ-ตัวเชื่อมต่อ
Shaw และ Garlan ได้อธิบายสถาปัตยกรรมโดยใช้รูปแบบที่เกิดขึ้นซ้ำๆ ของส่วนประกอบและตัวเชื่อมต่อพร้อมข้อจำกัดที่เกี่ยวข้อง ทำให้สาขาวิชานี้มีคำศัพท์ของรูปแบบต่างๆ เช่น ท่อและตัวกรอง, แบบชั้น, และคลังข้อมูล
รูปแบบสถาปัตยกรรม REST
Fielding ได้พัฒนา REST ขึ้นมาเป็นชุดของข้อจำกัด — การไร้สถานะ (statelessness), อินเทอร์เฟซที่เป็นหนึ่งเดียว (uniform interface), ความสามารถในการแคช (cacheability), ระบบแบบชั้น (layered system) — ซึ่งอธิบายถึงความสามารถในการปรับขนาดและความสามารถในการพัฒนาของเว็บ และเป็นแนวทางในการออกแบบบริการบนเครือข่าย

Clinical relevance

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

Evidence & guidelines

ISO/IEC/IEEE 42010 กำหนดกรอบการอธิบายสถาปัตยกรรมในแง่ของมุมมอง (viewpoints) และทัศนะ (views) ซึ่งเป็นที่ที่รูปแบบต่างๆ ได้รับการบันทึกและวิเคราะห์

History

การจัดหมวดหมู่รูปแบบสถาปัตยกรรมเริ่มต้นโดย Shaw และ Garlan ในช่วงกลางทศวรรษ 1990 เมื่อสถาปัตยกรรมซอฟต์แวร์กลายเป็นสาขาวิชาที่เป็นที่ยอมรับ; วิทยานิพนธ์ของ Fielding ในปี 2000 ได้ทำให้ REST เป็นทางการ และทศวรรษ 2010 ได้เห็นการเพิ่มขึ้นของรูปแบบไมโครเซอร์วิสและรูปแบบที่ขับเคลื่อนด้วยเหตุการณ์สำหรับระบบขนาดคลาวด์

Key figures

  • Mary Shaw
  • David Garlan
  • Roy Fielding
  • Len Bass

Related topics

Seminal works

  • shaw1996
  • fielding2000
  • bass2012

Frequently asked questions

ความแตกต่างระหว่างรูปแบบสถาปัตยกรรม (architectural style) และรูปแบบการออกแบบ (design pattern) คืออะไร?
รูปแบบสถาปัตยกรรมอธิบายถึงการจัดระเบียบทั้งระบบ — ประเภทของส่วนประกอบและตัวเชื่อมต่อ และกฎสำหรับการรวมเข้าด้วยกัน — ในขณะที่รูปแบบการออกแบบแก้ปัญหาการออกแบบที่เฉพาะเจาะจงมากขึ้นภายในส่วนประกอบ; รูปแบบสถาปัตยกรรมทำงานในระดับความละเอียดที่สูงกว่า
ระบบสามารถใช้รูปแบบได้มากกว่าหนึ่งรูปแบบหรือไม่?
ได้ ระบบจริงโดยทั่วไปมีความหลากหลาย โดยรวมรูปแบบต่างๆ เข้าด้วยกัน — ตัวอย่างเช่น สถาปัตยกรรมแบบชั้นที่ชั้นการนำเสนอ (presentation tier) ถูกขับเคลื่อนด้วยเหตุการณ์ และบริการต่างๆ สื่อสารกันผ่าน REST — โดยแต่ละรูปแบบจะถูกนำไปใช้ในจุดที่การแลกเปลี่ยนคุณสมบัติของมันเหมาะสมที่สุด

Methods for this concept

Related concepts