Examples and Use Cases (ตัวอย่างและกรณีการใช้งาน)
layered architecture เป็นหนึ่งใน architecture style ที่พบได้ทั่วไปที่สุดและปรากฏในบริบทมากมาย
ผู้ออกแบบระบบปฏิบัติการ (เช่น Linux หรือ Windows) มักใช้ layer ด้วยเหตุผลเดียวกับที่ application architect ทำ นั่นคือการแยก concern layer ที่พบได้ทั่วไปในระบบปฏิบัติการได้แก่:
Hardware layer
ประกอบด้วย hardware ทางกายภาพ เช่น CPU, memory และอุปกรณ์ I/O
Kernel layer
จัดหา hardware abstraction, การจัดการ memory และการจัดตารางเวลาของ process
System Call Interface layer
โต้ตอบกับ kernel เพื่อให้บริการของระบบ
User layer
ประกอบด้วยแอปพลิเคชันและ utility ที่ผู้ใช้โต้ตอบด้วย
โมเดล networking Open Systems Interconnection (OSI) เป็นแนวคิดว่าเครือข่ายควรแบ่งความรับผิดชอบอย่างไร ตัวอย่างเช่น protocol พื้นฐานของอินเทอร์เน็ต TCP/IP ประกอบด้วย layer ต่อไปนี้:
Physical layer
ส่งข้อมูลในทางกายภาพ
Data Link layer
ใช้การตรวจจับข้อผิดพลาดและการซิงโครไนซ์เฟรม
Network layer
จัดการ routing (เช่น IP)
Transport layer
รับประกันการส่งข้อมูลที่เชื่อถือได้ (เช่น TCP)
Application layer
จัดหาบริการต่าง ๆ เช่น อีเมล (SMTP), การถ่ายโอนไฟล์ (FTP) และการท่องเว็บ (HTTP)
layered architecture ส่งเสริมการแยก concern เพิ่ม maintainability และเปิดโอกาสให้พัฒนาแต่ละ layer ได้อย่างเป็นอิสระ ดังนั้น architecture ใด ๆ ที่ให้คุณค่ากับคุณสมบัติเหล่านี้ก็จะได้ประโยชน์จากมัน
layered architecture ยังพบได้ทั่วไปอย่างมากสำหรับทีมที่พยายามบรรลุ architectural characteristic ของ feasibility : เราสามารถส่งมอบขอบเขตที่กำหนดไว้ได้จริงหรือไม่ ภายในเวลาที่กำหนดด้วยทรัพยากรที่มีอยู่? ตัวอย่างเช่น ถ้าองค์กรได้รับทุนจากนักลงทุนและต้องส่งมอบสิ่งใดสิ่งหนึ่งให้เร็วที่สุดเท่าที่จะทำได้ ความเรียบง่ายของ layered architecture มักทำให้มันเป็นตัวเลือกที่ดี แม้ว่าบางส่วนอาจต้องถูกเขียนใหม่ในภายหลังเพื่อให้ได้ความสามารถอื่น ๆ
1 Business Delegate เป็น pattern ที่ออกแบบมาเพื่อลด coupling ระหว่าง business service กับ user interface Business delegate ทำหน้าที่เป็น adapter เพื่อเรียกใช้ business object จาก presentation tier