Architecture Characteristics Ratings (คะแนน Architecture Characteristics)
คะแนน 1 ดาว ใน characteristics ratings ใน Figure 13-9 หมายความว่า architecture characteristic นั้นไม่ได้รับการรองรับที่ดีนักใน architecture ในขณะที่คะแนน 5 ดาวหมายความว่า architecture characteristic นั้นเป็นจุดแข็งที่สุดอย่างหนึ่งของ architecture style นี้ นิยามของแต่ละ characteristic ที่ระบุใน scorecard สามารถดูได้ใน Chapter 4 .
ใน microkernel architecture style ก็คล้ายกับ layered คือความเรียบง่ายและต้นทุนโดยรวมเป็นจุดแข็งหลัก ในขณะที่ scalability, fault tolerance และ elasticity เป็นจุดอ่อนหลัก จุดอ่อนเหล่านี้เกิดจาก monolithic deployment ทั่วไปที่พบใน microkernel architecture เช่นเดียวกับ layered architecture style architecture quanta จะเป็นเลขเดียวเสมอ (1) เพราะทุกคำขอต้องผ่าน core system ก่อนที่จะไปถึง plug-in component ที่เป็นอิสระ ความคล้ายคลึงกันมีแค่นี้
Microkernel มีเอกลักษณ์ตรงที่เป็น architecture style เดียวที่สามารถเป็นได้ทั้ง domain partitioned และ technically partitioned แม้ microkernel architecture ส่วนใหญ่จะเป็น technically partitioned แต่แง่มุมของ domain-partitioning มักเกิดขึ้นผ่าน isomorphism ที่แข็งแกร่งระหว่าง domain กับ architecture ตัวอย่างเช่น ปัญหาที่ต้องการ configuration ต่างกันสำหรับแต่ละสถานที่หรือลูกค้าจะเข้ากันได้ดีมากกับ architecture style นี้ เช่นเดียวกับผลิตภัณฑ์หรือแอปพลิเคชันที่เน้นการปรับแต่งของผู้ใช้และการขยาย feature (เช่น Jira หรือ IDE อย่าง Eclipse)
Figure 13-9. คะแนน characteristics ของ microkernel architecture
Testability, deployability และ reliability ได้คะแนนสูงกว่าค่าเฉลี่ยเล็กน้อย (3 ดาว) ส่วนใหญ่เพราะฟังก์ชันการทำงานสามารถแยกไปไว้ใน plug-in component ที่เป็นอิสระได้ ถ้าทำได้ถูกต้อง วิธีนี้จะลด scope การทดสอบโดยรวมของการเปลี่ยนแปลง รวมถึงลดความเสี่ยงโดยรวมของการ deploy โดยเฉพาะถ้าการ deploy plug-in component เป็นแบบ runtime-based
Modularity และ evolvability ก็ได้คะแนนสูงกว่าค่าเฉลี่ยเล็กน้อยเช่นกัน (3 ดาว) ด้วย microkernel architecture style ฟังก์ชันเพิ่มเติมสามารถเพิ่ม ลบ และเปลี่ยนแปลงผ่าน plug-in component ที่เป็นอิสระและ self-contained ทำให้ขยายและปรับปรุงแอปพลิเคชันได้ค่อนข้างง่าย และช่วยให้ทีมตอบสนองต่อการเปลี่ยนแปลงได้เร็วขึ้นมาก ลองพิจารณาตัวอย่างซอฟต์แวร์เตรียมภาษีจากหัวข้อก่อนหน้า ถ้ากฎหมายภาษีของสหรัฐฯ เปลี่ยนแปลง (ซึ่งเกิดขึ้นตลอดเวลา) จนต้องมีฟอร์มภาษีใหม่ ฟอร์มภาษีใหม่นั้นสามารถสร้างเป็น plug-in component และเพิ่มเข้าไปในแอปพลิเคชันได้โดยไม่ต้องใช้ความพยายามมากนัก ในทำนองเดียวกัน ถ้าฟอร์มภาษีหรือ worksheet ใดไม่จำเป็นอีกต่อไป ก็สามารถลบ plug-in นั้นออกจากแอปพลิเคชันได้ง่าย ๆ
Responsiveness เป็น characteristic ที่น่าสนใจเสมอเวลาให้คะแนนกับ microkernel architecture style เราให้ 3 ดาว (สูงกว่าค่าเฉลี่ยเล็กน้อย) ส่วนใหญ่เพราะแอปพลิเคชัน microkernel มักมีขนาดเล็กและไม่โตขึ้นมากเท่า layered architecture ส่วนใหญ่ นอกจากนี้ยังไม่ค่อยประสบปัญหากับ antipattern Architecture Sinkhole ที่เรากล่าวถึงใน Chapter 10 มากนัก สุดท้าย microkernel architecture สามารถทำให้กระชับขึ้นได้ด้วยการถอด plug-in ที่ไม่จำเป็นออก ทำให้แอปพลิเคชันทำงานเร็วขึ้น ตัวอย่างที่ดีของสิ่งนี้คือ WildFly (เดิมคือ JBoss Application Server) การถอดฟังก์ชันที่ไม่จำเป็นออก เช่น clustering, caching และ messaging ทำให้ application server ทำงานเร็วขึ้นมากเมื่อเทียบกับตอนที่ยังมี feature เหล่านี้อยู่