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 แสดงให้เห็นที่นี่ – เลเยอร์การนำเสนอ แอปพลิเคชัน และฐานข้อมูล

N-เทียร์ Archiเทคเจอร์
เอ็น เทียร์ Archiแผนภาพเทคเจอร์

สามชั้นเหล่านี้สามารถแบ่งย่อยเพิ่มเติมเป็นชั้นย่อยต่างๆ ได้ขึ้นอยู่กับข้อกำหนด

เว็บไซต์ยอดนิยมบางแห่งที่ใช้สถาปัตยกรรมนี้ ได้แก่

  • 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 ชั้น มีสามชั้นที่แตกต่างกัน

  • เลเยอร์การนำเสนอ
  • เลเยอร์ลอจิกธุรกิจ
  • ชั้นฐานข้อมูล
3 เทียร์ Archiแผนภาพเทคเจอร์
3 เทียร์ Archiแผนภาพเทคเจอร์

เราใช้ตัวอย่างแบบฟอร์มนักเรียนแบบง่ายๆ เพื่อทำความเข้าใจทั้งสามชั้นนี้ โดยมีข้อมูลเกี่ยวกับนักเรียน เช่น ชื่อ ที่อยู่ อีเมล และรูปภาพ

เลเยอร์ส่วนต่อประสานผู้ใช้หรือเลเยอร์การนำเสนอ

3 ชั้น Archiเทคเจอร์

เลเยอร์การนำเสนอ

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 ชั้นมีดังต่อไปนี้

  1. พยายามแยกเลเยอร์ออกจากอีกเลเยอร์หนึ่งให้มากที่สุดโดยใช้เทคนิคเช่น Soap XML
  2. ใช้เครื่องมืออัตโนมัติบางอย่างเพื่อสร้างการแมประหว่างชั้นตรรกะทางธุรกิจและชั้นฐานข้อมูลเชิงสัมพันธ์ (ชั้นข้อมูล) เครื่องมือที่สามารถช่วยในการสร้างแบบจำลองเทคนิคการทำแผนที่เหล่านี้ ได้แก่ – Entity Framework และ Hibernate สำหรับ .Net เป็นต้น
  3. ในเลเยอร์ผู้นำเสนอไคลเอนต์ ให้วางโค้ดทั่วไปสำหรับไคลเอนต์ทั้งหมดในไลบรารีแยกต่างหากให้มากที่สุด สิ่งนี้จะช่วยเพิ่มความสามารถในการนำโค้ดกลับมาใช้ซ้ำได้สูงสุดสำหรับไคลเอนต์ทุกประเภท
  4. คุณสามารถเพิ่มเลเยอร์แคชลงในเลเยอร์ที่มีอยู่เพื่อเร่งประสิทธิภาพ

สรุป

สถาปัตยกรรม N-tier ช่วยจัดการส่วนประกอบทั้งหมด (เลเยอร์ธุรกิจ เลเยอร์การนำเสนอ และเลเยอร์ฐานข้อมูล) ของแอปพลิเคชันภายใต้หลังคาเดียว

แอปพลิเคชันที่ใช้ผู้ใช้จำนวนน้อยบนเครือข่ายพื้นที่ท้องถิ่นสามารถได้รับประโยชน์จากสถาปัตยกรรมแบบ n-tier

การออกแบบสถาปัตยกรรมดังกล่าวจะช่วยให้รักษา ปรับขนาด และปรับใช้แอปพลิเคชันบนอินเทอร์เน็ตได้อย่างมีประสิทธิภาพ