2011-11-11 2 views
17

मैं मोबाइल/वीओआईपी डोमेन में किसी एप्लिकेशन पर काम कर रहा हूं। यह वास्तव में मेरे लिए एक भूरा क्षेत्र है। यहाँ आवेदन के बारे में कुछ विवरण हैं:प्रीपेड मोबाइल सेवा बनाने के लिए रेल, पैड्रिनो और सिनात्रा की उपयुक्तता

  • यह मूलतः एक ऑटो पुनर्भरण/प्रीपेड मोबाइल सेवा
  • पिछले ईआरपी क्षुधा मैं लिखा है की तुलना में मध्यम जटिलता के तर्क होगा की तरह है।
  • प्रतिक्रिया में दृश्य अनुभाग सादे पाठ होंगे, जिन्हें उपयोगकर्ता/वॉयस एक्सएमएल (वीएक्सएमएल) को एसएमएस/यूएसएसडी खींचने के रूप में भेजा जाएगा जो उपयोगकर्ताओं को आईवीआर प्रतिक्रिया के रूप में भेजा जाएगा।
  • रूटिंग तर्क बहुत आसान है, क्योंकि प्रत्येक प्रकार के उत्तर के लिए केवल दो से तीन यूआरएल महत्वपूर्ण होंगे।

प्रतिबंध:

हम कोर प्रणाली पर्ल (यह एक विरासत प्रणाली है जो कई अन्य वीओआइपी/मोबाइल से संबंधित सेवाएं प्रस्तुत कर रही है है) में बनाया गया है, और एक लेखा प्रणाली लाभ-हानि का ट्रैक रखने के लिए है, लेकिन यह बहुत जटिल हो गया है। इसलिए हमने इस एप्लिकेशन को अलग से बनाने का फैसला किया, और केवल एसएमएस/यूएसएसडी और आईवीआर का उपयोग किया। हालांकि, इस आवेदन के हर उपयोगकर्ता को लेखांकन उद्देश्यों के लिए कोर सिस्टम का एक पंजीकृत उपयोगकर्ता होना चाहिए; यह हम केवल एक एपीआई कॉल द्वारा आसानी से प्राप्त कर सकते हैं।

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

तो, हमने तय किया कि यह नया एप्लिकेशन वास्तव में दो उप-अनुप्रयोगों में बांटा जाएगा।

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

आवेदन के बुनियादी प्रवाह:

  1. उपयोगकर्ता शोर्ट डायल करता है।
  2. हमारे विक्रेता सर्वर पर कॉल करें जहां क्लाइंटवेयर ऐप अनुरोध को संभालेगा और इसे अपने स्थानीय डेटाबेस में उपयोगकर्ता के रूप में पंजीकृत करेगा।
  3. क्लाइंटवेयर मिडलवेयर पर एपीआई कॉल भी करेगा। इस उपयोगकर्ता को कोर बिजनेस लॉजिक के साथ-साथ ऑटो रिचार्ज, आदि के लिए पंजीकरण करने के लिए
  4. मिडलवेयर तब भी इस प्रयोक्ता को अकाउंटिंग उद्देश्यों के लिए पंजीकृत करने के लिए कोर सिस्टम को एपीआई कॉल करेगा।

अब, ऐसे कई क्लाइंटवेयर एप्लिकेशन एक मिडलवेयर एप्लिकेशन के साथ बातचीत कर रहे होंगे। हमने रूबी में इन अनुप्रयोगों को बनाने का फैसला किया है। मैं इसके लिए रीस्टफुल आर्किटेक्चर का पालन करूँगा, क्योंकि कई एपीआई कॉल शामिल हैं।

तीन ढांचे, Rails, Padrino, या Sinatra, इनमें से कोई भी इस परियोजना के लिए विशेष रूप से उपयुक्त है?यदि संभव हो तो मैं विस्तृत प्रासंगिक पेशेवरों और विपक्ष की एक अच्छी तुलना की सराहना करता हूं।

+5

इस प्रश्न की योग्यता के बारे में मेटा चर्चा [यहां] है (http://meta.stackoverflow.com/q/291301/238886)। –

उत्तर

82

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

मैं स्पष्ट रूप से रैक और सिनात्रा की मॉड्यूलर और हल्के प्रकृति का समर्थक हूं। रैक, रैक मिडलवायर, सिनात्रा और एक्सटेंशन के बीच, यदि आप उपकरण को समझने के इच्छुक हैं तो आप रेल में आसानी से कुछ भी कर सकते हैं।

मैं तर्क दूंगा कि सिनात्रा और पैड्रिनो के पास रूबी नवागंतुकों के लिए कम सीखने की वक्र है। इसका कारण यह है कि वे "आपको जो चाहिए" लेते हैं और "धीरे-धीरे जटिलता" को रेलवे दृष्टिकोण के मुकाबले कहीं ज्यादा बेहतर करते हैं, लेकिन दूसरी ओर रेल के पास अधिक दस्तावेज, ब्लॉग, समर्थन इत्यादि। व्यापार बंद स्पष्ट हैं। सिनात्रा और पैड्रिनो मेमोरी पदचिह्न, अनुरोध प्रति सेकेंड, सीपीयू उपयोग इत्यादि के मामले में भी "तेज" और "हल्का" हैं, लेकिन ज्यादातर स्थितियों के लिए रेल पर्याप्त तेज़ है और एप्लिकेशन सर्वर शायद ही कभी बाधा है।

सभी ने कहा कि, मैं आपको अधिक प्रत्यक्ष राय देने की कोशिश करूंगा। यदि आप सेवा एपीआई के अलावा कुछ भी नहीं कर रहे हैं (जो इसे यहां लगता है), तो मैं सिनात्रा, पैड्रिनो या रेल के ऊपर Renee की एक और परियोजना का उपयोग करने की सलाह दूंगा। अधिकांश उपायों से हल्के सेवा एपीआई के लिए रेल ओवरकिल है।

इसे आगे कम करना, पैड्रिनो सिनात्रा है इसलिए आपको उनके बीच चयन करने की आवश्यकता नहीं है। आप सिनात्रा से शुरू कर सकते हैं और पैड्रिनो से standalone modules शामिल कर सकते हैं, या एक पूर्ण-स्टैक पैड्रिनो एप्लिकेशन का उपयोग कर सकते हैं जो अभी भी बहुत शक्तिशाली सुविधाओं (i18n, लॉगर, एडमिन पैनल, कैशिंग, जेनरेटर, फॉर्म हेल्पर्स, मेलर इत्यादि)। ध्यान रखें कि ये सभी "उन्हें केवल तभी लें जब आपको उनकी आवश्यकता हो" मॉड्यूलर एक्सटेंशन।

मैं सिनात्रा और पैड्रिनो की खोज शुरू करने के लिए हमारे पैड्रिनो Getting Started मार्गदर्शिका की जांच करने की सलाह दूंगा। हमारे पैड्रिनो गाइड और दस्तावेज़ीकरण पूरी तरह से प्रयास करने का प्रयास करते हैं। उस ने कहा, "सुरक्षित" शर्त रेल है क्योंकि इसका बहुत अधिक उपयोग होता है, यह अधिक परिपक्व है, इसमें अधिक योगदानकर्ता हैं और बहुत अधिक दस्तावेज/googleability है। शुभकामनाएं, उम्मीद है कि यह सहायक था।

+0

धन्यवाद नाथन। मैं आपकी सलाह पर विचार करूंगा ... अच्छी तरह से समझाया गया :) –

+1

मैं नाथन से सहमत हूं, सेवा एपीआई के लिए मैं सिनात्रा का उपयोग करता हूं और पैड्रिनो (रूटिंग, जेनरेटर और कैशिंग) और रेल (ओआरएम) मॉड्यूल में कॉल करता हूं। मेरे लिए बहुत अच्छा काम करता है, और मुझे थोड़ा सा राम बचाता है, इसलिए मेरे पास अधिक यूनिकॉर्न प्रक्रियाएं चल सकती हैं :) – complistic

+0

रीनी का लिंक मर चुका है –

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