2010-09-21 7 views
10

मैं एक आईफोन ऐप विकसित कर रहा हूं और कुछ प्रकार के रीस्टफुल एपीआई बनाना चाहता हूं ताकि ऐप के अलग-अलग उपयोगकर्ता जानकारी/डेटा साझा कर सकें। एक प्रकार का समुदाय बनाने के लिए।एक आईफोन ऐप के लिए एक शानदार वेब एपीआई लागू करने के लिए सस्ता तरीका (मंच/भाषा)?

कहें कि मेरा ऐप कुछ प्रकार का गेम है, और मैं चाहता हूं कि उपयोगकर्ता अपने हाईस्कॉर को वैश्विक लीडरबोर्ड पर पोस्ट करने में सक्षम हो और साथ ही दोस्तों की एक सूची बनाए रखे और अपने स्कोर देखें। मेरा ऐप ऐसा कुछ नहीं है लेकिन यह सामूहिक सूचना पहुंच के प्रकार को दिखाता है जिसे मुझे लागू करने की आवश्यकता है।

जिस तरह से मैं इसे कार्यान्वित कर सकता हूं वह एक PHP और MySQL सर्वर स्थापित करना है और एक PHP स्क्रिप्ट है जो डेटाबेस के साथ इंटरैक्ट करता है और डीईटी अनुरोध और लौटने के द्वारा डीबी और आईफोन पर प्रत्येक उपयोगकर्ता के बीच अनुरोधों को मध्यस्थ करता है। एक JSON स्ट्रिंग।

क्या यह करने का यह एक अच्छा तरीका है? मुझे लगता है कि PHP का उपयोग करना एक संकलित भाषा कहने के विरोध में इसे लागू करने का एक धीमा तरीका है। हालांकि मैं बहुत गलत हो सकता था। मैं अपने होस्टिंग बिलों को नीचे रखने की कोशिश कर रहा हूं क्योंकि मैं ऐप को मुफ्त में रिलीज करने की योजना बना रहा हूं। मुझे लगता है कि एक कार्यान्वयन जो सीपीयू चक्र और रैम उपयोग के मामले में बेहतर प्रदर्शन करता है (उदाहरण के लिए सी # सी में लिखे गए कुछ संकलित) को एक एलएएमपी सर्वर कहने से अधिक महंगा होस्टिंग समाधान की आवश्यकता हो सकती है, इसलिए वास्तव में $ /निवेदन।

मैं भी दुर्लभ मामले में अपने कार्यान्वयन को स्केलेबल करना चाहता हूं कि बहुत से लोग ऐप का उपयोग करना शुरू कर दें। क्या उपयोग मात्रा प्रदर्शन/$ अनुपात को एक अलग कार्यान्वयन की ओर ले जाती है? अर्थात। अगर मेरे पास 1k अनुरोध/दिन है तो PHP + MySQL का उपयोग करना सस्ता हो सकता है, लेकिन 1 एम अनुरोध/दिन कुछ और सस्ता उपयोग कर सकता है?

संक्षेप में, आप एक (काफी सरल) दूरस्थ डेटाबेस को कैसे कार्यान्वित करेंगे जिसे होस्टिंग बिल को कम करने के लिए HTTP (एस) का उपयोग करके दूरस्थ रूप से उपयोग किया जाएगा? किस तरह का होस्टिंग समाधान और किस तरह का मंच/भाषा?

अद्यतन: प्रति कार्ल के सुझाव मैंने कोशिश की: रुबी (भाषा) + सिनात्रा (ढांचा) + हेरोोकू (ऐप होस्टिंग) + अमेज़ॅन एस 3 (स्थिर फ़ाइल होस्टिंग)। किसी को भी पढ़ने के लिए जो मेरे पास एक ही दुविधा हो सकती है, यह सेटअप अद्भुत है: आसानी से स्केलेबल ("अनंतता" तक), किफायती, उपयोग करने में आसान। धन्यवाद कार्ल!

अभी तक डीबी बारीकियों पर टिप्पणी नहीं कर सकता क्योंकि मैं लागू नहीं किया है कि अभी तक ऐसा होने पर मेरा सरल क्वेरी आवश्यकताओं के लिए, CouchDB और MongoDB अच्छे विकल्प की तरह लग और वे Heroku के साथ एकीकृत कर रहे हैं।

+0

हाय कोडिनोब। इस पर कोई भी समाचार? क्या आपने अपना समाधान पूरा किया? क्या आपको ऐप इंजन का प्रयास करने का समय मिला? – j7nn7k

+0

हे जोहे, मैंने इसे कार्यान्वित किया है और अब आईओएस क्लाइंट पर काम कर रहा हूं। मैंने अमेज़ॅन एस 3 पर स्थिर फाइलों और मोंगोएचक्यू में चल रहे एक मोंगोडीबी डेटाबेस के साथ हेरोकू पर चल रहे सिनात्रा के साथ रूबी का इस्तेमाल किया। सिनात्रा का उपयोग करके एक विश्वसनीय प्रोटोकॉल को कार्यान्वित करना बहुत आसान था और सब कुछ बेहद स्केलेबल है, और मैं केवल उन संसाधनों के लिए भुगतान करता हूं जो मैं उपयोग करता हूं। मैंने ऐप इंजन की कोशिश नहीं की है क्योंकि यह मेरे लिए पूरी तरह से काम करता है। – lms

उत्तर

5

क्या आपने Sinatra का उपयोग करने और इसे [Heroku] पर होस्ट करने पर विचार किया है? सिनात्रा ने वास्तव में क्या किया है (आरईएसटी सेवाएं)। और स्टोर करने के लिए आवश्यक डेटा की मात्रा के आधार पर, हेरोकू के साथ होस्टिंग निःशुल्क हो सकता है। बस S3 पर अपनी सभी सहायक फ़ाइलों (छवियों, जावास्क्रिप्ट, सीएसएस) रखें। आप बादल में होंगे और किसी भी समय उड़ान भरेंगे।

यह आपकी PHP इच्छाओं के अनुरूप नहीं हो सकता है, लेकिन ईमानदारी से, यह सिनात्रा से कहीं अधिक आसान नहीं होता है।

+0

हेरोकू से लिंक: http://heroku.com/ – Karl

+0

यह बहुत दिलचस्प लग रहा है, मैं इसे जाने दूंगा। मुझे लगता है कि अब मैं मुफ्त ब्लॉसम सेवा से दूर हो सकता हूं और यदि ऐप की मांग बढ़ती है, तो कीमतें बहुत उचित लगती हैं। हालांकि मैं भविष्य में कुछ में Google ऐप इंजन का प्रयास कर सकता हूं। जानकारी के लिए धन्यवाद! – lms

0

यह लागत बनाम अनुभव के बीच एक व्यापार के लिए नीचे आता है।

यदि आपके पास विशेषज्ञता है, तो मैं निश्चित रूप से क्लाउड आधारित आधारभूत संरचना के कुछ रूपों को देखता हूं, जैसे Google App Engine। आप किस क्लाउड प्लेटफार्म के साथ जाते हैं इस पर निर्भर करता है कि आपके पास अलग-अलग भाषाओं के साथ क्या अनुभव है (AppEngine केवल Python/Java के साथ काम करता है)। आम तौर पर, स्केलेबल क्लाउड आधारित प्लेटफार्मों में अधिक "गॉथचास" होते हैं और उन्हें अधिक जानकारी की आवश्यकता होती है, क्योंकि उन्हें विशेष रूप से उच्च अंत स्केलेबिलिटी के लिए ट्यून किया जाता है (और इस प्रकार कुछ मामलों में एंटरप्राइज़ लेवल अवधारणाओं के ज्ञान की आवश्यकता होती है)।

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

+0

मैंने अभी सीनात्रा और हेरोकू के साथ जाने का फैसला किया है क्योंकि ऐसा करना बहुत आसान लगता है जो मैं करना चाहता हूं। मैंने जीएई को देखा है और जावा में पहले से ही कुछ अनुभव है इसलिए मैं निश्चित रूप से भविष्य में भी कोशिश करूँगा। पारितोषिक के लिए धन्यवाद! – lms

0

आरईएसटी सेवाओं को लागू करने के लिए आप जिस तकनीक का उपयोग करते हैं, उसका उपयोग एचटीटीपी का उपयोग करने के तरीके से प्रदर्शन और होस्टिंग लागत पर बहुत कम महत्वपूर्ण प्रभाव डालेगा। HTTP का लाभ उठाना सीखना सीखना, जीईटी, पुट, पोस्ट और डिलीट का उपयोग करना सीखने से कहीं ज्यादा है।

जो भी सर्वर साइड टेक्नोलॉजी आप पहले से जानते हैं उसका उपयोग करें और आरएफसी 2616 पढ़ने के कुछ गुणवत्ता समय व्यतीत करें। आप अपने आप को एक टन और पैसा बचाएंगे।

0

आपके मामले में इसका डेटाबेस सर्वर प्रत्येक अनुरोध पर उपयोग किया जाता है। इसलिए यदि आपने भाषा संकलित की है (सी # या जावा कहें) तो इससे कोई फर्क नहीं पड़ता है (जब तक कि आप कुछ डेटा रूपांतरण या प्रसंस्करण नहीं कर रहे हों)।

तो डीबी सर्वर को अच्छी तरह से स्केल करना होगा। यहां आपकी भाषा और डीबी की पसंद मेजबान ओएस के साथ अच्छी तरह कॉन्फ़िगर की जानी चाहिए।

छोटे PHP + MySQL में अच्छा है यदि आप जेएसओएन तार भेज रहे/प्राप्त कर रहे हैं और न्यूनतम डेटा प्रोसेसिंग के साथ डीबी में भंडारण/पुनर्प्राप्त कर रहे हैं।

अगला ऐप लोकप्रिय हो जाता है और यदि आपके ऐप को मौजूदा डेटा के लगातार अपडेट की आवश्यकता नहीं है तो आप ऐसे डेटा को मोंगोडीबी (जेएसओएन फ्रेंडली) जैसे उच्च स्केलेबल डेटाबेस पर ले जा सकते हैं।

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