2010-02-16 12 views
5

एक सहकर्मी और मुझे "लागत" का विषय आने पर डब्लूएफसी सेवाओं के बारे में चर्चा हो रही है।कितना महंगा है ??? - होस्टेड डब्ल्यूसीएफ सेवाएं?

सवाल यह है:

को देखते हुए एक आईआईएस की मेजबानी की WCF सेवा और एक Windows- सेवा की मेजबानी की WCF सेवा सटीक एक ही बात है, जो सेवा स्मृति और CPU के संबंध में अधिक "महंगा" हो जाएगा करते हैं कि चक्र अगर वे दोनों एक ही भार स्वीकार कर रहे हैं?

हम प्रारंभिक स्टार्ट-अप कोडिंग, स्थापना या कॉन्फ़िगरेशन (जिसके लिए आईआईएस एक सरल अनुभव प्रदान करने के लिए तैयार लगता है) के बारे में चिंतित नहीं हैं, केवल सेवाओं को चलाने की नंगे हड्डियों की लागत।

उत्तर

3

मैं ठोस आंकड़े प्रदान नहीं कर सकता, हालांकि यदि यह बड़ी चिंता है, तो आपको निश्चित रूप से सुनिश्चित करने के लिए प्रदर्शन परीक्षण करना चाहिए। एक सामान्य HTTP- आधारित डब्ल्यूसीएफ सेवा के लिए, सभी अनुरोधों को प्रारंभ में विंडोज़ के अंदर http.sys द्वारा संभाला जाएगा, और फिर उपयुक्त प्रक्रिया में भेजा जाएगा। आईआईएस या स्टैंडअलोन में आपकी सेवा होस्ट की गई है या नहीं, प्रति-कॉल, प्रति-सत्र या सिंगलटन कॉन्फ़िगरेशन के संबंध में आपके द्वारा उपयोग की जाने वाली डब्ल्यूसीएफ-विशिष्ट कॉन्फ़िगरेशन सेटिंग्स जितनी अधिक होगी, और आकार सीमा का अनुरोध करें और थ्रॉटलिंग का अनुरोध करें।

मैं उपयोगिता पर ध्यान केंद्रित करूंगा और प्रदर्शन संख्याओं पर सख्ती से अधिक समझदारी करता हूं, क्योंकि वे लगभग समान होना चाहिए।

नीचे पंक्ति: जो कुछ भी सुविधाजनक है, प्रदर्शन आवश्यक होने पर प्रदर्शन परीक्षण का उपयोग करें।

+0

ठीक है .. तो मैं मानता हूं कि किसी भी वास्तविक बाधा का उपयोग बाध्यकारी प्रकार, कॉन्फ़िगरेशन में विशिष्ट सेटिंग्स के प्रकार से होगा। दोनों सेवा शैलियों में डब्ल्यूसीएफ का उपयोग करते समय, मैं इस बात से सहमत हूं कि प्रदर्शन सेवा सामग्री के अलावा अन्य कारकों के कारण है और कॉन्फ़िगरेशन शैली के साथ बहुत कुछ करना है। धन्यवाद ब्रैड। –

2

डब्ल्यूसीएफ के लिए आईआईएस या विंडोज सेवा आधारित होस्टिंग के बीच एक बहुत ही महत्वपूर्ण प्रदर्शन विचार बाध्यकारी प्रकार है। आईआईएस केवल डब्ल्यूसीएफ बाइंडिंग का समर्थन करता है जो HTTP पर काम करता है, जैसे wsHttpBindingbasicHttpBinding, आदि

ग़ैर- http बाइंडिंग आम तौर पर इस तरह के netTcpBinding के रूप में बेहतर प्रदर्शन, के लिए जाना जाता (WCF आधारित होने के लिए मेरा मानना ​​है कि दोनों सेवा और ग्राहक की आवश्यकता है) या netNamedPipeBinding (सबसे तेजी से है, लेकिन सेवा/ग्राहक पर होना चाहिए एक ही मशीन)। बेशक इनकी सीमाएं हैं, खासकर लचीलापन के साथ।

यहाँ एक अच्छा अवलोकन है: http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx

वहाँ एक बहुत ही इसी तरह की चर्चा यहां दिया गया है: WCF Binding Performance

2

मैं जानता हूँ कि यह पूरी तरह से अपने सवाल का जवाब नहीं है, लेकिन मैं अपने अनुभव को साझा करना चाहते हैं।

मेरे पास एक विंडोज कंसोल एप्लिकेशन है जो निर्धारित होने पर आईआईएस में आयोजित डब्ल्यूसीएफ सेवाओं को कॉल कर रहा है। इस वास्तुकला में आईआईएस वास्तव में पूरी तरह से अनावश्यक है और समग्र समाधान के लिए सिर्फ एक अतिरिक्त घटक है। यह वास्तव में विपणन कारणों के समाधान में शामिल था, उत्पाद को गोम लगाने के लिए, तकनीकी कारणों से नहीं।

ये मुख्य समस्याएं हैं जिनकी मुझे सामना करना पड़ रहा है, और यदि मैं तकनीकी कारणों से कर सकता हूं तो मैं आईआईएस का उपयोग क्यों टालना चाहूंगा, और यह मेरे अनुभव पर लागू होता है। कृपया ध्यान दें: मैं यह नहीं कह रहा हूं कि आईआईएस में होस्टिंग डब्ल्यूसीएफ सेवाएं एक बुरा विचार है। मैं सिर्फ उस उत्पाद से अपने विचार दे रहा हूं जो मैं वर्तमान में काम कर रहा हूं।

  1. लूप में आईआईएस होने का मतलब समग्र समाधान में एक और प्रणाली है। यह बदले में आपकी तैनाती में जटिलता जोड़ता है। कुछ ग्राहकों के पास आईआईएस 6 अन्य 7 रन हैं। जबकि ये अंतर सतह पर छोटे लगते हैं। कोई गलती न करें, वे अभी भी अलग हैं, जिसका अर्थ है कि यदि आप अलग-अलग ग्राहकों को अपना उत्पाद तैनात कर रहे हैं तो आप पर्यावरण अंतरों के लिए अधिक संभावित जोड़ रहे हैं।इन मतभेदों को कम मत समझो। मेरे पास क्लाइंट्स भी मेरी डब्लूसीएफ सेवाओं को एक शेयरपॉइंट साइट संग्रह (डुह!) के अंदर चलाने की कोशिश कर रहा है, यह बिंदु आपके विचार से कहीं अधिक है।
  2. आईआईएस में एक ऐपपूल विचार भी है, जिसे आपके उत्पाद की जटिलता के आधार पर कॉन्फ़िगर करने की आवश्यकता हो सकती है। उस ऐपपूल को आपके समग्र समाधान में फिर से अधिक जटिलता जोड़ने के तहत चलाने के लिए एक पहचान की आवश्यकता है।
  3. मेरे पास कुछ समस्याएं हैं जहां एक थ्रेडेड सेवा में कभी-कभी "रोचक" होता है - थ्रेड निरस्त संदेश। जबकि मैं अभी भी सही कारण जानने का प्रयास कर रहा हूं, मेरे दिमाग के पीछे मैं ईमानदारी से उम्मीद कर रहा हूं कि यह किसी भी तरह से आईआईएस से संबंधित नहीं है। मुद्दा यह है कि अगर मैंने समग्र समाधान से आईआईएस को हटा दिया तो मुझे यह विचार नहीं होगा।
  4. मैंने चर्चाओं को सुना है कि आईआईएस डब्ल्यूसीएफ सेवाओं के लिए एक अधिक मजबूत होस्टिंग वातावरण है जो स्वयं होस्टेड बनाम है। मुझे पूरा यकीन नहीं है कि इसमें कोई वज़न है। यदि आप जानते हैं कि आप क्या कर रहे हैं तो आपकी स्वयं की होस्ट की गई सेवा अविश्वसनीय होने का कोई कारण नहीं होना चाहिए। लेकिन मुझे लगता है कि आईआईएस में प्राप्त कुछ स्वचालित सुविधाओं को लागू करने के लिए यह अधिक काम है, उदाहरण के लिए WP रीसाइक्लिंग।
  5. मैं लूप में आईआईएस से असंतुष्ट नहीं हूं, लेकिन जब मैं उत्पाद को तैनाती के लिए उत्पादित करता हूं, और एक मजबूत तकनीकी पृष्ठभूमि के बिना परामर्शदाताओं को आईआईएस आवेदन स्थापित करना होता है तो यह दर्द होता है। आम तौर पर कुछ गलत हो सकता है और जाएगा, और इसमें कदम रखने और हल करने के लिए अधिक तकनीकी अनुभव वाले किसी व्यक्ति को शामिल किया जाएगा। यदि आप स्वयं होस्टिंग कर रहे हैं तो आप तैनाती के लिए अपने ऐप को अधिक आसानी से पैकेज कर सकते हैं।
  6. दोहराने के लिए खेद है, लेकिन यदि आप आईआईएस के लिए जाते हैं, तो आपके पास 1 के बजाय आपके समाधान में 2 एप्लिकेशन होंगे, भले ही आपके संगठन का व्यावसायिक पक्ष केवल ऐप को एक व्यावसायिक इकाई के रूप में देखे, अनिवार्य रूप से पूर्ण जटिलता को समझ नहीं पाएगा जिस समाधान को आप कार्यान्वित कर रहे हैं उसका। उदाहरण के लिए: हमारे पास 2 कॉन्फ़िगरेशन फ़ाइलें क्यों हैं? हमें दो बार मेल कॉन्फ़िगर क्यों करना है? हमें डीएलएल को 2 स्थानों पर क्यों तैनात करना है। इन सवालों से बहुत कुछ पूछा जाता है।
  7. आखिर में मैंने सोचा कि अगर आप ग्राहकों को तैनात करने के लिए दूरस्थ रूप से या वीपीएन पर काम कर रहे हैं तो मैं उल्लेख करूंगा, स्थिति और भी बदतर हो जाती है, कभी-कभी सलाहकार के पास संवेदनशील क्षेत्रों तक पहुंच होती है जो आप नहीं करते हैं। एक डेवलपर के रूप में आपके समग्र समाधान से जितना संभव हो उतना अतिरिक्त सामान समाप्त करने का प्रयास करें। आइए यह भी मान लें कि sys व्यवस्थापक कभी-कभी सुविधाजनक आईआईएस रीसेट जारी कर सकता है, यदि आपका ऐप दूसरों के साथ होस्ट किया गया है, तो वे आपकी सेवाओं को रीसेट कर देंगे।

मेरे अनुभव में कम सिस्टम = कम गलत हो सकता है। लेकिन आपको यह तय करने की ज़रूरत है कि क्या आपके पास विश्वसनीय स्वयं होस्टेड सेवाओं को लागू करने के लिए कौशल हैं या नहीं। यह सब सीधे बदले में विकास, तैनाती और रखरखाव की लागत से संबंधित है।