Thursday, May 5, 2016

สถาปัตยกรรมแบบไคลเอนท์เซิร์ฟเวอร์ (Client-Server Architectures)

สถาปัตยกรรมแบบไคลเอนท์เซิร์ฟเวอร์ (Client-Server Architectures)
ในปัจจุบันองค์กรหลายแห่งหันมาใช้ระบบตามสถาปัตยกรรมแบบไคลเอนท์เซิร์ฟเวอร์ ที่ทำให้สามารถสร้างความสมดุลย์ของภาระงานในการประมวลผลระหว่างอุปกรณ์ไคลเอนท์ และเซิร์ฟเวอร์
ด้วยสถาปัตยกรรมแบบนี้ ไคลเอนท์ทำหน้าที่ ในการแสดงผล () ในขณะที่เซิร์ฟเวอร์ ทำหน้าประมวลผลเชิงตรรกเพื่อเข้าถึงข้อมูล () และการจัดเก็บข้อมูล ()
นอกจากนี้ ในส่วนงานตรรกะของแอพพลิเคชั่น ยังอาจสามารถวางไว้ที่ไคลเอนท์ หรือเซิร์ฟเวอร์ ก็ได้ หรือวางไว้ทั้งสองฝั่ง
ทั้งนี้หากภาระงานส่วนใหญ่อยู่ที่ไคลเอนท์ จะเรียกว่า thick หรือ fat ไคล์เอนท์
ในปัจจุบัน ไคลเอนท์แบบธิน หรือบาง จะรับภาระงานส่วนน้อยของแอพพลิเคชั่น ซึ่งกำลังเป็นที่นิยมเนื่องมีภาระสูญเสียต่ำ และง่ายต่อการบำรุงรักษา
ตัวอย่างเช่น ระบบเว็บต่างๆ ถูกออกแบบให้ เว็บเบราเซอร์ทำหน้าที่แสดงผลเป็นหลัก และประมวลผลทางธุรกรรมเพียงเล็กน้อย การเข้าถึงข้อมูลทั้งหมด และการจัดเก็บข้อมูล เป็นภาระของเซิร์ฟเวอร์ทั้งสิ้น
สถาปัตยกรรมแบบไคลเอนท์เซิร์ฟเวอร์ (Client-Server Architectures)มีประโยชน์หลัก 4 ประการดังนี้
1. สามารถปรับเพิ่มลดได้ (Scalable)
หมายความว่า สถาปัตยกรรมแบบนี้ ทำให้สะดวกในการเพิ่มหรือลด พื้นที่ในการจัดเก็บข้อมูล และการประมวลผล ของเซิร์ฟเวอร์
หากเซิร์ฟเวอร์ตัวหนึ่งตัวใด มีภาระงานหนักมากเกินไป ก็จะสามารถเพิ่มเซิร์ฟเวอร์ตัวอื่น เข้าทดแทน หรือช่วยแบ่งงานได้ ซึ่งโดยปกติเซิร์ฟเวอร์ส่วนใหญ่ทำหน้าที่ประมวลผลทางด้าน แอพพลิเคชั่นลอจิก การเข้าถึงข้อมูล การจัดเก็บข้อมูล
2. ด้วยสถาปัตยกรรมไคลเอนท์เซิร์ฟเวอร์ ทำให้สามารถสนับสนุนรูปแบบการทำงานของไคลเอนท์เซิร์ฟเวอร์ที่หลากหลายรูปแบบ
ทำให้สามารถเชื่อมต่อคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการที่แตกต่างกันให้ทำงานร่วมกันได้ ทำให้ไม่ผูกพันกับผู้ค้ารายหนึ่งรายใด
ผู้ใช้สามารถเลือกประเภทคอมพิวเตอร์ได้ตามต้องการ (สามารถผสมผสานการใช้งานทั้งวินโดวส์และแมคโอเอส ของแอปเปิ้ล)
โดย มิดเดิ้ลแวร์ หรือซอฟต์แวร์ตัวกลาง ซึ่งเป็นซอฟต์แวร์ที่ถูกออกแบบมาเพื่อแปลการสื่อสาร หรือทำให้ซอฟต์แวร์ของผู้ให้บริการต่างๆ สามารถสื่อสาร และทำงานร่วมกันได้
ซึ่งจำเป็นต้อง ติดตั้งมิดเดิ้ลแวร์ ไว้ทั้ง ไคล์เอนท์และเซิร์ฟเวอร์  โดยมิดเดิ้ลแวร์จะทำหน้าที่เป็นตัวกลางในการแปลข้อมูล หรือสารของแต่ละซอฟต์แวร์ ให้เป็นภาษามาตรฐาน เพื่อให้ทั้งสองฝ่ายเข้าใจ
3. สำหรับสถาปัตยกรรมโครงสร้างแบบธินไคลเอนท์ ที่ใช้มาตรฐานอินเตอร์เน็ต ทำให้แยกแยะการแสดงผล การประมวลผลของแอพพลิเคชั่น และการเข้าถึงข้อมูล ได้อย่างง่ายดาย และทำให้การออกแบบเป็นอิสระต่อกัน
ตัวอย่างเช่น การแสดงผลด้วย HTML XML ที่ทำให้เว็บเบราเซอร์สามารถแสดงผลจากข้อมูลเหล่านี้ให้เป็น สี ขนาดอักษร คำสั่ง การใช้คำเฉพาะ ปุ่มคำสั่ง การเลือกรายการ และคำสั่งอื่นๆ ได้ถูกต้อง
ด้วยคำสั่งง่ายๆ เพื่อให้เกิดการเชื่อมโยงในแต่ละส่วนของอินเตอร์เฟสเข้าด้วยกัน ที่ทำหน้าที่แตกต่างหลากหลายเข้าด้วยกัน
และด้วย HTML และ XML ทำให้การปรับเปลี่ยนอินเตอร์เฟส ไม่ส่งผลกระทบต่อส่วนอื่นๆ
และในแนวทางเดียวกัน การปรับเปลี่ยนตรรกะของแอพพลิเคชั่น ก็จะไม่ส่งผลกระทบต่ออินเตอร์เฟส เช่นเดียวกัน  ไม่ว่าจะเป็นการเก็บข้อมูล และคำสั่ง SQL
4. ประการสุดท้าย หากเซิร์ฟเวอร์ล่ม ก็จะไม่ส่งผลกระทบต่อไคลเอนท์เนื่องจาก เฉพาะ แอพพลิเคชั่นเท่านั้นที่ต้องการเซิร์ฟเวอร์เพื่อประมวลผล นอกจากนี้ยังสามารถเปลี่ยนเซิร์ฟเวอร์แบบทันทีทันใด เพื่อทำหน้าที่แทนได้
อย่างไรก็ตามสถาปัตยกรรมแบบนี้ยังคงมีข้อด้อย หรือข้อจำกัดอยู่บ้าง โดยเฉพาะอย่างยิ่งความสลับซับซ้อนของระบบ
สถาปัตยกรรมแบบนี้จำเป็นต้องมีซอฟต์แวร์สองส่วน คือ ซอฟต์แวร์ เพื่อทำงานสำหรับเซิร์ฟเวอร์ และสำหรับไคลเอนท์ ที่แตกต่างกัน
การพัฒนาซอฟต์แวร์จึงมีความสลับซับซ้อนมากกว่าซอฟต์แวร์แบบดั้งเดิม ที่รวมทุกส่วนเข้าด้วยกัน
นอกจากนี้การปรับปรุงซอฟต์แวร์ก็จะมีความยุ่งยากสลับซับซ้อนเช่นเดียวกัน โดยผู้พัฒนาและดูแล จำเป็นต้องปรับปรุงซอฟแวร์สำหรับไคลเอนท์และเซิร์ฟเวอร์ทุกเครื่อง

No comments: