लघु संस्करण:पर्ल "ऐप सर्वर" (mod_perl प्रतिस्थापन) का मूल्यांकन करने के लिए मुझे किन मापदंडों का उपयोग करना चाहिए?
क्या मानदंड मैं एक पर्ल "अनुप्रयोग सर्वर" के लिए संभव उम्मीदवारों का मूल्यांकन करने का उपयोग करना चाहिए (मोड-पर्ल प्रतिस्थापन)?
हम जो की लागत के बिना (एक सेवा के रूप में) बार-बार विभिन्न पर्ल कार्यक्रमों को क्रियान्वित करने की अनुमति देगा ढांचे के कुछ प्रकार के लिए देख रहे हैं:
फिर से launcing प्रत्येक निष्पादन प्रति एक बार पर्ल दुभाषिया
लदान/पर्ल मॉड्यूल संकलन एक बार निष्पादन प्रति
(जो दोनों के लाभ है कि चल mod_ हैं पर्ल प्रदान करता है)
नोट्स:
हम ऐसी गहरी अपाचे एकीकरण के रूप में बहुत ज्यादा मोड-पर्ल द्वारा प्रदान किसी भी अतिरिक्त लाभ, के बारे में बहुत ज्यादा नहीं देखभाल करते हैं।
यह एक शुद्ध ऐप सर्वर होगा, जिसका अर्थ है कि किसी भी वेब विशिष्ट कार्यक्षमता की आवश्यकता नहीं है (यदि कोई ऐप सर्वर इसे प्रदान करता है तो यह कोई समस्या नहीं है, केवल इसकी आवश्यकता नहीं होगी)।
हम निश्चित रूप से स्पष्ट मानदंड (कच्ची गति, उत्पादन-तैयार स्थिरता, सक्रिय विकास, ओएस पर चलाने की क्षमता) पर विचार करेंगे। मुझे जो दिलचस्पी है वह कम छोटी और सूक्ष्म चीजें हैं जिन्हें हम ऐसे ढांचे/सर्वर से चाह सकते हैं।
पृष्ठभूमि:
$ काम में शक्तियों का फैसला किया है कि वे एक मौजूदा स्थिति बदलना चाहते हैं (सरल webapps Embperl में विकसित और अपाचे/मोड-पर्ल के माध्यम से स्थापित किया जा रहा)।
निर्णय (घर से उगाए गए) एमवीसी सिस्टम का उपयोग करने के लिए किया गया था जिसमें दृश्य के लिए जावा स्प्रिंग फ्रंट एंड होगा; और नियंत्रक प्रति-एप सेवाओं के लिए बैक-एंड सेवा अनुरोधों को निष्पादित करेगा जो मॉडल कर्तव्यों का पालन करते हैं (इसके विवरण पर लटका नहीं है - यह मुख्य प्रश्न के लिए बहुत प्रासंगिक नहीं है)।
बैक-एंड सेवाओं के लिए विकल्पों में से एक पर्ल है, ताकि हम अपने सभी मौजूदा पर्ल आईपी (पुस्तकालय, वेबएप बैकएंड कोड) का आगे बढ़ सकें, और जावा को 100% पोर्ट नहीं करना पड़े।
संक्षेप में:
| View | Model/app | Model loaded/executed by: |
================================================================================
OLD | Empberl | Model.pm | mod_perl has Model.pm loaded, called from view.epl |
NEW | Java | Model.pm | perl generic_model.pl -model Model (does "require") |
================================================================================
अब, जो थोड़ी देर के लिए पर्ल वेब विकास किया था आप में से जो, तुरंत नए डिजाइन के साथ सबसे स्पष्ट समस्या देखेंगे:
| Perl interpreter starts | Perl modules are loaded and compiled |
=======================================================================
OLD | Once per mod_perl thread | Once per mod_perl thread
NEW | Once per EVERY! request | Once per EVERY! request |
=======================================================================
दूसरे शब्दों में , नए मॉडल में, हम के पास लगातार सर्वर साइड ऐप कंटेनर के रूप में mod_perl द्वारा प्रदान किए गए किसी भी प्रदर्शन लाभ नहीं है !!!
इसलिए, हम एक ही फ़ंक्शन की सेवा के लिए संभावित ऐप कंटेनर देख रहे हैं।
(एक साइड नोट के रूप में, हां, हमने सोचा था कि इस तरह के एक ऐप कंटेनर के रूप में mod_perl के साथ अपाचे का उदाहरण एक व्यावहारिक संभावना के रूप में चल रहा है। हालांकि, चूंकि वेब कार्यक्षमता की आवश्यकता नहीं है, तो मैं देखना चाहूंगा कोई अन्य विकल्प बिल फिट कर सकता है)।
जावा और पर्ल भागों को एक-दूसरे से बात करने के लिए किस प्रोटोकॉल का उपयोग किया जाएगा? – innaM
लेकिन क्या आप "' apache mod_perl''' पर्यावरण (या पीएसजीआई) में सेवाओं को चलाने के लिए केवल अपनी शुरुआत के "समांतरता" को नहीं रख सकते हैं और उन सभी से अपनी नई जावा स्विंग चीज़ से बात कर सकते हैं? क्या वह बहुत धीमा है? कम से कम '' 'perl''' दुभाषिया चल रहा है और प्रतीक्षा और तैयार है। –
क्षमा करें मेरा मतलब था कि मेरी पिछली टिप्पणी आपके साइड नोट के संबंध में एक और प्रश्न/प्रतिक्रिया होगी। क्या आपने इस '' _ mod_perl''' ऐप कंटेनर दृष्टिकोण का परीक्षण किया है? ऐसा लगता है कि www.apache.org इस तरह से अपनी मेलिंग सूची डिलीवरी को संभालने में मदद के लिए '' 'Qpsmtpd''' चलाता है या चलाता है (** यानी ** एक apache' '_ mod_perl''' उदाहरण में एक एसएमटीपी सेवा के रूप में एम्बेडेड)। तो '' apache''' और '' 'mod_perl''' ..." वे सिर्फ वेब के लिए नहीं हैं ":-) –