High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System okumayı bitirdim ve çoğunlukla her şeyi 6 bölümüne kadar takip ediyorum: global tutarlılık. Bu bölüm, kağıtta açıklanan sistemin sunucuya bağlı birden çok istemci için nasıl genişletilebileceğini açıklamaktadır. Bununla birlikte, açıklama çok kısadır ve esas olarak, merkezi sunucunun istemci mesajlarını diğer tüm istemcilere iletmesi durumunda sistemin çalışacağını söyler. Bunun nasıl çalıştığını gerçekten anlamıyorum. Diğer tüm istemcilere gönderilen iletide hangi durum vektörü gönderilecek? Sunucu, her müşteri için ayrı durum vektörlerini koruyor mu? Her istemci için yerel olarak widget'ların ayrı bir kopyasını tutar mı?Çoklu istemcilerle gerçek zamanlı işbirliği, merkezi bir sunucuyla işlem dönüştürmelerini kullanarak bir sistemde nasıl çalışır?
Düşünebildiğim basit örnek bu kurulum: İstemci A, sunucu ve istemci B'yi hem sunucuya bağlı istemci A hem de istemci B ile düşünün. Başlamak için, her üçü de "ABCD" durum nesnesine sahip. Daha sonra, A müşterisi, "B pozisyonunu, 0 pozisyonuna F ekleyiniz" mesajını gönderir, aynı zamanda, B müşterisi, sunucuya "pozisyon 0'da G karakterini sokun" mesajını gönderir. İstemci A iletisini istemciye (B) iletmek gibi görünüyor ve tersi de aslında bu davayı ele almıyor. Peki sunucu tam olarak ne yapıyor?
Kimliğin açık olmaması durumunda, bu durum, sunucu için "A" ve "B" arasında bir "vekil istemci" görevi görür. a '('a')' a '' den bir op ve a ''' '' '' '' '' '' '' '' '' '' ('''''''nün kendisi, op’un kendisi tarafından üretilirmişçesine '' olarak adlandırılır. Sunucu, daha sonra hem A'nın hem de B'nin işlem sıralarının kopyalarını içerirken, “A” ve “B” sadece sunucu işlem sırasının bir kopyasına sahiptir. Daha fazla okuma için, * Eşzamanlılık Denetimi * Grup Yazılımlarında * Eşzamanlılık Denetimi ve * Dağıtılmış İşlemsel Dönüşüme Karşı Bir Örnek ve Noktadan Noktaya İletişim için Düzeltilmiş Algoritma * bölümüne bakın. – mzhang