एंबेडेड HTTP सर्वर

एम्बेडेड HTTP सर्वर एक HTTP सर्वर है जिसका उपयोग एम्बेडेड प्रणाली में किया जाता है।

HTTP सर्वर को सामान्यतः अनुप्रयोग (एम्बेडेड) प्रणाली के एक सॉफ़्टवेयर घटक के रूप में कार्यान्वित किया जाता है जो यांत्रिक और/या विद्युत भागों वाली मशीन को नियंत्रित और/या मॉनिटर करती है।

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

कुछ प्रकरणो में HTTP सर्वर के माध्यम से प्रदान की गई कार्यक्षमताएं प्रोग्राम-से-प्रोग्राम संचार की भी अनुमति देती हैं, उदाहरण के लिए मॉनिटर की गई मशीन आदि के बारे में लॉग किए गए डेटा को पुनः प्राप्त करने के लिए हैं।

प्रयोग
एम्बेडेड अनुप्रयोग के अंतर्गत उपयोग के उदाहरण हो सकते हैं (उदाहरण):
 * पारंपरिक अनुप्रयोग के लिए एक पतला क्लाइंट इंटरफ़ेस प्रदान करना;
 * विकास पद के समय अनुक्रमण, रिपोर्टिंग और डिबगिंग उपकरण प्रदान करना;
 * नियमित इंटरफ़ेस में प्रदर्शित होने वाली जानकारी के वितरण और अधिग्रहण के लिए एक प्रोटोकॉल उपयोजित करना - संभवतः एक वेब सेवा, और संभवतः XML को डेटा प्रारूप के रूप में उपयोग करना;
 * एक वेब अनुप्रयोग विकसित करने के लिए हैं।

लाभ
उपरोक्त कार्य करने के लिए HTTP का उपयोग करने के कुछ लाभ हैं:
 * HTTP एक अच्छी तरह से अध्ययन किया गया क्रॉस-प्लेटफ़ॉर्म प्रोटोकॉल है और इसके परिपक्व कार्यान्वयन निःशुल्क उपलब्ध हैं;
 * HTTP को फ़ायरवॉल (कंप्यूटिंग) और इंट्रानेट राउटर (कंप्यूटिंग) द्वारा अवरुद्ध किया जाता है;
 * HTTP उपयोगकर्ता (जैसे वेब ब्राउज़र) सभी आधुनिक कंप्यूटरों के साथ आसानी से उपलब्ध हैं;
 * अनुप्रयोगों में एम्बेडेड HTTP सर्वर का उपयोग करने की प्रवृत्ति बढ़ रही है जो होम-नेटवर्किंग और सर्वव्यापी कंप्यूटिंग के बढ़ते प्रचलन के समानांतर है।

विशिष्ट आवश्यकताएँ
प्लेटफ़ॉर्म की प्राकृतिक सीमाएँ जहाँ एक एम्बेडेड HTTP सर्वर चलता है, एम्बेडेड, या अधिक सटीक, एम्बेडेड HTTP सर्वर की गैर-कार्यात्मक आवश्यकताओं की सूची में योगदान देता है। इनमें से कुछ आवश्यकताएँ निम्नलिखित हैं। प्रत्येक विशिष्ट परियोजना के लिए, आवश्यकताएँ काफी भिन्न हो सकती हैं। उदाहरण के लिए, ROM और RAM फ़ुटप्रिंट एक बहुत महत्वपूर्ण प्रतिबंध हो सकते हैं और प्रणाली डिज़ाइनर के विकल्पों को सीमित कर सकती हैं। प्रणाली के लिए C++ या JVM उपलब्धता एक और प्रतिबंध हो सकती है। प्रायः प्रदर्शन एक विषय है, क्योंकि विशिष्ट एम्बेडेड प्रणाली एक साथ कई कार्य चलाते हैं और एक HTTP सर्वर उनमें से केवल एक है और इसे कम प्राथमिकता वाले कार्य के रूप में समनुरूप किया जा सकता है।
 * छोटा RAM और ROM फ़ुटप्रिंट है। सटीक आकार प्रणाली पर निर्भर करता है, लेकिन कई प्रकरणो में कई मेगाबाइट से अधिक की कोई भी चीज़ एम्बेड करने योग्य नहीं होती है।
 * न्यूनतम CPU उपयोग।
 * एकाधिक सीपीयू और संचालन प्रणाली संयोजनों के लिए क्रॉस संकलन समर्थन है।
 * किसी उपस्तिथ अनुप्रयोग के साथ सरल एकीकरण, जिसमें संचालन प्रणाली और अनुप्रयोग के साथ स्थैतिक लिंकिंग सम्मिलित है।
 * यदि कोई फाइल प्रणाली नहीं है तो अनुप्रयोग मेमोरी से वेब पेजों की सेवा करता है।
 * मॉड्यूलर।
 * सिंगल थ्रेड (कंप्यूटिंग) और मल्टीथ्रेडिंग (सॉफ्टवेयर) समर्थन।

यह भी देखें

 * वेब सर्वर सॉफ्टवेयर की तुलना
 * अनुप्रयोग सर्वर की तुलना
 * सर्वर (कंप्यूटिंग)
 * HTTP सर्वर
 * वेब सर्वर

बाहरी संबंध

 * libmicrohttpd contains an extensive list of embedded HTTP server libraries towards the bottom of the page
 * Example: functionalities of an embedded HTTP server component
 * Embedded Web Server vs. Embedded Application Server