Uzaktan yordam çağrısı
Uzak yordam çağrısı (ya da uzak prosedür çağrısı; İngilizce: Remote Procedure Call (RPC), bir diğer adres uzayı (genelde ağ paylaşımlı bilgisayarlar) üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımıza çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici (sunucu) ve bir de istemci vardır.
Tarihi ve kökeni
RPC (Remote Procedure Call) fikri 1976'ya, RFC 707'lerin tanımlandığı tarihe dayanır. RFC'nin ilk kullanımı Xerox adı altında “Courier” ile 1981'dedir. RFC'nin Unix'te ilk implemantasyonu Sun sistemledir (ONC RPC). Sun NFS için temel olarak kullanıldı.
Bir başka Unix implemantasyonu ise Apollo Computer’in ağ sistemlerinde oldu (NCS). NCS, daha sonraları DCE/RPC alt dizininde OSF's Distributed Computing Environment (DCE)'de kullanıldı. On yıl sonra Microsoft DCE/RPC'yi alıp Microsoft RPC (MSRPC) olarak uyarladı ve onun içinde DCOM'u uygulamaya koydu. 1990'lı yılların ortalarında Xerox PARC'ın ILU'su, Object Management Group'un CORBA'sı, RPC tabanlı dağıtılmış nesneli türetim sistemlerinde kullanıldı.
Mesaj geçişi
Bir RPC istemcisinin uzak bir sunucudan yordamı çalıştırarak istemde bulunmasıyla başladı. Cevap, uygulama devam ederken istemciye gönderildi. Birkaç çeşit RPC protokolü bulunmaktadır. Sunucu çağrıyı işlerken, istemci bloklanır (sunucuyu bekler).
Uzaktan prosedür ile yerel prosedürün en önemli farkı, yerel prosedürün öngörülemeyen ağ problemlerinde hatayla karşılaşmasıdır.
RPC yapımında temel adımlar
- İstemci taslağa çağrıda bulunur. Bu çağrı normal yolla stack'e itilen parametreli yere prosedür çağrısıdır.
- İstemci taslağı parametreleri bir mesaja paketler ve mesajı göndermek için bir sistem çağrısı yapar.
Paketlenmiş parametreler marshalling diye adlandırılır.
- Çekirdek istemci makineden sunucu makineye mesajı yollar.
- Çekirdek gelen paketleri sunucu taslağa iletir.
- Son olarak,sunucu taslak sunucu prosedürünü çağırır.
Standart iletişim mekanizmaları
Sunucuya farklı istemcilerin erişmeleri için standart RPC sistemleri oluşturulmuş olmalıdır.
Çoğunda arayüz tanımlama dili (interface description language (IDL)) kullanılır.
Arayüz tanımlama dili birçok platforma izin verir.
Arayüz tanımlama dili (IDL) istemci ve sunucu arasındaki arayüz kodunu düzeltmede kullanılabilir.
Bu iş için genelde RPCGEN kullanılır.
Kaynakça
Ayrıca bakınız
Dış bağlantılar
- RFC 1057 - ONC RPC'nin Özelleştirilmiş versiyonu
- RFC 5531 - ONC RPC'nin Özelleştirilmiş versiyon 2
- Remote Procedure Calls (RPC) 25 Mayıs 2010 tarihinde Wayback Machine sitesinde arşivlendi.
- Introduction to RPC Programming