โปรโตคอลการเรียกขั้นตอนระยะไกล (RPC) ในระบบแบบกระจาย
RPC คืออะไร?
การเรียกกระบวนการระยะไกล (RPC) เป็นเทคนิคการสื่อสารระหว่างกระบวนการ RPC ย่อมาจาก Remote Procedure Call ใช้สำหรับแอปพลิเคชันไคลเอนต์-เซิร์ฟเวอร์ กลไก RPC จะใช้เมื่อโปรแกรมคอมพิวเตอร์ทำให้กระบวนการหรือซับรูทีนทำงานในพื้นที่ที่อยู่ที่แตกต่างกัน ซึ่งเข้ารหัสเป็นการเรียกกระบวนการปกติโดยที่โปรแกรมเมอร์ไม่ต้องเข้ารหัสรายละเอียดสำหรับการโต้ตอบระยะไกลโดยเฉพาะ
การเรียกขั้นตอนนี้ยังจัดการโปรโตคอลการขนส่งระดับต่ำ เช่น User Datagram Protocol Transmission Control Protocol/Internet Protocol ฯลฯ ใช้สำหรับส่งข้อมูลข้อความระหว่างโปรแกรม
ประเภทของ RPC
RPC สามประเภทคือ:
- RPC โทรกลับ
- ออกอากาศ RPC
- RPC โหมดแบตช์
RPC โทรกลับ
RPC ประเภทนี้ช่วยให้เกิดกระบวนทัศน์ P2P ระหว่างกระบวนการที่เข้าร่วม ช่วยให้กระบวนการเป็นทั้งบริการไคลเอนต์และเซิร์ฟเวอร์
ฟังก์ชั่นของการโทรกลับ RPC:
- ปัญหาแอปพลิเคชันเชิงโต้ตอบที่ประมวลผลจากระยะไกล
- เสนอเซิร์ฟเวอร์พร้อมที่จับไคลเอนต์
- การโทรกลับทำให้กระบวนการไคลเอนต์รอ
- จัดการการหยุดชะงักของการโทรกลับ
- ช่วยอำนวยความสะดวกในกระบวนทัศน์แบบเพียร์ทูเพียร์ระหว่างกระบวนการที่เข้าร่วม
ออกอากาศ RPC
Broadcast RPC เป็นคำขอของลูกค้าซึ่งออกอากาศบนเครือข่ายซึ่งประมวลผลโดยเซิร์ฟเวอร์ทั้งหมดซึ่งมีวิธีในการประมวลผลคำขอนั้น
ฟังก์ชั่นของการออกอากาศ RPC:
- ช่วยให้คุณระบุได้ว่าข้อความคำขอของลูกค้าจะต้องออกอากาศ
- คุณสามารถประกาศพอร์ตการออกอากาศได้
- ช่วยลดภาระบนเครือข่ายทางกายภาพ
RPC โหมดแบตช์
RPC โหมดแบตช์ช่วยในการจัดคิวแยกคำขอ RPC ในบัฟเฟอร์การส่งข้อมูลบนฝั่งไคลเอนต์ จากนั้นส่งคำขอเหล่านั้นบนเครือข่ายในชุดเดียวไปยังเซิร์ฟเวอร์
ฟังก์ชั่นของ RPC โหมดแบตช์:
- ช่วยลดค่าใช้จ่ายที่เกี่ยวข้องกับการส่งคำขอให้เหลือน้อยที่สุด เนื่องจากจะส่งคำขอผ่านเครือข่ายในชุดเดียวไปยังเซิร์ฟเวอร์
- โปรโตคอล RPC ประเภทนี้มีประสิทธิภาพเฉพาะกับแอปพลิเคชันที่ต้องการอัตราการโทรที่ต่ำกว่าเท่านั้น
- ต้องใช้โปรโตคอลการส่งข้อมูลที่เชื่อถือได้
RPC Archiเทคเจอร์
สถาปัตยกรรม RPC ประกอบด้วยส่วนประกอบหลักของโปรแกรมห้าประการ:
- ไคลเอนต์
- ต้นขั้วลูกค้า
- รันไทม์ RPC
- เซิร์ฟเวอร์สตับ
- เซิร์ฟเวอร์
RPC ทำงานอย่างไร?
ขั้นตอนต่อไปนี้เกิดขึ้นในระหว่างกระบวนการ RPC:
ขั้นตอน 1) ไคลเอนต์ ไคลเอนต์ stub และอินสแตนซ์หนึ่งของรันไทม์ RPC ดำเนินการบนเครื่องไคลเอนต์
ขั้นตอน 2) ไคลเอ็นต์เริ่มต้นกระบวนการต้นขั้วของไคลเอ็นต์โดยการส่งพารามิเตอร์ตามปกติ ลูกค้าต้นขั้วจัดเก็บภายในพื้นที่ที่อยู่ของลูกค้าเอง นอกจากนี้ยังขอให้ RPC Runtime ภายในเครื่องส่งกลับไปยัง stub ของเซิร์ฟเวอร์ด้วย
ขั้นตอน 3) ในขั้นตอนนี้ ผู้ใช้สามารถเข้าถึง RPC ได้โดยทำการคำนวณตามขั้นตอนภายในเครื่องเป็นประจำ RPC Runtime จัดการการส่งข้อความระหว่างเครือข่ายผ่านไคลเอนต์และเซิร์ฟเวอร์ นอกจากนี้ยังทำหน้าที่ในการส่งซ้ำ ยืนยัน กำหนดเส้นทาง และเข้ารหัสอีกด้วย
ขั้นตอน 4) หลังจากเสร็จสิ้นขั้นตอนเซิร์ฟเวอร์แล้ว จะส่งคืนไปยังต้นขั้วเซิร์ฟเวอร์ ซึ่งจะแพ็ค (มาร์แชล) ค่าที่ส่งคืนลงในข้อความ ต้นขั้วเซิร์ฟเวอร์จะส่งข้อความกลับไปยังเลเยอร์การขนส่ง
ขั้นตอน 5) ในขั้นตอนนี้ เลเยอร์การขนส่งจะส่งข้อความผลลัพธ์กลับไปยังเลเยอร์การขนส่งไคลเอนต์ ซึ่งจะส่งคืนข้อความกลับไปยังต้นขั้วไคลเอนต์
ขั้นตอน 6) ในขั้นตอนนี้ ไคลเอ็นต์ stub demarshalls (คลายแพ็ก) พารามิเตอร์ที่ส่งคืนในแพ็กเก็ตผลลัพธ์ และกระบวนการดำเนินการจะส่งคืนไปยังผู้เรียก
ลักษณะของอาร์พีซี
นี่คือลักษณะสำคัญของ RPC:
- ขั้นตอนที่เรียกอยู่ในกระบวนการอื่น ซึ่งน่าจะอยู่ในเครื่องอื่น
- กระบวนการไม่แชร์พื้นที่ที่อยู่
- พารามิเตอร์ถูกส่งผ่านโดยค่าเท่านั้น
- RPC ดำเนินการภายในสภาพแวดล้อมของกระบวนการเซิร์ฟเวอร์
- ไม่มีการเข้าถึงสภาพแวดล้อมของขั้นตอนการโทร
คุณสมบัติของ RPC
นี่คือคุณสมบัติที่สำคัญของ RPC:
- ไวยากรณ์การโทรอย่างง่าย
- เสนอความหมายที่รู้จัก
- จัดเตรียมอินเทอร์เฟซที่กำหนดไว้อย่างดี
- สามารถสื่อสารระหว่างกระบวนการต่างๆ บนเครื่องเดียวกันหรือต่างกันได้
ข้อดีของ RPC
นี่คือข้อดี/ประโยชน์ของ RPC:
- วิธี RPC ช่วยให้ไคลเอนต์สื่อสารกับเซิร์ฟเวอร์โดยการใช้การเรียกกระบวนการทั่วไปในภาษาระดับสูง
- วิธี RPC ถูกสร้างแบบจำลองในการเรียกขั้นตอนในเครื่อง แต่ขั้นตอนที่เรียกมักจะถูกดำเนินการในกระบวนการอื่น และโดยปกติแล้วจะใช้คอมพิวเตอร์เครื่องอื่น
- RPC รองรับกระบวนการและโมเดลเชิงเธรด
- RPC ทำให้กลไกการส่งข้อความภายในถูกซ่อนไม่ให้ผู้ใช้เห็น
- ความพยายามจำเป็นต้องเขียนใหม่และพัฒนาโค้ดใหม่นั้นมีขั้นต่ำ
- การเรียกขั้นตอนระยะไกลสามารถใช้เพื่อวัตถุประสงค์ในการกระจายและสภาพแวดล้อมภายในเครื่อง
- ต้องใช้ชั้นโปรโตคอลหลายชั้นเพื่อปรับปรุงประสิทธิภาพ
- RPC ให้สิ่งที่เป็นนามธรรม ตัวอย่างเช่น ลักษณะการส่งข้อความของการสื่อสารผ่านเครือข่ายยังคงถูกซ่อนไม่ให้ผู้ใช้เห็น
- RPC อนุญาตให้ใช้แอปพลิเคชันในสภาพแวดล้อมแบบกระจายที่ไม่เพียงแต่ในสภาพแวดล้อมท้องถิ่นเท่านั้น
- ด้วยโค้ด RPC ความพยายามในการเขียนใหม่และพัฒนาใหม่จะลดลง
- โมเดลเชิงกระบวนการและเธรดรองรับโดย RPC
ข้อเสียของ RPC
ข้อเสีย/ข้อเสียของการใช้ RPC มีดังนี้
- การเรียกขั้นตอนระยะไกลส่งผ่านพารามิเตอร์ตามค่าเท่านั้นและค่าตัวชี้ ซึ่งไม่ได้รับอนุญาต
- เวลาการเรียกขั้นตอนระยะไกล (และส่งคืน) (เช่น ค่าโสหุ้ย) อาจต่ำกว่าเวลาสำหรับขั้นตอนในเครื่องอย่างมาก
- กลไกนี้มีความเสี่ยงสูงต่อความล้มเหลวเนื่องจากเกี่ยวข้องกับระบบการสื่อสาร เครื่องจักรอื่น และกระบวนการอื่น
- แนวคิด RPC สามารถนำไปใช้ได้หลายวิธี ซึ่งไม่สามารถมาตรฐานได้
- ไม่มีความยืดหยุ่นใน RPC สำหรับสถาปัตยกรรมฮาร์ดแวร์ เนื่องจากส่วนใหญ่จะอิงตามการโต้ตอบ
- ต้นทุนของกระบวนการเพิ่มขึ้นเนื่องจากการเรียกขั้นตอนระยะไกล
สรุป
- การเรียกขั้นตอนระยะไกลคือ การสื่อสารระหว่างกระบวนการ เทคนิค.
- RPC สามประเภทคือ 1) RPC การโทรกลับ 2) Broadcast RPC และ 3) RPC โหมดแบทช์
- สถาปัตยกรรม RPC ประกอบด้วยส่วนประกอบหลัก 1 ส่วนของโปรแกรม: 2) ไคลเอ็นต์ 3) ไคลเอ็นต์สตับ 4) รันไทม์ RPC 5) เซิร์ฟเวอร์สตับ และ XNUMX) เซิร์ฟเวอร์
- ในวิธี RPC กระบวนการจะไม่แชร์พื้นที่ที่อยู่
- RPC เสนอไวยากรณ์การโทรอย่างง่ายและความหมายที่รู้จัก
- วิธี RPC ช่วยให้ไคลเอนต์สื่อสารกับเซิร์ฟเวอร์โดยการใช้การเรียกกระบวนการทั่วไปในภาษาระดับสูง
- ข้อเสียเปรียบที่ใหญ่ที่สุดของวิธี RPC คือ มีความเสี่ยงสูงที่จะเกิดความล้มเหลว เนื่องจากเกี่ยวข้องกับระบบการสื่อสาร เครื่องจักรอื่น และกระบวนการอื่น