N Tier (หลายชั้น), 3 ชั้น, 2 ชั้น Archiการสอนด้วยตัวอย่าง
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 ฯลฯ
คำศัพท์ทั่วไปบางคำที่ต้องจำเพื่อให้เข้าใจแนวคิดได้ชัดเจนยิ่งขึ้น
- เครือข่ายแบบกระจาย: เป็นสถาปัตยกรรมเครือข่ายที่ส่วนประกอบต่างๆ ที่ตั้งอยู่ในคอมพิวเตอร์เครือข่ายจะประสานงานและสื่อสารการทำงานของตนโดยการส่งข้อความเท่านั้น เป็นการรวบรวมระบบต่างๆ หลายระบบที่ตั้งอยู่ในโหนดต่างๆ แต่ปรากฏต่อผู้ใช้ว่าเป็นระบบเดียว
- มีเครือข่ายการสื่อสารข้อมูลเดียวซึ่งสามารถจัดการแยกกันโดยเครือข่ายต่างๆ
- ตัวอย่างของเครือข่ายแบบกระจาย ซึ่งไคลเอนต์ต่าง ๆ เชื่อมต่อกันภายในสถาปัตยกรรม LAN ด้านหนึ่ง และอีกด้านหนึ่ง เชื่อมต่อกับสวิตช์ความเร็วสูงพร้อมกับแร็คเซิร์ฟเวอร์ที่มีโหนดบริการ
- ไคลเอนต์เซิร์ฟเวอร์ Archiเทคเจอร์: เป็นแบบจำลองสถาปัตยกรรมที่ไคลเอนต์ (โปรแกรมหนึ่ง) ร้องขอบริการจากเซิร์ฟเวอร์ (โปรแกรมอื่น) เช่น เป็นบริการตอบรับคำขอผ่านทางอินเทอร์เน็ตหรือผ่านอินทราเน็ต ในรุ่นนี้ ไคลเอนต์ จะทำหน้าที่เป็นชุดโปรแกรม/โค้ดชุดเดียวซึ่งดำเนินการชุดการดำเนินการผ่านเครือข่าย ในขณะที่ เซิร์ฟเวอร์ในทางกลับกันเป็นชุดของโปรแกรมอื่นซึ่งจะส่งชุดผลลัพธ์ไปยังระบบไคลเอ็นต์ตามที่ร้องขอ
- ในที่นี้ คอมพิวเตอร์ไคลเอนต์จัดให้มีอินเทอร์เฟซสำหรับผู้ใช้ปลายทางเพื่อขอบริการหรือทรัพยากรจากเซิร์ฟเวอร์ และบนเซิร์ฟเวอร์อีกเครื่องหนึ่ง จากนั้นจะประมวลผลคำขอและแสดงผลลัพธ์แก่ผู้ใช้ปลายทาง
- ตัวอย่างโมเดลไคลเอนต์-เซิร์ฟเวอร์ – เครื่อง ATM ธนาคารเป็นเซิร์ฟเวอร์สำหรับประมวลผลแอปพลิเคชันภายในฐานข้อมูลลูกค้าขนาดใหญ่ และเครื่อง ATM เป็นไคลเอนต์ที่มีอินเทอร์เฟซผู้ใช้พร้อมการประมวลผลแอปพลิเคชันง่ายๆ
- แพลตฟอร์ม: ในวิทยาการคอมพิวเตอร์หรืออุตสาหกรรมซอฟต์แวร์ แพลตฟอร์มคือระบบที่โปรแกรมแอปพลิเคชันสามารถทำงานได้ แพลตฟอร์มประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์รวมกันซึ่งมีคำสั่งในตัวสำหรับให้โปรเซสเซอร์/ไมโครโปรเซสเซอร์ดำเนินการเฉพาะต่างๆ
- พูดง่ายๆ ก็คือ แพลตฟอร์มคือระบบหรือฐานที่แอปพลิเคชันต่างๆ สามารถเรียกใช้และดำเนินการเพื่อรับงานเฉพาะได้
- ตัวอย่างของแพลตฟอร์ม – เครื่องส่วนบุคคลที่โหลดไว้ Windows 2000 หรือ Mac OS X เป็นตัวอย่างของ 2 แพลตฟอร์มที่แตกต่างกัน
- ฐานข้อมูล: เป็นการรวบรวมข้อมูลในลักษณะที่เป็นระบบเพื่อให้สามารถเข้าถึง จัดการ และปรับปรุงได้ง่าย
- ตัวอย่างฐานข้อมูล – MySQL, SQL เซิร์ฟเวอร์และ Oracle Database เป็นค่า Db ทั่วไป
ประเภทของ N-Tier Archiเทคเจอร์
N-Tier มีหลายประเภท Archiเทคเจอร์เช่น 3 ชั้น Archiเทคเจอร์ 2 ชั้น Archiเทคเจอร์และ 1- ชั้น 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();
คำอธิบายรหัส
- โค้ดข้างต้นกำหนดการออกแบบพื้นฐานของมุมมองส่วนหน้าของแอปพลิเคชัน รวมถึงการเรียกใช้ฟังก์ชันของเลเยอร์อื่นๆ เพื่อให้สามารถรวมเข้าด้วยกันได้
ชั้นการเข้าถึงธุรกิจ –
นี่คือหน้าที่ของชั้นธุรกิจที่รับข้อมูลจากชั้นแอปพลิเคชันและส่งผ่านไปยังชั้นข้อมูล
- ตรรกะทางธุรกิจทำหน้าที่เป็นอินเทอร์เฟซระหว่างชั้นลูกค้าและชั้นการเข้าถึงข้อมูล
- ตรรกะทางธุรกิจทั้งหมด เช่น การตรวจสอบความถูกต้องของข้อมูล การคำนวณ การแทรก/แก้ไขข้อมูล จะถูกเขียนไว้ภายใต้ชั้นตรรกะทางธุรกิจ
- ทำให้การสื่อสารระหว่างไคลเอนต์และชั้นข้อมูลเร็วขึ้นและง่ายขึ้น
- กำหนดกิจกรรมเวิร์กโฟลว์ที่เหมาะสมซึ่งจำเป็นต่อการทำงานให้เสร็จสมบูรณ์
// 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คำแนะนำและการพัฒนา
เมื่อพิจารณาว่าผู้เชี่ยวชาญด้านซอฟต์แวร์ต้องมีการควบคุมเต็มรูปแบบในทุกชั้นของสถาปัตยกรรม เคล็ดลับเกี่ยวกับสถาปัตยกรรม n ชั้นมีดังต่อไปนี้
- พยายามแยกเลเยอร์ออกจากอีกเลเยอร์หนึ่งให้มากที่สุดโดยใช้เทคนิคเช่น Soap XML
- ใช้เครื่องมืออัตโนมัติบางอย่างเพื่อสร้างการแมประหว่างชั้นตรรกะทางธุรกิจและชั้นฐานข้อมูลเชิงสัมพันธ์ (ชั้นข้อมูล) เครื่องมือที่สามารถช่วยในการสร้างแบบจำลองเทคนิคการทำแผนที่เหล่านี้ ได้แก่ – Entity Framework และ Hibernate สำหรับ .Net เป็นต้น
- ในเลเยอร์ผู้นำเสนอไคลเอนต์ ให้วางโค้ดทั่วไปสำหรับไคลเอนต์ทั้งหมดในไลบรารีแยกต่างหากให้มากที่สุด สิ่งนี้จะช่วยเพิ่มความสามารถในการนำโค้ดกลับมาใช้ซ้ำได้สูงสุดสำหรับไคลเอนต์ทุกประเภท
- คุณสามารถเพิ่มเลเยอร์แคชลงในเลเยอร์ที่มีอยู่เพื่อเร่งประสิทธิภาพ
สรุป
สถาปัตยกรรม N-tier ช่วยจัดการส่วนประกอบทั้งหมด (เลเยอร์ธุรกิจ เลเยอร์การนำเสนอ และเลเยอร์ฐานข้อมูล) ของแอปพลิเคชันภายใต้หลังคาเดียว
แอปพลิเคชันที่ใช้ผู้ใช้จำนวนน้อยบนเครือข่ายพื้นที่ท้องถิ่นสามารถได้รับประโยชน์จากสถาปัตยกรรมแบบ n-tier
การออกแบบสถาปัตยกรรมดังกล่าวจะช่วยให้รักษา ปรับขนาด และปรับใช้แอปพลิเคชันบนอินเทอร์เน็ตได้อย่างมีประสิทธิภาพ