คำตอบ:
RPC เป็นพื้นฐานของ C และด้วยเหตุนี้มันมีความหมายของการเขียนโปรแกรมที่มีโครงสร้างในอีกด้านหนึ่ง RMI เป็นเทคโนโลยีที่ใช้ Java และเป็นวัตถุเชิง
ด้วย RPC คุณสามารถเรียกใช้ฟังก์ชั่นระยะไกลที่ส่งออกไปยังเซิร์ฟเวอร์ใน RMI คุณสามารถมีการอ้างอิงไปยังวัตถุระยะไกลและเรียกใช้วิธีการของพวกเขาและยังผ่านและส่งกลับการอ้างอิงวัตถุระยะไกลเพิ่มเติมที่สามารถกระจายระหว่างอินสแตนซ์ JVM มากมาย .
RMI โดดเด่นเมื่อความต้องการในการพัฒนาบางสิ่งที่ซับซ้อนกว่าสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ที่แท้จริงเกิดขึ้น ง่ายมากที่จะกระจายออบเจ็กต์ผ่านเครือข่ายทำให้ลูกค้าทุกคนสามารถสื่อสารได้โดยไม่ต้องสร้างการเชื่อมต่อส่วนบุคคลอย่างชัดเจน
ความแตกต่างที่สำคัญระหว่าง RPC และ RMI คือว่าRMI เกี่ยวข้องกับวัตถุ แทนการเรียกขั้นตอนระยะไกลโดยใช้พร็อกซี่ฟังก์ชั่นที่เราใช้แทนพร็อกซี่วัตถุ
มีความโปร่งใสมากขึ้นกับ RMI คือเนื่องจากการเอารัดเอาเปรียบของวัตถุการอ้างอิงการสืบทอดความหลากหลายและข้อยกเว้นเนื่องจากเทคโนโลยีถูกรวมเข้ากับภาษา
RMI นั้นล้ำหน้ากว่า RPC ซึ่งอนุญาตให้มีการเรียกใช้แบบไดนามิกที่อินเตอร์เฟสสามารถเปลี่ยนแปลงได้ในขณะทำงานและการปรับตัวของวัตถุซึ่งให้เลเยอร์เพิ่มเติมของสิ่งที่เป็นนามธรรม
1. วิธีการ:
RMI ใช้กระบวนทัศน์เชิงวัตถุที่ผู้ใช้จำเป็นต้องรู้วัตถุและวิธีการของวัตถุที่เขาต้องการเรียกใช้
RPC ไม่จัดการกับวัตถุ แต่จะเรียกรูทีนย่อยเฉพาะที่สร้างไว้แล้ว
2. การทำงาน:
ด้วย RPC คุณจะได้รับการเรียกขั้นตอนที่มีลักษณะเหมือนการโทรภายใน RPC จัดการความซับซ้อนที่เกี่ยวข้องกับการส่งการโทรจากภายในเครื่องไปยังคอมพิวเตอร์ระยะไกล
RMI ทำสิ่งเดียวกัน แต่ RMI ส่งการอ้างอิงไปยังวัตถุและวิธีการที่ถูกเรียก
RMI = RPC + การวางแนววัตถุ
3. Better one:
RMI เป็นวิธีการที่ดีกว่าเมื่อเทียบกับ RPC โดยเฉพาะอย่างยิ่งกับโปรแกรมที่มีขนาดใหญ่กว่าเนื่องจากให้รหัสที่สะอาดกว่าและง่ายต่อการระบุว่ามีบางอย่างผิดปกติ
4. ตัวอย่างระบบ:
ระบบ RPC: SUN RPC, DCE RPC
ระบบ RMI: Java RMI, CORBA, Microsoft DCOM / COM +, SOAP (Simple Object Access Protocol)
Remote Procedure Call (RPC)เป็นการสื่อสารระหว่างกระบวนการที่อนุญาตให้เรียกใช้ฟังก์ชันในกระบวนการอื่นที่อยู่ในเครื่องท้องถิ่นหรือระยะไกล
รีโมตเมธอดการเรียกใช้ (RMI)เป็น API ซึ่งใช้ RPC ใน java พร้อมด้วยการสนับสนุนกระบวนทัศน์เชิงวัตถุ
คุณสามารถนึกถึงการเรียกใช้ RPC เหมือนกับการเรียกขั้นตอน C RPC รองรับชนิดข้อมูลดั้งเดิมที่เป็น RMI สนับสนุนพารามิเตอร์วิธี / ประเภทกลับเป็นวัตถุจาวา
RMI นั้นง่ายต่อการตั้งโปรแกรมไม่เหมือน RPC คุณสามารถคิดว่าตรรกะทางธุรกิจของคุณในแง่ของวัตถุแทนลำดับของชนิดข้อมูลดั้งเดิม
RPC เป็นภาษาที่เป็นกลางไม่เหมือน RMI ซึ่ง จำกัด อยู่ที่จาวา
RMI นั้นช้ากว่า RPC เล็กน้อย
ดูที่บทความนี้สำหรับการนำ RPC ไปใช้ใน C
RMI หรือระยะไกลวิธี Invokation จะคล้ายกับ RPC หรือโทรระยะไกลกระบวนงานในการที่ลูกค้าทั้งวัตถุส่งพร็อกซี่ (หรือไม่สมบูรณ์) ไปยังเซิร์ฟเวอร์ แต่แตกต่างที่ลึกซึ้งคือฝั่งไคลเอ็นต์ RPC จะเรียกฟังก์ชั่นผ่านฟังก์ชั่นพร็อกซี่และ RMI เรียกวิธี ผ่าน ฟังก์ชั่นพร็อกซี่ RMI นั้นถือว่าเหนือกว่าเล็กน้อยเนื่องจากเป็นเวอร์ชันเชิงวัตถุของ RPC
ข้อแตกต่างที่แท้จริงเพียงอย่างเดียวระหว่าง RPC และ RMI คือมีวัตถุที่เกี่ยวข้องใน RMI: แทนที่จะเรียกฟังก์ชั่นผ่านฟังก์ชั่นพร็อกซี่เราเรียกใช้วิธีการผ่านพร็อกซี
ความแตกต่างระหว่าง RMI และ RPC คือ:
method
และ a function
? ใน Java มีฟังก์ชั่นไม่มี ... แต่ใน OOP เท่าที่ผมจำได้ว่าพวกเขามีความหมายเหมือนกันและเพื่อให้มีและinvocation
call
RPCเป็นโปรโตคอลเก่าที่อิงกับ C.It สามารถเรียกใช้โพรซีเดอร์แบบรีโมตและทำให้ดูเหมือนกับการเรียกโลคอล RPC จะจัดการกับความซับซ้อนของการส่งผ่านรีโมตนั้นไปยังเซิร์ฟเวอร์และรับผลลัพธ์ไปยังไคลเอนต์
Java RMIยังประสบความสำเร็จในสิ่งเดียวกัน แต่แตกต่างกันเล็กน้อยมันใช้การอ้างอิงไปยังวัตถุระยะไกลดังนั้นสิ่งที่มันทำคือมันส่งการอ้างอิงไปยังวัตถุระยะไกลพร้อมกับชื่อของวิธีการที่จะเรียกมันจะดีกว่าเพราะมันส่งผลในการทำความสะอาด รหัสในกรณีของโปรแกรมขนาดใหญ่และการกระจายออบเจกต์บนเครือข่ายทำให้ลูกค้าหลายรายสามารถเรียกใช้เมธอดในเซิร์ฟเวอร์แทนการสร้างการเชื่อมต่อแต่ละรายการแยกกัน
RMI
ใน Java เป็นสิ่งที่เหมือนกันgRPC
ใน. Net ...