2011-02-03 11 views
5

मैं कुछ <gulp>विरासत कोड एएसएमएक्स वेब सेवाओं का उपयोग कर .NET 3.5 में लिखा गया है।क्या सिंगलटन एएसएमएक्स वेब सेवा प्रॉक्सी का उपयोग करना ठीक है?

एक विंडोज सेवा (इसे FooService कहते हैं) एक वेब सेवा के लिए एएसएमएक्स प्रॉक्सी को स्थिर रूप से कैश कर रहा है (इसे बारडब्लूएस कहते हैं) कि यह ग्राहक अनुरोधों के जवाब में एक घंटे में लगभग 10-30 बार प्रतिक्रिया देता है।

<gulp>विरासत कोड यह विभिन्न कारणों से परीक्षण करने के लिए अविश्वसनीय रूप से कठिन है। मैं इसे टेस्ट करने योग्य बनाने के लिए निर्भरताओं को तोड़ने की प्रक्रिया में हूं और इस स्थिर संदर्भ ने मुझे आश्चर्यचकित कर दिया। यह एएसएमएक्स का उपयोग करने के सालों से हुआ है और मुझे याद है कि प्रॉक्सी थ्रेड-सुरक्षित है - लेकिन मुझे आश्चर्य हुआ कि अगर यह किसी समस्या को विकसित करने और गलती हो जाने पर सिंगलटन/साझा डब्ल्यूसीएफ प्रॉक्सी कर सकता है तो यह अनुपयोगी हो सकता है।

इस प्रॉक्सी के प्रकाश उपयोग को देखते हुए (बारडब्ल्यूएस को 30 गुना/घंटा से कम कहा जाता है), मुझे लगता है कि हर कॉल पर एक ताजा प्रॉक्सी बनाने के लिए यह अधिक सुरक्षित होगा - लेकिन मैं सोच रहा हूं कि मैं कर रहा हूं एक अनावश्यक परिवर्तन। किसी को पता है?

पीएस मुझे पता है कि डब्ल्यूसीएफ बेहतर है, लेकिन डब्ल्यूसीएफ में माइग्रेशन अभी इस <gulp> विरासत कोडबेस में बहुत अधिक बदलाव है।

+4

'विरासत' और' .NET 3.5' ​​... woah ... मुझे बूढ़ा लगता है! :) –

+1

* विरासत कोड * का महत्व क्या है कि यह दो बार इटालिसिक है? – Amy

+1

@ जेम्स: आपको सेवा को डब्ल्यूसीएफ में बदलने की ज़रूरत नहीं है, लेकिन "वेब संदर्भ" के बजाय "सेवा संदर्भ" का उपयोग करने के लिए बदलने पर विचार करें। –

उत्तर

4

मापें कि प्रॉक्सी बनाने में कितना समय लगता है। यदि यह एक झूठी अनुकूलन है (मुझे दृढ़ता से संदेह है), तो इसे उदाहरण आधारित निर्माण में बदलें। सांख्यिकी से बचने के लिए आम तौर पर अच्छा होता है। इसे एक कारखाने के पीछे रखो, फिर कम से कम आप अभी भी सिंगलटन-प्रकार के व्यवहार कर सकते हैं यदि आप वास्तव में चाहते थे, लेकिन इस रचनात्मक व्यवहार को क्लाइंट से मुखौटा और स्वतंत्र किया जाएगा।

+0

मैं 99% निश्चित हूं कि यह एक झूठी अनुकूलन है ... मुझे फैक्ट्री विचार बहुत पसंद है - धन्यवाद। मैं इस जवाब को वोट दे रहा हूं, लेकिन इसे टिक नहीं रहा क्योंकि यह विफलता के बाद प्रॉक्सी इंस्टेंस की पुन: प्रयोज्यता के बारे में सवाल नहीं उठाता है। धन्यवाद! –

+0

@ जेम्स निश्चित रूप से, मुझे कोई जानकारी नहीं है (याद नहीं है) चाहे वह राज्यपूर्ण है। यदि ऐसा है, तो आपके पास स्पष्ट रूप से एक अतिरिक्त और बड़ी समस्या है: क्या यह थ्रेड-सुरक्षित है? –

+0

एमएसडीएन दस्तावेज़ों का दावा है कि यह थ्रेड-सुरक्षित है - लेकिन मैंने अभी तक इसका परीक्षण नहीं किया है। यह जांचना काफी मुश्किल है और विफलता के तहत व्यवहार सेवा के एकमात्र लागू होने के कारण (निश्चित रूप से) एक लाइव उत्पादन सेवा (कोई डब्लूएसडीएल, कोई स्रोत कोड नहीं है :)) इससे दूर नहीं जा रहा है, मुझे इंजीनियर को रिवर्स करना होगा इसके लिए एक नकली! –

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