Unix Socket - ไคลเอนต์เซิร์ฟเวอร์รุ่น
Net Applications ส่วนใหญ่ใช้สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ซึ่งหมายถึงสองกระบวนการหรือสองแอปพลิเคชันที่สื่อสารระหว่างกันเพื่อแลกเปลี่ยนข้อมูลบางอย่าง หนึ่งในสองกระบวนการทำหน้าที่เป็นกระบวนการไคลเอ็นต์และอีกกระบวนการหนึ่งทำหน้าที่เป็นเซิร์ฟเวอร์
กระบวนการลูกค้า
นี่คือกระบวนการซึ่งโดยทั่วไปจะทำการร้องขอข้อมูล หลังจากได้รับคำตอบแล้วกระบวนการนี้อาจยุติหรืออาจดำเนินการอื่น ๆ
Exampleอินเทอร์เน็ตเบราว์เซอร์ทำงานเป็นแอปพลิเคชันไคลเอนต์ซึ่งส่งคำขอไปยังเว็บเซิร์ฟเวอร์เพื่อรับเว็บเพจ HTML หนึ่งหน้า
กระบวนการเซิร์ฟเวอร์
นี่คือกระบวนการที่รับคำขอจากลูกค้า หลังจากได้รับคำขอจากไคลเอ็นต์แล้วกระบวนการนี้จะดำเนินการประมวลผลที่จำเป็นรวบรวมข้อมูลที่ร้องขอและส่งไปยังไคลเอนต์ผู้ร้องขอ เมื่อเสร็จแล้วก็พร้อมให้บริการลูกค้ารายอื่น กระบวนการของเซิร์ฟเวอร์จะแจ้งเตือนและพร้อมให้บริการตามคำขอที่เข้ามาเสมอ
Example - เว็บเซิร์ฟเวอร์รอคำขอจากอินเทอร์เน็ตเบราว์เซอร์และทันทีที่ได้รับคำขอใด ๆ จากเบราว์เซอร์ระบบจะหยิบหน้า HTML ที่ร้องขอและส่งกลับไปยังเบราว์เซอร์นั้น
โปรดทราบว่าไคลเอ็นต์จำเป็นต้องทราบที่อยู่ของเซิร์ฟเวอร์ แต่เซิร์ฟเวอร์ไม่จำเป็นต้องทราบที่อยู่หรือแม้แต่การมีอยู่ของไคลเอ็นต์ก่อนที่จะมีการสร้างการเชื่อมต่อ เมื่อสร้างการเชื่อมต่อแล้วทั้งสองฝ่ายจะสามารถส่งและรับข้อมูลได้
สถาปัตยกรรม 2 ชั้นและ 3 ชั้น
สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์มีสองประเภท -
2-tier architecture- ในสถาปัตยกรรมนี้ไคลเอนต์โต้ตอบกับเซิร์ฟเวอร์โดยตรง สถาปัตยกรรมประเภทนี้อาจมีช่องโหว่ด้านความปลอดภัยและปัญหาด้านประสิทธิภาพ Internet Explorer และ Web Server ทำงานบนสถาปัตยกรรมสองชั้น ปัญหาด้านความปลอดภัยได้รับการแก้ไขโดยใช้ Secure Socket Layer (SSL)
3-tier architectures- ในสถาปัตยกรรมนี้มีซอฟต์แวร์อีกหนึ่งตัวที่อยู่ระหว่างไคลเอนต์และเซิร์ฟเวอร์ ซอฟต์แวร์กลางนี้เรียกว่า 'มิดเดิลแวร์' มิดเดิลแวร์ใช้ในการตรวจสอบความปลอดภัยและการทำโหลดบาลานซ์ทั้งหมดในกรณีที่มีภาระงานหนัก มิดเดิลแวร์รับคำขอทั้งหมดจากไคลเอ็นต์และหลังจากดำเนินการตรวจสอบสิทธิ์ที่จำเป็นแล้วจะส่งคำขอนั้นไปยังเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะทำการประมวลผลที่จำเป็นและส่งการตอบกลับกลับไปที่มิดเดิลแวร์และในที่สุดมิดเดิลแวร์ก็ส่งการตอบกลับนี้กลับไปยังไคลเอนต์ หากคุณต้องการใช้สถาปัตยกรรม 3 ชั้นคุณสามารถเก็บมิดเดิลแวร์ใด ๆ เช่นซอฟต์แวร์ Web Logic หรือ WebSphere ระหว่างเว็บเซิร์ฟเวอร์และเว็บเบราว์เซอร์ของคุณ
ประเภทของเซิร์ฟเวอร์
มีเซิร์ฟเวอร์สองประเภทที่คุณสามารถมีได้ -
Iterative Server- นี่เป็นรูปแบบเซิร์ฟเวอร์ที่ง่ายที่สุดที่กระบวนการของเซิร์ฟเวอร์ให้บริการไคลเอ็นต์หนึ่งเครื่องและหลังจากดำเนินการตามคำขอแรกเสร็จสิ้นแล้วจะมีการร้องขอจากไคลเอนต์อื่น ในขณะเดียวกันลูกค้ารายอื่นยังคงรอ
Concurrent Servers- เซิร์ฟเวอร์ประเภทนี้รันหลายกระบวนการพร้อมกันเพื่อตอบสนองคำขอจำนวนมากในคราวเดียวเนื่องจากกระบวนการหนึ่งอาจใช้เวลานานกว่าและไคลเอนต์อื่นไม่สามารถรอได้นาน วิธีที่ง่ายที่สุดในการเขียนเซิร์ฟเวอร์พร้อมกันภายใต้ Unix คือการแยกกระบวนการย่อยเพื่อจัดการกับไคลเอนต์แต่ละตัวแยกกัน
วิธีสร้างลูกค้า
ระบบเรียกร้องให้สร้างการเชื่อมต่อแตกต่างกันบ้างสำหรับไคลเอนต์และเซิร์ฟเวอร์ แต่ทั้งสองอย่างเกี่ยวข้องกับโครงสร้างพื้นฐานของซ็อกเก็ต ทั้งสองกระบวนการสร้างซ็อกเก็ตของตนเอง
ขั้นตอนที่เกี่ยวข้องในการสร้างซ็อกเก็ตบนฝั่งไคลเอ็นต์มีดังต่อไปนี้ -
สร้างซ็อกเก็ตด้วยไฟล์ socket() ระบบโทร.
เชื่อมต่อซ็อกเก็ตกับที่อยู่ของเซิร์ฟเวอร์โดยใช้ไฟล์ connect() ระบบโทร.
ส่งและรับข้อมูล มีหลายวิธีในการดำเนินการนี้ แต่วิธีที่ง่ายที่สุดคือใช้ไฟล์read() และ write() การโทรของระบบ
วิธีการสร้างเซิร์ฟเวอร์
ขั้นตอนที่เกี่ยวข้องในการสร้างซ็อกเก็ตบนฝั่งเซิร์ฟเวอร์มีดังต่อไปนี้ -
สร้างซ็อกเก็ตด้วยไฟล์ socket() ระบบโทร.
ผูกซ็อกเก็ตกับที่อยู่โดยใช้ไฟล์ bind()ระบบโทร. สำหรับซ็อกเก็ตเซิร์ฟเวอร์บนอินเทอร์เน็ตแอดเดรสประกอบด้วยหมายเลขพอร์ตบนเครื่องโฮสต์
ฟังเพื่อเชื่อมต่อกับไฟล์ listen() ระบบโทร.
ยอมรับการเชื่อมต่อกับไฟล์ accept()ระบบโทร. โดยทั่วไปสายนี้จะบล็อกการเชื่อมต่อจนกว่าไคลเอ็นต์จะเชื่อมต่อกับเซิร์ฟเวอร์
ส่งและรับข้อมูลโดยใช้ไฟล์ read() และ write() การโทรของระบบ
การโต้ตอบกับลูกค้าและเซิร์ฟเวอร์
ต่อไปนี้เป็นแผนภาพแสดงการโต้ตอบกับไคลเอนต์และเซิร์ฟเวอร์ที่สมบูรณ์ -