2012-06-27 14 views
10

मैं प्ले फ्रेमवर्क के साथ-साथ अक्का के साथ प्रोग्रामिंग के लिए बिल्कुल नया हूं, हालांकि मैं थोड़ी देर के लिए उनके बारे में पढ़ रहा हूं। अब मैं डिफ़ॉल्ट/मूल प्ले वातावरण पर सबूत-ऑफ-अवधारणा अनुप्रयोग शुरू कर रहा हूं। मेरा प्रश्न प्ले में वेब सेवा क्लाइंट एपीआई (http://www.playframework.org/documentation/2.0.1/ScalaWS) से उत्पन्न होता है।प्ले ऐप से वेब सेवा कॉल करने के लिए अक्का का उपयोग

इस एप्लिकेशन को मूल रूप से एक दूरस्थ एसओएपी वेब सेवा में स्केलेबल और कलाकार के रूप में संभव तरीके से कॉल करने में मदद करने की आवश्यकता है। ब्राउज़र JSON में AJAX कॉल करता है, Play ऐप को उन्हें SOAP/XML में बदलने की आवश्यकता होती है और इसके विपरीत प्रतिक्रिया पर।

यदि मैं सीधे नियंत्रक के माध्यम से प्ले वेब सेवा क्लाइंट का उपयोग करता हूं, तो ये कॉल असीमित हो सकती हैं, जो अब हम (ब्लॉकिंग) से बेहतर तरीके से बेहतर हैं। हालांकि, मैं इस बात पर स्पष्ट नहीं हूं कि यह वास्तव में भारी भार के तहत कैसे व्यवहार करेगा। क्या समेकन/थ्रेड-प्रबंधन बड़े पैमाने पर अंतर्निहित नेटटी सर्वर पर छोड़ा जाएगा? क्या मेरे पास इसे ट्यून करने का कोई तरीका है?

नियंत्रकों से एक अक्का अभिनेता प्रणाली का उपयोग करने का एक विकल्प होगा, जहां मैं रूटिंग नीति, पूल आकार, गलती सहनशीलता इत्यादि को नियंत्रित कर सकता हूं। यदि मैं यह दृष्टिकोण लेता हूं, तो क्या यह अभी भी Play's async WS का उपयोग करने के लिए समझ में आता है ग्राहक? यदि हां, तो क्या यह दृष्टिकोण (वायदा लिखने का?) अनुशंसित पैटर्न होगा?

एक और कारक जो अक्का दृष्टिकोण को और अधिक आकर्षक बनाता है, यह है कि इस एप्लिकेशन में अंततः कई अन्य जिम्मेदारियां होंगी, इसलिए हम इस अभिनेता सिस्टम को अनुमति देने वाले संसाधनों को नियंत्रित/नियंत्रित कर सकते हैं और पूरे ऐप के जोखिम को कम कर सकते हैं एसओएपी सेवा।

उत्तर

5

दो विकल्प आपको ब्यौरा कर रहे हैं काम करेगा:

  • WS अनुरोध/प्रतिक्रियाओं को संभालने के लिए के लिए खेलने API का उपयोग करें एसिंक्रोनस रूप
  • उपयोग अक्का अपने अभिनेता में तुल्यकालिक एक ही बात करते हैं और अपने WS कॉल का प्रबंधन करने के

पहला, कोई सही या गलत समाधान नहीं है।

Play! डब्ल्यूएस एपीआई समाधान लागू करने और परीक्षण करने के लिए सबसे आसान है। समुदाय में बहुत से लोग इस पर भरोसा करते हैं (मैं करता हूं)।

दूसरी तरफ, अगर अक्का समाधान स्थापित करने के लिए भारी (इतना ज्यादा नहीं) है, तो यह आपको भविष्य में अधिक लचीलापन लाता है। आप बस का उपयोग कर सकते हैं और async गणना के लिए वादे के साथ काम कर सकते हैं। implicit conversions between play promises and akka future भी है। अंत में, अपने कलाकारों की निगरानी के लिए आप Typesafe console पर एक नज़र डाल सकते हैं।

यदि बड़ी बात प्रदर्शन है, समयपूर्व अनुकूलन अक्सर अधिक (और अनावश्यक) जटिलता की ओर जाता है। जहां तक ​​मुझे चिंता है, मैं एपीआई डब्ल्यूएस से शुरू करूंगा और अगर भविष्य में अक्का समाधान में जाना आवश्यक है।

+2

असल में दूसरा विकल्प जो मैं सोच रहा था वह डबल-एसिंक था। क्या अभिनेता अभी भी डब्ल्यूएस एपीआई (या अंतर्निहित निंग एसिंक httpclient) का उपयोग कर सकते हैं? – anchormath

+0

आप डब्ल्यूएस अनुरोधों के साथ एक वादा वापस लेते हैं। अभिनेता अभी भी इसका इस्तेमाल कर सकते हैं। – iwalktheline

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