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


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

มัลติเทียร์(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 การเขียนโปรแกรมแบบมัลติเทียร์นี้มีหลักง่ายๆคือ

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

ข้อดี

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

ข้อเสีย

  • การพัฒนาโปรแกรมค่อนข้างยุ่งยากกว่าแบบ 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 ของไมโครซอฟท์
หมายเลขบันทึก: 126856เขียนเมื่อ 10 กันยายน 2007 17:32 น. ()แก้ไขเมื่อ 23 มิถุนายน 2012 03:50 น. ()สัญญาอนุญาต: สงวนสิทธิ์ทุกประการจำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (6)
สำหรับ Web Application AJAX ป่าวคับ น่าจาเข้าข่าย

AJAX หรือAsynchronous JavaScript And XML  เป็นวิธีการพัฒนาเว็บแอพพลิคเคชัน ให้มีความสามารถโต้ตอบกับผู้ใช้งานได้ดีขึ้น

  • ลดทราฟิกของการส่งข้อมูลที่ซ้ำซ้อน (ไม่ต้องโหลดใหม่ทั้งหน้า)
  • โหลดและดึงข้อมูลเฉพาะส่วนที่เปลี่ยนแปลง เพื่อการแสดงผล

 โดยนำความสามารถของเทคโนยีหลายๆ อย่างมารวมกันอันได้แก่

  • XHTML และ CSS ใช้ในการแสดงผลลัพท์ข้อมูลให้ผู้ใช้ดู
  • Document Object Model   ใช้ในการจัดการกับข้อมูลและประมวลผลข้อมูล
  • XML และ XSLT ใช้เป็นโครงสร้างของข้อมูล และเป็นสื่อในการรับส่งข้อมูล
  • XMLHttpRequest ฟังก์ชั่นที่มีหน้าที่ร้องขอข้อมูลจาก เว็บเซิร์ฟเวอร์
  • JavaScript จะผูกทุกสิ่งเข้าด้วยกัน

เป็นblog ที่ดีมากๆเลยค่ะ

ให้ความรู้ในเรื่องที่ยาก แต่สามารถใช้คำอธิบายที่ทำให้สามารถเข้าใจได้ง่าย

ขอบคุณมากค่ะ

ขอบพระคุณที่อ่านแล้วเข้าใจ

คือผมอาจจะพูดขัดแย้งซักหน่อยนะคับ เรื่อง ความเร็วในการดึงข้อมูล

การติด application ไว้ที่ client เป็นการประมวลผมฝั่ง client ซึ่งเร็วที่สุดอยู่แล้วเพราะไม่ต้องใช้ server ประมวลผลเครื่องเดียว

ยกตัวอย่างนะคับ เช่น การ do while ผม สมมุติผม do while แล้วประมวลผม 3000 reccord ให้คำนวนร้อยละออกมา ในขณะนั้นก็

มีเครื่องอื่นใช้งานพร้อมกันอีก 20 เครื่อง server คุณก็ต้องประมวลผล 3000x20 = 60000 reccord แล้วในขณะที่ถ้าคุณใช้ client

แต่ละเครื่องประมวลผล(ประมวลผมฝั่ง client) จะประมวลผล 3000x1 = 3000 reccord เพราะฉะนั้นบอกได้เลยว่า client

application เร็วสุด

ข้อเสียขอวิธีนี้คือ โปรแกรมคุณจะต้องทำตัว set up และไปติดตั้งให้ client ทุกตัว เหนื่อยหน่อย และอาจจะต้องเจอปัญหาเรื่องการ

hack และ virus ในแต่ละเครื่อง client อีก

ที่นี้ก็มันดูวิธีการประมวลผลฝั่ง serverบ้าง พวกนี้ตัวอย่าง ก็จะเป็นพวก web page, web application client คุณจะทำการส่งคำ

ร้องในการประมวลผลไปนัง server serverคุณก็จะทำการเรียก database แล้วทำการประมวลผลข้อมูล ถ้าเป็น web ก็จะเปลี่ยน

ข้อมูลของคุณให้เป็น html แล้วส่งกลับไปให้ browser

ข้อเสียของ

ยังไงวิธีนี้ก็ช้ากว่าวิธีแรกแน่นอน เพราะประมวลผลอยู่ที่เดียว หากต้องการเพิ่มความเร็ว ต้องทำ farm server คับ คือ limit

connection ไว้ ถ้า connection เต็วก็ไปประมวลผล serverอีกตัว

ส่วน load balancing ผมเข้าใจว่ามันคือการต่อสายแลนเข้า router หลายหลายเส้น เพื่อขยาย traffic ในการเชื่อมต่อ internet ไม่

ได้เกี่ยวกับ muti tier นะคับ

สองท่านมองคนละมุม อาจารย์สำราญฯ เป็นการมองเชิงซอฟต์แวร์ ส่วนคุณ poppy_lovery จะมองมุม balancing ด้าน Haradware

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท