QUESTION...

>> ทำไมต้องทำการศึกษาเรื่อง Client-Server Computing ?
>> การทำงานลักษณะ Client-Server เป็นอย่างไร ?
>> การทำงานลักษณะใดที่เป็น Client-Server ?
>> ให้อธิบายว่า Client-Server เป็น Computer H/W หรือ Computer S/W ?
>> เราสามารถสร้าง Client-Server ขึ้นเองได้หรือไม่? อย่างไร?
>> ให้อธิบายว่า Client-Server Programming, Structure Programming,OO Programming ต่างกันอย่างไร ?
>> คำว่า " Tier " ใน Client-Server Computing มีที่มาอย่างไร ? และความหมายว่าอย่างไร ?


@ ทำไมต้องศึกษาเรื่อง Client-Server Computing ?
หตุที่ต้องศึกษาเรื่อง Client/server computing ก็เพราะเป็นเทคโนโลยีที่ใช้อยู่ในปัจจุบัน
และอาจรวมถึงอนาคตด้วย การทำงานของระบบนี้มีทั้งข้อดี-ข้อเสีย จึงเป็นเรื่องที่ต้อง
ทำความเข้าใจ เช่นถ้าต้องการ downsize จากระบบเก่าที่เป็น mini หรือ mainframe
สู่ client/server นั้นเหมาะสมหรือไม่ หรือกระทั่งเครื่อง PC ที่เป็น standalone หลายเครื่อง
ต้องการเป็น client/server นั้นต้องทำอย่างไรบ้าง เป็นต้น


@ การทำงานลักษณะ Client-Server เป็นอย่างไร ?
ารทำงานของระบบมีทั้งแบบ Fat client (thin server) หมายความว่ามีการ
share การประมวลผลไว้ที่เครื่อง client ส่วน server มีหน้าที่เก็บข้อมูล
ไว้รอการร้องขอจากคำสั่งของ client และแบบ fat server (thin client)
หมายถึง client ทำหน้าที่เป็น interface และให้มีการแก้ไขได้เล็กน้อย
มีการประมวลผลหลักๆ ที่ central server

ดั งรูปทางขวาแสดงถึงระบบ fat client ของสถาปัตยกรรม two-tier
ในส่วนของ client แบ่งการทำงานออกเป็นสอง layer ส่วนของ
presentation layer นั้นจะรับข้อมูลจาก user ส่งต่อไปยัง
business logic layer ทำการแปลงข้อมูลเพื่อส่งไปยัง server
ทางด้าน server มีส่วนของ data management layer ทำหน้าที่
แปลข้อความ,ทำตามคำร้องขอแล้วส่งข้อมูลกลับไปประมวลผลที่ฝั่ง
client ทางด้าน client นั้น business logic layer ทำการประมวลผล
แล้วส่งข้อมูลไปยัง presentation layer เพื่อแสดงผลให้แก่ user ต่อไป


@ การทำงานลักษณะใดที่เป็น Client-Server ?
ตั วอย่างของลักษณะงานที่เป็น Client/server ก็คือลักษณะการทำงานของ internet
เครื่องที่เป็น client ทำการร้องขอข้อมูล ซึ่งอาจเป็น web site ที่ต้องการ ไปยัง
server เครื่อง server ก็ทำการค้นหา และอาจส่งไฟล์ที่เป็น html กลับไปยังเครื่อง client
จากนั้นก็ทำการประมวลผลข้อมูลที่ได้มาเพื่อทำงานต่อไป


@ ให้อธิบายว่า Client-Server เป็น Computer H/W หรือ Computer S/W ?
ะบบ Client/server เป็นสถาปัตยกรรม software ที่ระบบ software ได้รับการออกแบบ
ให้แยกออกเป็นสองส่วน ส่วนแรกคือ client และอีกส่วนคือ server โดยที่ software client
จะขอใช้ข้อมูลจาก software server แล้ว software server จะตอบสนองโดยการดึงข้อมูล
จากฐานข้อมูล แล้วส่งไปยังส่วน client เพื่อการประมวลผลต่อไป

C lient คือ software ที่เป็นกระบวนงานในการขอบริการหรือข้อมูล client application
จะติดต่อกับ client application อื่นได้ และใช้ทรัพยากรร่วมกันและติดต่อขอใช้ข้อมูลและบริการ
จาก server ต่าง ๆ ทำให้เพิ่มขีดความสามารถของผู้ใช้งาน client สามารถมีหน้าจอของตัวเอง
ที่ได้รับการออกแบบมาให้ผู้ใช้สามารถใช้งานได้สะดวก โดยที่ไม่ต้องมีความรู้ด้านกลไกที่อยู่เบื้องหลัง
นั่นคือ client จะซ่อนความซับซ้อนของระบบปฏิบัติการเครือข่าย กรรมวิธีการนำข้อมูลมาใช้ทำให้
ผู้ใช้รู้สึกว่าสามารถทำงานได้อย่างสะดวกตามที่ตัวเองเข้าใจ

S erver คือ software ที่สามารถตอบสนองต่อการขอบริการและข้อมูลของ client server
มีหน้าที่ตีความ request ของ client การจัดการกับขั้นตอนการ access ข้อมูลหลังบริการ
การให้บริการข้อมูลเฉพาะที่ต้องใช้ software server อาจอยู่บนเครื่องคอมพิวเตอร์เครื่อง
เดียวกัน หรือบนต่างเครื่องกันก็ได้ ส่วนเครื่องที่ server ได้นั้นจะเป็นเครื่องระดับ Pentium
ระดับ mini หรือ mainframe แล้วแต่ระบบ


@ เราสามารถสร้าง Client-Server ขึ้นเองได้หรือไม่ ? อย่างไร ?
ราสามารถสร้าง Client/server ขึ้นเองได้โดย นำคอมพิวเตอร์สองเครื่องขึ้นไปมาเชื่อมต่อกัน
โดยใช้ NIC หรือ hub หรืออุปกรณ์ต่อพ่วงชนิดอื่น ๆ เชื่อมต่อกันโดยใช้ protocol ตัวเดียวกัน
แล้วทำการ set ให้เครื่องใดเครื่องทำหน้าที่เป็นเครื่อง server ส่วนเครื่องที่เหลือก็ set ให้เป็น client


@ ให้อธิบายว่า Client-Server Programming, Structure Programming,
OO Programming ต่างกันอย่างไร ?

O bject-oriented programming มี 3 คุณลักษณะคือ encapsulation, inheritance,
dynamic binding ทั้ง 3 คุณลักษณะนี้ทำให้ OOP แตกต่างจาก structured programming
models ที่ข้อมูลในแบบ structure นั้นจะมีชนิดและโครงสร้าง แยกต่างหากจากส่วนของ
โปรแกรม และมีการประมวลผลแบบตามลำดับOOP สร้างขึ้นบนแนวคิดของการใช้ซ้ำ
ในการพัฒนา class ของ objects ของ application

ส่ วน client/server programming สามารถสร้างการติดต่อระหว่างเครื่องสองเครื่องได้
โดยมีการแบ่งลักษณะการทำงานของโปรแกรมออกเป็นสองส่วนคือ ส่วนที่เป็น client
ทำหน้าที่ร้องขอ และส่วนที่เป็น server ทำหน้าที่ให้บริการซึ่งแตกต่างจากสองแบบแรก
คือไม่มีโครงสร้างของข้อมูล และไม่มีคุณลักษณะ 3 ประการดังกล่าวข้างต้น


@ คำว่า " Tier " ใน Client-Server Computing มีที่มาอย่างไร ? และความหมายว่าอย่างไร ?
คำ ว่า Tier ถูกใช้ในการอธิบายระดับของ hardware ในรูปแบบที่มีส่วนประกอบน้อยที่สุดของ
สถาปัตยกรรม client/server คือมีการร้องขอของหลายๆ clients จาก server เพียงเครื่องเดียว

รู ปด้านบน เป็น model ที่แสดงถึงสถาปัตยกรรม hardware แบบ two-tier และเพิ่ม tier มากขึ้น
ดังรูปด้านล่างแสดงถึงสถาปัตยกรรม client/server แบบ three-tier ซึ่งเครื่อง client ต่อเข้ากับ
local application server ซึ่งติดต่อกับ central database server
model นี้อาจยังไม่ดีนัก สังเกตว่าเครื่อง PC ที่ใช้ ที่มี interface application ก็เป็น client ส่วนเครื่อง
central database ที่เอาไว้เก็บข้อมูลก็เป็น server ส่วน local application server นั้น บางครั้ง
ก็เป็น client และบางครั้งก็เป็น server ขึ้นอยู่กับคำสั่งของการติดต่อสื่อสาร

จึ งได้มีการรวมเอาส่วนประกอบต่าง ๆ โดยอนุญาติให้ PC เชื่อมต่อโดยตรงกับ database server
ได้โดยผ่าน local server เรียกว่าสถาปัตยกรรม n-tier ดังรูปด้านล่าง สถาปัตยกรรมนี้
ใช้กันอย่างแพร่หลายทั้งในระบบ LAN, wan, internet และ world wide web