एक इंटरफ़ेस डेफिनिशन लैंग्वेज (आईडीएल) उस इंटरफ़ेस को परिभाषित करती है जिसे प्रोग्राम या सिस्टम को एक दूसरे के साथ संचार करते समय उपयोग करना चाहिए। आईडीएल का उपयोग उन प्रकारों, विधियों और डेटा प्रारूपों का वर्णन करने के लिए किया जाता है जिनका उपयोग दो या दो से अधिक सॉफ़्टवेयर घटकों को आम तौर पर अलग-अलग तरीकों से बातचीत करने के लिए करना चाहिए। प्रोग्रामिंग की भाषाएँ या नेटवर्कयुक्त वातावरण। आईडीएल का लक्ष्य एक स्पष्ट, भाषा-अज्ञेयवादी इंटरफ़ेस विनिर्देश प्रदान करके अंतरसंचालनीयता सुनिश्चित करना है।
आईडीएल वितरित प्रणालियों में विशेष रूप से उपयोगी होते हैं, जहां घटक विभिन्न प्लेटफार्मों पर चलते हैं या विभिन्न प्रोग्रामिंग भाषाओं में लिखे जाते हैं। आईडीएल में इंटरफेस को परिभाषित करके, डेवलपर्स कोड उत्पन्न कर सकते हैं जो इन विविध घटकों को संचार करने की अनुमति देता है। यह निर्बाध संचार कई डोमेन में महत्वपूर्ण है, जैसे वेब सेवाएँ (SOAP के लिए WSDL या GraphQL का उपयोग करना) एपीआई), ऑब्जेक्ट रिक्वेस्ट ब्रोकर (जैसे CORBA), और रिमोट प्रोसेस कॉल (RPC), जिसमें GRPC जैसे आधुनिक कार्यान्वयन शामिल हैं।

आईडीएल का संक्षिप्त इतिहास (इंटरफ़ेस परिभाषा भाषा)
इंटरफ़ेस डेफिनिशन लैंग्वेजेज (आईडीएल) की अवधारणा वितरित कंप्यूटिंग के विकास और संचार के लिए विविध प्रणालियों की आवश्यकता के साथ विकसित हुई है। IDL का इतिहास कंप्यूटर नेटवर्किंग के विकास के साथ जुड़ा हुआ है, दूरस्थ प्रक्रिया कॉल (आरपीसी), और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग।
आईडीएल की जड़ें 1970 के दशक में रिमोट प्रोसेस कॉल (आरपीसी) तंत्र के विकास में खोजी जा सकती हैं। RPC ने फ़ंक्शंस को दूरस्थ सिस्टम पर निष्पादित करने की अनुमति दी जैसे कि वे स्थानीय थे, जिससे इन दूरस्थ फ़ंक्शंस के लिए इंटरफ़ेस को परिभाषित करने का एक तरीका आवश्यक हो गया।
1980 के दशक में, सन की आरपीसी जैसी प्रौद्योगिकियों ने दूरस्थ प्रक्रिया कॉल के लिए इंटरफेस को परिभाषित करने के लिए आईडीएल के उपयोग को औपचारिक बनाना शुरू कर दिया। सन आरपीसी ने दूरस्थ कार्यों के लिए डेटा प्रकार और हस्ताक्षर निर्दिष्ट करने के लिए एक आईडीएल का उपयोग किया, जिससे विभिन्न प्रणालियों को एक नेटवर्क पर संचार करने में सक्षम बनाया गया।
ऑब्जेक्ट मैनेजमेंट ग्रुप (ओएमजी) ने 1980 के दशक के अंत में कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर (कोरबा) की शुरुआत की। वितरित कंप्यूटिंग में ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण को अपनाने में महत्वपूर्ण भूमिका निभाते हुए, CORBA के IDL ने उन वस्तुओं के लिए इंटरफेस की परिभाषा की अनुमति दी, जिन्हें दूरस्थ रूप से लागू किया जा सकता है।
1990 के दशक में IDL का विभिन्न डोमेन में विस्तार देखा गया। माइक्रोसॉफ्ट ने कंपोनेंट ऑब्जेक्ट मॉडल (COM) और डिस्ट्रीब्यूटेड कंपोनेंट ऑब्जेक्ट मॉडल (DCOM) पेश किया, जो नेटवर्क वातावरण में घटकों के बीच इंटरफेस को परिभाषित करने के लिए IDL का उपयोग करता था।
इंटरनेट के विकास से वेब सेवाओं का विकास हुआ और वेब सेवा इंटरफेस को परिभाषित करने के लिए आईडीएल के रूप में वेब सेवा विवरण भाषा (डब्लूएसडीएल) का उपयोग हुआ। डब्लूएसडीएल ने अंतर्निहित प्रोग्रामिंग भाषाओं या प्लेटफार्मों की परवाह किए बिना, विभिन्न वेब सेवाओं को XML-आधारित संदेशों का उपयोग करके संचार करने की अनुमति दी।
2000 और उसके बाद के दशक में अधिक कुशल संचार और आधुनिक प्रोग्रामिंग प्रतिमानों के लिए बेहतर समर्थन के लिए डिज़ाइन किए गए नए आईडीएल और क्रमांकन प्रारूपों की शुरूआत देखी गई है। उदाहरणों में Google के प्रोटोकॉल बफ़र्स (प्रोटोबफ़) शामिल हैं, जिसका उपयोग उच्च-प्रदर्शन आरपीसी के लिए जीआरपीसी के साथ किया जाता है, और फेसबुक का अपाचे थ्रिफ्ट, जिसका उपयोग स्केलेबल क्रॉस-भाषा सेवाओं के विकास के लिए किया जाता है।
एपीआई और माइक्रोसर्विसेज आर्किटेक्चर के आगमन ने सेवाओं के बीच स्पष्ट, मजबूत इंटरफेस को परिभाषित करने के लिए आईडीएल के महत्व पर जोर दिया है। 2012 में फेसबुक द्वारा विकसित और 2015 में ओपन-सोर्स किया गया ग्राफक्यूएल, डेटा क्वेरी और हेरफेर को परिभाषित करने के लिए एक शक्तिशाली आईडीएल प्रदान करता है। flexसक्षम, कुशल तरीके से.
आज, आईडीएल का विकास जारी है, चल रहे विकास में प्रदर्शन, अंतरसंचालनीयता और जटिल डेटा संरचनाओं और वर्कफ़्लो को संभालने की क्षमता में सुधार पर ध्यान केंद्रित किया गया है। की ओर रुझान cloud कंप्यूटिंग, माइक्रोसर्विसेज, और कंटेनरीकरण वितरित प्रणालियों के बीच संचार के लिए कुशल, अच्छी तरह से परिभाषित इंटरफेस के महत्व को रेखांकित करता है।
इंटरफ़ेस परिभाषा भाषा उपयोग के मामले
इंटरफ़ेस डेफिनिशन लैंग्वेजेज (आईडीएल) सॉफ्टवेयर विकास और सिस्टम एकीकरण में विभिन्न उद्देश्यों को पूरा करती हैं, जो विभिन्न सॉफ्टवेयर घटकों के इंटरैक्ट करने की स्पष्ट और सुसंगत परिभाषाओं की आवश्यकता को संबोधित करती हैं। यहां आईडीएल के लिए कुछ प्रमुख उपयोग के मामले दिए गए हैं:
- रिमोट प्रोसीजर कॉल (आरपीसी) सिस्टम. आईडीएल उन कार्यों या प्रक्रियाओं के लिए इंटरफेस को परिभाषित करते हैं जिन्हें रिमोट सिस्टम पर निष्पादित किया जा सकता है, जिससे विभिन्न कंप्यूटर या नेटवर्क पर चलने वाली सेवाओं के बीच संचार की सुविधा मिलती है। यह वितरित प्रणालियों के लिए महत्वपूर्ण है जहां किसी एप्लिकेशन के हिस्से विभिन्न स्थानों पर फैले हुए हैं।
- ऑब्जेक्ट रिक्वेस्ट ब्रोकर्स (ओआरबी). CORBA (कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर) जैसी प्रणालियों में, IDL उन ऑब्जेक्ट के तरीकों और डेटा प्रकारों का वर्णन करते हैं जिन्हें दूरस्थ रूप से बुलाया जा सकता है। यह विभिन्न प्रोग्रामिंग भाषाओं या विभिन्न प्लेटफार्मों पर वस्तुओं को एक-दूसरे के साथ निर्बाध रूप से संवाद करने की अनुमति देता है।
- वेब सेवाओं. SOAP-आधारित वेब सेवाओं के लिए, WSDL (वेब सेवा विवरण भाषा) एक IDL के रूप में कार्य करती है, जो वेब सेवा पर उपलब्ध संचालन और अनुरोध और प्रतिक्रिया संदेशों के प्रारूप को परिभाषित करती है। यह वेब सेवाओं और उनके ग्राहकों के बीच अंतरसंचालनीयता सुनिश्चित करता है, भले ही उनका अंतर्निहित कार्यान्वयन कुछ भी हो।
- एपीआई विकास. आईडीएल का उपयोग एपीआई के अंतिम बिंदुओं, अनुरोध/प्रतिक्रिया संरचनाओं और व्यवहार को परिभाषित करने के लिए किया जाता है। यह विशेष रूप से RESTful API और अधिक आधुनिक GraphQL API में प्रासंगिक है, जहां IDL क्वेरी, म्यूटेशन और क्लाइंट और क्लाइंट के बीच आदान-प्रदान किए गए डेटा प्रकारों के लिए स्कीमा निर्दिष्ट करता है। server.
- माइक्रोसर्विसेज आर्किटेक्चर. में माइक्रोसर्विसेज आर्किटेक्चर, आईडीएल विभिन्न सेवाओं के बीच स्पष्ट अनुबंधों की परिभाषा की सुविधा प्रदान करते हैं। यह सेवाओं के स्वतंत्र विकास और तैनाती की अनुमति देता है जबकि यह सुनिश्चित करता है कि वे प्रभावी ढंग से संचार कर सकें, जो कि माइक्रोसर्विसेज-आधारित अनुप्रयोगों की चपलता और स्केलेबिलिटी के लिए आवश्यक है।
- अंतर-भाषा विकास. आईडीएल कई प्रोग्रामिंग भाषाओं में कोड स्टब्स बनाने में सक्षम बनाता है, जिससे विभिन्न भाषाओं में लिखे गए घटकों के एकीकरण की अनुमति मिलती है। यह क्षमता जटिल प्रणालियों में फायदेमंद है जहां विभिन्न घटकों को उनके कार्यों के लिए सबसे उपयुक्त भाषाओं में लागू करके अनुकूलित किया जा सकता है।
- डेटा क्रमबद्धता और अक्रमांकन. Google के प्रोटोकॉल बफ़र्स जैसी तकनीकें संरचित डेटा को परिभाषित करने के लिए IDL का उपयोग करती हैं। यह भंडारण या ट्रांसमिशन के लिए डेटा के कुशल क्रमांकन और डिसेरिएलाइज़ेशन को सक्षम बनाता है, सिस्टम के विभिन्न हिस्सों या नेटवर्क सीमाओं के बीच संचार को अनुकूलित करता है।
- सिस्टम प्रलेखन. आईडीएल सिस्टम के इंटरफ़ेस का औपचारिक, मशीन-पठनीय दस्तावेज़ीकरण प्रदान करते हैं, जिसका उपयोग मानव-पठनीय दस्तावेज़ तैयार करने या क्लाइंट लाइब्रेरी और टूल के विकास का मार्गदर्शन करने के लिए किया जा सकता है। यह क्षमता समझ को बढ़ाती है और विभिन्न सॉफ्टवेयर घटकों के एकीकरण की सुविधा प्रदान करती है।
आईडीएल पर आधारित सॉफ्टवेयर - उदाहरण
यहां सॉफ्टवेयर के सबसे सामान्य उदाहरण दिए गए हैं जो आईडीएल क्षमताओं का उपयोग करते हैं:
- कॉर्बा (कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर). CORBA उन इंटरफेस को परिभाषित करने के लिए अपने स्वयं के IDL का उपयोग करता है जो वस्तुएं बाहरी दुनिया में मौजूद होती हैं, जिससे वस्तुओं के बीच निर्बाध संचार सक्षम होता है, चाहे वे कहीं भी स्थित हों या वे किस भाषा में लिखे गए हों। CORBA IDL क्रॉस-लैंग्वेज और क्रॉस-प्लेटफॉर्म ऑब्जेक्ट को परिभाषित करने के लिए महत्वपूर्ण है। इंटरफ़ेस.
- जीआरपीसी (गूगल रिमोट प्रोसीजर कॉल). जीआरपीसी अपने आईडीएल के रूप में प्रोटोकॉल बफ़र्स (प्रोटोबफ़) का उपयोग करता है, जो डेवलपर्स को सरल सेवाओं और उनके विधि मापदंडों और रिटर्न प्रकारों को परिभाषित करने की अनुमति देता है। यह एक ओपन-सोर्स आरपीसी फ्रेमवर्क है जो क्लाइंट और को सक्षम बनाता है server एप्लिकेशन पारदर्शी रूप से संचार करते हैं और कनेक्टेड सिस्टम बनाना आसान बनाते हैं। जीआरपीसी को वितरित अनुप्रयोगों के उच्च-प्रदर्शन और उच्च-उत्पादकता डिज़ाइन दोनों के लिए डिज़ाइन किया गया है।
- वेब सेवाएँ (SOAP और WSDL). SOAP-आधारित वेब सेवाओं के लिए, WSDL (वेब सेवा विवरण भाषा) IDL के रूप में कार्य करती है, जो मशीन-प्रक्रिया योग्य प्रारूप में नेटवर्क सेवा इंटरफेस का वर्णन करती है। डब्लूएसडीएल परिभाषित करता है कि वेब सेवा तक कैसे पहुंचा जाए, जिसमें सेवा द्वारा उजागर किए जाने वाले संचालन, उपयोग किए गए संदेश और प्रोटोकॉल बाइंडिंग शामिल हैं। यह मानकीकरण विभिन्न प्रणालियों को परिभाषित इंटरफेस के माध्यम से वेब पर बातचीत करने में सक्षम बनाता है।
- थ्रिफ्ट (अपाचे थ्रिफ्ट). अपाचे थ्रिफ्ट कई भाषाओं के लिए सेवाओं को परिभाषित करने और बनाने के लिए अपने आईडीएल का उपयोग करता है। यह सेवाओं को लिखने के लिए उपकरण प्रदान करता है जो निर्बाध रूप से काम करते हैं सी ++, जावा, अजगर, PHP, रूबी, एरलांग, पर्ल, हास्केल, सी#, कोको, जावास्क्रिप्ट, Node.js, Smalltalk, OCaml, और डेल्फ़ी और अन्य भाषाएँ। थ्रिफ्ट को कुशल बनाने और अंतर-भाषा सेवाओं को लिखना आसान बनाने के लिए डिज़ाइन किया गया है।
- GraphQL. ग्राफक्यूएल डेटा की संरचना को परिभाषित करने के लिए एक स्कीमा डेफिनिशन भाषा (एसडीएल) का उपयोग करता है जिसे एक से पूछा जा सकता है server. यह डेटा के प्रकार, प्रकारों के बीच संबंध और उपलब्ध प्रश्नों और उत्परिवर्तन को निर्दिष्ट करता है। पारंपरिक आईडीएल के विपरीत, जो प्रक्रिया कॉल के लिए इंटरफेस को परिभाषित करता है, ग्राफक्यूएल डेटा एक्सेस और हेरफेर पर केंद्रित है। यह ग्राहकों को बिल्कुल उसी डेटा का अनुरोध करने की अनुमति देता है जिसकी उन्हें आवश्यकता है, जिससे यह जटिल अनुप्रयोगों और माइक्रोसर्विसेज के लिए अत्यधिक कुशल हो जाता है।
- प्रोटोकॉल बफ़र्स (प्रोटोबफ़). Google द्वारा विकसित प्रोटोकॉल बफ़र्स, संरचित डेटा को परिभाषित करने के लिए एक सरल IDL का उपयोग करते हैं। यह स्कीमा फिर विभिन्न भाषाओं में स्रोत कोड में संकलित होती है, जिससे संरचित डेटा का आसान क्रमबद्धता और डिसेरिएलाइज़ेशन संभव हो जाता है। विभिन्न प्रणालियों और भाषाओं में अनुकूलता सुनिश्चित करने के लिए आरपीसी सिस्टम, डेटा स्टोरेज और संचार प्रोटोकॉल में प्रोटोबफ़ का व्यापक रूप से उपयोग किया जाता है।