वस्तु (कंप्यूटर विज्ञान): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Arbitrarily defined dataset with specified properties used in some programming paradigms}}
{{Short description|Arbitrarily defined dataset with specified properties used in some programming paradigms}}
[[कंप्यूटर विज्ञान]] में, ऑब्जेक्ट एक [[चर (कंप्यूटर विज्ञान)|चर]] [[डेटा संरचना]], [[फलन]] या एक [[विधि (कंप्यूटर प्रोग्रामिंग)|विधि कंप्यूटर प्रोग्रामिंग]] के रूप में होती है। [[स्मृति]] के क्षेत्र के रूप में, वे मान होते हैं जो [[पहचानकर्ता (कंप्यूटर प्रोग्रामिंग)|आईडेन्टिफयर कंप्यूटर प्रोग्रामिंग]] द्वारा संदर्भित किये जाते है।
[[कंप्यूटर विज्ञान]] में, ऑब्जेक्ट एक [[चर (कंप्यूटर विज्ञान)|चर]] [[डेटा संरचना]], [[फलन]] या एक [[विधि (कंप्यूटर प्रोग्रामिंग)|विधि कंप्यूटर प्रोग्रामिंग]] के रूप में होती है। [[स्मृति]] के क्षेत्र के रूप में, वे मान होते हैं जो [[पहचानकर्ता (कंप्यूटर प्रोग्रामिंग)|आईडेन्टिफयर कंप्यूटर प्रोग्रामिंग]] द्वारा संदर्भित किये जाते है।


[[प्रोग्रामिंग|ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग]] पैराडिगम में, ऑब्जेक्ट वेरिएबल फलन और डेटा स्ट्रक्चर्स का संयोजन के रूप में होता है, विशेष रूप से पैराडिगम के वर्ग-आधारित विविधताओं में यह वर्ग के एक विशेष [[उदाहरण (कंप्यूटर विज्ञान)|उदाहरण के रूप में कंप्यूटर विज्ञान]] को संदर्भित करता है।
[[प्रोग्रामिंग|ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग]] पैराडिगम में, ऑब्जेक्ट वेरिएबल फलन और डेटा स्ट्रक्चर्स का संयोजन के रूप में होता है, विशेष रूप से पैराडिगम के वर्ग-आधारित विविधताओं में यह वर्ग के एक विशेष [[उदाहरण (कंप्यूटर विज्ञान)|उदाहरण के रूप में कंप्यूटर विज्ञान]] को संदर्भित करता है।
Line 8: Line 8:
{{main|ऑब्जेक्ट-आधारित भाषाएँ}}
{{main|ऑब्जेक्ट-आधारित भाषाएँ}}


प्रोग्रामिंग भाषाओं में एक महत्वपूर्ण अंतर ऑब्जेक्ट ओरिएंटेड भाषा और ऑब्जेक्ट आधारित भाषा के बीच का अंतर होता है। एक भाषा को सामान्यतः पर ऑब्जेक्ट आधारित माना जाता है यदि इसमें किसी ऑब्जेक्ट के पहचान गुणों और विशेषताओं के लिए मूलभूत क्षमताएं सम्मलित होती है। तो उस भाषा को ऑब्जेक्ट ओरिएंटेड के रूप में माना जाता है यदि यह ऑब्जेक्ट आधारित है और इसमें [[बहुरूपता (कंप्यूटर विज्ञान)]], [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)|इनहेरिटेंस (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग)]], एनकैप्सुलेशन (कंप्यूटर प्रोग्रामिंग) और संभवतः ऑब्जेक्ट संरचना की क्षमता के रूप में होती है। बहुरूपता एक फलन के नाम को कई व्यवहारों के साथ अधिभारित करने की क्षमता को संदर्भित करता है, जिसके आधार पर ऑब्जेक्ट को पास किया जाता है। परंपरागत संदेश पासिंग केवल पहली ऑब्जेक्ट पर विभेदन के रूप में कार्य करता है और मानता है कि उस ऑब्जेक्ट को संदेश भेजना है। चूँकि, कुछ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे [[जायके (प्रोग्रामिंग भाषा)|फ्लेवोर्स प्रोग्रामिंग भाषा]] और [[कॉमन लिस्प ऑब्जेक्ट सिस्टम|कॉमन लिस्प ऑब्जेक्ट प्रणाली]] (सीएलओएस) फलन के पहले पैरामीटर से अधिक पर विभेदन करने में सक्षम होते है।<ref>{{cite journal|last=Gabriel|first=Richard|author2=Linda G. DeMichie |title=The Common Lisp Object System: An Overview|journal=Lucid Inc. Technical Report|series=Lecture Notes in Computer Science|year=1987|volume=276|page=151|doi=10.1007/3-540-47891-4_15|bibcode=1987LNCS..276..151D|isbn=978-3-540-18353-2|url=http://www.dreamsongs.com/NewFiles/ECOOP.pdf}}</ref> इनहेरिटेंस एक ऑब्जेक्ट वर्ग के उपवर्ग में एक नया वर्ग बनाने की क्षमता होती है, जो एक सम्मलित वर्ग का उपवर्ग है और जो डेटा बाधाओं और व्यवहारों को इनहेरिटें में प्राप्त करता है, लेकिन उसमें एक या अधिक परिवर्तन भी करता है।<ref>{{cite journal|last=Wegner|first=Peter|title=Dimensions of Object-Based Language Design|journal=OOPSLA'87 Conference Proceedings|date=December 1987|volume=22|issue=12|pages=168–182|editor1-first=Norman|editor1-last=Meyrowitz|doi=10.1145/38807.38823}}</ref><ref>{{cite journal|last=Barbey|first=S |author2=M. Kempe |author3=A. Strohmeier|title=Object-Oriented Programming with Ada 9X|journal=Draft Technical Report|year=1993|url=http://www.adahome.com/9X/OOP-Ada9X.html|access-date=15 December 2013|publisher=Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory|quote=Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner [Weg 87], it is said to be object-based, since it provides only a restricted form of inheritance and it lacks polymorphism.}}</ref>
प्रोग्रामिंग भाषाओं में एक महत्वपूर्ण अंतर ऑब्जेक्ट ओरिएंटेड भाषा और ऑब्जेक्ट आधारित भाषा के बीच का अंतर होता है। एक भाषा को सामान्यतः पर ऑब्जेक्ट आधारित माना जाता है यदि इसमें किसी ऑब्जेक्ट के पहचान गुणों और विशेषताओं के लिए मूलभूत क्षमताएं सम्मलित होती है। तो उस भाषा को ऑब्जेक्ट ओरिएंटेड के रूप में माना जाता है यदि यह ऑब्जेक्ट आधारित है और इसमें [[बहुरूपता (कंप्यूटर विज्ञान)]], [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)|इनहेरिटेंस (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग)]], एनकैप्सुलेशन (कंप्यूटर प्रोग्रामिंग) और संभवतः ऑब्जेक्ट संरचना की क्षमता के रूप में होती है। बहुरूपता एक फलन के नाम को कई व्यवहारों के साथ अधिभारित करने की क्षमता को संदर्भित करता है, जिसके आधार पर ऑब्जेक्ट को पास किया जाता है। परंपरागत संदेश पासिंग केवल पहली ऑब्जेक्ट पर विभेदन के रूप में कार्य करता है और मानता है कि उस ऑब्जेक्ट को संदेश भेजना है। चूँकि, कुछ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे [[जायके (प्रोग्रामिंग भाषा)|फ्लेवोर्स प्रोग्रामिंग भाषा]] और [[कॉमन लिस्प ऑब्जेक्ट सिस्टम|कॉमन लिस्प ऑब्जेक्ट प्रणाली]] (सीएलओएस) फलन के पहले पैरामीटर से अधिक पर विभेदन करने में सक्षम होते है।<ref>{{cite journal|last=Gabriel|first=Richard|author2=Linda G. DeMichie |title=The Common Lisp Object System: An Overview|journal=Lucid Inc. Technical Report|series=Lecture Notes in Computer Science|year=1987|volume=276|page=151|doi=10.1007/3-540-47891-4_15|bibcode=1987LNCS..276..151D|isbn=978-3-540-18353-2|url=http://www.dreamsongs.com/NewFiles/ECOOP.pdf}}</ref> इनहेरिटेंस एक ऑब्जेक्ट वर्ग के उपवर्ग में एक नया वर्ग बनाने की क्षमता होती है, जो एक सम्मलित वर्ग का उपवर्ग है और जो डेटा बाधाओं और व्यवहारों को इनहेरिटें में प्राप्त करता है, लेकिन उसमें एक या अधिक परिवर्तन भी करता है।<ref>{{cite journal|last=Wegner|first=Peter|title=Dimensions of Object-Based Language Design|journal=OOPSLA'87 Conference Proceedings|date=December 1987|volume=22|issue=12|pages=168–182|editor1-first=Norman|editor1-last=Meyrowitz|doi=10.1145/38807.38823}}</ref><ref>{{cite journal|last=Barbey|first=S |author2=M. Kempe |author3=A. Strohmeier|title=Object-Oriented Programming with Ada 9X|journal=Draft Technical Report|year=1993|url=http://www.adahome.com/9X/OOP-Ada9X.html|access-date=15 December 2013|publisher=Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory|quote=Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner [Weg 87], it is said to be object-based, since it provides only a restricted form of inheritance and it lacks polymorphism.}}</ref>
== ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ==
== ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ==
{{main|ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग}}
{{main|ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग}}


ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग मॉड्यूलर पुन: प्रयोज्य सॉफ़्टवेयर प्रणाली को डिज़ाइन करने की विधि के रूप में होती है। ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण अच्छी डिज़ाइन का विकास है, जो कंप्यूटर प्रोग्रामिंग के बिल्कुल प्रारंभ में वापस आता है। ऑब्जेक्ट-ओरिएंटेशन केवल पुरानी प्रौद्योगिकी जैसे [[संरचित प्रोग्रामिंग|संरचना प्रोग्रामिंग]] और अब्स्ट्रक्ट डाटा प्रकारों का तार्किक विस्तार होता है। एक ऑब्जेक्ट अब्स्ट्रक्ट डेटा प्रकार के रूप में होता है जिसमें बहुरूपता (कंप्यूटर विज्ञान) और इनहेरिटेंस ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के रूप में सम्मलित होता है।
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग मॉड्यूलर पुन: प्रयोज्य सॉफ़्टवेयर प्रणाली को डिज़ाइन करने की विधि के रूप में होती है। ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण अच्छी डिज़ाइन का विकास है, जो कंप्यूटर प्रोग्रामिंग के बिल्कुल प्रारंभ में वापस आता है। ऑब्जेक्ट-ओरिएंटेशन केवल पुरानी प्रौद्योगिकी जैसे [[संरचित प्रोग्रामिंग|संरचना प्रोग्रामिंग]] और अब्स्ट्रक्ट डाटा प्रकारों का तार्किक विस्तार होता है। एक ऑब्जेक्ट अब्स्ट्रक्ट डेटा प्रकार के रूप में होता है जिसमें बहुरूपता (कंप्यूटर विज्ञान) और इनहेरिटेंस ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के रूप में सम्मलित होता है।


प्रोग्राम को कोड और डेटा के रूप में संरचना करने के अतिरिक्त, एक ऑब्जेक्ट-ओरिएंटेड प्रणाली ऑब्जेक्ट की अवधारणा का उपयोग करके दोनों को एकीकृत करता है। एक ऑब्जेक्ट में स्थिति (डेटा) और व्यवहार (कोड) होता है। वस्तुएं वास्तविक दुनिया में पाई जाने वाली चीजों के अनुरूप हो सकती हैं। उदाहरण के लिए, एक ग्राफिक्स प्रोग्राम में सर्कल, स्क्वायर, मेन्यू जैसे ऑब्जेक्ट होंगे। एक ऑनलाइन शॉपिंग प्रणाली में शॉपिंग कार्ट, ग्राहक, उत्पाद जैसी वस्तुएं होंगी। खरीदारी प्रणाली आदेश देने, भुगतान करने और छूट प्रदान करने जैसे व्यवहारों का समर्थन करेगी। वस्तुओं को वर्ग पदानुक्रम के रूप में डिज़ाइन किया गया है। तो उदाहरण के लिए शॉपिंग प्रणाली के साथ इलेक्ट्रॉनिक्स उत्पाद, रसोई उत्पाद और पुस्तक जैसे उच्च स्तरीय वर्ग हो सकते हैं। उदाहरण के लिए इलेक्ट्रॉनिक उत्पादों सीडी प्लेयर डीवीडी प्लेयर आदि के अंतर्गत आगे परिशोधन किया जा सकता है। ये वर्ग और उपवर्ग गणितीय तर्क में [[सेट (गणित)|सेट]] और [[सबसेट]] के अनुरूप होते है।<ref>{{cite book|last=Jacobsen|first=Ivar|title=Object Oriented Software Engineering|year=1992|publisher=Addison-Wesley ACM Press|isbn=0-201-54435-0|author2=Magnus Christerson|author3=Patrik Jonsson|author4=Gunnar Overgaard|url=https://archive.org/details/objectorientedso00jaco}}</ref><ref>{{cite web|title=What is an Object?|url=http://docs.oracle.com/javase/tutorial/java/concepts/object.html|work=oracle.com|publisher=Oracle Corporation|access-date=13 December 2013}}</ref>
प्रोग्राम को कोड और डेटा के रूप में संरचना करने के अतिरिक्त, एक ऑब्जेक्ट-ओरिएंटेड प्रणाली ऑब्जेक्ट की अवधारणा का उपयोग करके दोनों को एकीकृत करता है। एक ऑब्जेक्ट में स्थिति (डेटा) और व्यवहार (कोड) होता है। वस्तुएं वास्तविक दुनिया में पाई जाने वाली चीजों के अनुरूप हो सकती हैं। उदाहरण के लिए, एक ग्राफिक्स प्रोग्राम में सर्कल, स्क्वायर, मेन्यू जैसे ऑब्जेक्ट होंगे। एक ऑनलाइन शॉपिंग प्रणाली में शॉपिंग कार्ट, ग्राहक, उत्पाद जैसी वस्तुएं होंगी। खरीदारी प्रणाली आदेश देने, भुगतान करने और छूट प्रदान करने जैसे व्यवहारों का समर्थन करेगी। वस्तुओं को वर्ग पदानुक्रम के रूप में डिज़ाइन किया गया है। तो उदाहरण के लिए शॉपिंग प्रणाली के साथ इलेक्ट्रॉनिक्स उत्पाद, रसोई उत्पाद और पुस्तक जैसे उच्च स्तरीय वर्ग हो सकते हैं। उदाहरण के लिए इलेक्ट्रॉनिक उत्पादों सीडी प्लेयर डीवीडी प्लेयर आदि के अंतर्गत आगे परिशोधन किया जा सकता है। ये वर्ग और उपवर्ग गणितीय तर्क में [[सेट (गणित)|सेट]] और [[सबसेट]] के अनुरूप होते है।<ref>{{cite book|last=Jacobsen|first=Ivar|title=Object Oriented Software Engineering|year=1992|publisher=Addison-Wesley ACM Press|isbn=0-201-54435-0|author2=Magnus Christerson|author3=Patrik Jonsson|author4=Gunnar Overgaard|url=https://archive.org/details/objectorientedso00jaco}}</ref><ref>{{cite web|title=What is an Object?|url=http://docs.oracle.com/javase/tutorial/java/concepts/object.html|work=oracle.com|publisher=Oracle Corporation|access-date=13 December 2013}}</ref>
== विशिष्ट ऑब्जेक्ट ==
== विशिष्ट ऑब्जेक्ट ==
वस्तुओं के लिए एक महत्वपूर्ण अवधारणा [[सॉफ्टवेयर डिजाइन पैटर्न]] होता है। एक सामान्य समस्या का समाधान करने के लिए एक डिज़ाइन पैटर्न एक पुन: प्रयोज्य टेम्पलेट प्रदान करता है। निम्नलिखित ऑब्जेक्ट विवरण वस्तुओं के लिए कुछ सबसे सामान्य डिजाइन पैटर्न के उदाहरण हैं।<ref name="R.C.Martin">{{cite web |url=http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf |title=Design Principles and Design Patterns |last=Martin |first=Robert C. |author-link=Robert Cecil Martin |access-date=28 April 2017 |url-status=dead |archive-url=https://web.archive.org/web/20150906155800/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf |archive-date=September 6, 2015 }}</ref>
वस्तुओं के लिए महत्वपूर्ण अवधारणा [[सॉफ्टवेयर डिजाइन पैटर्न]] होता है। एक सामान्य समस्या का समाधान करने के लिए डिज़ाइन पैटर्न एक पुन: प्रयोज्य टेम्पलेट प्रदान करता है। निम्नलिखित ऑब्जेक्ट विवरण वस्तुओं के लिए सबसे सामान्य डिजाइन पैटर्न में से कुछ के उदाहरण हैं।<ref name="R.C.Martin">{{cite web |url=http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf |title=Design Principles and Design Patterns |last=Martin |first=Robert C. |author-link=Robert Cecil Martin |access-date=28 April 2017 |url-status=dead |archive-url=https://web.archive.org/web/20150906155800/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf |archive-date=September 6, 2015 }}</ref>
*[[फंक्शन ऑब्जेक्ट|फलन ऑब्जेक्ट]]: एक एकल विधि के साथ एक ऑब्जेक्ट C ++ में, यह विधि फलन ऑपरेटर, ऑपरेटर() होगी जो फलन की प्रकार  कार्य करती है (जैसे सी/सी ++ फलन के लिए सूचक)।
*[[फंक्शन ऑब्जेक्ट|फलन ऑब्जेक्ट]]: एकल विधि के साथ ऑब्जेक्ट C ++ में, यह विधि फलन, ऑपरेटर() के रूप में होती है, जो किसी फलन के सी/सी ++ पॉइंटर जैसे फलन की तरह कार्य करती है।
* [[अपरिवर्तनीय वस्तु]]: निर्माण के समय एक निश्चित स्थिति के साथ एक ऑब्जेक्ट स्थापित की जाती है और जो बाद में नहीं बदलती है।
* [[अपरिवर्तनीय वस्तु|अपरिवर्तनीय]] [[फंक्शन ऑब्जेक्ट|ऑब्जेक्ट]]: निर्माण के समय एक निश्चित स्थिति के साथ एक ऑब्जेक्ट स्थापित की जाती है और जो बाद में नहीं बदलती है।
* [[प्रथम श्रेणी की वस्तु]]: एक ऑब्जेक्ट जिसका उपयोग बिना प्रतिबंध के किया जा सकता है।
* [[प्रथम श्रेणी की वस्तु|प्रथम श्रेणी के]] [[फंक्शन ऑब्जेक्ट|ऑब्जेक्ट]]: एक ऑब्जेक्ट जिसका उपयोग बिना प्रतिबंध के किया जा सकता है।
* [[कंटेनर (डेटा संरचना)]]: एक ऑब्जेक्ट जिसमें अन्य वस्तुएँ हो सकती हैं।
* [[कंटेनर (डेटा संरचना)]]: एक ऑब्जेक्ट जिसमें अन्य ऑब्जेक्ट हो सकती हैं।
*[[फैक्टरी वस्तु]]: एक ऑब्जेक्ट जिसका उद्देश्य अन्य वस्तुओं का निर्माण करना है।
*[[फैक्टरी वस्तु|फैक्टरी]] [[अपरिवर्तनीय वस्तु|ऑब्जेक्ट]]: एक ऑब्जेक्ट जिसका उद्देश्य अन्य वस्तुओं का निर्माण करना है।
*Metaobject: एक ऑब्जेक्ट जिससे अन्य वस्तुएँ बनाई जा सकती हैं (एक वर्ग (कंप्यूटर विज्ञान) के साथ तुलना करें, जो आवश्यक रूप से एक ऑब्जेक्ट नहीं है)।
*मेटा ऑब्जेक्ट: एक ऑब्जेक्ट जिससे अन्य ऑब्जेक्ट बनाई जा सकती हैं, एक वर्ग के साथ तुलना करने पर, जो आवश्यक रूप से एक ऑब्जेक्ट नहीं होती है।
*[[प्रोटोटाइप पैटर्न]]: एक विशेष [[मेटाऑब्जेक्ट]] जिससे कॉपी करके अन्य ऑब्जेक्ट बनाए जा सकते हैं
*[[प्रोटोटाइप पैटर्न]]: एक विशेष [[मेटाऑब्जेक्ट]] जिससे कॉपी करके अन्य ऑब्जेक्ट बनाए जाते हैं
*[[ईश्वर वस्तु]]: एक ऐसी ऑब्जेक्ट जो बहुत कुछ जानती है या करती है (यह एक एंटी-पैटर्न का उदाहरण है)।
*[[ईश्वर वस्तु|गॉड]] [[फैक्टरी वस्तु|ऑब्जेक्ट]]: एक ऐसी ऑब्जेक्ट जो बहुत कुछ जानती है या करती है यह एक एंटी-पैटर्न का उदाहरण है।
*[[सिंगलटन पैटर्न]]: एक ऑब्जेक्ट जो कार्यक्रम के जीवनकाल के समय अपनी कक्षा का एकमात्र उदाहरण है।
*[[सिंगलटन पैटर्न]]: एक ऑब्जेक्ट जो फलन के जीवनकाल के समय अपनी कक्षा का एकमात्र उदाहरण है।
* [[फ़िल्टर वस्तु]]: एक ऑब्जेक्ट जो इनपुट के रूप में डेटा की एक धारा प्राप्त करता है और इसे ऑब्जेक्ट के आउटपुट में बदल देता है। अधिकांशतः इनपुट और आउटपुट धाराएँ वर्णों की धाराएँ होती हैं, लेकिन ये मनमानी वस्तुओं की धाराएँ भी हो सकती हैं। ये सामान्यतः रैपर में उपयोग किए जाते हैं क्योंकि वे डेवलपर पक्ष में आवश्यक अमूर्तता के साथ सम्मलित कार्यान्वयन को छुपाते हैं।
* [[फ़िल्टर वस्तु|फ़िल्टर]] [[ईश्वर वस्तु|ऑब्जेक्ट]]: एक ऑब्जेक्ट जो इनपुट के रूप में डेटा की एक धारा प्राप्त करता है और इसे ऑब्जेक्ट के आउटपुट में परिवर्तित कर देता है। अधिकांशतः इनपुट और आउटपुट वर्णों की धाराएँ होती हैं, लेकिन ये यादृच्छिक [[ईश्वर वस्तु|ऑब्जेक्ट]] की धाराएँ भी हो सकती हैं। ये सामान्यतः रैपर में उपयोग किए जाते हैं क्योंकि वे डेवलपर पक्ष में आवश्यक अमूर्तता के साथ सम्मलित कार्यान्वयन को छुपाते हैं।


== वितरित वस्तुएं ==
== वितरित वस्तुएं ==
{{main|Distributed object}}
{{main|वितरित वस्तुएं}}
ऑब्जेक्ट ओरिएंटेड दृष्टिकोण केवल एक प्रोग्रामिंग मॉडल नहीं है। यह वितरित प्रणाली के लिए [[इंटरफ़ेस विवरण भाषा]] के रूप में समान रूप से अच्छी प्रकार से उपयोग किया जा सकता है। एक वितरित कंप्यूटिंग मॉडल में ऑब्जेक्ट प्रोग्रामिंग ऑब्जेक्ट्स की तुलना में बड़े दानेदार, लंबे समय तक चलने वाले और अधिक सेवा-उन्मुख होते हैं।
ऑब्जेक्ट ओरिएंटेड दृष्टिकोण केवल एक प्रोग्रामिंग मॉडल नहीं है। यह वितरित प्रणाली के लिए [[इंटरफ़ेस विवरण भाषा]] के रूप में समान रूप से अच्छी प्रकार से उपयोग किया जाता है। एक वितरित कंप्यूटिंग मॉडल में ऑब्जेक्ट प्रोग्रामिंग ऑब्जेक्ट्स की तुलना में बड़े ग्रेन दार, लंबे समय तक चलने वाले और अधिक सेवा-उन्मुख होते हैं।


वितरित वस्तुओं को पैकेज करने का एक मानक विधियो  एक इंटरफ़ेस डेफिनिशन लैंग्वेज (IDL) के माध्यम से है। एक IDL क्लाइंट को वितरित सर्वर ऑब्जेक्ट के सभी विवरणों को ढाल देता है। विवरण जैसे कि कौन सा कंप्यूटर ऑब्जेक्ट पर रहता है, यह किस [[प्रोग्रामिंग भाषा]] का उपयोग करता है, कौन सा [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] , और अन्य प्लेटफ़ॉर्म-विशिष्ट मुद्दे। IDL भी सामान्यतः एक वितरित वातावरण का भाग होता है जो एक समान विधि से सभी वस्तुओं को लेनदेन और दृढ़ता जैसी सेवाएं प्रदान करता है। वितरित वस्तुओं के लिए सबसे लोकप्रिय मानकों में से दो [[लक्ष्य प्रबंधन समूह]] के कॉरबा मानक और [[माइक्रोसॉफ्ट]] के डीसीओएम हैं।<ref>{{cite book|last=Orfali|first=Robert|title=The Essential Client/Server Survival Guide|year=1996|publisher=Wiley Computer Publishing|location=New York|isbn=0-471-15325-7|pages=[https://archive.org/details/essentialclients00orfa/page/399 399–403]|url=https://archive.org/details/essentialclients00orfa/page/399}}</ref>
वितरित वस्तुओं को पैकेज करने का एक मानक विधि इंटरफ़ेस डेफिनिशन लैंग्वेज (आईडीएल ) के माध्यम से प्राप्त होती है। एक आईडीएल क्लाइंट को वितरित सर्वर ऑब्जेक्ट के सभी विवरणों को ढाल देता है। विवरण जैसे कि कौन सा कंप्यूटर ऑब्जेक्ट किस प्रोग्रामिंग भाषा पर रहता है, यह किस [[प्रोग्रामिंग भाषा]] और कौन सा [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] का उपयोग करता है और अन्य प्लेटफ़ॉर्म-विशिष्ट विषय के रूप में होते हैं। आईडीएल भी सामान्यतः एक वितरित वातावरण का भाग होता है जो एक समान विधि से सभी वस्तुओं को लेनदेन और दृढ़ता जैसी सेवाएं प्रदान करता है। वितरित वस्तुओं के लिए सबसे लोकप्रिय मानकों में से दो [[लक्ष्य प्रबंधन समूह|ऑब्जेक्ट प्रबंधन समूह]] के कॉरबा मानक और [[माइक्रोसॉफ्ट]] के डीसीओएम के रूप में हैं।<ref>{{cite book|last=Orfali|first=Robert|title=The Essential Client/Server Survival Guide|year=1996|publisher=Wiley Computer Publishing|location=New York|isbn=0-471-15325-7|pages=[https://archive.org/details/essentialclients00orfa/page/399 399–403]|url=https://archive.org/details/essentialclients00orfa/page/399}}</ref>
वितरित वस्तुओं के अतिरिक्त , वितरित कंप्यूटिंग को सक्षम करने के लिए किसी ऑब्जेक्ट की मूल अवधारणा के लिए कई अन्य विस्तार प्रस्तावित किए गए हैं:
*प्रोटोकॉल ऑब्जेक्ट एक [[प्रोटोकॉल स्टैक]] के घटक होते हैं जो ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस के भीतर नेटवर्क संचार को घेरते हैं।
*[[प्रतिकृति (कंप्यूटर विज्ञान)]] वितरित वस्तुओं के समूह हैं (जिन्हें प्रतिकृति कहा जाता है) जो अपने आंतरिक राज्यों के बीच उच्च स्थिरता प्राप्त करने के लिए एक वितरित बहु-पक्षीय प्रोटोकॉल चलाते हैं, और जो समन्वित विधि से अनुरोधों का उत्तर  देते हैं। उदाहरणों में दोष-सहिष्णु CORBA ऑब्जेक्ट सम्मलित  हैं।
* [[लाइव वितरित वस्तु]]एँ (या केवल लाइव वितरित वस्तु)<ref>Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed Objects", ''Proceedings of the 22nd European Conference on Object-Oriented Programming'', Paphos, Cyprus, July 07–11, 2008, J. Vitek, Ed., ''Lecture Notes in Computer Science'', vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.</ref> प्रतिकृतियों के समूहों के लिए प्रतिकृति ऑब्जेक्ट अवधारणा को सामान्यीकृत करें जो किसी भी वितरित प्रोटोकॉल का आंतरिक रूप से उपयोग कर सकते हैं, जिसके परिणामस्वरूप उनके स्थानीय राज्यों के बीच केवल एक कमजोर स्थिरता हो सकती है।


इनमें से कुछ एक्सटेंशन, जैसे वितरित ऑब्जेक्ट्स और प्रोटोकॉल ऑब्जेक्ट्स, एक निश्चित संदर्भ में उपयोग की जाने वाली विशेष प्रकार की साधारण वस्तुओं के लिए डोमेन-विशिष्ट शब्द हैं (जैसे [[दूरस्थ विधि मंगलाचरण]] या प्रोटोकॉल स्टैक)। अन्य, जैसे कि प्रतिरूपित वस्तुएं और लाइव वितरित वस्तुएं, अधिक गैर-मानक हैं, जिसमें वे सामान्य स्थिति को छोड़ देते हैं कि एक ऑब्जेक्ट एक समय में एक ही स्थान पर रहती है, और अवधारणा को उन संस्थाओं (प्रतिकृतियों) के समूहों पर लागू करती है जो फैल सकती हैं कई स्थानों पर, केवल कमजोर संगत स्थिति हो सकती है, और जिसकी सदस्यता गतिशील रूप से बदल सकती है।
वितरित वस्तुओं के अतिरिक्त , वितरित कंप्यूटिंग को सक्षम करने के लिए किसी ऑब्जेक्ट की मूल अवधारणा के लिए कई अन्य विस्तार प्रस्तावित किए गए हैं
*प्रोटोकॉल ऑब्जेक्ट एक [[प्रोटोकॉल स्टैक]] के घटक के रूप में होते हैं, जो ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस के भीतर नेटवर्क संचार को घेरते हैं।
*[[प्रतिकृति (कंप्यूटर विज्ञान)]] वितरित वस्तुओं के समूह होते हैं जिन्हें प्रतिकृति कहा जाता है जो अपने आंतरिक स्थिति के बीच उच्च स्थिरता प्राप्त करने के लिए एक वितरित बहु-पक्षीय प्रोटोकॉल चलाते हैं और जो समन्वित विधि से अनुरोधों का उत्तर देते हैं। उदाहरणों में दोष-सहिष्णु कोरबा ऑब्जेक्ट के रूप में सम्मलित होती है।
* [[लाइव वितरित वस्तु|लाइव वितरित]] ऑब्जेक्ट या केवल लाइव वितरित वस्तु,<ref>Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed Objects", ''Proceedings of the 22nd European Conference on Object-Oriented Programming'', Paphos, Cyprus, July 07–11, 2008, J. Vitek, Ed., ''Lecture Notes in Computer Science'', vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.</ref> प्रतिकृतियों के समूहों के लिए प्रतिकृति ऑब्जेक्ट अवधारणा को सामान्यीकृत करते है, जो किसी भी वितरित प्रोटोकॉल का आंतरिक रूप से उपयोग कर सकते हैं, जिसके परिणामस्वरूप उनके स्थानीय परिस्थिति के बीच केवल एक कमजोर स्थिरता होती है।
 
इनमें से कुछ एक्सटेंशन, जैसे कि वितरित ऑब्जेक्ट्स और प्रोटोकॉल ऑब्जेक्ट, विशेष प्रकार की साधारण वस्तुओं के लिए डोमेन विशिष्ट शब्द के रूप में होते हैं, जिनका उपयोग किसी विशेष संदर्भ में किया जाता है, जैसे कि [[रिमोट]] [[दूरस्थ विधि मंगलाचरण|विधि इनवोकेशन]] या प्रोटोकॉल संरचना के रूप में होती है। अन्य, जैसे कि प्रतिरूपित वस्तुएं और लाइव वितरित वस्तुएं, अधिक गैर-मानक के रूप में होती है, जिसमें वे सामान्य स्थिति को छोड़ देते हैं कि कोई ऑब्जेक्ट किसी एक स्थान पर रहती है और अवधारणा को उन संस्थाओं (प्रतिकृतियों) के समूहों पर लागू करती है जो अनेक स्थानों पर फैल सकती हैं उनकी स्थिति कमजोर संगत स्थिति हो सकती है और जिसकी सदस्यता गतिशील रूप से बदल सकती है।


== [[सेमांटिक वेब]] ==
== [[सेमांटिक वेब]] ==
सिमेंटिक वेब अनिवार्य रूप से एक वितरित-ऑब्जेक्ट ढांचा है। सिमेंटिक वेब में दो प्रमुख प्रौद्योगिकियां [[वेब ओन्टोलॉजी भाषा]] (OWL) और [[संसाधन विवरण ढांचा]] (RDF) हैं। RDF मौलिक   वस्तुओं को परिभाषित करने की क्षमता प्रदान करता है - नाम, गुण, विशेषताएँ, संबंध - जो इंटरनेट के माध्यम से सुलभ हैं। OWL सेट थ्योरी के आधार पर एक समृद्ध ऑब्जेक्ट मॉडल जोड़ता है, जो अतिरिक्त मॉडलिंग क्षमताएं प्रदान करता है जैसे कि [[एकाधिक वंशानुक्रम]]
सिमेंटिक वेब अनिवार्य रूप से वितरित-ऑब्जेक्ट संरचना के रूप में होती है। सिमेंटिक वेब में दो प्रमुख प्रौद्योगिकियां [[वेब ओन्टोलॉजी भाषा]] (ओडब्ल्यूएल ) और [[संसाधन विवरण ढांचा|संसाधन विवरण]] संरचना (आरडीएफ ) के रूप में होती है। आरडीएफ मौलिक वस्तुओं को परिभाषित करने की क्षमता प्रदान करता है, नाम, गुण, विशेषताएँ और संबंध जो इंटरनेट के माध्यम से सुलभ हैं। ओडब्ल्यूएल सेट सिद्धांत के आधार पर एक समृद्ध ऑब्जेक्ट मॉडल जोड़ता है, जो [[मल्टीपल]] [[एकाधिक वंशानुक्रम|इनहेरिटेंस]] जैसे अतिरिक्त मॉडलिंग क्षमताओं प्रदान करता है।


OWL ऑब्जेक्ट्स एक इंटरफ़ेस डेफिनिशन लैंग्वेज के माध्यम से एक्सेस किए गए मानक बड़े दाने वाले वितरित ऑब्जेक्ट्स की प्रकार  नहीं हैं। ऐसा दृष्टिकोण इंटरनेट के लिए उपयुक्त नहीं होगा क्योंकि इंटरनेट लगातार विकसित हो रहा है और इंटरफेस के एक सेट पर मानकीकरण हासिल करना कठिनाई  है। ओडब्लूएल ऑब्जेक्ट्स प्रोग्रामिंग भाषाओं जैसे [[जावा (प्रोग्रामिंग भाषा)]] और [[सी ++]] में एप्लिकेशन डोमेन मॉडल को परिभाषित करने के लिए उपयोग की जाने वाली वस्तुओं के समान होते हैं।
ओडब्ल्यूएल ऑब्जेक्ट्स मानक बड़े ग्रेन वाली वितरित ऑब्जेक्ट्स की तरह नहीं होते हैं, जिन्हें इंटरफ़ेस डेफिनिशन लैंग्वेज के माध्यम से एक्सेस किया जाता है। ऐसा दृष्टिकोण इंटरनेट के लिए उपयुक्त नहीं होता है, क्योंकि इंटरनेट लगातार विकसित हो रहा है और इंटरफेस के एक सेट पर मानकीकरण प्राप्त करना मुश्किल होता है। ओडब्लूएल ऑब्जेक्ट्स प्रोग्रामिंग भाषाओं जैसे [[जावा (प्रोग्रामिंग भाषा)|जावा]] और [[सी ++]] में एप्लिकेशन डोमेन मॉडल को परिभाषित करने के लिए उपयोग की जाने वाली वस्तुओं के समान होते हैं।


अनुसार , OWL ऑब्जेक्ट्स और पारंपरिक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग ऑब्जेक्ट्स के बीच महत्वपूर्ण अंतर हैं। पारंपरिक वस्तुओं को सामान्यतः एकल इनहेरिटेंस के साथ स्थिर पदानुक्रम में संकलित किया जाता है, लेकिन OWL वस्तुएँ गतिशील होती हैं। एक OWL ऑब्जेक्ट रन टाइम पर अपनी संरचना बदल सकता है और नए या भिन्न -भिन्न  वर्गों का उदाहरण बन सकता है।
ओडब्ल्यूएल की ऑब्जेक्ट्स तथा पारंपरिक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के मध्य महत्वपूर्ण अंतर होता है। पारंपरिक वस्तुओं को सामान्यतः एकल इनहेरिटेंस के साथ स्थिर पदानुक्रम में संकलित किया जाता है, लेकिन ओडब्ल्यूएल की वस्तुएं गतिशील होती हैं। ओडब्ल्यूएल ऑब्जेक्ट रन टाइम पर अपनी संरचना को बदल सकता है और नए या विभिन्न वर्गों का एक उदाहरण बन सकता है।


एक और महत्वपूर्ण अंतर यह है कि जिस प्रकार  से मॉडल उस जानकारी का व्यवहार करता है जो वर्तमान में प्रणाली में नहीं है। प्रोग्रामिंग ऑब्जेक्ट्स और अधिकांश डेटाबेस प्रणाली क्लोज्ड-वर्ल्ड धारणा का उपयोग करते हैं। यदि कोई तथ्य प्रणाली को ज्ञात नहीं है तो उस तथ्य को झूठा मान लिया जाता है। सिमेंटिक वेब ऑब्जेक्ट ओपन-वर्ल्ड धारणा का उपयोग करते हैं, एक कथन को केवल तभी गलत माना जाता है जब वास्तविक प्रासंगिक जानकारी होती है कि यह गलत है, अन्यथा इसे अज्ञात माना जाता है, न तो सत्य और न ही गलत।
एक और महत्वपूर्ण अंतर वह विधि है जिस तरह से मॉडल उस जानकारी को देखता है जो वर्तमान में प्रणाली में नहीं होती है। प्रोग्रामिंग ऑब्जेक्ट्स और अधिकांश डेटाबेस प्रणाली क्लोज्ड-वर्ल्ड धारणा का उपयोग करते हैं। यदि कोई घटना प्रणाली को ज्ञात नहीं है तो उस तथ्य को झूठा मान लिया जाता है। सिमेंटिक वेब ऑब्जेक्ट ओपन-वर्ल्ड धारणा का उपयोग करते हैं, एक कथन को केवल तभी गलत माना जाता है जब वास्तविक प्रासंगिक जानकारी हो कि यह गलत है अन्यथा इसे अज्ञात माना जाता है, यह न तो सत्य और न ही गलत रूप में होती है।


OWL ऑब्जेक्ट वास्तव में [[KL-ONE]] और लूम जैसी आर्टिफिशियल इंटेलिजेंस [[फ्रेम भाषा]] में ऑब्जेक्ट्स की प्रकार  हैं।
ओडब्ल्यूएल ऑब्जेक्ट वास्तव में [[KL-ONE|केएल-वन]] और लूम जैसी आर्टिफिशियल इंटेलिजेंस [[फ्रेम भाषा]] में ऑब्जेक्ट्स की तरह होती है।


निम्न तालिका पारंपरिक वस्तुओं को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं जैसे जावा या सी ++ सेमेन्टिक वेब ऑब्जेक्ट्स के विपरीत करती है:<ref>{{cite journal|last=Berners-Lee|first=Tim|author2=James Hendler|author3=Ora Lassila|title=The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities|journal=Scientific American|date=May 17, 2001|url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html|doi=10.1038/scientificamerican0501-34|volume=284|pages=34–43|url-status=dead|archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html|archive-date=April 24, 2013}}</ref><ref>{{cite web|url=http://www.w3.org/2001/sw/BestPractices/SE/ODSD/|title=A Semantic Web Primer for Object-Oriented Software Developers|last1=Knublauch|first1=Holger|last2=Oberle|first2=Daniel|last3=Tetlow|first3=Phil|last4=Wallace|first4=Evan|publisher=[[W3C]]|date=2006-03-09|access-date=2008-07-30}}</ref>
निम्न तालिका पारंपरिक वस्तुओं को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं जैसे जावा या सी ++ सेमेन्टिक वेब ऑब्जेक्ट्स के विपरीत करती है<ref>{{cite journal|last=Berners-Lee|first=Tim|author2=James Hendler|author3=Ora Lassila|title=The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities|journal=Scientific American|date=May 17, 2001|url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html|doi=10.1038/scientificamerican0501-34|volume=284|pages=34–43|url-status=dead|archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html|archive-date=April 24, 2013}}</ref><ref>{{cite web|url=http://www.w3.org/2001/sw/BestPractices/SE/ODSD/|title=A Semantic Web Primer for Object-Oriented Software Developers|last1=Knublauch|first1=Holger|last2=Oberle|first2=Daniel|last3=Tetlow|first3=Phil|last4=Wallace|first4=Evan|publisher=[[W3C]]|date=2006-03-09|access-date=2008-07-30}}</ref>


{| class="wikitable"
{| class="wikitable"
Line 57: Line 58:
! ओओपी ऑब्जेक्ट्स !! सिमेंटिक वेब ऑब्जेक्ट्स
! ओओपी ऑब्जेक्ट्स !! सिमेंटिक वेब ऑब्जेक्ट्स
|-
|-
| Classes are regarded as types for instances. || Classes are regarded as sets of individuals.
| क्लास को उदाहरणों के प्रकार के रूप में माना जाता है। || क्लास को व्यक्तियों के समूह के रूप में माना जाता है।
|-
|-
| Instances can not change their type at runtime. || Class membership may change at runtime.
| इंस्टेंस रनटाइम पर अपना प्रकार नहीं बदल सकते। || क्लास की सदस्यता रनटाइम में बदल सकती है।
|-
|-
| The list of classes is fully known at compile-time and cannot change after that. || Classes can be created and changed at runtime.
| क्लासो की सूची संकलन-समय पर पूरी तरह से जानी जाती है और उसके बाद बदली नहीं जा सकती। || क्लासो को रनटाइम पर बनाया और बदला जा सकता है।
|-
|-
| Compilers are used at build-time. Compile-time errors indicate problems. || Reasoners can be used for classification and consistency checking at runtime or build-time.
| कंपाइलर्स का उपयोग बिल्ड-टाइम पर किया जाता है। संकलन-समय की त्रुटियां समस्याओं का संकेत देती हैं। || रीजनर का उपयोग रनटाइम या बिल्ड टाइम पर वर्गीकरण और स्थिरता की जांच के लिए किया जा सकता है।
|-
|-
| Classes encode much of their meaning and behavior through imperative functions and methods. || Classes make their meaning explicit in terms of OWL statements. No imperative code can be attached.
| क्लास अनिवार्य कार्यों और विधियों के माध्यम से अपने अधिकांश अर्थ और व्यवहार को कूटबद्ध करती हैं। || ओडब्ल्यूएल बयानों के संदर्भ में कक्षाएं अपना अर्थ स्पष्ट करती हैं। कोई अनिवार्य कोड संलग्न नहीं किया जा सकता है।
|-
|-
| Instances are anonymous insofar that they cannot easily be addressed from outside of an executing program. || All named RDF and OWL resources have a unique URI under which they can be referenced.
| उदाहरण इस हद तक अज्ञात हैं कि उन्हें निष्पादन कार्यक्रम के बाहर आसानी से संबोधित नहीं किया जा सकता है। || सभी नामित आरडीएफ और ओडब्लूएल संसाधनों के पास एक अद्वितीय यूआरआई है जिसके तहत उन्हें संदर्भित किया जा सकता है।
|-
|-
| Closed world: If there is not enough information to prove a statement true, then it is assumed to be false. || Open world: If there is not enough information to prove a statement true, then it may be true or false.<ref>Table excerpted from tables in: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/</ref>
| क्लोज वर्ल्ड : बंद दुनिया यदि किसी कथन को सत्य साबित करने के लिए पर्याप्त जानकारी नहीं है, तो उसे झूठा मान लिया जाता है। || क्लोज वर्ल्ड : यदि किसी कथन को सत्य साबित करने के लिए पर्याप्त जानकारी नहीं है, तो वह सत्य या असत्य हो सकता है.<ref>Table excerpted from tables in: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/</ref>
|}
|}


Line 92: Line 93:
{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Object (computer science)}}[[Category: वस्तु (कंप्यूटर विज्ञान) | वस्तु (कंप्यूटर विज्ञान) ]] [[Category: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] [[Category: डेटा के प्रकार]] [[Category: समग्र डेटा प्रकार]]
{{DEFAULTSORT:Object (computer science)}}
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Object (computer science)]]
[[Category:Created On 16/02/2023]]
[[Category:Collapse templates|Object (computer science)]]
[[Category:Created On 16/02/2023|Object (computer science)]]
[[Category:Lua-based templates|Object (computer science)]]
[[Category:Machine Translated Page|Object (computer science)]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Object (computer science)]]
[[Category:Pages with script errors|Object (computer science)]]
[[Category:Short description with empty Wikidata description|Object (computer science)]]
[[Category:Sidebars with styles needing conversion|Object (computer science)]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Object (computer science)]]
[[Category:Templates generating microformats|Object (computer science)]]
[[Category:Templates that add a tracking category|Object (computer science)]]
[[Category:Templates that are not mobile friendly|Object (computer science)]]
[[Category:Templates that generate short descriptions|Object (computer science)]]
[[Category:Templates using TemplateData|Object (computer science)]]
[[Category:Wikipedia metatemplates|Object (computer science)]]
[[Category:ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग|Object (computer science)]]
[[Category:डेटा के प्रकार|Object (computer science)]]
[[Category:वस्तु (कंप्यूटर विज्ञान)| वस्तु (कंप्यूटर विज्ञान) ]]
[[Category:समग्र डेटा प्रकार|Object (computer science)]]

Latest revision as of 10:55, 21 February 2023

कंप्यूटर विज्ञान में, ऑब्जेक्ट एक चर डेटा संरचना, फलन या एक विधि कंप्यूटर प्रोग्रामिंग के रूप में होती है। स्मृति के क्षेत्र के रूप में, वे मान होते हैं जो आईडेन्टिफयर कंप्यूटर प्रोग्रामिंग द्वारा संदर्भित किये जाते है।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग पैराडिगम में, ऑब्जेक्ट वेरिएबल फलन और डेटा स्ट्रक्चर्स का संयोजन के रूप में होता है, विशेष रूप से पैराडिगम के वर्ग-आधारित विविधताओं में यह वर्ग के एक विशेष उदाहरण के रूप में कंप्यूटर विज्ञान को संदर्भित करता है।

डेटाबेस प्रबंधन के संबंध परक मॉडल में, एक ऑब्जेक्ट तालिका डेटाबेस या कॉलम डेटाबेस के रूप में होता है, डेटा और डेटाबेस इकाई के बीच एक संबंध होता है जैसे किसी व्यक्ति की आयु को किसी विशिष्ट व्यक्ति से संबंधित होती है।[1]

ऑब्जेक्ट-आधारित भाषाएँ

प्रोग्रामिंग भाषाओं में एक महत्वपूर्ण अंतर ऑब्जेक्ट ओरिएंटेड भाषा और ऑब्जेक्ट आधारित भाषा के बीच का अंतर होता है। एक भाषा को सामान्यतः पर ऑब्जेक्ट आधारित माना जाता है यदि इसमें किसी ऑब्जेक्ट के पहचान गुणों और विशेषताओं के लिए मूलभूत क्षमताएं सम्मलित होती है। तो उस भाषा को ऑब्जेक्ट ओरिएंटेड के रूप में माना जाता है यदि यह ऑब्जेक्ट आधारित है और इसमें बहुरूपता (कंप्यूटर विज्ञान), इनहेरिटेंस (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग), एनकैप्सुलेशन (कंप्यूटर प्रोग्रामिंग) और संभवतः ऑब्जेक्ट संरचना की क्षमता के रूप में होती है। बहुरूपता एक फलन के नाम को कई व्यवहारों के साथ अधिभारित करने की क्षमता को संदर्भित करता है, जिसके आधार पर ऑब्जेक्ट को पास किया जाता है। परंपरागत संदेश पासिंग केवल पहली ऑब्जेक्ट पर विभेदन के रूप में कार्य करता है और मानता है कि उस ऑब्जेक्ट को संदेश भेजना है। चूँकि, कुछ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे फ्लेवोर्स प्रोग्रामिंग भाषा और कॉमन लिस्प ऑब्जेक्ट प्रणाली (सीएलओएस) फलन के पहले पैरामीटर से अधिक पर विभेदन करने में सक्षम होते है।[2] इनहेरिटेंस एक ऑब्जेक्ट वर्ग के उपवर्ग में एक नया वर्ग बनाने की क्षमता होती है, जो एक सम्मलित वर्ग का उपवर्ग है और जो डेटा बाधाओं और व्यवहारों को इनहेरिटें में प्राप्त करता है, लेकिन उसमें एक या अधिक परिवर्तन भी करता है।[3][4]

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग

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

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

विशिष्ट ऑब्जेक्ट

वस्तुओं के लिए महत्वपूर्ण अवधारणा सॉफ्टवेयर डिजाइन पैटर्न होता है। एक सामान्य समस्या का समाधान करने के लिए डिज़ाइन पैटर्न एक पुन: प्रयोज्य टेम्पलेट प्रदान करता है। निम्नलिखित ऑब्जेक्ट विवरण वस्तुओं के लिए सबसे सामान्य डिजाइन पैटर्न में से कुछ के उदाहरण हैं।[7]

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

वितरित वस्तुएं

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

वितरित वस्तुओं को पैकेज करने का एक मानक विधि इंटरफ़ेस डेफिनिशन लैंग्वेज (आईडीएल ) के माध्यम से प्राप्त होती है। एक आईडीएल क्लाइंट को वितरित सर्वर ऑब्जेक्ट के सभी विवरणों को ढाल देता है। विवरण जैसे कि कौन सा कंप्यूटर ऑब्जेक्ट किस प्रोग्रामिंग भाषा पर रहता है, यह किस प्रोग्रामिंग भाषा और कौन सा ऑपरेटिंग प्रणाली का उपयोग करता है और अन्य प्लेटफ़ॉर्म-विशिष्ट विषय के रूप में होते हैं। आईडीएल भी सामान्यतः एक वितरित वातावरण का भाग होता है जो एक समान विधि से सभी वस्तुओं को लेनदेन और दृढ़ता जैसी सेवाएं प्रदान करता है। वितरित वस्तुओं के लिए सबसे लोकप्रिय मानकों में से दो ऑब्जेक्ट प्रबंधन समूह के कॉरबा मानक और माइक्रोसॉफ्ट के डीसीओएम के रूप में हैं।[8]

वितरित वस्तुओं के अतिरिक्त , वितरित कंप्यूटिंग को सक्षम करने के लिए किसी ऑब्जेक्ट की मूल अवधारणा के लिए कई अन्य विस्तार प्रस्तावित किए गए हैं

  • प्रोटोकॉल ऑब्जेक्ट एक प्रोटोकॉल स्टैक के घटक के रूप में होते हैं, जो ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस के भीतर नेटवर्क संचार को घेरते हैं।
  • प्रतिकृति (कंप्यूटर विज्ञान) वितरित वस्तुओं के समूह होते हैं जिन्हें प्रतिकृति कहा जाता है जो अपने आंतरिक स्थिति के बीच उच्च स्थिरता प्राप्त करने के लिए एक वितरित बहु-पक्षीय प्रोटोकॉल चलाते हैं और जो समन्वित विधि से अनुरोधों का उत्तर देते हैं। उदाहरणों में दोष-सहिष्णु कोरबा ऑब्जेक्ट के रूप में सम्मलित होती है।
  • लाइव वितरित ऑब्जेक्ट या केवल लाइव वितरित वस्तु,[9] प्रतिकृतियों के समूहों के लिए प्रतिकृति ऑब्जेक्ट अवधारणा को सामान्यीकृत करते है, जो किसी भी वितरित प्रोटोकॉल का आंतरिक रूप से उपयोग कर सकते हैं, जिसके परिणामस्वरूप उनके स्थानीय परिस्थिति के बीच केवल एक कमजोर स्थिरता होती है।

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

सेमांटिक वेब

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

ओडब्ल्यूएल ऑब्जेक्ट्स मानक बड़े ग्रेन वाली वितरित ऑब्जेक्ट्स की तरह नहीं होते हैं, जिन्हें इंटरफ़ेस डेफिनिशन लैंग्वेज के माध्यम से एक्सेस किया जाता है। ऐसा दृष्टिकोण इंटरनेट के लिए उपयुक्त नहीं होता है, क्योंकि इंटरनेट लगातार विकसित हो रहा है और इंटरफेस के एक सेट पर मानकीकरण प्राप्त करना मुश्किल होता है। ओडब्लूएल ऑब्जेक्ट्स प्रोग्रामिंग भाषाओं जैसे जावा और सी ++ में एप्लिकेशन डोमेन मॉडल को परिभाषित करने के लिए उपयोग की जाने वाली वस्तुओं के समान होते हैं।

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

एक और महत्वपूर्ण अंतर वह विधि है जिस तरह से मॉडल उस जानकारी को देखता है जो वर्तमान में प्रणाली में नहीं होती है। प्रोग्रामिंग ऑब्जेक्ट्स और अधिकांश डेटाबेस प्रणाली क्लोज्ड-वर्ल्ड धारणा का उपयोग करते हैं। यदि कोई घटना प्रणाली को ज्ञात नहीं है तो उस तथ्य को झूठा मान लिया जाता है। सिमेंटिक वेब ऑब्जेक्ट ओपन-वर्ल्ड धारणा का उपयोग करते हैं, एक कथन को केवल तभी गलत माना जाता है जब वास्तविक प्रासंगिक जानकारी हो कि यह गलत है अन्यथा इसे अज्ञात माना जाता है, यह न तो सत्य और न ही गलत रूप में होती है।

ओडब्ल्यूएल ऑब्जेक्ट वास्तव में केएल-वन और लूम जैसी आर्टिफिशियल इंटेलिजेंस फ्रेम भाषा में ऑब्जेक्ट्स की तरह होती है।

निम्न तालिका पारंपरिक वस्तुओं को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं जैसे जावा या सी ++ सेमेन्टिक वेब ऑब्जेक्ट्स के विपरीत करती है[10][11]

ओओपी ऑब्जेक्ट्स सिमेंटिक वेब ऑब्जेक्ट्स
क्लास को उदाहरणों के प्रकार के रूप में माना जाता है। क्लास को व्यक्तियों के समूह के रूप में माना जाता है।
इंस्टेंस रनटाइम पर अपना प्रकार नहीं बदल सकते। क्लास की सदस्यता रनटाइम में बदल सकती है।
क्लासो की सूची संकलन-समय पर पूरी तरह से जानी जाती है और उसके बाद बदली नहीं जा सकती। क्लासो को रनटाइम पर बनाया और बदला जा सकता है।
कंपाइलर्स का उपयोग बिल्ड-टाइम पर किया जाता है। संकलन-समय की त्रुटियां समस्याओं का संकेत देती हैं। रीजनर का उपयोग रनटाइम या बिल्ड टाइम पर वर्गीकरण और स्थिरता की जांच के लिए किया जा सकता है।
क्लास अनिवार्य कार्यों और विधियों के माध्यम से अपने अधिकांश अर्थ और व्यवहार को कूटबद्ध करती हैं। ओडब्ल्यूएल बयानों के संदर्भ में कक्षाएं अपना अर्थ स्पष्ट करती हैं। कोई अनिवार्य कोड संलग्न नहीं किया जा सकता है।
उदाहरण इस हद तक अज्ञात हैं कि उन्हें निष्पादन कार्यक्रम के बाहर आसानी से संबोधित नहीं किया जा सकता है। सभी नामित आरडीएफ और ओडब्लूएल संसाधनों के पास एक अद्वितीय यूआरआई है जिसके तहत उन्हें संदर्भित किया जा सकता है।
क्लोज वर्ल्ड : बंद दुनिया यदि किसी कथन को सत्य साबित करने के लिए पर्याप्त जानकारी नहीं है, तो उसे झूठा मान लिया जाता है। क्लोज वर्ल्ड : यदि किसी कथन को सत्य साबित करने के लिए पर्याप्त जानकारी नहीं है, तो वह सत्य या असत्य हो सकता है.[12]


यह भी देखें


संदर्भ

  1. Oppel, Andy (2005). SQL Demystified. McGraw Hill. p. 7. ISBN 0-07-226224-9.
  2. Gabriel, Richard; Linda G. DeMichie (1987). "The Common Lisp Object System: An Overview" (PDF). Lucid Inc. Technical Report. Lecture Notes in Computer Science. 276: 151. Bibcode:1987LNCS..276..151D. doi:10.1007/3-540-47891-4_15. ISBN 978-3-540-18353-2.
  3. Wegner, Peter (December 1987). Meyrowitz, Norman (ed.). "Dimensions of Object-Based Language Design". OOPSLA'87 Conference Proceedings. 22 (12): 168–182. doi:10.1145/38807.38823.
  4. Barbey, S; M. Kempe; A. Strohmeier (1993). "Object-Oriented Programming with Ada 9X". Draft Technical Report. Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory. Retrieved 15 December 2013. Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner [Weg 87], it is said to be object-based, since it provides only a restricted form of inheritance and it lacks polymorphism.
  5. Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object Oriented Software Engineering. Addison-Wesley ACM Press. ISBN 0-201-54435-0.
  6. "What is an Object?". oracle.com. Oracle Corporation. Retrieved 13 December 2013.
  7. Martin, Robert C. "Design Principles and Design Patterns" (PDF). Archived from the original (PDF) on September 6, 2015. Retrieved 28 April 2017.
  8. Orfali, Robert (1996). The Essential Client/Server Survival Guide. New York: Wiley Computer Publishing. pp. 399–403. ISBN 0-471-15325-7.
  9. Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed Objects", Proceedings of the 22nd European Conference on Object-Oriented Programming, Paphos, Cyprus, July 07–11, 2008, J. Vitek, Ed., Lecture Notes in Computer Science, vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  10. Berners-Lee, Tim; James Hendler; Ora Lassila (May 17, 2001). "The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities". Scientific American. 284: 34–43. doi:10.1038/scientificamerican0501-34. Archived from the original on April 24, 2013.
  11. Knublauch, Holger; Oberle, Daniel; Tetlow, Phil; Wallace, Evan (2006-03-09). "A Semantic Web Primer for Object-Oriented Software Developers". W3C. Retrieved 2008-07-30.
  12. Table excerpted from tables in: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/


बाहरी संबंध