ऐसे सिस्टम मौजूद हैं और मैं उनमें से एक का लेखक हूं। इसे Piqi-RPC कहा जाता है और यह HTTP पर आरपीसी-शैली एपीआई के लिए इनपुट और आउटपुट पैरामीटर के आईडीएल-आधारित सत्यापन करता है।
यह JSON, एक्सएमएल और इनपुट और HTTP पोस्ट अनुरोध के उत्पादन के लिए डेटा प्रतिनिधित्व स्वरूपों के रूप में गूगल प्रोटोकॉल बफ़र का समर्थन करता है। ग्राहक तीनों प्रारूपों में से किसी एक का उपयोग करना चुन सकते हैं और मानक Accept
और Content-Type
HTTP शीर्षलेख का उपयोग करके अपनी पसंद निर्दिष्ट कर सकते हैं।
तो, हां, सिद्धांत रूप में, आप सही दिशा में देख रहे हैं। हालांकि, फिलहाल, पिक्की-आरपीसी केवल एर्लांग में सर्वर लिखने का समर्थन करता है और यदि आप एक अलग स्टैक का उपयोग करते हैं तो यह आपके लिए बहुत उपयोगी नहीं होगा। मैंने सुना है कि अपाचे थ्रिफ्ट भी HTTP परिवहन पर जेएसओएन का समर्थन करता है, लेकिन मैंने जांच नहीं की है। एक अन्य प्रकार की इसी प्रणाली जिसे मैं जानता हूं (एरलांग के लिए भी) को UBF कहा जाता है। मैंने जावा के लिए पुस्तकालयों के बारे में सुना है जो प्रोटोकॉल बफर विनिर्देश (उदा। http://code.google.com/p/protostuff/) के आधार पर JSON को पार्स और मान्य कर सकते हैं।
विचार ही नया किया जा रहा से दूर है, लेकिन वहाँ कई प्रणालियों है कि यह व्यवहार में संपर्क नहीं कर रहे हैं। यह एक चुनौतीपूर्ण समस्या है।
ऐतिहासिक रूप से, अंतरराष्ट्रीय ड्राइविंग लाइसेंस इंटरफ़ेस परिभाषा और बाइनरी डेटा क्रमबद्धता लिए इस्तेमाल किया गया और गतिशील डाटा इंटरचेंज प्रारूप (उदा XML और JSON) जो बाद में उभरा सत्यापित करने के लिए इतना नहीं। सन-आरपीसी आईडीएल और कोर्बा आईडीएल पहली श्रेणी में आती है। डब्ल्यूएसडीएल दोनों क्षेत्रों को कवर करने वाले कुछ उदाहरणों में से एक होगा, लेकिन यह तकनीक का एक भयानक टुकड़ा है और यह अधिकांश आधुनिक प्रणालियों के लिए एक खराब विकल्प होगा। इसके अलावा, कई स्कीमा भाषाएं हैं (जिन्हें डीडीएल - डेटा परिभाषा भाषा भी कहा जाता है), जिनमें से अधिकतर अत्यधिक विशिष्ट हैं और केवल एक प्रतिनिधित्व प्रारूप के साथ काम करते हैं, उदाहरण के लिए एक्सएमएल या जेएसओएन स्कीमा। उनमें से कुछ स्थिर कार्यान्वयन हैं।
Piqi project और Piqi-RPC है, जो इसे पर आधारित है, के आसपास कई काफी सरल प्रतीति का निर्माण कर रहे हैं:
DLL स्पष्ट रूप से किसी विशेष डेटा प्रतिनिधित्व प्रारूप से बंधा या चारों ओर निर्मित होने की जरूरत नहीं है यह। इसके बजाए, ऐसी भाषा काफी सार्वभौमिक हो सकती है और व्यावहारिक उपयोग-मामलों (जैसे क्रॉस-भाषा डेटा क्रमबद्धता और डेटा सत्यापन) और डेटा प्रारूपों (जैसे JSON, XML, प्रोटोकॉल बफर) की विस्तृत श्रृंखला को कवर कर सकती है।
RPC शैली संचार के लिए आईडीएल सार्वभौमिक DDL के शीर्ष पर एक पतली, ज्यादातर वाक्यात्मक परत के रूप में लागू किया जा सकता।
इस तरह आईडीएल और इंटरफ़ेस विनिर्देशों परिवहन नास्तिक हो सकता है।
HTTP पर आरपीसी-शैली एपीआई की तुलना में HTTP पर रीस्ट-स्टाइल एपीआई का बोलना।
आरपीसी-शैली एपीआई के साथ, सेवा डेवलपर या स्वचालित सिस्टम को तीन चीजों को सत्यापित करना होता है: फ़ंक्शन का नाम (कुछ सेवा नामकरण योजना के अनुसार), इनपुट और, यदि आप ऐसा करते हैं, तो आउटपुट।
रीस्ट-स्टाइल एपीआई के मामले में, लोगों को किसी भी अच्छे कारण के लिए परेशानी नहीं होती है। अब, वे एक बहुत अधिक चीजें मान्य करने के लिए: (सभी HTTP पद्धति के लिए) यूआरएल क्षेत्रों में इनकोडिंग डायनेमिक पैरामीटर और यूआरएल क्वेरी स्ट्रिंग (केवल HTTP GET प्रणाली के लिए), HTTP विधि पत्राचार (सहित मनमाने ढंग से जटिल URL सिंटैक्स, चाहे वह करना चाहिए जाओ, पोस्ट करें, पुट, हटाएं, आदि), HTTP बॉडी जब कुछ पैरामीटर वहां जाते हैं (कभी-कभी वे JSON और XML में प्रतिनिधित्व पैरामीटर के लिए मैन्युअल रूप से दो बार करते हैं), कस्टम HTTP शीर्षलेख, और अलग-अलग सेवा प्रलेखन। कल्पना कीजिए कि एक आईडीएल सभी का समर्थन करता है!
यदि आपको वास्तव में मौजूदा समाधान का उपयोग करने की आवश्यकता है, तो मैं बस जेसन-स्कीमा के साथ जाऊंगा, जो उपयोग करने में काफी आसान लगता है। अन्यथा, मुझे नहीं लगता कि JSON संरचना को स्वयं जांचना बहुत मुश्किल है - जांचें कि प्रत्येक ऑब्जेक्ट में आपके पास आवश्यक गुण हैं, और यदि आपके पास भी है तो इसे दोबारा करें। एक्सएमएल के विपरीत, जेएसओएन मान्य करने के लिए बहुत आसान है, जो शायद उचित स्कीमा सत्यापन समाधान मौजूद नहीं है। –