RPC ve RMI Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 5 Mayıs Ayı 2024
Anonim
RESTful API’lar ve JSON ile RPC
Video: RESTful API’lar ve JSON ile RPC

İçerik


RPC ve RMI, istemciyle sunucu arasında iletişim kurarak bir müşterinin sunucudan prosedürü veya yöntemi çağırmasını sağlayan mekanizmalardır. RPC ve RMI arasındaki ortak fark, yalnızca RPC’nin desteklemesidir. prosedürel programlama RMI desteklerken nesne yönelimli programlama.

İkisi arasındaki diğer önemli fark, uzak yordam çağrısına geçirilen parametrelerin sıradan veri yapıları. Öte yandan, uzak yönteme iletilen parametreler, nesneleri.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelRPCRMI
DesteklerProsedürel programlama
Nesne yönelimli programlama
ParametrelerSıradan veri yapıları uzak işlemlere geçirilir.Nesneler uzak yöntemlere iletilir.
verimRMI'den düşükRPC'den daha fazlası ve modern programlama yaklaşımı ile desteklenir (örn. Nesneye yönelik paradigmalar)
Genel giderlerDaha
Karşılaştırmalı olarak daha az
Giriş parametreleri zorunludur.EvetŞart değil
Programlama kolaylığı sağlanması
Yüksek
düşük


RPC'un tanımı

Uzaktan Prosedür Çağrısı (RPC) dağıtık hesaplama için geliştirilmiş ve anlambilimine dayalı bir programlama dili özelliğidir. yerel prosedür çağırır. En yaygın uzaktan servis formlarıdır ve bir ağ üzerinden bağlı sistemler arasında kullanılacak prosedür çağrısı mekanizmasını soyutlamanın bir yolu olarak tasarlanmıştır. İşletim sisteminin işlemlerin paylaşılan verileri yönetmesine izin verdiği ve farklı işlemlerin ayrı sistemler üzerinde yürütüldüğü ve zorunlu olarak iletişim kurması gereken bir ortamla ilgilendiği IPC mekanizmasına benzer.

RPC’nin verilen adımlarla nasıl uygulandığını anlayalım:

  • İstemci işlemi, istemci saplamasını parametrelerle çağırır ve arama tamamlanıncaya kadar yürütmesi askıya alınır.
  • Daha sonra parametreler, müşteri saplaması boyunca karıştırılarak makineden bağımsız forma çevrilir. Daha sonra parametrelerin gösterimini içeren hazırlanır.
  • Sitenin kimliğini bulmak için istemci, uzaktan prosedürün bulunduğu isim sunucusuyla iletişim kurar.
  • Engelleme protokolünü kullanarak istemci, uzaktan yordam çağrısının bulunduğu siteyi saplar. Bu adım, müşteri saplamasını bir cevap alana kadar durdurur.


  • Sunucu sitesi gönderilen tarafı müşteri tarafından alır ve makineye özgü formata dönüştürür.
  • Şimdi sunucu saplaması, parametrelerle birlikte sunucu prosedürü üzerine bir çağrı yürütür ve işlem tamamlanıncaya kadar sunucu saplaması durdurulur.
  • Sunucu prosedürü oluşturulan sonuçları sunucu saplamasına geri döndürür ve sonuçlar sunucu saplamada makineden bağımsız formata dönüştürülür ve sonuçları içeren bir içerik oluşturur.
  • Sonuç, müşteri saplamasına uygun makineye özel formata dönüştürülen müşteri saplamasına gönderilir.
  • Son istemcideki saplama, sonuçları istemci işlemine döndürür.

RMI'un tanımı

Uzaktan Yöntem Çağırma (RMI) RPC'ye benzer ancak dile özgüdür ve java özelliğidir. Bir iş parçacığının uzaktaki bir nesnede yöntemi çağırmasına izin verilir. İstemci ve sunucu tarafında şeffaflığı korumak için, taslakları ve iskeletleri kullanarak uzaktaki nesneyi uygular. Saplama, müşteriye aittir ve uzak nesne için bir vekil olarak davranır.

Bir istemci uzak bir yöntemi çağırdığında, uzak yöntemin saplaması çağrılır. Müşteri koçanı, bir yöntemin adını ve belirtilen parametreleri içeren parselin oluşturulmasından ve oluşturulmasından sorumludur ve iskelet parselin alınmasından sorumludur.

İskelet parametreleri marşalize eder ve sunucuda istenen yöntemi çağırır. İskelet verilen değeri (veya istisnaları) parselle birleştirir ve müşteriye saplar. Saplama, geri dönüş parselini yeniden birleştirir ve müşteriye verir.

Java'da parametreler yöntemlere iletilir ve başvuru şeklinde döndürülür. Tüm nesneler muhtemelen uzak yöntemler olmadığından, bu, RMI hizmeti için zahmetli olabilir. Bu nedenle hangisinin referans olarak alınabileceğini ve hangilerinin geçemeyeceğini belirlemesi gerekir.

Java adında bir işlem kullanıyor seri hale getirme nesnelerin değer olarak iletildiği yer. Uzak nesne değere göre yerelleştirilir. Nesne için uzak bir referansı, saplama sınıfının URL'si ile birlikte geçirerek referans yoluyla bir nesneyi de geçirebilir. Referansa göre iletme, uzak nesne için bir saplamayı kısıtlar.

  1. RPC, prosedürel programlama paradigmalarını destekler, böylece C, RMI nesne yönelimli programlama paradigmalarını destekler ve java tabanlıdır.
  2. RPC'de uzak işlemlere geçirilen parametreler sıradan veri yapılarıdır. Aksine, RMI nesneleri uzak metoda parametre olarak iletir.
  3. RPC, RMI'nın eski sürümü olarak kabul edilebilir ve prosedürel programlamayı destekleyen programlama dillerinde kullanılır ve yalnızca değer yöntemiyle pass kullanabilir. Buna karşılık olarak, RMI tesisi, değer veya referansa göre geçişi kullanabilecek modern programlama yaklaşımına dayalı olarak tasarlanmıştır. RMI'nin bir başka avantajı, referans yoluyla iletilen parametrelerin değiştirilebilmesidir.
  4. RPC protokolü, RMI'den daha fazla ek yük üretiyor.
  5. RPC'de geçen parametreler “olmalıdırIn-out”Bu, prosedüre geçirilen değer ile çıkış değerinin aynı veri tiplerine sahip olması gerektiği anlamına gelir. Aksine, geçme zorunluluğu yoktur ”In-outRMI'deki parametreler.
  6. RPC'de referanslar, iki işlemin ayrı adres alanına sahip olması nedeniyle mümkün olamamıştır, ancak RMI durumunda mümkündür.

Sonuç

Hem RPC hem de RMI aynı amaca hizmet eder ancak farklı programlama paradigmalarını destekleyen dillerde kullanılır, bu nedenle farklı özelliklere sahiptir.