2010-12-06 21 views
174

जेएनडीआई क्या है? इसका मूल उपयोग क्या है? इसका उपयोग कब किया जाता है?जेएनडीआई क्या है? इसका मूल उपयोग क्या है ..? इसका उपयोग कब किया जाता है?

+1

परिभाषा और उपयोग के मामलों के लिए व्यक्तिगत ब्लॉग पोस्ट देखें: http://tshikatshikaaa.blogspot.com/2013/01/what-is-jndi-spi-cci-ldap-and-jca.html – JVerstry

उत्तर

8

JNDI अवलोकन

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

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

JNDI का उपयोग करते हुए एक उपकरण के रूप, आप नए शक्तिशाली और पोर्टेबल अनुप्रयोगों है कि न केवल जावा के ऑब्जेक्ट मॉडल का लाभ लेने, लेकिन यह भी कर रहे हैं का निर्माण कर सकते पर्यावरण जिसमें वे तैनात किया गया है के साथ अच्छी तरह से एकीकृत।

Reference

169

JNDI क्या है?

यह Java Naming and Directory Interface के लिए खड़ा है।

इसका मूल उपयोग क्या है?

जेएनडीआई वितरित अनुप्रयोगों को एक सार, संसाधन-स्वतंत्र तरीके से सेवाओं को देखने की अनुमति देता है।

जब इसका उपयोग किया जाता है?

सबसे आम उपयोग केस जावा ईई अनुप्रयोग सर्वर पर डेटाबेस कनेक्शन पूल सेट अप करना है। उस सर्वर पर तैनात कोई भी एप्लिकेशन कनेक्शन के बारे में विवरण जानने के बिना JNDI नाम java:comp/env/FooBarPool का उपयोग करके आवश्यक कनेक्शन तक पहुंच प्राप्त कर सकता है।

यह कई फायदे हैं:

  1. आप एक तैनाती अनुक्रम जहां क्षुधा devl->int->test->prod वातावरण से ले जाने के है, तो आप प्रत्येक वातावरण में एक ही JNDI नाम का उपयोग करें और छिपाने के वास्तविक डेटाबेस इस्तेमाल किया जा रहा सकता है। जब वे वातावरण के बीच माइग्रेट करते हैं तो अनुप्रयोगों को बदलने की ज़रूरत नहीं है।
  2. आप लोगों को जो एक उत्पादन डेटाबेस तक पहुँचने के लिए साख पता करने की जरूरत की संख्या को कम कर सकते हैं। केवल जावा ईई ऐप सर्वर को यह जानने की जरूरत है कि क्या आप जेएनडीआई का उपयोग करते हैं।
  3. आम आदमी की दृष्टि में
+3

तो यह मूल रूप से एक है अपनी जेडीबीसी कनेक्शन जानकारी के साथ गुण फ़ाइल रखने के लिए सुरक्षित विकल्प? – grinch

+1

@grinch: अनिवार्य रूप से हाँ। यह सुरक्षित, और अधिक मानकीकृत है, इस प्रकार तैनाती को आसान बनाता है (अनुमान लगाने की कोई आवश्यकता नहीं है कि गुण फ़ाइल का नाम क्या होना चाहिए)। – sleske

20

JNDI मूल रूप से इस तरह के रूप

javax.sql.DataSource, 
    javax.jms.Connection-Factory, 
    javax.jms.QueueConnectionFactory, 
    javax.jms.TopicConnectionFactory, 
    javax.mail.Session, java.net.URL, 
    javax.resource.cci.ConnectionFactory, 

या किसी अन्य प्रकार का एक JCA संसाधन अनुकूलक द्वारा परिभाषित आंतरिक/बाहरी संसाधनों के उदाहरण प्राप्त करने में सक्षम होने के लिए एक अंतरफलक है। यह आंतरिक या बाहरी हैं या नहीं, यह पहुंच बनाने में सक्षम होने में एक वाक्यविन्यास प्रदान करता है। यानी (COMP/इस उदाहरण में env मतलब है जहां घटक/पर्यावरण, वहाँ अन्य वाक्य रचना के बहुत सारे हैं):

jndiContext.lookup("java:comp/env/persistence/customerDB"); 
+0

यह तस्वीर का केवल एक हिस्सा है। जेएनडीआई आपको जावा ऑब्जेक्ट्स देखने देता है - वे डेटासोर्स जैसे संसाधन हो सकते हैं, या कुछ और, कॉन्फ़िगरेशन जानकारी के लिए सादे 'java.lang.String' भी हो सकते हैं। – sleske

+1

@sleske मेरा सुझाव है कि आप अपना जवाब दें। – Ced

6

JNDI क्या है?

JNDI जावा नामकरण और निर्देशिका अंतरफलक के लिए खड़ा है। यह जे 2 ईई के साथ मानक आता है।

अपनी बुनियादी उपयोग क्या है?

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

जब यह प्रयोग किया जाता है?

आप पढ़ सकते हैं संचालन और नाम स्थान अद्यतन करने के लिए कार्यों सहित संचालन, नामकरण प्रदर्शन करने के लिए JNDI उपयोग कर सकते हैं। निम्नलिखित परिचालनों का वर्णन here है।

68

JNDI क्या है?

जावा नामकरण और निर्देशिका अंतरफलक टीएम (JNDI) एक एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) कि जावा टीएम प्रोग्रामिंग भाषा के उपयोग लिखित आवेदन के नामकरण और निर्देशिका सुविधा प्रदान करता है है। इसे किसी भी विशिष्ट निर्देशिका सेवा कार्यान्वयन से स्वतंत्र माना जाता है। इस प्रकार विभिन्न प्रकार की निर्देशिकाएं (नई, उभरती हुई, और पहले ही तैनात) को आम तरीके से एक्सेस किया जा सकता है।

इसका मूल उपयोग क्या है?

इसमें से अधिकांश उपर्युक्त उत्तर में शामिल हैं लेकिन मैं यहां आर्किटेक्चर प्रदान करना चाहता हूं ताकि उपरोक्त अधिक समझ में आ सकें।

enter image description here

JNDI का उपयोग करने के लिए आपको JNDI वर्गों और एक या अधिक सेवा प्रदाताओं होना आवश्यक है। जावा 2 एसडीके, v1।3 निम्नलिखित नामकरण/निर्देशिका सेवाओं के लिए तीन सेवा प्रदाताओं में शामिल हैं:

  1. लाइटवेट डायरेक्टरी एक्सेस प्रोटोकॉल (LDAP)
  2. आम वस्तु अनुरोध ब्रोकर आर्किटेक्चर (CORBA) आम वस्तु सेवा (COS) नाम सेवा
  3. जावा रिमोट विधि आमंत्रण (आरएमआई) रजिस्ट्री

तो मूल रूप से आप ऑब्जेक्ट्स बनाते हैं और उन्हें निर्देशिका सेवाओं पर पंजीकृत करते हैं जिन्हें आप बाद में लुकअप कर सकते हैं और ऑपरेशन निष्पादित कर सकते हैं।

0

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

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

संबंधित मुद्दे