งานเพิ่มเติมจากครั้งที่ 1
28 มิถุนายน 2544
นายพิชิต ชื่นสมศรี 42-4055-015-4 CSs3-R

1. ทำไมต้องทำการศึกษาเรื่อง Client/Server

-เนื่องจากการพัฒนาคอมพิวเตอร์มีขนาดที่เล็กลง ราคาถูกลง ทำให้มีความนิยมใช้คอมพิวเตอร์ขนาดเล็กเพิ่มมากขึ้น อีกทั้งทางด้านเครือข่าย
คอมพิวเตอร์ ก้าวหน้าจนถึงขึ้นการเชื่อมทรัพยากรต่าง ๆ ของคอมพิวเตอร์เข้าด้วยกันได้อย่างมีระบบจึงคิดที่จะใช้คอมพิวเตอร์ขนาดเล็ก(pc)
รวมไปถึงเครื่องขนาดใหญ่เช่น mainfram นี้มาเชื่อมต่อกันเป็นระบบแลนเน็ตเวิร์ค และสามารถใช้ซีพียูร่วมกันประมวลผลและ ร่วมกันทำงาน
ในฟังก์ชั่นต่างๆได้ ตามความเหมาะสมของระบบเพื่อให้ขีดความสามารถของทั้งระบบสูงขึ้น ในขณะที่ต้นทุนการลงทุนต่ำลง ประหยัดทรัพยากรและจัดการกับระบบฐานข้อมูลได้ง่าย อีกทั้งยังสามารถขยายระบบได้ตามความเหมาะสมขององค์กรอีกด้วย


2. การทำงานลักษณะ Client/Server เป็นอย่างไร

- การทำงานลักษณะ Client/Server นั้นประกอบไปด้วยส่วนสำคัญ 3 ส่วนคือ
1. ส่วนของผู้ใช้บริการ(client)
2. ส่วนเครือข่าย (network)
3. ส่วนของผู้ให้บริการ (server)

ตัว Client จะเริ่มด้วยการส่ง request ผ่าน networkไปยัง server เพื่อให้server ตอบรับและให้บริการตามคำร้องขอแก่ client ตัว server ไม่สามารถเป็นตัวเริ่มการติดต่อได้ ตัวเซิร์ฟเวอร์จะทำการแปลข้อความและพยายามทำตามคำร้องขอนั้นซึ่งอาจจะเกี่ยวข้องกับฐานข้อมูล การประมวลผลข้อมูลการควบคุมอุปกรณ์ภายนอก หรือการส่งคำร้องขอเพิ่มเติมไปยังเซิร์ฟเวอร์ตัวอื่น ตามลักษณะโครงสร้างแล้ว client หนึ่งตัวสามารถส่งคำร้องขอไปยังเซิร์ฟเวอร์ได้หลายตัวและเซิร์ฟเวอร์หนึ่งตัวก็สามารถให้บริการแก่ client ได้หลายตัวเช่นกัน หรือจะเรียกเซอร์ฟเวอร์ที่ทำงานแตกต่างกัน หากในระบบมี Server ที่ดูแลดาต้าเบสหลายตัว ระบบนั้นก็จะเป็นระบบจัดการข้อมูลแบบกระจาย ดังนั้นระบบฐานข้อมูลแบบกระจายจึงเป็นระบบที่ต้องทำงานโดยอาศัยการทำงานตามโมเดล client/server จากนั้นทางฝั่งclient จะแปลงออกมา
ให้อยู่ในรูปที่ผู้ใช้สามารถเข้าใจได้โดยผ่าน GUI ซึ่งอยู่ทางฝั่งclient เอง


3. การทำงานลักษณะใด ที่เรียกว่าเป็น Client/Server

- เช่นการทำงานในรูปแบบ internet ทึ่ผู้ใช้ร้องขอข้อมูลhomepageโดยการพิมพ์ url เข้าไปผ่านทางบราวเซอร์ของฝั่งclientจากนั้น
ข้อมูลจะถูกส่งผ่านไปยังฝั่ง server เมื่อได้รับแล้ว server จะทำการประมวลผล(ถ้ามีการประมวลผล เช่น การ serch หาข้อมูลต่างๆ)
จากนั้นจะส่งกลับมาให้ฝั่งServer ซึ่งข้อมูลที่ส่งมาจะอยู่ในรูปของ html ซึ่งจะแสดงให้ผู้ใช้เห็นกราฟฟิกต่างๆได้โดยผ่านการประมวลผล
ด้วยbrowser ของฝั่ง client เอง
- หรือการทำงานในรูปแบบของ Database Server ซึ่งหากจัดการข้อมูลเป็นฐานข้อมูลและให้บริการการเรียกใช้ผ่านคำสั่งจัดการ
ฐานข้อมูลมาตรฐาน เช่น SQL ส่วนทางฝั่งที่ทำหน้าที่ขอใช้บริการเรียกว่า ไคลแอนต์ เช่น พีซีที่ต่ออยู่บนเครือข่าย ขอเรียกใช้ฐานข้อมูล
เราเรียกพีซีนี้ว่า ดาต้าเบสไคลแอนต์


4. ให้อธิบายว่า Client/server เป็น computer Hardware หรือ Software

- Client และ Serverเป็นตัว Software ไม่มีอุปกรณ์ Hardware มาเกี่ยวข้องเพราะรูปแบบขั้นพื้นฐานของไคร์เอนท์/เซิร์ฟเวอร์จะเกี่ยวข้องกับโปรแกรม
การร้องขอ(request)ซึ่งตัว client จะส่งออกไปเมื่อตัวเซิร์ฟเวอร์ได้รับคำร้องขอนั้นตัวเซิร์ฟเวอร์จะพยายามตอบรับการร้องขอนั้นและจะส่งโปรแกรม
การตอบรับ(response) Hardware นั้นเป็นส่วนหนึ่งของระบบเน็ตเวิร์คที่จะทำให้ข้อมูลมีการส่งถึงกันได้ ซึ่งแสดงให้เห็นว่า client / Server เป็นเพียงโมเดลหนึ่งในระบบ เน็ตเวิร์คเท่านั้น


5. เราสามารถสร้าง Client/Server ขึ้นเองได้หรือไม่ อย่างไร

- เราสามารถสร้าง Client/Server เองได้หากเรามีอุปกรณ์ด้านเน็ตเวิร์คที่พร้อม เช่น Hub NIC หรือสายส่งต่างๆ รวมทั้งเครื่องคอมพิวเตอร์
โดยการset ให้คอมพิวเตอร์ตัวที่มีประสิทธิภาพในการทำงานสูงเป็นserver พร้อมทั้งใส่ Software ในระบบที่ฝั่ง Server ต้องการในการ
ประมวลผลเข้าไป แล้ว ให้ที่เหลือเป็น Client โดยที่ไม่ลืมใส่ Software ที่ระบบ Client ต้องการด้วยเช่นกัน ใช้สถาปัตยกรรมของ client/Server

ตามความเหมาะสมกับระบบงานและใช้ Protocal เดียวกัน



6. ให้อธิบายว่า Client/Server Programming , Structure Programming และ Object Oriented Programming ต่างกันอย่างไร

- Client/Server Programming เป็นการเขียนโปรแกรมในลักษณะที่มองถึงความต้องการของการประมวลผลข้อมูลในแต่ละฝั่งว่ามีหน้าที่แบบใด
ต้องการประมวลผลแบบใดรวมไปถึงรองรับในการสร้างการติดต่อและรับส่งข้อมูลให้มีความถูกต้องระหว่างเครื่องต่อเครื่อง

- Structure Programming เป็นโปรแกรมที่มีโครงสร้างที่แน่นอน มีการแบ่งโปรแกรมออกเป็นส่วนหัว และ ตัวโปรแกรม มีการประกาศตัวแปรที่
แน่นอนในส่วนหัวของโปรแกรม การเขียนโปรแกรมมีลักษณะแบบเรียงลำดับ(sequence) วนซ้ำ(loop) และแบบทางเลือก(selection) เช่นโปรแกรม
ภาษาระดับกลางต่างๆ เช่น C , Pascal , Cobol เป็นต้น

- Object Oriented Programming เป็นการเขียนโปรแกรมที่มองสิ่งที่สนใจและองค์ประกอบต่างๆอยู่ในรูปของวัตถุ(object) โดยที่ แต่ละ object นั้น
จะมีลักษณะ(Attribute)และวิธีการ(Method) เป็นของตัวเอง ซึ่งแต่ละ object จะมีส่วนสัมพันธ์กัน อีกทั้งยังมีคุณสมบัติในการสืบทอดคุณลักษณะ
(inheritance) หรือ Encapsulation อีกด้วย


7. คำว่า "Tier" ใน Client/Server Computing มีที่มาอย่างไร และหมายความว่าอย่างไร

- เนื่องจากโครงสร้างของระบบมีผลต่อการจัดการและรูปร่างหน้าตาของการออกแบบซอฟต์แวร์ การเลือกลักษณะโครงสร้างของระบบ
จะขึ้นอยู่กับความซับซ้อนของโปรแกรมประยุกต์ ระดับของข้อมูล ความต้องการในส่วนที่ติดต่อกับผู้ใช้ ประเภทของเครือข่าย และภาพโดยรวมของโปรแกรมประยุกต์ก่อนที่จะตัดสินใจเลือกชนิดของโครงสร้าง การออกแบบโครงสร้างที่ไม่เหมาะสมหรือความบกพร่อง
ของการใช้งานมีผลต่อการตอบสนองของ Client/Server การเลือกโครงสร้างจะมีผลมากต่อการพัฒนาและการดูแลรักษาโปรแกรมประยุกต์

ส่วนที่ใหญ่ที่สุดของโปรแกรมประยุกต์ที่end user ใช้ จะประกอบด้วย3 ส่วนใหญ่ๆ คือ
1. ส่วนที่แสดงผล
2. ส่วนประมวลผล (Application)
3. ส่วนของข้อมูล (Data)
โครงสร้าง Client/Server สามารถอธิบายได้โดยดูว่าส่วนประกอบที่แบ่งออกมาแล้วแยกไปตามเครือข่ายซึ่งการแบ่งออกเป็นส่วนๆ
นี้คือที่มาของ คำว่า "Tier"
ซึ่งทำให้เกิดสถาปัตยกรรมแบบ N-Tier ขึ้น ซึ่งแบ่งออกเป็น 2 แบบ ได้แก่

1. Two-tier Architecture ส่วนประกอบ 3 ส่วน ของโปรแกรมอันได้แก่ ส่วนแสดงผลส่วนประมวลผลและส่วนของข้อมูล
ซึ่งสามารถแบ่งได้ออกเป็น2 จำพวก คือ ส่วนของรหัสของ Client และส่วนของฐานข้อมูลของ Server ส่วนของการแสดงผล
ถูกควบคุมโดย Client ส่วนการประมวลผลนั้นจะแบ่งระหว่างตัว Client และตัว Server และส่วนของข้อมูลนั้นจะถูกเก็บ และ
จัดการผ่านตัว Server


ในการร้องขอข้อมูลจะอยู่ในรูปฟอร์มของ SQL โดยการส่ง SQLจาก Client ถึง Server ต้องการการเชื่อมต่อที่ค่อนข้างแน่นอนระหว่างทั้งสองชั้นClientจะต้องรู้ถึงวากยสัมพันธ์ของServerหรือมีการแปลงรูปแบบผ่าน
API (Application Program Interface) และมันจะต้องรู้ว่าServerว่าตั้งอยู่ที่ใดและข้อมูลจะถูกจัดการอย่างไร และข้อมูลถูกกำหนด อย่างไรการร้องขอจะถูกเก็บและประมวลผลบนเครื่องServerซึ่งเป็นศูนย์รวมของงานทั้งหมดเช่นการเช็คความถูกต้องของข้อมูล
การรวบรวมข้อมูลและการรักษาความปลอดภัยของข้อมูลข้อมูลจะถูกส่งคืนไปยังตัวClient และถูกจัดการในระดับของClient
แล้วแสดงผลออกมาเป็นต้น

2. Three-tier Architecture โครงสร้างแบบ Three tier พยายามเพื่อกำจัดข้อจำกัดของโครงสร้างแบบ two tier โดยแบ่งส่วน
การแสดงผลการประมวลผล และ ฐานข้อมูลออกจากกัน เป็น 3 ส่วน เครื่องมือที่เหมือนกัน สามารถใช้แสดงผลได้เหมือนกันกับ
ในระบบของ two tier อย่างไรก็ตามเครื่องมือเหล่านี้ถูกใช้สำหรับการควบคุมการแสดงผล เมื่อการคำนวณ หรือประมวลข้อมูล
ถูกใช้โดย หน่วยแสดงผลของ Client การเรียกใช้ถูกสร้างเป็นServerตัวกลาง ในชั้นนี้สามารถทำการคำนวณ หรือ สร้างการร้องขอ
เหมือน ตัวClient เพื่อส่งไปยังServerได้ Sever ตัวกลางสามารถเข้ารหัส เป็นภาษาที่ใช้กันทั่วไปได้ เช่นภาษา C ฟังก์ชั่นที่ใช้ใน
Serverชั้นกลางนี้อาจจะใช้ Multi-threaded และสามารถประมวลผลให้กับClient หลายๆ ตัวพร้อมกัน แม้ว่าจะใช้โปรแกรมประยุกต์ต่างกัน


ระบบ Three tier จะใช้เทคโนโลยีที่หลากหลาย โดยการเรียกใช้ตัวClient ถึงตัวServer ซึ่งระบบจะไปเรียกโปรแกรมย่อย หรือ ที่เรียกว่า RPC ซึ่งเราจะสามารถทำงานแบบ two tier ที่เป็นระบบใหญ่ ที่เกี่ยวข้องกับ SQL ได้ และระบบ Three tier สามารถใช้ประโยชน์จาก RPC ได้ RPC ถูกเรียกจากหน่วยแสดงผล ถึงServer ชั้นกลาง ซึ่งการใช้ RPC จะยืดหยุ่นกว่า SQL ซึ่งเรียกจาก ตัวClient ถึงตัวServer แบบโครงสร้าง
Two tier RPC จะเกิดจากการร้องขอของClient ซึ่งตัวClient จะส่งผ่านค่าตัวแปร สำหรับการร้องขอ และระบุถึงโครงสร้างข้อมูล เพื่อรับค่า
ที่ส่งกลับมา ในการแสดงผลของ Three tier นั้น ตัวClientไม่ต้องการที่ต้องใช้ SQL อีกต่อไป ทำให้การทำงานยืดหยุ่นมากขึ้น


บรรณานุกรม

- บัณฑิต จามรภูติ การประยุกต์ใช้ระบบไคลเอ็นต์/เซิร์ฟเวอร์.--กรุงเทพฯ : ว. เพ็ชรสกุล, 2542 120หน้า
-
รศ.ยืน ภู่วรวรรณ วารสาร DataNews ฉบับที่ 15 กรกฎาคม-กันยายน 2537 Last update : 03/07/1999
- อภิสิทธิ์ วีระไวทยะ นิตยสาร คอมพิวเตอร์ ปีที่ 20 ฉบับที่ 110 ประจำเดือน พฤศจิกายน - ธันวาคม 2537
- เจริญพร อัญชลีธรรม นิตยสาร คอมพิวเตอร์รีวิว ปีที่ 11 ฉบับที่ 110 ประจำเดือนตุลาคม 2536
- สุรชาติ พ่วงพุ่ม โครงสร้างข้อมูลกับปาสคาล กรุงเทพ : สำนักพิมพ์สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ
- http://web.ku.ac.th/schoolnet