2010-04-28 7 views
6

मैंने अभी High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System पढ़ना समाप्त कर दिया है और मैं भाग 6: वैश्विक स्थिरता तक सबकुछ का पालन करता हूं। यह भाग वर्णन करता है कि सर्वर से जुड़े कई क्लाइंट्स के लिए पेपर में वर्णित सिस्टम को कैसे बढ़ाया जा सकता है। हालांकि, स्पष्टीकरण बहुत छोटा है और अनिवार्य रूप से कहता है कि सिस्टम काम करेगा यदि केंद्रीय सर्वर केवल अन्य सभी ग्राहकों को क्लाइंट संदेश अग्रेषित करता है। मैं वास्तव में समझ में नहीं आता कि यह कैसे काम करता है। संदेश में वेक्टर वेक्टर भेजे जाएंगे जो अन्य सभी ग्राहकों को भेजा जाता है? क्या सर्वर प्रत्येक ग्राहक के लिए अलग राज्य वैक्टर बनाए रखता है? क्या यह प्रत्येक क्लाइंट के लिए स्थानीय रूप से विजेट की एक अलग प्रति बनाए रखता है?एकाधिक सर्वर के साथ वास्तविक समय सहयोग एक केंद्रीय सर्वर के साथ ऑपरेशन ट्रांसफॉर्मेशन का उपयोग कर सिस्टम में कैसे काम करता है?

सरल उदाहरण मैं सोच सकता हूं कि यह सेटअप है: क्लाइंट ए, क्लाइंट बी और क्लाइंट बी क्लाइंट ए और क्लाइंट बी के साथ सर्वर से कनेक्ट दोनों की कल्पना करें। शुरू करने के लिए, इन तीनों में राज्य वस्तु "एबीसीडी" है। फिर, क्लाइंट ए एक ही समय में "स्थिति 0 पर अक्षर एफ डालें" संदेश भेजता है क्लाइंट बी सर्वर पर "स्थिति 0 पर स्थिति जी डालें" संदेश भेजता है। ऐसा लगता है कि क्लाइंट बी के क्लाइंट ए का संदेश बस रिले करना और इसके विपरीत वास्तव में इस मामले को संभाल नहीं लेता है। तो सर्वर वास्तव में क्या करता है?

उत्तर

5

मुझे वास्तव में पता चला कि यह कैसे काम करेगा। मेरे उदाहरण में, सर्वर क्लाइंट ए और क्लाइंट बी दोनों के लिए एक स्टेटस स्पेस रखता है। ऐसे मामले में जहां सर्वर क्लाइंट ए का संदेश प्राप्त करता है, सर्वर को राज्य वेक्टर (0, 0), एफ सम्मिलित करता है, उसके बाद राज्य वैक्टर अपडेट करता है क्रमशः ए और बी के लिए (1, 0) और (0, 1) होना चाहिए (जहां पहली संख्या क्लाइंट से संदेशों की संख्या है जिसे संसाधित किया गया है और दूसरा सर्वर से संदेशों की संख्या है प्रसंस्कृत)। सर्वर तब राज्य वेक्टर (0, 0) के साथ "स्थिति 0 पर एफ डालें" भेजता है (चूंकि सर्वर द्वारा संदेश प्राप्त होने पर यह बी के राज्य स्थान में सर्वर की स्थिति थी) और "स्थिति 0 पर जी डालें" बी से राज्य (0, 0) के साथ भेजा गया। चूंकि सर्वर बी के राज्य स्थान में राज्य (0, 1) में है, इसलिए यह पहले संदेश को बदलता है (और इसी तरह, बी बी (1, 0) में है जब यह सर्वर का संदेश प्राप्त करता है, यह उस संदेश को भी बदल देता है जो इसे मिला है सर्वर)। चूंकि परिवर्तनों को सेटअप किया जाना चाहिए ताकि यदि xform (c, s) = (c ', s') तो c 'c पर लागू होता है' c पर लागू होता है, बी और सर्वर उसी स्थिति में समाप्त होता है। बी से प्राप्त सर्वर के संदेश के साथ ऐसा ही होता है और फिर ए

+0

पोस्टरिटी के लिए, यदि यह स्पष्ट नहीं था: सर्वर 'ए' और' बी 'के बीच "प्रॉक्सी क्लाइंट" के रूप में कार्य करता है, अनुवाद 'ए' ('ए') से 'ए' में एक सेशन, और * आगे * ओप 'ए' से 'बी' (जैसे सर्वर ने स्वयं को ओप उत्पन्न किया)। सर्वर के पास, 'ए' और' बी 'ऑपरेशन कतार दोनों की प्रतियां होती हैं, जबकि' ए' और 'बी' में केवल सर्वर ऑपरेशन कतार की एक प्रति होती है। आगे पढ़ने के लिए, ग्रुपवेयर सिस्टम * में कंसुरेंसी कंट्रोल *, और * डिस्ट्रिब्यूटेड ऑपरेशनल ट्रांसफॉर्म के लिए एक काउंटररेक्स नमूना और प्वाइंट-टू-पॉइंट संचार * के लिए एक सुधारित एल्गोरिदम देखें। – mzhang

संबंधित मुद्दे