मैं मोबाइल/वीओआईपी डोमेन में किसी एप्लिकेशन पर काम कर रहा हूं। यह वास्तव में मेरे लिए एक भूरा क्षेत्र है। यहाँ आवेदन के बारे में कुछ विवरण हैं:प्रीपेड मोबाइल सेवा बनाने के लिए रेल, पैड्रिनो और सिनात्रा की उपयुक्तता
- यह मूलतः एक ऑटो पुनर्भरण/प्रीपेड मोबाइल सेवा
- पिछले ईआरपी क्षुधा मैं लिखा है की तुलना में मध्यम जटिलता के तर्क होगा की तरह है।
- प्रतिक्रिया में दृश्य अनुभाग सादे पाठ होंगे, जिन्हें उपयोगकर्ता/वॉयस एक्सएमएल (वीएक्सएमएल) को एसएमएस/यूएसएसडी खींचने के रूप में भेजा जाएगा जो उपयोगकर्ताओं को आईवीआर प्रतिक्रिया के रूप में भेजा जाएगा।
- रूटिंग तर्क बहुत आसान है, क्योंकि प्रत्येक प्रकार के उत्तर के लिए केवल दो से तीन यूआरएल महत्वपूर्ण होंगे।
प्रतिबंध:
हम कोर प्रणाली पर्ल (यह एक विरासत प्रणाली है जो कई अन्य वीओआइपी/मोबाइल से संबंधित सेवाएं प्रस्तुत कर रही है है) में बनाया गया है, और एक लेखा प्रणाली लाभ-हानि का ट्रैक रखने के लिए है, लेकिन यह बहुत जटिल हो गया है। इसलिए हमने इस एप्लिकेशन को अलग से बनाने का फैसला किया, और केवल एसएमएस/यूएसएसडी और आईवीआर का उपयोग किया। हालांकि, इस आवेदन के हर उपयोगकर्ता को लेखांकन उद्देश्यों के लिए कोर सिस्टम का एक पंजीकृत उपयोगकर्ता होना चाहिए; यह हम केवल एक एपीआई कॉल द्वारा आसानी से प्राप्त कर सकते हैं।
अब, आईवीआर और यूएसएसडी के लिए उत्तर/प्रतिक्रिया भेजने के लिए, हमें विक्रेता द्वारा आवेदन को तैनात करने की आवश्यकता है जो इन सुविधाओं को प्रदान करता है। लेकिन हम अपने सर्वरों में से प्रत्येक के लिए, दैनिक रिपोर्ट और लेखांकन सामग्री के लिए हमेशा अपने सर्वर में लॉग-इन करने की आवश्यकता नहीं है, हमारे पास यूएसएसडी/एसएमएस/आईवीआर सिस्टम के लिए अलग-अलग प्रवाह होंगे।
तो, हमने तय किया कि यह नया एप्लिकेशन वास्तव में दो उप-अनुप्रयोगों में बांटा जाएगा।
- एक एप्लिकेशन यूएसएसडी/एसएमएस/आईवीआर डोमेन के साथ यूजर इंटरफेस को संभालेगा और विक्रेता के सर्वर पर तैनात किया जाएगा, जिसे हम "क्लाइंटवेयर" कहते हैं।
- दूसरा एप्लिकेशन सभी कोर बिजनेस लॉजिक और रिपोर्टिंग सिस्टम को संभालेगा और हमारे सर्वर पर तैनात किया जाएगा, जहां हमारे पास पूर्ण पहुंच होगी। हम इस "मिडलवेयर" को कॉल करेंगे।
आवेदन के बुनियादी प्रवाह:
- उपयोगकर्ता शोर्ट डायल करता है।
- हमारे विक्रेता सर्वर पर कॉल करें जहां क्लाइंटवेयर ऐप अनुरोध को संभालेगा और इसे अपने स्थानीय डेटाबेस में उपयोगकर्ता के रूप में पंजीकृत करेगा।
- क्लाइंटवेयर मिडलवेयर पर एपीआई कॉल भी करेगा। इस उपयोगकर्ता को कोर बिजनेस लॉजिक के साथ-साथ ऑटो रिचार्ज, आदि के लिए पंजीकरण करने के लिए
- मिडलवेयर तब भी इस प्रयोक्ता को अकाउंटिंग उद्देश्यों के लिए पंजीकृत करने के लिए कोर सिस्टम को एपीआई कॉल करेगा।
अब, ऐसे कई क्लाइंटवेयर एप्लिकेशन एक मिडलवेयर एप्लिकेशन के साथ बातचीत कर रहे होंगे। हमने रूबी में इन अनुप्रयोगों को बनाने का फैसला किया है। मैं इसके लिए रीस्टफुल आर्किटेक्चर का पालन करूँगा, क्योंकि कई एपीआई कॉल शामिल हैं।
तीन ढांचे, Rails, Padrino, या Sinatra, इनमें से कोई भी इस परियोजना के लिए विशेष रूप से उपयुक्त है?यदि संभव हो तो मैं विस्तृत प्रासंगिक पेशेवरों और विपक्ष की एक अच्छी तुलना की सराहना करता हूं।
इस प्रश्न की योग्यता के बारे में मेटा चर्चा [यहां] है (http://meta.stackoverflow.com/q/291301/238886)। –