ScholarGate
Asistan

Uzaktan Çağrı ve Ara Katman Yazılımı

Uzaktan çağrı, bir programın başka bir makinedeki bir prosedürü veya metodu yerelmiş gibi çağırmasına olanak tanımaktadır; ara katman yazılımı ise bu ve ilgili soyutlamaları bir ağ üzerinden sağlayan yazılım katmanıdır.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Uzaktan çağrı, bir istemcinin yerel bir prosedür çağrısı arayüzü kullanarak uzak bir süreçte bir işlemi çağırdığı, temel ara katman yazılımının ise argüman marshalling'ini (paketlenmesini), taşımayı ve hata raporlamayı yönettiği bir iletişim soyutlamasıdır.

Kapsam

Bu konu, uzaktan prosedür çağrısı (RPC) ve uzaktan metot çağrısını, argümanların marshalling'ini (paketlenmesini), bağlama ve isimlendirmeyi, çağrı semantiğini (en fazla bir kez, en az bir kez, tam olarak bir kez) ve bunları uygulayan ara katman yazılımı katmanlarını (nesne aracıları, mesaj odaklı ara katman yazılımları ve modern RPC çerçeveleri) kapsamaktadır. Ayrıca, uzaktan çağrıların yerel çağrılardan kaçınılmaz olarak farklılık gösterdiği şeffaflığın bilinen sınırlarını da ele almaktadır.

Temel sorular

  • Bir ağ etkileşimi, yerel bir prosedür çağrısının kolaylığıyla nasıl sunulabilir?
  • Mesaj kaybı ve süreç çökmeleri durumunda hangi çağrı semantikleri elde edilebilir?
  • Konum şeffaflığı soyutlaması zorunlu olarak nerede bozulmaktadır?

Temel kuramlar

Uzaktan prosedür çağrısı
RPC soyutlaması, uzak bir etkileşimi yerel görünümlü bir çağrı olarak paketlemektedir; istemci ve sunucu stub'ları argümanları marshalling (paketleme) ve unmarshalling (paket açma) işlemlerini gerçekleştirmektedir; en fazla bir kez semantiğini bile elde etmek, yeniden iletim ve kopya tespitinin dikkatli bir şekilde ele alınmasını gerektirmektedir.
Ara katman yazılımı katmanlaması
Ara katman yazılımı, işletim sistemi ile uygulama arasında yer alarak isimlendirme, marshalling (paketleme) ve çağrı hizmetleri sunmaktadır; bu hizmetler nesne talep aracılarından mesaj odaklı ve yayın-abone sistemlerine kadar çeşitlilik göstermektedir.
Dağıtım şeffaflığının sınırları
Gecikme, kısmi hata, eşzamanlılık ve bellek erişimi, uzak nesnelerin yerel nesnelerden tamamen ayırt edilemez hale getirilemeyeceği anlamına gelmektedir; bu nedenle, bu farklılıkları göz ardı eden tasarımlar, yük altında veya bölümlenme durumunda başarısız olma eğilimindedir.

Klinik önem

RPC ve ara katman yazılımları, modern dağıtık yazılımların bağlayıcı dokusunu oluşturmaktadır: mikroservis mimarileri, servis ağları ve bulut API'leri, uzaktan çağrı çerçeveleri üzerine inşa edilmekte olup, tasarımcıları çağrı semantiği ve kısmi hata durumlarını açıkça ele almak zorundadır.

Tarihçe

Birrell ve Nelson'ın 1984 tarihli makalesi, RPC'yi pratik bir soyutlama olarak kabul ettirmiştir; 1990'lar, CORBA ve Java RMI gibi nesne yönelimli ara katman yazılımlarını getirmiş, ancak Waldo ve meslektaşlarının şeffaflığın sınırlarına ilişkin etkili uyarısıyla dengelenmiştir; modern çerçeveler, web üzerinden hafif, şema odaklı RPC ile bu soyutlama geleneğini sürdürmektedir.

Tartışmalar

Uzaktan çağrılar, yerel çağrılarla tamamen aynı görünmeli midir?
Tam konum şeffaflığı programlamayı basitleştirmekte ancak gecikmeyi ve kısmi hatayı gizleyerek kırılgan sistemlere yol açmaktadır; Waldo ve meslektaşları tarafından dile getirilen karşıt görüş ise, geliştiricilerin hataları açıkça ele alabilmesi için dağıtımın ifşa edilmesi gerektiğini savunmaktadır.

Öne çıkan isimler

  • Andrew Birrell
  • Bruce Nelson
  • Jim Waldo
  • Andrew S. Tanenbaum

İlgili konular

Temel eserler

  • birrell1984
  • waldo1994

Sıkça sorulan sorular

"En fazla bir kez" çağrı semantiği ne anlama gelmektedir?
Bu, uzak bir işlemin, istek yeniden iletilse bile, sıfır veya bir kez, asla daha fazla olmamak üzere yürütülmesini garanti etmektedir. Tam olarak bir kez yürütme, hatalar altında garanti edilmesi çok daha zor olduğu için bu, yaygın pratik hedeftir.

Bu kavram için yöntemler

İlgili kavramlar