N Tier (หลายชั้น), 3 ชั้น, 2 ชั้น Archiการสอนด้วยตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
สถาปัตยกรรมแบบ N-Tier หรือที่เรียกว่าสถาปัตยกรรมหลายระดับ (multi-tier architecture) กระจายแอปพลิเคชันไปไว้ในสามชั้นขึ้นไป เช่น ชั้นการนำเสนอ ชั้นตรรกะทางธุรกิจ และชั้นข้อมูล รูปแบบนี้ช่วยเพิ่มความสามารถในการขยายขนาด ความปลอดภัย และการนำกลับมาใช้ใหม่ได้สำหรับแอปพลิเคชันไคลเอ็นต์-เซิร์ฟเวอร์ระดับองค์กร

N-Tier คืออะไร?
An แอปพลิเคชัน N-Tier โปรแกรมคือโปรแกรมที่กระจายระหว่างคอมพิวเตอร์สามเครื่องขึ้นไปในเครือข่ายแบบกระจาย
รูปแบบ n-tier ที่พบบ่อยที่สุดคือแอปพลิเคชัน 3 ระดับ และแบ่งออกเป็นสามประเภท
- การเขียนโปรแกรมส่วนต่อประสานกับผู้ใช้ในคอมพิวเตอร์ของผู้ใช้
- ตรรกะทางธุรกิจในคอมพิวเตอร์แบบรวมศูนย์มากขึ้นและ
- ข้อมูลที่จำเป็นในคอมพิวเตอร์ที่จัดการฐานข้อมูล
รูปแบบสถาปัตยกรรมนี้ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างแอปพลิเคชัน/ระบบที่นำกลับมาใช้ซ้ำได้ด้วยความยืดหยุ่นสูงสุด
In ระดับ N, “N” หมายถึงจำนวนระดับหรือชั้นที่กำลังใช้งานอยู่ เช่น – 2 ชั้น 3 ชั้นหรือ 4 ชั้นเป็นต้น- มันยังถูกเรียกว่า “หลายชั้น Archiเทคเจอร์"
สถาปัตยกรรมแบบ n-tier เป็นโมเดลสถาปัตยกรรมซอฟต์แวร์ที่ได้รับการพิสูจน์แล้วในอุตสาหกรรม เหมาะสำหรับรองรับแอปพลิเคชันไคลเอ็นต์-เซิร์ฟเวอร์ระดับองค์กร โดยให้โซลูชันด้านความสามารถในการขยายขนาด ความปลอดภัย ความทนทานต่อข้อผิดพลาด การนำกลับมาใช้ใหม่ และการบำรุงรักษา ช่วยให้นักพัฒนาสร้างแอปพลิเคชันที่ยืดหยุ่นและนำกลับมาใช้ใหม่ได้
N-เทียร์ Archiเทคเจอร์
การแสดงแผนภาพของระบบ n-tier แสดงให้เห็นที่นี่ – เลเยอร์การนำเสนอ แอปพลิเคชัน และฐานข้อมูล

สามชั้นเหล่านี้สามารถแบ่งย่อยเพิ่มเติมเป็นชั้นย่อยต่างๆ ได้ขึ้นอยู่กับข้อกำหนด
เว็บไซต์ยอดนิยมบางแห่งที่นำสถาปัตยกรรมนี้ไปใช้ ได้แก่:
- MakeMyTrip.com
- แอปพลิเคชันระดับองค์กรของฝ่ายขาย
- การรถไฟอินเดีย – IRCTC
- Amazon.com ฯลฯ
คำศัพท์พื้นฐานบางคำที่ควรจำไว้ เพื่อให้เข้าใจแนวคิดได้ชัดเจนยิ่งขึ้น:
- เครือข่ายแบบกระจาย: เป็นสถาปัตยกรรมเครือข่ายที่ส่วนประกอบต่างๆ ที่อยู่บนคอมพิวเตอร์ในเครือข่ายประสานงานและสื่อสารการกระทำของพวกมันโดยการส่งข้อความเท่านั้น มันคือกลุ่มของระบบหลายระบบที่ตั้งอยู่บนโหนดต่างๆ แต่ผู้ใช้จะมองเห็นเป็นระบบเดียว
- มีเครือข่ายการสื่อสารข้อมูลเดียวซึ่งสามารถจัดการแยกกันโดยเครือข่ายต่างๆ
- ตัวอย่างหนึ่งของเครือข่ายแบบกระจาย (Distributed Network) คือ เครือข่ายที่ลูกค้าหลายรายเชื่อมต่อกันภายในสถาปัตยกรรม LAN ด้านหนึ่ง และอีกด้านหนึ่งเชื่อมต่อกับสวิตช์ความเร็วสูงพร้อมกับแร็คเซิร์ฟเวอร์ที่มีโหนดบริการ
- ไคลเอนต์เซิร์ฟเวอร์ Archiเทคเจอร์: นี่คือแบบจำลองทางสถาปัตยกรรมที่โปรแกรมไคลเอ็นต์ (โปรแกรมหนึ่ง) ร้องขอการบริการจากโปรแกรมเซิร์ฟเวอร์ (อีกโปรแกรมหนึ่ง) เช่น เป็นบริการแบบร้องขอและตอบกลับที่ให้บริการผ่านทางอินเทอร์เน็ตหรืออินทราเน็ต ในรูปแบบนี้ ไคลเอนต์ จะทำหน้าที่เป็นชุดโปรแกรม/โค้ดชุดเดียวซึ่งดำเนินการชุดการดำเนินการผ่านเครือข่าย ในขณะที่ เซิร์ฟเวอร์ในทางกลับกันเป็นชุดของโปรแกรมอื่นซึ่งจะส่งชุดผลลัพธ์ไปยังระบบไคลเอ็นต์ตามที่ร้องขอ
- ในระบบนี้ คอมพิวเตอร์ไคลเอ็นต์จะจัดเตรียมอินเทอร์เฟซให้ผู้ใช้ปลายทางเพื่อร้องขอรับบริการหรือทรัพยากรจากเซิร์ฟเวอร์ และในทางกลับกัน เซิร์ฟเวอร์จะประมวลผลคำขอและแสดงผลลัพธ์ให้ผู้ใช้ปลายทางเห็น
- ตัวอย่างของโมเดลไคลเอ็นต์-เซิร์ฟเวอร์ คือ เครื่องเอทีเอ็ม ธนาคารเป็นเซิร์ฟเวอร์ที่ประมวลผลแอปพลิเคชันภายในฐานข้อมูลลูกค้าขนาดใหญ่ และเครื่องเอทีเอ็มเป็นไคลเอ็นต์ที่มีส่วนติดต่อผู้ใช้พร้อมแอปพลิเคชันประมวลผลอย่างง่าย
- แพลตฟอร์ม: ในวิทยาการคอมพิวเตอร์หรืออุตสาหกรรมซอฟต์แวร์ แพลตฟอร์มคือระบบที่โปรแกรมแอปพลิเคชันสามารถทำงานได้ ประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์ที่มีคำสั่งในตัวสำหรับโปรเซสเซอร์/ไมโครโปรเซสเซอร์เพื่อดำเนินการเฉพาะอย่าง
- กล่าวโดยง่าย แพลตฟอร์มคือระบบหรือฐานที่แอปพลิเคชันใด ๆ ก็สามารถทำงานและดำเนินการเพื่อให้บรรลุเป้าหมายเฉพาะได้
- ตัวอย่างของแพลตฟอร์ม – เครื่องส่วนบุคคลที่โหลดไว้ Windows 2000 หรือ Mac OS X เป็นตัวอย่างของ 2 แพลตฟอร์มที่แตกต่างกัน
- ฐานข้อมูล: เป็นการรวบรวมข้อมูลในลักษณะที่เป็นระบบเพื่อให้สามารถเข้าถึง จัดการ และปรับปรุงได้ง่าย
- ตัวอย่างฐานข้อมูล – MySQL, SQL เซิร์ฟเวอร์และ Oracle Database ฐานข้อมูลเหล่านี้เป็นฐานข้อมูลที่ใช้กันทั่วไปบางประเภท
ประเภทของ N-Tier Archiเทคเจอร์
N-Tier มีหลายประเภท Archiเทคเจอร์เช่น 3 ชั้น Archiเทคเจอร์ 2 ชั้น Archiโครงสร้างและชั้นเดียว Archiเทคเจอร์
ก่อนอื่นเราจะเห็น 3 ชั้น Archiเทคเจอร์ซึ่งมีความสำคัญมาก
3 ชั้น Archiเทคเจอร์
เมื่อดูแผนภาพด้านล่าง คุณจะสามารถระบุสิ่งนั้นได้อย่างง่ายดาย สถาปัตยกรรม 3 ชั้น มีสามชั้นที่แตกต่างกัน
- เลเยอร์การนำเสนอ
- เลเยอร์ลอจิกธุรกิจ
- ชั้นฐานข้อมูล

ในที่นี้เราได้ยกตัวอย่างแบบฟอร์มนักเรียนอย่างง่ายๆ เพื่อให้เข้าใจทั้งสามชั้นนี้ แบบฟอร์มนี้ประกอบด้วยข้อมูลเกี่ยวกับนักเรียน เช่น ชื่อ ที่อยู่ อีเมล และรูปภาพ
เลเยอร์ส่วนต่อประสานผู้ใช้หรือเลเยอร์การนำเสนอ
เลเยอร์การนำเสนอ
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { // Object of the Property layer clsStudent objproperty=new clsStudent(); // Object of the business layer clsStudentInfo objbs=new clsStudentInfo(); // Object of the dataset in which we receive the data sent by the business layer DataSet ds=new DataSet(); // here we are placing the value in the property using the object of the //property layer objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString()); // In this following code we are calling a function from the business layer and // passing the object of the property layer which will carry the ID till the database. ds=objbs.GetAllStudentBsIDWise(objproperty); // What ever the data has been returned by the above function into the dataset //is being populate through the presentation laye. txtId.Text=ds.Tables[0].Rows[0][0].ToString(); txtFname.Text=ds.Tables[0].Rows[0][1].ToString(); txtAddress.Text=ds.Tables[0].Rows[0][2].ToString(); txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
Code คำอธิบาย
- โค้ดข้างต้นกำหนดการออกแบบพื้นฐานของส่วนหน้า (front-end) ของแอปพลิเคชัน รวมถึงการเรียกใช้ฟังก์ชันของเลเยอร์อื่นๆ เพื่อให้สามารถทำงานร่วมกันได้
ชั้นการเข้าถึงธุรกิจ –
นี่คือหน้าที่ของชั้นธุรกิจที่รับข้อมูลจากชั้นแอปพลิเคชันและส่งผ่านไปยังชั้นข้อมูล
- ตรรกะทางธุรกิจทำหน้าที่เป็นส่วนเชื่อมต่อระหว่างเลเยอร์ไคลเอ็นต์และเลเยอร์การเข้าถึงข้อมูล
- ตรรกะทางธุรกิจทั้งหมด เช่น การตรวจสอบความถูกต้องของข้อมูล การคำนวณ การแทรก/แก้ไขข้อมูล จะถูกเขียนไว้ในเลเยอร์ตรรกะทางธุรกิจ
- ทำให้การสื่อสารระหว่างไคลเอ็นต์และเลเยอร์ข้อมูลรวดเร็วและง่ายขึ้น
- กำหนดกิจกรรมเวิร์กโฟลว์ที่เหมาะสมซึ่งจำเป็นต่อการทำงานให้เสร็จสมบูรณ์
// this is the function of the business layer which accepts the data from the //application layer and passes it to the data layer. public class clsStudentInfo { public DataSet GetAllStudentBsIDWise(clsStudent obj) { DataSet ds=new DataSet(); ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function return ds; } }
คำอธิบายของรหัส
โค้ดนี้ใช้ฟังก์ชันของเลเยอร์ธุรกิจ ซึ่งจะรับข้อมูลจากเลเยอร์แอปพลิเคชันและส่งต่อไปยังเลเยอร์ข้อมูล โค้ดของเลเยอร์ธุรกิจทำหน้าที่เป็นตัวกลางระหว่างฟังก์ชันที่กำหนดไว้ในเลเยอร์การนำเสนอและเลเยอร์ข้อมูล และเรียกใช้ฟังก์ชันในทางกลับกัน
เลเยอร์การเข้าถึงข้อมูล
นี่คือฟังก์ชันชั้นข้อมูลซึ่งรับข้อมูลจากชั้นธุรกิจและดำเนินการที่จำเป็นในฐานข้อมูล
// this is the datalayer function which is receiving the data from the business //layer and performing the required operation into the database public class clsStudentData // Data layer class { // object of property layer class public DataSet getdata_dtIDUise(clsStudent obj) { DataSet ds; string sql; sql="select * from student where Studentld=" +obj.id+ "order by Studentld; ds=new DataSet(); //this is the datalayer function which accepts the sql query and performs the //corresponding operation ds=objdt.ExecuteSql(sql); return ds; } }
คำอธิบายของรหัส
โค้ดที่กำหนดไว้ในเลเยอร์ชุดข้อมูลด้านบนจะรับคำขอทั้งหมดที่ระบบร้องขอ และดำเนินการตามที่ต้องการในฐานข้อมูล
2 ชั้น Archiเทคเจอร์
มันเป็นเหมือนสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ ที่การสื่อสารเกิดขึ้นระหว่างไคลเอนต์และเซิร์ฟเวอร์
ในสถาปัตยกรรมซอฟต์แวร์ประเภทนี้ ชั้นการนำเสนอหรือชั้นส่วนติดต่อผู้ใช้จะทำงานฝั่งไคลเอนต์ ในขณะที่ชั้นชุดข้อมูลจะถูกประมวลผลและจัดเก็บไว้ที่ฝั่งเซิร์ฟเวอร์
ไม่มีเลเยอร์ตรรกะทางธุรกิจหรือเลเยอร์ระดับกลางใดๆ อยู่ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์
ชั้นเดียวหรือ 1 ชั้น Archiเทคเจอร์
นี่เป็นวิธีที่ง่ายที่สุด เพราะเทียบเท่ากับการเรียกใช้แอปพลิเคชันบนคอมพิวเตอร์ส่วนบุคคล ส่วนประกอบที่จำเป็นทั้งหมดสำหรับการเรียกใช้แอปพลิเคชันนั้นอยู่บนแอปพลิเคชันหรือเซิร์ฟเวอร์เดียว
ชั้นการนำเสนอ ชั้นตรรกะทางธุรกิจ และชั้นข้อมูล ล้วนอยู่ในเครื่องเดียว
ข้อดีและข้อเสียของมัลติเทียร์ Archiเทคเจอร์
เช่นเดียวกับการเลือกใช้การออกแบบใดๆ แนวทางการออกแบบหลายระดับนำมาซึ่งข้อดีที่ชัดเจน พร้อมกับข้อเสียบางประการ ซึ่งสรุปไว้ด้านล่าง
| ข้อดี | ข้อเสีย |
|---|---|
| scalability | เพิ่มความพยายาม |
| ข้อมูล Integrity | เพิ่มความซับซ้อน |
| ความสามารถในเรอุส | |
| การกระจายตัวที่ลดลง | |
| ปรับปรุงความปลอดภัย | |
| ปรับปรุงความพร้อมใช้งาน |
ดังนั้นจึงเป็นส่วนหนึ่งของโปรแกรมที่เข้ารหัสปัญหาทางธุรกิจในโลกแห่งความเป็นจริงและกำหนดวิธีการอัปเดต สร้าง จัดเก็บ หรือเปลี่ยนแปลงข้อมูลเพื่อให้งานเสร็จสมบูรณ์
N-เทียร์ Archiคำแนะนำและการพัฒนา
เนื่องจากผู้เชี่ยวชาญด้านซอฟต์แวร์ต้องควบคุมทุกชั้นของสถาปัตยกรรมได้อย่างสมบูรณ์ เคล็ดลับเกี่ยวกับสถาปัตยกรรมแบบหลายชั้นจึงมีดังต่อไปนี้:
- พยายามแยกส่วนต่างๆ ออกจากกันให้มากที่สุดเท่าที่จะเป็นไปได้ โดยใช้เทคนิคอย่างเช่น SOAP XML
- ใช้เครื่องมืออัตโนมัติบางอย่างเพื่อสร้างแผนที่ping ระหว่างชั้นตรรกะทางธุรกิจและชั้นฐานข้อมูลเชิงสัมพันธ์ (ชั้นข้อมูล) เครื่องมือที่สามารถช่วยในการสร้างแบบจำลองแผนที่เหล่านี้ping เทคนิคที่ใช้ได้แก่ Entity Framework และ Hibernate สำหรับ .Net เป็นต้น
- ในเลเยอร์การนำเสนอฝั่งไคลเอ็นต์ ให้แยกโค้ดทั่วไปสำหรับไคลเอ็นต์ทุกประเภทไว้ในไลบรารีที่ต่างหากให้มากที่สุดเท่าที่จะเป็นไปได้ วิธีนี้จะช่วยเพิ่มการนำโค้ดกลับมาใช้ซ้ำได้สูงสุดสำหรับไคลเอ็นต์ทุกประเภท
- คุณสามารถเพิ่มเลเยอร์แคชลงในเลเยอร์ที่มีอยู่เพื่อเร่งประสิทธิภาพ

