แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง RPC และ RMI

RPC และ RMI เป็นกลไกที่เปิดใช้งานไคลเอนต์เพื่อเรียกใช้ขั้นตอนหรือวิธีการจากเซิร์ฟเวอร์ผ่านการสร้างการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ ความแตกต่างทั่วไประหว่าง RPC และ RMI คือ RPC สนับสนุน การเขียนโปรแกรมตามขั้นตอน เท่านั้นในขณะที่ RMI สนับสนุน การเขียนโปรแกรมเชิงวัตถุ

ความแตกต่างที่สำคัญอีกประการระหว่างทั้งสองก็คือพารามิเตอร์ที่ส่งไปยังการเรียกกระบวนการระยะไกลประกอบด้วย โครงสร้างข้อมูล ทั่วไป ในทางตรงกันข้ามพารามิเตอร์ที่ส่งไปยังวิธีการระยะไกลประกอบด้วย วัตถุ

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบRPCRMI
รองรับขั้นตอนการโปรแกรม
การเขียนโปรแกรมเชิงวัตถุ
พารามิเตอร์โครงสร้างข้อมูลทั่วไปจะถูกส่งไปยังกระบวนการระยะไกลวัตถุถูกส่งผ่านไปยังวิธีการระยะไกล
อย่างมีประสิทธิภาพต่ำกว่า RMIมากกว่า RPC และสนับสนุนโดยวิธีการเขียนโปรแกรมที่ทันสมัย ​​(เช่นกระบวนทัศน์เชิงวัตถุ)
ค่าโสหุ้ยมากกว่า
เปรียบเทียบค่อนข้างน้อย
พารามิเตอร์ In-out จำเป็นต้องมีใช่ไม่จำเป็น
ให้ความสะดวกในการเขียนโปรแกรม
สูง
ต่ำ

คำจำกัดความของ RPC

Remote Procedure Call (RPC) เป็นคุณสมบัติภาษาการเขียนโปรแกรมที่ออกแบบมาสำหรับการคำนวณแบบกระจายและอิงตามความหมายของ การ เรียก โพรซีเดอร์โลคัล เป็นรูปแบบบริการระยะไกลที่พบมากที่สุดและได้รับการออกแบบให้เป็นนามธรรมเพื่อให้กลไกการเรียกใช้โพรซีเดอร์เพื่อใช้ระหว่างระบบที่เชื่อมต่อผ่านเครือข่าย มันคล้ายกับกลไก IPC ที่ระบบปฏิบัติการอนุญาตให้กระบวนการจัดการข้อมูลที่ใช้ร่วมกันและจัดการกับสภาพแวดล้อมที่กระบวนการต่าง ๆ กำลังดำเนินการบนระบบที่แยกต่างหากและจำเป็นต้องมีการสื่อสารด้วยข้อความ

มาทำความเข้าใจกับวิธีการใช้ RPC ผ่านขั้นตอนที่กำหนด:

  • กระบวนการไคลเอนต์เรียกไคลเอ็นต์สตับด้วยพารามิเตอร์และการดำเนินการถูกระงับจนกว่าการโทรจะเสร็จสมบูรณ์
  • จากนั้นพารามิเตอร์จะถูกแปลเป็นรูปแบบที่ไม่ขึ้นอยู่กับเครื่องจักรโดย marshalling ผ่าน stub ไคลเอนต์ จากนั้นข้อความจะถูกจัดเตรียมซึ่งมีการแทนค่าพารามิเตอร์
  • ในการค้นหาข้อมูลประจำตัวของไซต์ไคลเอนต์สตับสื่อสารกับเซิร์ฟเวอร์ชื่อที่มีกระบวนการระยะไกล
  • การใช้โปรโตคอลการปิดกั้นไคลเอนต์ส่งข้อความไปยังเว็บไซต์ที่มีการเรียกขั้นตอนระยะไกลอยู่ ขั้นตอนนี้หยุด stub ไคลเอนต์จนกว่าจะได้รับการตอบกลับ
  • ไซต์เซิร์ฟเวอร์ได้รับข้อความที่ส่งจากฝั่งไคลเอ็นต์และแปลงเป็นรูปแบบเฉพาะของเครื่อง
  • ตอนนี้ stub ของเซิร์ฟเวอร์จะดำเนินการเรียกใช้โพรซีเดอร์เซิร์ฟเวอร์พร้อมกับพารามิเตอร์และ stub ของเซิร์ฟเวอร์จะถูกยกเลิกจนกว่าโพรซีเดอร์จะเสร็จสมบูรณ์
  • โพรซีเดอร์เซิร์ฟเวอร์ส่งคืนผลลัพธ์ที่สร้างไปยัง stub เซิร์ฟเวอร์และผลลัพธ์ถูกแปลงเป็นรูปแบบที่ไม่ขึ้นอยู่กับเครื่องที่ stub ของเซิร์ฟเวอร์และสร้างข้อความที่มีผลลัพธ์
  • ข้อความผลลัพธ์จะถูกส่งไปยัง stub ไคลเอ็นต์ซึ่งถูกแปลงกลับเป็นรูปแบบเฉพาะของเครื่องที่เหมาะสมสำหรับ stub ไคลเอ็นต์
  • ที่ไคลเอ็นต์สุดท้าย stub ส่งคืนผลลัพธ์ไปยังกระบวนการไคลเอ็นต์

คำจำกัดความของ RMI

Remote Method Invocation (RMI) คล้ายกับ RPC แต่เป็นภาษาเฉพาะและคุณสมบัติของ java อนุญาตให้เธรดเรียกใช้เมธอดบนวัตถุระยะไกล เพื่อรักษาความโปร่งใสในด้านไคลเอนต์และเซิร์ฟเวอร์นั้นจะดำเนินการวัตถุระยะไกลโดยใช้โครงและโครงกระดูก ต้นขั้วอยู่กับลูกค้าและสำหรับวัตถุระยะไกลจะทำงานเป็นพร็อกซี

เมื่อไคลเอนต์เรียกใช้วิธีการระยะไกล stub สำหรับวิธีการระยะไกลถูกเรียก stub ไคลเอนต์มีหน้าที่รับผิดชอบในการสร้างและส่งพัสดุที่มีชื่อของวิธีการและพารามิเตอร์ marshalled และโครงกระดูกมีหน้าที่รับผิดชอบในการรับพัสดุ

พารามิเตอร์ Skeleton unmarshals และเรียกใช้เมธอดที่ต้องการบนเซิร์ฟเวอร์ โครงกระดูก marshals ค่าที่กำหนด (หรือข้อยกเว้น) พร้อมพัสดุและส่งไปยังลูกค้าต้นขั้ว ต้นขั้วประกอบอีกครั้งพัสดุส่งคืนและส่งไปยังลูกค้า

ใน Java พารามิเตอร์จะถูกส่งไปยังเมธอดและส่งคืนในรูปแบบของการอ้างอิง นี่อาจเป็นปัญหาสำหรับบริการ RMI เนื่องจากวัตถุบางอย่างอาจไม่ใช่วิธีการระยะไกล ดังนั้นจึงต้องกำหนดว่าจะส่งผ่านข้อมูลอ้างอิงใดและไม่สามารถทำได้

Java ใช้กระบวนการที่ชื่อว่าเป็น อันดับ ซึ่งวัตถุจะถูกส่งผ่านเป็นค่า วัตถุระยะไกลมีการแปลโดยผ่านค่า นอกจากนี้ยังสามารถส่งผ่านวัตถุโดยการอ้างอิงผ่านการอ้างอิงระยะไกลไปยังวัตถุพร้อมกับ URL ของคลาสสตับ ผ่านการอ้างอิง จำกัด ต้นขั้วสำหรับวัตถุระยะไกล

ความแตกต่างที่สำคัญระหว่าง RPC และ RMI

  1. RPC สนับสนุนกระบวนทัศน์การเขียนโปรแกรมเชิงกระบวนงานจึงเป็นแบบอิง C ในขณะที่ RMI สนับสนุนกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุและอิงตามจาวา
  2. พารามิเตอร์ที่ส่งผ่านไปยังโพรซีเดอร์แบบรีโมตใน RPC เป็นโครงสร้างข้อมูลทั่วไป ในทางตรงกันข้าม RMI ส่งผ่านวัตถุเป็นพารามิเตอร์ไปยังวิธีการระยะไกล
  3. RPC ถือได้ว่าเป็น RMI เวอร์ชันเก่าและใช้ในภาษาการเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมตามขั้นตอนและสามารถใช้วิธีส่งผ่านตามค่าได้เท่านั้น เมื่อเทียบกับสิ่งอำนวยความสะดวก RMI ถูกออกแบบตามวิธีการเขียนโปรแกรมที่ทันสมัยซึ่งสามารถใช้การส่งผ่านตามค่าหรือการอ้างอิง ข้อดีอีกประการของ RMI คือพารามิเตอร์ที่ส่งผ่านโดยการอ้างอิงสามารถเปลี่ยนแปลงได้
  4. โปรโตคอล RPC สร้างโอเวอร์เฮดมากกว่า RMI
  5. พารามิเตอร์ที่ส่งผ่านใน RPC จะต้อง“ เข้า - ออก ” ซึ่งหมายความว่าค่าที่ส่งผ่านไปยังโพรซีเดอร์และค่าเอาต์พุตต้องมีประเภทข้อมูลเดียวกัน ในทางตรงกันข้ามไม่มีการบังคับให้ผ่านพารามิเตอร์ " เข้า - ออก " ใน RMI
  6. ใน RPC ไม่สามารถอ้างอิงได้เนื่องจากทั้งสองกระบวนการมีพื้นที่ที่อยู่แตกต่างกัน แต่เป็นไปได้ในกรณีของ RMI

ข้อสรุป

ทั้ง RPC และ RMI มีจุดประสงค์เดียวกัน แต่ใช้ในภาษาที่สนับสนุนกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกันดังนั้นจึงมีคุณสมบัติที่แตกต่างกัน

Top