2010-02-18 12 views
8

मेरे अनुप्रयोगों में से एक के लिए मैं एक न्यूनतम वेब इंटरफ़ेस प्रदान करना चाहता हूं। यह कोर एप्लिकेशन सी ++ में लिखा गया है और एक फ्रेमवर्क के रूप में Qt4 का उपयोग करता है। चूंकि मैं कुछ पुस्तकालयों का भी उपयोग कर रहा हूं, मैंने कुछ चीजों की गणना करने और कुछ जटिल डेटा प्रबंधन करने के लिए लिखा है, इसलिए मैं इस मौजूदा कोड को वेब इंटरफेस के बैकएंड के रूप में उपयोग करना चाहता हूं।वेब अनुप्रयोग के लिए बैकएंड के रूप में सी ++/क्यूटी 4 एप्लिकेशन का उपयोग

आइडिया 1: एक एम्बेडेड वेब सर्वर

पहली बात मैंने कोशिश की (और जो कुछ हद तक काम किया) का उपयोग करते हुए एक एम्बेडेड वेब सर्वर (mongoose) का उपयोग किया गया था। जैसा कि आप कल्पना कर सकते हैं, यह सिर्फ एक बहुत ही पतली लाइब्रेरी है और आपको अपने आप को बहुत सी चीजें लागू करना है (जैसे सत्र प्रबंधन, कुकीज़ आदि)।

आइडिया 2: एक सामान्य वेब सर्वर का उपयोग करना और अपने आवेदन

अगले बात यह है कि मेरे सिर के लिए आया था के लिए एक fcgi/cgi/SCGI बैकएंड जोड़ने (उदाहरण के लिए एक परिपक्व लेकिन कॉम्पैक्ट वेब सर्वर का उपयोग कर रहा था, lighttpd) और सरल इसे एक fcgi/scgi/cgi बैकएंड प्रदान करते हैं। मैं एक अच्छा ढांचा, जैसे कि पिलोन, पीएचपी, या आरओआर, (...) का उपयोग करके वेब एप्लिकेशन लिख सकता हूं और बस एक यूआरएल उपसर्ग है, जैसे /a/... जो मुझे सीधे बैकएंड से बात करने की अनुमति देता है।

मैंने अपने आवेदन में libfcgi को लागू करने का प्रयास किया, लेकिन यह आवश्यक से अधिक गड़बड़ दिखता है (उदाहरण के लिए आपको अपने ऐप और वेब सर्वर के बीच डेटा को पास करने के लिए अपने स्वयं के टीसीपी/आईपी सॉकेट को कार्यान्वित करना होगा और इसे सुरंग करना होगा FCGI पुस्तकालय, हुंह)

आइडिया 3: अपने आवेदन जो सबसे बुनियादी काम करता है और एक सामान्य वेब सर्वर और ढांचे का उपयोग बाकी

करने के लिए की एक कमांड लाइन संस्करण बनाना यह तीसरा विचार है वह मेरे सिर पर आया था। यह मूल रूप से पारंपरिक तरीके (PHP, RoR, आदि) का उपयोग करके एक वेब एप्लिकेशन बनाने और डेटा को संसाधित करने के लिए मेरे आवेदन के कमांड लाइन संस्करण का उपयोग करने और आवश्यक होने पर इसे वापस करने के बारे में है।


मैं वेब अनुप्रयोग बनाने के साथ कुछ अनुभव मिल गया है, लेकिन मैं इस तरह कुछ करने के लिए नहीं था, इसलिए मैं कुछ विचार या सुझाव सुनने के लिए चाहते हैं। मैं ब्राउज़र पर जावास्क्रिप्ट का उपयोग करना चाहता हूं (AJAX, वह है) और उपयोगकर्ता को थोड़ा आसान बनाने के लिए वेब ब्राउज़र और सर्वर के बीच कुछ JSON संरचनाएं पास करना चाहती हैं।

तो इस पर आपके सुझाव, विचार क्या हैं? मैं ईमानदारी से पहिया का पुन: आविष्कार नहीं करना चाहता हूं।

उत्तर

4

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

उस वेबसर्वर के साथ आपके ऐप की बातचीत के लिए, यह लोड पर थोड़ा सा निर्भर करता है और आपके वेब सर्वर (पाठ्यक्रम के दुभाषिया के माध्यम से) PHP, पायथन या अन्य भाषाओं में लिखित सॉफ़्टवेयर के साथ आपके किस प्रकार का अनुभव है।

एक मामूली लोड, और PHP से एक्सेस किया गया कमांड लाइन टूल पूरी तरह से अच्छा कर सकता है।

एक और भारी भार और आप क्यूटी के साथ एक सरल (SOAP?) सर्वर को कार्यान्वित करना चाहते हैं और एक पायथन (या PHP) स्क्रिप्ट से उस तक पहुंच सकते हैं।

इस तरह आपको अपने ऐप में लेआउट करने की आवश्यकता नहीं है, और आपको सुरक्षा को लागू करने की आवश्यकता नहीं है।

+0

मैं ईमानदारी से कुछ भी अपने आवेदन में संबंधित लेआउट करने के लिए नहीं करना चाहते हैं (जो के रूप में क्या टेम्पलेट वर्गों और इस तरह के लिए कर रहे हैं)। मैं सिर्फ वेब सर्वर और मेरे कोर एप्लिकेशन के बीच आवश्यक जानकारी का आदान-प्रदान करना चाहता हूं और बाकी करने के लिए अधिक स्थिर और सुरक्षित तकनीक का उपयोग करना चाहता हूं। एसओएपी को कभी नहीं देखा, इसके बारे में कुछ और पढ़ना होगा। – BastiBen

3

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

+0

मैंने फास्टसीजीआई में देखा, लेकिन "आधिकारिक" सी/सी ++ लाइब्रेरी एक वास्तविक गड़बड़ है। शायद मुझे कुछ याद आया, लेकिन अधिकांश वेब सर्वर टीसीपी/आईपी का उपयोग कर फास्टसीजी अनुप्रयोगों से जुड़ते हैं; हालांकि आधिकारिक fastcgi लाइब्रेरी कोई टीसीपी/आईपी समर्थन प्रदान नहीं करता है ...? – BastiBen

2

मैं एक ऐसी ही परियोजना (यह भी एक क्यूटी आवेदन के लिए FastCGI Protocol Driver library का उपयोग किया है), डाउनलोड लिंक उस पृष्ठ के अंत में है [Libfastcgi]। आवेदन के साथ एकीकरण वास्तव में तुलनात्मक रूप से आसान बाहर निकला। लाइटटपीडी + mod_fastcgi वेब सर्वर के रूप में इस्तेमाल किया गया था। हालांकि, FastCGIQt के बारे में कुछ भी नहीं कह सकता है।

0

आप Wt क्यूटी आधारित अनुप्रयोगों के लिए एक वेब इंटरफेस प्रदान करने के लिए अच्छी तरह से काम करता है। दोनों की एक समान प्रोग्रामिंग शैली है, और एक उदाहरण है जो क्यूटी के साथ एकीकरण को प्रदर्शित करता है।