मिडलवेयर वास्तव में क्या है?


202

मैंने बहुत से लोगों को हाल ही में मिडलवेयर के बारे में बात करते हुए सुना है , लेकिन मिडलवेयर की सही परिभाषा क्या है? जब मैं मिडलवेयर में देखता हूं, तो मुझे बहुत सारी जानकारी और कुछ परिभाषाएं मिलती हैं, लेकिन इन सूचनाओं और परिभाषाओं को पढ़ते हुए, ऐसा लगता है कि ज्यादातर सभी 'चेतावनी' किसी चीज के बीच में हैं। तो, क्या सभी चीजें मिडलवेयर हैं?

या क्या आपके पास ऐसे बर्तन का उदाहरण है जो मिडलवेयर नहीं है?

जवाबों:


219

कहते हैं कि आपकी कंपनी 4 अलग-अलग उत्पाद बनाती है, आपके ग्राहक के पास अन्य 3 अलग-अलग कंपनियों के 3 अलग-अलग उत्पाद हैं।

किसी दिन मुवक्किल ने सोचा, क्यों न हम अपने सभी सिस्टम को एक विशाल सिस्टम में एकीकृत कर लें। दस मिनट बाद उनके आईटी विभाग ने कहा कि 2 साल लगेंगे।

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

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


बहुत बढ़िया उदाहरण! इस तरह से यह एक विषम वातावरण नहीं बन जाएगा? सजातीय नहीं है।
राबिया नाज खान

मिडलवेयर एक डेटा (एकत्रीकरण + परिवर्तन) घटक है।
नवंबर

92

मिडलवेयर एक बहुत ही भयानक शब्द है। क्या एक मामले में "मिडलवेयर" दूसरे में नहीं होगा। सामान्य तौर पर, आप निम्न विशेषताओं के लिए मिडलवेयर के रूप में वर्गीकृत कुछ की उम्मीद कर सकते हैं:

  • मुख्य रूप से (आमतौर पर विशेष रूप से) सॉफ्टवेयर; आमतौर पर किसी विशेष हार्डवेयर की आवश्यकता नहीं होती है।

  • यदि ऐसा नहीं होता, तो इस पर निर्भर होने वाले अनुप्रयोगों को अपने आवेदन के हिस्से के रूप में शामिल करना होगा और बहुत अधिक दोहराव का अनुभव होगा।

  • लगभग निश्चित रूप से दो अनुप्रयोगों को जोड़ता है और उनके बीच डेटा पास करता है।

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

मिडलवेयर के कुछ उदाहरण:

  • वितरित कैश
  • संदेश कतार
  • लेनदेन की निगरानी
  • पैकेट फिर से लिखना
  • स्वचालित बैकअप प्रणाली

20

विकिपीडिया की काफी अच्छी व्याख्या है: http://en.wikipedia.org/wiki/Middleware

इसके साथ शुरू होता है

मिडलवेयर कंप्यूटर सॉफ्टवेयर है जो सॉफ्टवेयर घटकों या अनुप्रयोगों को जोड़ता है। सॉफ्टवेयर में ऐसी सेवाओं का एक समूह होता है जो एक या एक से अधिक मशीनों को चलाने के लिए कई प्रक्रियाओं को चलाने की अनुमति देता है।

क्या है मिडलवेयर कुछ उदाहरण देता है।


1
मैंने खुद को पहले से ही पाया, लेकिन ऐसा लगता है कि विकिपीडिया कहता है कि सब कुछ मिडलवेयर है या क्या आपके पास वेयर का उदाहरण है जो मिडलवेयर नहीं है
मिशेल

2
मैं जोड़कर स्पष्ट करूंगा ... "एक या एक से अधिक मशीनों के साथ बातचीत करने के लिए कि मूल रूप से सक्षम नहीं होगा"। अन्यथा, सहमत हैं, उस उत्तर में कुछ भी गलत नहीं है।
जेरीली

1
यह कहने के लिए बेहतर है कि "एक या एक से अधिक [प्रक्रियाओं] बातचीत करने के लिए कि मूल रूप से सक्षम नहीं होगा"।
fstuijt

19

वहाँ (कम से कम) तीन अलग-अलग परिभाषाएँ हैं जिनसे मैं अवगत हूँ

  • व्यवसाय कंप्यूटिंग में, मिडलवेयर अनुप्रयोगों और सेवाओं के बीच संदेश और एकीकरण सॉफ्टवेयर है

  • गेमिंग में, मिडलवेयर बहुत अच्छी तरह से कुछ भी है जो तीसरे पक्ष द्वारा प्रदान किया जाता है

  • (कुछ) एम्बेडेड सॉफ्टवेयर सिस्टम में, मिडलवेयर उन सेवाओं को प्रदान करता है जो एप्लिकेशन का उपयोग करते हैं, जो हार्डवेयर एब्स्ट्रेक्शन लेयर द्वारा प्रदान किए गए कार्यों से बने होते हैं - यह एप्लीकेशन लेयर और हार्डवेयर एबस्ट्रेक्शन लेयर के बीच बैठता है।


15

सीधे शब्दों में कहें तो मिडलवेयर एक सॉफ्टवेयर घटक है जो एक साथ असमान प्रणालियों को एकीकृत करने के लिए सेवाएं प्रदान करता है।

एक जटिल उद्यम वातावरण में, एक-दूसरे से बात करने के लिए दो या दो से अधिक एंटरप्राइज़ सिस्टम को एकीकृत करने की आवश्यकता होने पर कई चुनौतियाँ होती हैं। आम तौर पर ये सिस्टम एक-दूसरे की भाषा को नहीं समझते हैं क्योंकि वे अलग-अलग भाषाओं (जैसे सी ++, जावा, कोबोल, आदि) का उपयोग करके विभिन्न प्लेटफार्मों पर विकसित होते हैं।

तो यहाँ चित्र में मिडलवेयर सॉफ्टवेयर आता है जो सेवाएं प्रदान करता है

  • संदेशों के प्रारूप को एक ऐप से दूसरे में बदलना,
  • सुरक्षा का ध्यान रखने के अलावा संदेशों को रूट करना और समृद्ध करना,
  • एन्क्रिप्शन,
  • सत्यापन और
  • इन संदेशों के लिए विभिन्न व्यावसायिक नियम लागू करना।

मिडलवेयर का एक विशिष्ट उदाहरण IBM संदेश दलाल (WMB / IIB), WESB, डाटापॉवर XI50, Oracle फ्यूजन, खच्चर और कई अन्य जैसे ESB उत्पाद हैं।

इसलिए, मिडिलवेयर ज्यादातर सेवा लेने वाले ऐप्स और सेवा प्रदाता ऐप के बीच में बैठता है और इन ऐप को एक-दूसरे से बात करने में मदद करता है।


14

मिडलवेयर इस बारे में है कि हमारा आवेदन आने वाले अनुरोधों का जवाब कैसे देता है। मध्यवर्ग आने वाले अनुरोध को देखते हैं, और इस अनुरोध के आधार पर निर्णय लेते हैं। हम केवल बिचौलियों का उपयोग करके पूरे अनुप्रयोगों का निर्माण कर सकते हैं। उदाहरण के लिए ASP.NET एक वेब फ्रेमवर्क है जिसमें मुख्य HTTP मिडलवेयर घटकों का पालन होता है।

  1. अपवाद / त्रुटि से निपटने
  2. स्टेटिक फ़ाइल सर्वर
  3. प्रमाणीकरण
  4. MVC Middlewares

जैसा कि ऊपर चित्र में दिखाया गया है, ASP.NET में विभिन्न मिडलवेयर घटक हैं जो आने वाले अनुरोध को प्राप्त करते हैं, और इसे C # वर्ग (इस मामले में एक नियंत्रक वर्ग) पर पुनर्निर्देशित करते हैं।


10

मिडलवेयर सॉफ्टवेयर का एक सामान्य शब्द है जो "ग्लू को एक साथ" अलग, अक्सर जटिल और पहले से ही मौजूद कार्यक्रमों के लिए कार्य करता है। कुछ सॉफ्टवेयर घटक जो अक्सर मिडलवेयर से जुड़े होते हैं उनमें एंटरप्राइज़ एप्लिकेशन और वेब सेवाएँ शामिल होती हैं।


6

वेब एप्लिकेशन डेवलपमेंट में एक सामान्य परिभाषा है जो (और मैं इसे बेहतर बना रहा हूं, लेकिन यह फिट बैठता है): एक घटक जो HTTP अनुरोध और / या प्रतिक्रिया को संशोधित करने के लिए डिज़ाइन किया गया है, लेकिन (आमतौर पर) प्रतिक्रिया की सेवा नहीं करता है इसकी संपूर्णता, अनुरोध प्रसंस्करण के दौरान व्यवहार परिवर्तनों की एक पाइपलाइन बनाने के लिए एक साथ जंजीर के रूप में तैयार की गई है।

आमतौर पर मिडलवेयर द्वारा लागू किए जाने वाले कार्यों के उदाहरण:

  • Gzip प्रतिक्रिया संपीड़न
  • HTTP प्रमाणीकरण
  • लॉगिंग का अनुरोध करें

यहां मुख्य बात यह है कि इनमें से कोई भी ग्राहक के जवाब के लिए पूरी तरह से जिम्मेदार नहीं है। इसके बजाय प्रत्येक व्यवहार को पाइप लाइन के हिस्से के रूप में किसी तरह से बदलता है, वास्तविक प्रतिक्रिया को अनुक्रम (पाइपलाइन) में बाद में कुछ से आता है।

आमतौर पर, बिचौलियों को किसी प्रकार के "राउटर" से पहले चलाया जाता है, जो अनुरोध (अक्सर पथ) की जांच करता है और प्रतिक्रिया उत्पन्न करने के लिए उपयुक्त कोड कहता है।

व्यक्तिगत रूप से, मुझे इसकी उदारता के लिए "मिडलवेयर" शब्द से नफरत है लेकिन यह आम उपयोग में है।

यहाँ विशेष रूप से रूबी ऑन रेल्स के लिए एक अतिरिक्त विवरण दिया गया है।


6

Middleware वेब एप्लिकेशन और वेब सेवाओं के बीच में खड़ा होता है जो मूल रूप से संचार नहीं कर सकते हैं और अक्सर विभिन्न भाषाओं / रूपरेखाओं में लिखे जाते हैं।

ऐसा ही एक उदाहरण OWIN middleware for .NETपर्यावरण है, इससे पहले कि ओविन लोगों को एक Microsoft होस्टिंग सॉफ़्टवेयर में वेब ऐप होस्ट करने के लिए मजबूर किया गया था IIS। ओविन विकसित होने के बाद, इसने आईआईएस और सेल्फ होस्ट दोनों की मेजबानी करने की क्षमता को बढ़ा दिया है, आईआईएस में ओविन के लिए सिर्फ समर्थन जोड़ा गया जो एक इंटरफेस के रूप में काम करता है। इसके अलावा यह संभव हो गया host .NET web apps on Linux via Mono, जिसने फिर से ओविन के लिए समर्थन जोड़ा।

इसमें Single Page Applicationsओविन हैंडलिंग Httpरिक्वेस्ट / रिस्पॉन्स संदर्भ बनाने की क्षमता भी शामिल है , इसलिए ओवेन के शीर्ष पर आप authentication/authorizationOAuth2 के माध्यम से तर्क जोड़ सकते हैं। उदाहरण के लिए, आप मिडलवेयर को उस वर्ग को पंजीकृत करने के लिए कॉन्फ़िगर कर सकते हैं जिसमें उपयोगकर्ता प्रमाणीकरण (उदाहरण के लिए OAuth2 कार्यान्वयन) का तर्क हो। वह वर्ग जिसमें http अनुरोध / प्रतिक्रिया संदेशों को प्रबंधित करने का तर्क होता है, इस तरह आप एक एप्लिकेशन को अन्य एप्लिकेशन / सेवाओं के साथ अलग-अलग डेटा प्रारूप (जैसे json, xml, आदि) के माध्यम से संवाद कर सकते हैं यदि आप वेब को लक्षित कर रहे हैं)।


3

मिडलवेयर के कुछ उदाहरण: CORBA, रिमोट मेथड इनवोकेशन (RMI), ...

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


2

वेबवर्क के साथ मेरे अपने अनुभव से, एक मिडलवेयर उपयोगकर्ताओं (वेब ​​ब्राउज़र) और बैकएंड डेटाबेस के बीच सामान था। यह वह सॉफ़्टवेयर था जो उपयोगकर्ता द्वारा रखे गए सामान को ले जाता था (उदाहरण के लिए: आईपैड्स के लिए ऑर्डर, कुछ जादुई व्यापारिक तर्क दिए, अर्थात जाँच करें कि क्या ऑर्डर भरने के लिए पर्याप्त आईपैड उपलब्ध हैं) और उन परिवर्तनों को प्रतिबिंबित करने के लिए बैकेंड डेटाबेस को अपडेट किया।


2

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

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

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

उदाहरण 3: आपके पास कई अलग-अलग सॉफ़्टवेयर हैं और आपको उन्हें एक दूसरे से बात करने या एक सामान्य प्रारूप में डेटा भेजने की आवश्यकता है जो सभी प्रणालियों द्वारा समझ में आता है फिर यह वह जगह है जहाँ मिडलवेयर सिस्टम काम आता है।

आशा है कि दी गई जानकारी मदद करती है।


2

यह ऑपरेटिंग सिस्टम और एक नेटवर्क में वितरित कंप्यूटिंग सिस्टम के प्रत्येक तरफ अनुप्रयोगों के बीच एक सॉफ्टवेयर परत है। वास्तव में यह विषम नेटवर्क और सॉफ्टवेयर सिस्टम को जोड़ता है।


0

मैंने हमेशा इसे सबसे पुराना सॉफ्टवेयर माना है जिसे मुझे इंस्टॉल करना था। कुल ऐप में एक वेब सर्वर, एक डेटाबेस सर्वर और एक एप्लिकेशन सर्वर का उपयोग किया जाता है। वेब सर्वर डेटा और ऐप के बीच में स्थित है।


0

यदि मैं गलत नहीं हूं, तो सॉफ्टवेयर एप्लिकेशन फ्रेमवर्क में , संदर्भ के आधार पर , आप उपयोगकर्ता और एप्लिकेशन के बीच कुछ गतिविधियों को करने middlewareके लिए निम्नलिखित भूमिकाओं पर विचार कर सकते हैं जिन्हें संयुक्त किया जा सकता है ।requestresponse

  • अनुकूलक
  • प्रक्षालक
  • सत्यापनकर्ता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.