วันศุกร์ที่ 1 มิถุนายน พ.ศ. 2555

มัลติเทียร์(multitier) n-tier คืออะไร




มัลติเทียร์(multitier) n-tier  Delphi

มัลติเทียร์(multitier)


คำว่า มัลติเทียร์(multitier)เป็นศัพท์ทางวิศวกรรมซอฟแวร์ บางทีอาจเรียกว่า สถาปัตย์กรรมแบบ n-tier ความหมายก็หมายถึงรูปแบบหรือนวัฒกรรมของการพัฒนาซอฟแวร์แบบใหม่ ที่ทดแทนรูปแบบการพัฒนาแบบ ไคลเอ็นท์-เซิร์ฟเวอร์(Client-Server) หรือแบบ 2-Tiers ซึ่งเป็นแบบเดิม โดยทำการแยกส่วนแอพพลิเคชั่นโปรแกรม ออกจากดาต้าเบสเซิร์ฟเวอร์โดยสิ้นเชิง ส่วน Store Procedure ,Trigger ก็ยังฝังอยู่ในดาต้าเบสเซิร์ฟเวอร์เหมือนเดิม เพื่อลดภาระของ client application และความรวดเร็วในการประมวลผล จุดประสงค์หลักของสถาปัตยกรรมแบบมัลติเทียร์ก็เพื่อลดภาระการทำงานของดาต้าเบสเซิร์ฟเวอร์(database server)

แบบ client-Server


     เมื่อผู้ใช้งานที่เครื่อง Client ต้องการข้อมูล ก็จะร้องขอข้อมูล(Reques Data)โดยส่งคำสั่ง SQL ไปดึงข้อมูลจาก database server โดยตรง หากมีจำนวน client เชื่อมต่ออยู่เป็นจำนวนมาก database server จะทำงานหนักประสิทธิภาพในการทำงานของระบบงานจะลดลง

แบบ multitier

   คอนเซ็ปง่ายๆ คือ ทำการสร้าง application server ไปฝังไว้ในเครื่อง application server ต่างหากหรืออาจจะเอาไว้เครื่องเดียวกันกับ database server ก็ได้ เมื่อผู้ใช้งานที่เครื่อง client ต้องการข้อมูล แทนที่จะร้องขอข้อมูลไปยัง database server โดยตรงก็ไม่ใช่ แต่จะร้องขอผ่าน Application Server เพื่อทำการดึงข้อมูลจาก database server เพื่อส่งกลับมาให้ client ทำให้ database server ทำงานน้อยลงเป็นการลดภาระเซิร์ฟเวอร์หรือนี่แหล่ะที่เรียกกันว่า การทำ load balancing การเขียนโปรแกรมแบบมัลติเทียร์นี้มีหลักง่ายๆคือ

    ติดตั้งฐานข้อมูลที่ database server ก่อน ได้แก่ฐานข้อมูลพวก Oracle, MS SQL Server, Infomix,Postgress,DB2 หรือฐานข้อมูลคุณภาพสูงและฟรีอย่าง Firebird หรือ MySQL เป็นต้น
    สร้าง application Server หรือเรียกกันติดปากว่า AppServe นั่นแหละด้วยเครื่องมือพัฒนาซอฟแวร์(Software Tools) เช่น Visual Studio,Delphi,Java,Netbean,PHP,ASP.net ฯลฯ เมื่อสร้างเสร็จก็ติดตั้งหรือ Registration ลงไปที่ Server หรือให้รันเป็นเซอร์วิสเพื่อให้ พร้อมรับการร้องขอข้อมูลจากเครื่อง client อยู่ตลอดเวลา (ถ้านึกไม่ออกให้นึกถึงตอนรัน AppServe แล้ว localhost ดูถ้าใช้ PHP เขียน
    สร้างโปรแกรมเพื่อติดตั้งที่เครื่อง client หรือที่เรียก Front end ส่วนนี้มี User Interface หน้าจอสวยงามเพื่อให้ใช้งานง่าย โดยโปรแกรมส่วนนี้จะทำการเชื่อมต่อ(connect)กับ application Server ผ่านช่องทางที่เรียก Socket หรือ TCP/IP โดยขึ้นอยู่กับเครื่องมือที่ใช้พัฒนาและระบบปฏิบัติการที่ใช้

ข้อดี multitier

    ประสิทธิภาพสูง เพราะไม่เป็นภาระของ database server
    ทำงานผ่านอินเทอร์เน็ตได้เลย โดยไม่ต้องพึ่งพา web browser
    ประหยัดค่าใช้จ่ายค่าลิขสิทธิ์ได้มากเพราะการเชื่อมต่อฐานข้อมูลเค้าคิดเป็นจำนวน client ที่เชื่อมกับ database โดยตรงถ้าจำนวนคอนเน็กชั่น client ยิ่งมากต้องยิ่งเสียเยอะ แต่ซอฟแวร์ที่เป็น multitier มี application server ตัวเดียวที่เชื่อมต่อกับ database server โดยตรง
    รองรับจำนวน connection ของ client ได้มากและมีประสิทธิภาพมากกว่าแบบ client server

ข้อเสีย multitier

    การพัฒนาโปรแกรมค่อนข้างยุ่งยากกว่าแบบ client server
    การติดตั้งระบบทำได้ยากกว่า client server

ซอฟแวร์ที่สนับสนุนการสร้างซอฟแวร์แบบ multitier

     แต่เดิมการพัฒนาซอฟแวร์แบบมัลติเทียร์นั้นสร้างค่อนข้างยุ่งยาก และยากต่อการติดตั้งใช้งาน ในปัจจุบันมีเครื่องมือที่สนับสนุนการสร้างซอฟแวร์แบบมัลติเทียร์ได้สะดวกขึ้นได้แก่

    Delphi(ควรเป็นเวอร์ชั่นตั้งแต่ 7 ขึ้นไป) ของค่าย Borland ต่อมาเปลี่ยนเป็น CodeGear Rad Studio 2010 ของบริษัท CodeGear และต่อมาก็เปลี่ยนของบริษัท Embarcadero ซึ่งออก Delphi Prism(http://www.codegear.com/products/delphi/prism)
    Visual Studio ของไมโครซอฟท์

By  samran1969 @ gotoknow.org

ไม่มีความคิดเห็น:

แสดงความคิดเห็น