জেএনডিআই কি? এর মৌলিক ব্যবহার কী? এটি কখন ব্যবহৃত হয়?


উত্তর:


241

জেএনডিআই কি?

এটি জাভা নামকরণ এবং ডিরেক্টরি ইন্টারফেসের জন্য দাঁড়িয়েছে ।

এর মৌলিক ব্যবহার কী?

জেএনডিআই বিতরণ অ্যাপ্লিকেশনগুলিকে একটি বিমূর্ত, সংস্থান-স্বতন্ত্র উপায়ে পরিষেবাগুলি সন্ধান করার অনুমতি দেয়।

কখন ব্যবহার হয়?

সর্বাধিক সাধারণ ব্যবহারের ক্ষেত্রে জাভা ইই অ্যাপ্লিকেশন সার্ভারে একটি ডাটাবেস সংযোগ পুল স্থাপন করা। সেই সার্ভারে মোতায়েন করা যে কোনও অ্যাপ্লিকেশন সংযোগ java:comp/env/FooBarPoolসম্পর্কে বিশদ না জেনে জেএনডিআই নাম ব্যবহার করে প্রয়োজনীয় সংযোগগুলি অ্যাক্সেস পেতে পারে।

এর বিভিন্ন সুবিধা রয়েছে:

  1. আপনার যদি ডিপোয়মেন্ট সিকোয়েন্স থাকে যেখানে অ্যাপ্লিকেশনগুলি devl->int->test->prodপরিবেশ থেকে সরানো হয় , আপনি প্রতিটি পরিবেশে একই জেএনডিআই নাম ব্যবহার করতে পারেন এবং প্রকৃত ডাটাবেস ব্যবহৃত হচ্ছে তা আড়াল করতে পারেন। অ্যাপ্লিকেশনগুলির পরিবেশের মধ্যে স্থানান্তরিত হওয়ায় তাদের পরিবর্তন করতে হবে না।
  2. উত্পাদনের ডেটাবেস অ্যাক্সেস করার শংসাপত্রগুলি জানা দরকার এমন লোকের সংখ্যা আপনি হ্রাস করতে পারেন। আপনি জেএনডিআই ব্যবহার করেন কিনা তা কেবল জাভা ইই অ্যাপ্লিকেশন সার্ভারেরই জানতে হবে।

9
সুতরাং এটি মূলত আপনার জেডিবিসি সংযোগের তথ্যের সাথে একটি সম্পত্তি ফাইল থাকার একটি নিরাপদ বিকল্প?
গ্রিচ করুন

4
@ গ্রিঞ্চ: মূলত হ্যাঁ এটি নিরাপদ এবং আরও মানসম্মত, সুতরাং স্থাপনাকে সহজ করে তোলে (বৈশিষ্ট্যগুলির ফাইলের নাম কী হওয়া উচিত তা অনুমান করার প্রয়োজন নেই)।
sleske

তাহলে পরিবেশের ভেরিয়েবল এবং জেএনডিআই ব্যবহারের মধ্যে পার্থক্য কী? এটা কি একই ধারণা?
স্ক্রিভেটস

100

জেএনডিআই কি?

জাভা নামকরণ এবং ডিরেক্টরি ইন্টারফেস টিএম (জেএনডিআই) একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) যা জাভা টিএম প্রোগ্রামিং ভাষা ব্যবহার করে রচিত অ্যাপ্লিকেশনগুলিতে নামকরণ এবং ডিরেক্টরি কার্যকারিতা সরবরাহ করে । এটি কোনও নির্দিষ্ট ডিরেক্টরি পরিষেবা বাস্তবায়নের চেয়ে স্বাধীন হতে সংজ্ঞায়িত করা হয়। সুতরাং বিভিন্ন ডিরেক্টরি (নতুন, উদীয়মান এবং ইতিমধ্যে মোতায়েন) একটি সাধারণ উপায়ে অ্যাক্সেস করা যায়।

এর মৌলিক ব্যবহার কী?

এটির বেশিরভাগটি উপরের উত্তরে .াকা আছে তবে আমি এখানে আর্কিটেকচার সরবরাহ করতে চাই যাতে উপরেরটি আরও অর্থবোধ করে।

এখানে চিত্র বর্ণনা লিখুন

জেএনডিআই ব্যবহার করতে আপনার অবশ্যই জেএনডিআই ক্লাস এবং এক বা একাধিক পরিষেবা সরবরাহকারী থাকতে হবে। জাভা 2 এসডিকে, ভি 1.3-এ নিম্নলিখিত নামকরণ / ডিরেক্টরি পরিষেবার জন্য তিনটি পরিষেবা সরবরাহকারী অন্তর্ভুক্ত রয়েছে:

  1. লাইটওয়েট ডিরেক্টরি এক্সেস প্রোটোকল (এলডিএপি)
  2. কমন অবজেক্ট রিকোয়েস্ট ব্রোকার আর্কিটেকচার (সিওআরবিএ) কমন অবজেক্ট সার্ভিসেস (সিওএস) নাম পরিষেবা
  3. জাভা রিমোট মেথড ইনভোকেশন (আরএমআই) রেজিস্ট্রি

সুতরাং মূলত আপনি অবজেক্ট তৈরি করেন এবং সেগুলি ডিরেক্টরি পরিষেবাগুলিতে নিবন্ধভুক্ত করেন যা আপনি পরে দেখতে এবং অপারেশন চালিয়ে যেতে পারেন।


30

সাধারণ মানুষের শর্তে জেএনডিআই হ'ল মূলত একটি ইন্টারফেস যা অভ্যন্তরীণ / বাহ্যিক সংস্থার যেমন উদাহরণ পেতে সক্ষম হয়

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

বা কোনও জেসিএ রিসোর্স অ্যাডাপ্টার দ্বারা নির্ধারিত অন্য কোনও ধরণের। এটি অভ্যন্তরীণ বা বাহ্যিক হোক না কেন অ্যাক্সেস তৈরি করতে সক্ষম হতে একটি বাক্য গঠন সরবরাহ করে। অর্থাত্ (এই উদাহরণে কমপ / এনভিভির অর্থ যেখানে উপাদান / পরিবেশ, সেখানে প্রচুর অন্যান্য বাক্য গঠন রয়েছে):

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

1
এটি ছবির অংশ মাত্র। জেএনডিআই আপনাকে জাভা অবজেক্টগুলি সন্ধান করতে দেয় - সেগুলি ডেটাফোর্সের মতো সংস্থান হতে পারে বা অন্য কোনও কিছু হতে পারে, এমনকি java.lang.Stringকনফিগারেশনের তথ্যের জন্য সহজ plain
স্লেস্কে

3
@ স্লেসকে আমি আপনাকে নিজের উত্তরটি তৈরি করার পরামর্শ দিচ্ছি।
সিড

14

জেএনডিআই ওভারভিউ

জেএনডিআই হ'ল জাভা প্রযুক্তিতে নির্দিষ্ট একটি এপিআই যা জাভা প্রোগ্রামিং ভাষায় লিখিত অ্যাপ্লিকেশনগুলিকে নামকরণ এবং ডিরেক্টরি কার্যকারিতা সরবরাহ করে। এটি জাভা প্ল্যাটফর্মের জন্য জাভার অবজেক্ট মডেল ব্যবহার করে বিশেষত ডিজাইন করা হয়েছে। জেএনডিআই ব্যবহার করে, জাভা প্রযুক্তির উপর ভিত্তি করে অ্যাপ্লিকেশনগুলি যেকোন প্রকারের জাভা অবজেক্টগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে পারে। এছাড়াও, জেএনডিআই স্ট্যান্ডার্ড ডিরেক্টরি ক্রিয়াকলাপ সম্পাদন করার জন্য পদ্ধতি সরবরাহ করে যেমন বস্তুর সাথে অ্যাট্রিবিউট যুক্ত করে এবং তাদের বৈশিষ্ট্যগুলি ব্যবহার করে অবজেক্টগুলির সন্ধান করা।

জেএনডিআই কোনও নির্দিষ্ট নামকরণ বা ডিরেক্টরি পরিষেবা প্রয়োগের স্বতন্ত্র হিসাবে সংজ্ঞায়িতও করা হয়। এটি অ্যাপ্লিকেশনগুলিকে একটি সাধারণ এপিআই ব্যবহার করে বিভিন্ন, সম্ভবত একাধিক, নামকরণ এবং ডিরেক্টরি পরিষেবাগুলিতে অ্যাক্সেস করতে সক্ষম করে। বিভিন্ন নামকরণ এবং ডিরেক্টরি পরিষেবা প্রদানকারীদের এই সাধারণ API এর পিছনে নির্বিঘ্নে প্লাগ ইন করা যায়। এটি জাভা প্রযুক্তি-ভিত্তিক অ্যাপ্লিকেশনগুলিকে বিভিন্ন নামকরণ এবং ডিরেক্টরি পরিষেবাদি যেমন এলডিএপি, এনডিএস, ডিএনএস, এবং এনআইএস (ওয়াইপি) এর তথ্যের সুবিধা নিতে সক্ষম করে পাশাপাশি অ্যাপ্লিকেশনগুলিকে লিগ্যাসি সফ্টওয়্যার এবং সিস্টেমের সহাবস্থান করতে সক্ষম করে।

জেএনডিআইকে একটি সরঞ্জাম হিসাবে ব্যবহার করে, আপনি নতুন শক্তিশালী এবং পোর্টেবল অ্যাপ্লিকেশন তৈরি করতে পারেন যা জাভার অবজেক্ট মডেলটির সুযোগ নেয় না তবে তারা যে পরিবেশে মোতায়েন রয়েছে তার সাথে সুসংহতও হয়।

উল্লেখ


9

জেএনডিআই কি?

জেএনডিআই এর অর্থ জাভা নামকরণ এবং ডিরেক্টরি ইন্টারফেস। এটি J2EE সহ স্ট্যান্ডার্ড আসে।

এর মৌলিক ব্যবহার কী?

এই এপিআই এর সাহায্যে আপনি অনেক ধরণের ডেটা অ্যাক্সেস করতে পারবেন, যেমন বস্তু, ডিভাইস, নামকরণের ফাইল এবং ডিরেক্টরি পরিষেবাদিগুলির উদাহরণস্বরূপ। এটি EJB দ্বারা দূরবর্তী বস্তুগুলি সন্ধান করতে ব্যবহৃত হয়। জেএনডিআই ডিএনএস, এনডিএস, এলডিএপি, কর্বো এবং আরএমআইয়ের মতো বিদ্যমান পরিষেবাগুলিতে অ্যাক্সেসের জন্য একটি সাধারণ ইন্টারফেস সরবরাহ করার জন্য ডিজাইন করা হয়েছে।

কখন ব্যবহার হয়?

নাম স্থান আপডেট করার জন্য পড়া অপারেশন এবং ক্রিয়াকলাপ সহ নামকরণ ক্রিয়াকলাপ সম্পাদন করতে আপনি জেএনডিআই ব্যবহার করতে পারেন। নিম্নলিখিত ক্রিয়াকলাপগুলি এখানে বর্ণিত হয়েছে


7

একটি নামকরণ পরিষেবা বস্তুর সাথে নাম যুক্ত করে এবং তাদের প্রদত্ত নামের উপর ভিত্তি করে অবজেক্টগুলি সন্ধান করে ((আরএমআই রেজিস্ট্রি নামকরণ পরিষেবার একটি উত্তম উদাহরণ)) জেএনডিআই অনেকগুলি বিদ্যমান নামকরণ পরিষেবাদির যেমন একটি সাধারণ ইন্টারফেস সরবরাহ করে, যেমন এলডিএপি, ডিএনএস।

জেএনডিআই ছাড়া দূরবর্তী সংস্থাগুলির অবস্থান বা অ্যাক্সেসের তথ্যগুলিকে অ্যাপ্লিকেশনগুলিতে হার্ড কোডিং করতে হবে বা একটি কনফিগারেশনে উপলব্ধ করতে হবে। এই তথ্য বজায় রাখা বেশ ক্লান্তিকর এবং ত্রুটিযুক্ত প্রবণ।


3

আমি কেবল কৌতূহলী যে কেন সরকারী দস্তাবেজগুলি এত উপেক্ষা করা হচ্ছে যা ইতিমধ্যে বিশদটি বিস্তারিতভাবে ইতিমধ্যে বিস্তৃত করে।

তবে আপনি যদি কেসগুলি বুঝতে চান তবে দয়া করে ডুফিমোর উত্তরটি দেখুন

জাভা নামকরণ এবং ডিরেক্টরি ইন্টারফেস টিএম (জেএনডিআই) একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) যা জাভা টিএম প্রোগ্রামিং ভাষা ব্যবহার করে রচিত অ্যাপ্লিকেশনগুলিতে নামকরণ এবং ডিরেক্টরি কার্যকারিতা সরবরাহ করে । এটি কোনও নির্দিষ্ট ডিরেক্টরি পরিষেবা বাস্তবায়নের চেয়ে স্বাধীন হতে সংজ্ঞায়িত করা হয়। সুতরাং নতুন, উদীয়মান এবং ইতিমধ্যে মোতায়েন করা বিভিন্ন ডিরেক্টরিতে সাধারণ উপায়ে অ্যাক্সেস করা যায়।

এবং এর স্থাপত্য

এখানে চিত্র বর্ণনা লিখুন

এবং সাধারণত আপনি এটি কীভাবে ব্যবহার করেন


5
I am just curious why the official docs are so ignored which elaborate the details meticulously alreadyকারণ তারা নিয়মিত লোকেরা বুঝতে পারে এমন পর্যাপ্তরূপে ব্যাখ্যা না করায়?
স্ক্রিভেটস

1

কোনও অ্যাপ্লিকেশন বিকাশকারী ব্যবহারকারীর নাম এবং ডাটাবেসের পাসওয়ার্ড না জেনেই জেএনডিআই কীভাবে ডাটাবেস কনফিগার করতে ব্যবহার করা যায় তা বোঝাতে আমি একটি উদাহরণ ব্যবহার করব।

1) আমরা JBoss সার্ভারের একক-পূর্ণ.এমএমএলে ডেটা উত্সটি কনফিগার করেছি । অতিরিক্তভাবে, আমরা পুলের বিবরণগুলিও কনফিগার করতে পারি।

 <datasource jta="false" jndi-name="java:/DEV.DS" pool-name="DEV" enabled="true" use-ccm="false">
                <connection-url>jdbc:oracle:thin:@<IP>:1521:DEV</connection-url>
                <driver-class>oracle.jdbc.OracleDriver</driver-class>
                <driver>oracle</driver>
                <security>
                    <user-name>usname</user-name>
                    <password>pass</password>
                    </security>
                    <security>

 <security-domain>encryptedSecurityDomain</security-domain>
                    </security>

                <validation>
                    <validate-on-match>false</validate-on-match>
                    <background-validation>false</background-validation>
                    <background-validation-millis>1</background-validation-millis>
                </validation>
                <statement>
                    <prepared-statement-cache-size>0</prepared-statement-cache-size>
                    <share-prepared-statements>false</share-prepared-statements>
                    <pool>
                        <min-pool-size>5</min-pool-size>
                        <max-pool-size>10</max-pool-size>
                    </pool>
                </statement>
            </datasource>

এখানে চিত্র বর্ণনা লিখুন

এখন, এই জেন্ডি-নাম এবং এর সাথে সম্পর্কিত ডেটাসোর্স অবজেক্টটি আমাদের অ্যাপ্লিকেশনটির জন্য উপলব্ধ। অ্যাপ্লিকেশন।

2) আমরা জেন্ডিডাটাসোর্সলুকআপ ক্লাস ব্যবহার করে এই ডেটাসোর্স অবজেক্টটি পুনরুদ্ধার করতে পারি।

এখানে চিত্র বর্ণনা লিখুন

বসন্তটি আমরা জেন্ডি-নাম দেওয়ার পরে ডেটাসোর্স শিমটি তাত্ক্ষণিকভাবে প্রেরণ করবে।

এখন, আমরা আমাদের পরিবেশ বা প্রয়োজনীয়তা অনুযায়ী পুলের আকার, ব্যবহারকারীর নাম বা পাসওয়ার্ড পরিবর্তন করতে পারি, তবে এটি প্রয়োগে প্রভাব ফেলবে না।

দ্রষ্টব্য : এনক্রিপ্টডসিকিউরিটিডোমাইন, আমাদের এটি আলাদাভাবে JBoss সার্ভারে কনফিগার করতে হবে like

<security-domain name="encryptedSecurityDomain" cache-type="default">
                    <authentication>
                        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                            <module-option name="username" value="<usernamefordb>"/>
                            <module-option name="password" value="894c8a6aegc8d028ce169c596d67afd0"/>
                        </login-module>
                    </authentication>
                </security-domain>

এটি ব্যবহারের ক্ষেত্রে অন্যতম। আশা করি এটি স্পষ্ট হয়েছে।


0

আমার সম্পর্কে সর্বোত্তম ব্যাখ্যা এখানে দেওয়া হল

জেএনডিআই কি?

ডিরেক্টরি ডিরেক্টরিতে অ্যাক্সেস সরবরাহ করার এটি একটি এপিআই, এটি হ'ল একটি পরিষেবা মানচিত্রের নাম (স্ট্রিং) সহ বস্তুগুলি, দূরবর্তী বস্তুগুলি বা সাধারণ ডেটার উল্লেখ । একে বাইন্ডিং বলে। বাইন্ডিংয়ের সেটটিকে প্রসঙ্গ বলা হয় । অ্যাপ্লিকেশনগুলি সংস্থানগুলি অ্যাক্সেস করতে JNDI ইন্টারফেস ব্যবহার করে।

এটিকে খুব সহজভাবে বলতে গেলে এটি স্ট্রিং কী এবং ওয়েবে সংস্থানসমূহের প্রতিনিধিত্বকারী অবজেক্টের মান সহ একটি হ্যাশম্যাপের মতো।

জেএনডিআই কী সমস্যা সমাধান করে olve

জেএনডিআই ছাড়া দূরবর্তী সংস্থাগুলির অবস্থান বা অ্যাক্সেসের তথ্যগুলিকে অ্যাপ্লিকেশনগুলিতে হার্ড কোডিং করতে হবে বা একটি কনফিগারেশনে উপলব্ধ করতে হবে। এই তথ্য বজায় রাখা বেশ ক্লান্তিকর এবং ত্রুটিযুক্ত প্রবণ।

উদাহরণস্বরূপ, যদি কোনও সংস্থান অন্য কোনও সার্ভারে স্থানান্তরিত করা হয়, অন্য আইপি ঠিকানার সাথে, উদাহরণস্বরূপ, এই সংস্থানটি ব্যবহার করা সমস্ত অ্যাপ্লিকেশনকে এই নতুন তথ্য দিয়ে আপডেট করতে হবে। জেএনডিআই সহ, এটি প্রয়োজনীয় নয়। কেবলমাত্র সম্পর্কিত সংস্থান বাঁধাই আপডেট করতে হবে। অ্যাপ্লিকেশনগুলি এখনও এর নামের সাথে এটি অ্যাক্সেস করতে পারে এবং স্থানান্তর স্বচ্ছ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.