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

Anonim

RPC vs. RMI

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

RPC คืออะไร?

RPC ซึ่งย่อมาจาก Remote Procedure Call เป็นประเภทของการสื่อสารระหว่างกระบวนการ ซึ่งช่วยให้สามารถเรียกใช้ฟังก์ชันในกระบวนการอื่นที่ทำงานบนเครื่องคอมพิวเตอร์หรือเครื่องคอมพิวเตอร์ระยะไกลได้ แนวคิดนี้เกิดขึ้นเมื่อหลายปีก่อนในปีพ. ศ. 2523 แต่การใช้งานที่มีชื่อเสียงครั้งแรกใน Unix

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

ข้อได้เปรียบของการใช้ RPC คือความเป็นอิสระในรายละเอียดของเครือข่าย โปรแกรมเมอร์ต้องระบุในแบบนามธรรมในขณะที่ระบบปฏิบัติการจะดูแลรายละเอียดเครือข่ายภายใน ดังนั้นจึงทำให้การเขียนโปรแกรมทำได้ง่ายขึ้นและช่วยให้ RPC สามารถทำงานข้ามเครือข่ายได้แม้จะมีความแตกต่างทางกายภาพและโปรโตคอล implementations RPC มีอยู่ในระบบปฏิบัติการหลักทั้งหมดเช่น Unix, Linux, Windows และ OS X RPC โดยทั่วไปจะเป็นภาษาที่เป็นกลางเพราะฉะนั้นมัน จำกัด ชนิดข้อมูลให้มากที่สุดดั้งเดิมตั้งแต่พวกเขาต้องเป็นเรื่องธรรมดาสำหรับทุกภาษา วิธีการใน RPC ไม่ใช่เชิงวัตถุ แต่เป็นกลไกขั้นตอนแบบดั้งเดิมเช่นใน C.

R3 คืออะไร?

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

RMI ใช้กลไกการรักษาความปลอดภัย inbuilt ใน Java และยังมีโรงงานซ็อกเก็ตที่ช่วยให้สามารถใช้โปรโตคอลการขนส่งชั้นที่ไม่ใช่ TCP ได้ นอกจากนี้ RMI ยังมีวิธีหลีกเลี่ยงไฟร์วอลล์ ขั้นตอนที่เกิดขึ้นใน RMI คล้ายกับ RPC การใช้ RMI จะดูหลังจากรายละเอียดเครือข่ายภายในที่โปรแกรมเมอร์ไม่ต้องกังวลกับข้อมูลเหล่านี้

อะไรคือความแตกต่างระหว่าง RPC และ RMI?

• RPC เป็นภาษาที่เป็นกลางในขณะที่ RMI ถูก จำกัด ไว้ที่ Java

• RPC เป็นกระบวนการเช่นใน C แต่ RMI เป็นแบบเชิงวัตถุ

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

• RMI ง่ายต่อการตั้งโปรแกรมว่า RPC

• RMI ทำงานช้ากว่า RPC เนื่องจาก RMI เกี่ยวข้องกับการประมวลผลโค้ดไบต์ java

• RMI อนุญาตให้ใช้รูปแบบการออกแบบเนื่องจากลักษณะเชิงวัตถุขณะที่ RPC ไม่มีความสามารถนี้

สรุป:

RPC หรือ RMI RPC

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

รูปภาพมารยphép:

RPC แบบซิงโครนัสกับแบบอะซิงโครนัสโดย CAPS entreprise (CC BY-SA 3. 0)