โปรโตคอลการเรียกขั้นตอนระยะไกล (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 ประกอบด้วยส่วนประกอบหลักของโปรแกรมห้าประการ:

  1. ไคลเอนต์
  2. ต้นขั้วลูกค้า
  3. รันไทม์ RPC
  4. เซิร์ฟเวอร์สตับ
  5. เซิร์ฟเวอร์
RPC Archiเทคเจอร์
RPC Archiเทคเจอร์

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 คือ มีความเสี่ยงสูงที่จะเกิดความล้มเหลว เนื่องจากเกี่ยวข้องกับระบบการสื่อสาร เครื่องจักรอื่น และกระบวนการอื่น