Yanıtlar:
RPC C tabanlıdır ve bu nedenle yapılandırılmış programlama semantiğine sahiptir, diğer taraftan RMI Java tabanlı bir teknolojidir ve nesne yönelimlidir.
RPC ile bir sunucuya dışa aktarılan uzak işlevleri çağırabilirsiniz, RMI'da uzak nesnelere referans alabilir ve yöntemlerini çağırabilir ve ayrıca birçok JVM örneği arasında dağıtılabilen daha uzak nesne referanslarını geçirebilir ve döndürebilirsiniz, bu yüzden çok daha güçlü .
Saf bir istemci-sunucu mimarisinden daha karmaşık bir şey geliştirme ihtiyacı ortaya çıktığında RMI göze çarpmaktadır. Nesneleri bir ağ üzerinden yaymak çok kolaydır, tüm istemcilerin tek tek bağlantıları açıkça saptamak zorunda kalmadan iletişim kurmasını sağlar.
RPC ve RMI arasındaki temel fark, RMI'nin nesneleri içermesidir . Proxy işlevini kullanarak yordamları uzaktan çağırmak yerine, bir proxy nesnesi kullanırız .
RMI ile daha fazla şeffaflık vardır, yani nesnelerin sömürülmesi, referanslar, kalıtım, polimorfizm ve teknoloji dile entegre edildiğinden istisnalar.
RMI, RPC'den daha ileri düzeydedir ve arabirimlerin çalışma zamanında değişebileceği dinamik çağırma ve ek bir soyutlama katmanı sağlayan nesne uyarlaması sağlar.
1. Yaklaşım:
RMI, kullanıcının nesneyi ve çağırması gereken nesnenin yöntemini bilmesi gereken nesne yönelimli bir paradigma kullanır.
RPC nesnelerle ilgilenmez. Bunun yerine, önceden kurulmuş olan belirli alt rutinleri çağırır.
2. Çalışma:
RPC ile, yerel bir çağrıya çok benzeyen bir prosedür çağrısı alırsınız. RPC, çağrıyı yerelden uzak bilgisayara geçirmeyle ilgili karmaşıklıkları ele alır.
RMI aynı şeyi yapar, ancak RMI nesneye ve çağrılan yönteme bir başvuru iletir.
RMI = RPC + Nesne yönelimi
3. Daha iyisi:
RMI, RPC'ye kıyasla daha iyi bir yaklaşımdır, özellikle de daha büyük programlarda, bir şeylerin yanlış gidip gitmediğini tanımlamak daha kolay bir kod sağlar.
4. Sistem Örnekleri:
RPC Sistemleri: SUN RPC, DCE RPC
RMI Sistemleri: Java RMI, CORBA, Microsoft DCOM / COM +, SOAP (Basit Nesne Erişim Protokolü)
Uzaktan Yordam Çağrısı (RPC) , yerel veya uzak makinede bulunan başka bir işlemdeki bir işlevin çağrılmasını sağlayan bir süreçler arası iletişimdir.
Uzaktan yöntem çağırma (RMI) , nesne yönelimli paradigma desteği ile Java'da RPC uygulayan bir API'dir.
RPC'yi çağırmanın bir C prosedürünü çağırmak gibi olduğunu düşünebilirsiniz. RPC, RMI destek yöntemi parametreleri / dönüş türlerini java nesneleri olarak desteklediği ilkel veri türlerini destekler.
RMI, RPC'nin aksine programlamak kolaydır. İş mantığınızı bir dizi ilkel veri türü yerine nesneler olarak düşünebilirsiniz.
RPC, java ile sınırlı olan RMI'dan farklı olarak dil açısından tarafsızdır
RMI, RPC'ye göre biraz daha yavaş
C RPC uygulaması için bu makaleye göz atın
RMI veya Uzaktan yöntemi invokation sunucusuna hem gönderme vekil nesneleri (veya koçanları) ancak ince bir fark istemci tarafında RPC çağırır olan RPC ya da istemci uzaktan yordam çağrı çok benzer FONKSİYONLARI vekil işlevi ve RMI çağırır YÖNTEMLERİ yoluyla proxy işlevi. RMI, nesneye yönelik bir RPC versiyonu olduğu için biraz üstün kabul edilir .
Gönderen burada .
RMI ve RPC arasındaki fark şudur:
method
ile a arasında dolaylı olarak vurguladığınız ancak netleştirmediğiniz farklılıklar nelerdir function
? Java'da hiçbir işlevleri yoktur ... ama OOP kadarıyla Hatırladığım kadarıyla, bunlar eş, ve bu yüzden vardır invocation
ve call
.
RPC , C'ye dayalı eski bir protokoldür. Uzak bir prosedürü çağırabilir ve yerel bir çağrı gibi görünmesini sağlayabilir.RPC, bu uzaktan çağrıyı sunucuya geçirmenin ve sonucu istemciye almanın karmaşıklıklarını işler.
Java RMI da aynı şeyi elde eder ama biraz farklıdır.Uzak nesneler için referanslar kullanır.Bu nedenle, uzak nesneye çağrılacak yöntemin adıyla birlikte bir referans göndermesi daha iyidir çünkü daha iyi sonuç verir. büyük programlar durumunda kod ve aynı zamanda nesnelerin ağ üzerinden dağıtımı, birden çok istemcinin her bağlantıyı tek tek kurmak yerine sunucudaki yöntemleri çağırmasını sağlar.
RMI
Java düşünüyorumgRPC
.Net gibi bir şey ...