İkisi arasındaki diğer büyük fark, uzak yordamlara iletilen parametrelerin sıradan veri yapılarından oluşmasıdır. Öte yandan, uzak yönteme iletilen parametreler nesnelerden oluşmaktadır.
Karşılaştırma Tablosu
Karşılaştırma için temel | RPC | RMI |
---|---|---|
Destekler | Prosedürel programlama | Nesne yönelimli programlama |
Parametreler | Sıradan veri yapıları uzak işlemlere geçirilir. | Nesneler uzak yöntemlere iletilir. |
verim | RMI'den düşük | RPC'den fazlası ve modern programlama yaklaşımı ile desteklenir (örn. Nesneye yönelik paradigmalar) |
Genel giderler | Daha | 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ılmış hesaplama için ve yerel prosedür çağrılarının anlamını temel alan bir programlama dili özelliğidir. 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ı sistemlerde yürütüldüğü ve mutlaka mesaj tabanlı iletişim gerektirdiği 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ı yoluyla birleştirilerek makineden bağımsız forma çevrilir. Ardından, parametrelerin gösterimini içeren mesaj 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 saptama, mesajı uzak işlem çağrısının bulunduğu siteye gönderir. Bu adım, müşteri saplamasını bir cevap alana kadar durdurur.
- Sunucu sitesi, istemci tarafından gönderilen mesajı 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 mesaj oluşturur.
- Sonuç mesajı, müşteri saplaması için 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 metodun adını ve belirtilen parametreleri içeren parselin oluşturulmasından ve gönderilmesinden sorumludur ve iskelet parselin alınmasından sorumludur.
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, nesnelerin değer olarak iletildiği serileştirme adı verilen işlemi kullanır. 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.
RPC ve RMI Arasındaki Anahtar Farklılıklar
- RPC, prosedürel programlama paradigmalarını destekler, böylece C, RMI nesne yönelimli programlama paradigmalarını destekler ve java tabanlıdır.
- RPC'de uzak işlemlere geçirilen parametreler sıradan veri yapılarıdır. Aksine, RMI nesneleri uzak metoda parametre olarak aktarır.
- 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 kullanabilen modern programlama yaklaşımına dayalı olarak tasarlanmıştır. RMI'nin bir başka avantajı, referans yoluyla iletilen parametrelerin değiştirilebilmesidir.
- RPC protokolü, RMI'den daha fazla ek yük üretiyor.
- RPC'de geçirilen parametrelerin “ giriş ” olması gerekir; bu, işleme iletilen değerin ve çıkış değerinin aynı veri tiplerine sahip olması gerektiği anlamına gelir. Buna karşılık, RMI'da “ giriş ” parametrelerini geçme zorunluluğu yoktur.
- 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.