Bağlam Tanıtıcıları
Bazen dağıtılmış uygulamaların istemci çağrıları arasında durum bilgilerini korumak için sunucu programına ihtiyaç duyması söz konusudur. Aynı anda birden fazla istemciye hizmet veren sunucu programlarının her istemci için durum bilgilerini tutması gerekir. İstemci ve sunucu farklı bilgisayarlarda farklı adres alanları kullandığından ve birbirlerine güvenmeleri gerekmediğinden, veri paylaşımına yönelik yaygın yaklaşımlar genellikle işe yaramaz. Örneğin, istemci ve sunucu, aynı genel adres alanını paylaşmadıkları için genel değişkenlerde uzak oturumlarında durum bilgilerini koruyamaz. Farklı bilgisayarlarda çalıştıkları için bilgileri paylaşılan bir dosyada tutmak zordur. Basit bir yaklaşım, tüm durumu istemciye göndermek ve bir sonraki çağrıda istemcinin döndürmesini sağlamak olabilir, ancak bu yaklaşımın kusurları vardır: sunucunun doğru durumu döndürmesi için istemciye güvenmesi gerekmez ve durum dosya tanıtıcıları veya açık yuvalar gibi sunucudaki başka bir duruma örtük olarak bağlı olabilir.
Microsoft RPC, sunucudaki belirli bir istemciyle ilişkili durumu korumak için bağlam tanıtıcıları olarak adlandırılan güçlü ve güvenli bir mekanizma sağlar. Durum bilgileri, sunucunun bağlamı olarak adlandırılır. İstemciler, tek tek RPC oturumları için sunucunun bağlamını tanımlamak için bir bağlam tanıtıcısı alabilir.
Örneğin, dağıtılmış bir uygulamadaki her istemci, sunucu programının RPC oturumu için bir veri dosyası oluşturmasını ve güncelleştirmesini sağlayabilir. Sunucu, bağlam tanıtıcısı olarak her istemcinin veri dosyası için dosya tutamacını kullanabilir. bir istemci, sunucunun oluşturduğu veri dosyasında her işlem istediğinde, istemci bağlam tutamacını sunucuya geçirir. İstemci aslında dosya tanıtıcısının kendisini almaz; sunucu RPC çalışma zamanının dosya tanıtıcısıyla benzersiz olarak ilişkilendirebileceği opak bir belirteç alır. Bağlam tutamacı gerçekten bir dosya tutamacı olduğundan, bağlam tutamacı yalnızca sunucunun adres alanında anlamlı olur. Ancak istemci programı, sunucuya güncelleştirmeleri hangi dosyada gerçekleştireceklerini bildirmek için bağlam tutamacını kullanabilir.
Diğer veriler bağlam tanıtıcıları da olabilir. Örneğin, bir istemci ve sunucu bir veritabanı kaydının kayıt numarasını dosya tanıtıcısı olarak kullanabilir. İstemcinin belirli bir kayıtta bir dizi güncelleştirme gerçekleştirmesi gerekiyorsa, kayıt numarasını bağlam tanıtıcısı olarak alabilir. Veritabanı kaydını güncelleştirmek için uzak yordamı her çağırışında kayıt numarasını sunucuya geçirir.
Çoğu zaman bir bağlam işleyicisi, sunucunun çeşitli yönetim bilgilerini tuttuğu sunucudaki bir bellek bloğunu işaret eder.
Bu bölümde bağlam tanıtıcılarını tanımlama ve kullanma hakkında bilgi sunun. Tartışma aşağıdaki konularda sunulmuştur:
- bağlam tanıtıcıları kullanarak arabirim geliştirme
- Bağlam Tanıtıcılarını Kullanarak Sunucu Geliştirmeyi
- bağlam tanıtıcıları kullanarak istemci geliştirme
- Sunucu Bağlamı Çalıştırma Yordamı
- İstemci Bağlamı Sıfırlama
- Çok İş Parçacıklı İstemciler ve Bağlam Tanıtıcıları