واجهة تسمية ودليل جافا

واجهة تسمية ودليل جافا ( JNDI ) هي واجهة برمجة تطبيقات جافا لخدمة الدليل ، تُمكّن برامج جافا من اكتشاف البيانات والموارد (على شكل كائنات جافا) والبحث عنها باستخدام الاسم. وكما هو الحال مع جميع واجهات برمجة تطبيقات جافا التي تتفاعل مع أنظمة التشغيل، فإن JNDI مستقلة عن التنفيذ الأساسي. بالإضافة إلى ذلك، تُحدد واجهة موفر الخدمة (SPI) التي تسمح بدمج تطبيقات خدمة الدليل في إطار العمل. [ 1 ] يمكن توفير المعلومات التي يتم البحث عنها عبر JNDI من خادم، أو ملف نصي، أو قاعدة بيانات؛ ويعود الخيار إلى التنفيذ المستخدم.

تشمل الاستخدامات النموذجية لـ JNDI ما يلي:

خلفية

تستخدم واجهات برمجة تطبيقات Java RMI و Java EE واجهة برمجة تطبيقات JNDI للبحث عن الكائنات في الشبكة. [ 3 ]

توفر واجهة برمجة التطبيقات ما يلي:

  • آلية لربط كائن باسم
  • واجهة بحث في الدليل تسمح بإجراء استعلامات عامة
  • واجهة أحداث تسمح للعملاء بتحديد وقت تعديل إدخالات الدليل
  • امتدادات LDAP لدعم القدرات الإضافية لخدمة LDAP

يُتيح جزء SPI دعم أي نوع من خدمات التسمية أو الدليل تقريبًا، بما في ذلك:

أصدرت شركة صن مايكروسيستمز مواصفات JNDI لأول مرة في 10 مارس 1997. [ 4 ] اعتبارًا من عام 2006، الإصدار الحالي هو JNDI 1.2.

بحث أساسي

تُنظّم JNDI (واجهة تسمية ودليل جافا) أسماءها في تسلسل هرمي. يمكن أن يكون الاسم أي سلسلة نصية مثل "com.example.ejb.MyBean". كما يمكن أن يكون الاسم كائنًا يُطبّق الواجهة Name؛ إلا أن السلسلة النصية هي الطريقة الأكثر شيوعًا لتسمية الكائن. يُربط الاسم بكائن في الدليل عن طريق تخزين الكائن نفسه أو مرجع إليه في خدمة الدليل المُعرّفة بالاسم.

تحدد واجهة برمجة تطبيقات JNDI سياقًا يحدد مكان البحث عن كائن ما. ويُستخدم السياق الأولي عادةً كنقطة بداية.

في أبسط الحالات، يجب إنشاء سياق أولي باستخدام التنفيذ المحدد والمعلمات الإضافية المطلوبة. يُستخدم هذا السياق الأولي للبحث عن اسم. يُشابه السياق الأولي جذر أو قمة شجرة الدليل في نظام الملفات. فيما يلي مثال على إنشاء سياق أولي:

Hashtable contextArgs = new Hashtable < String , String > ();// أولاً ، يجب تحديد مصنع السياق. // هذه هي الطريقة التي تختار بها بين تطبيق JBoss // وتطبيق من Sun أو موردين آخرين. contextArgs.put ( Context.INITIAL_CONTEXT_FACTORY , "com.jndiprovider.TheirContextFactory" );// الوسيط التالي هو عنوان URL الذي يحدد مكان وجود مخزن البيانات: contextArgs.put( Context.PROVIDER_URL , " jndiprovider - database" ) ;(قد يُطلب منك أيضًا تقديم بيانات اعتماد أمنية)// بعد ذلك، تقوم بإنشاء السياق الأولي Context myCurrentContext = new InitialContext ( contextArgs );

ثم يُستخدم السياق للبحث عن الأسماء المرتبطة مسبقًا في ذلك السياق. على سبيل المثال:

MyBean myBean = ( MyBean ) myCurrentContext.lookup ( " com.mydomain.MyBean " );

البديل للكود أعلاه هو كما يلي:

يمكن أيضًا تهيئة كائن السياق بإضافة ملف jndi.properties إلى مسار الفئات، والذي يحتوي على اسم فئة مصنع السياق الأولي وعنوان URL الخاص بالموفر. سيتم اختصار الكود أعلاه كما هو موضح أدناه:

// نحتاج فقط إلى إنشاء كائن سياق أولي، وسيحاول البرنامج قراءة ملف jndi.properties من مسار الفئة. Context myCurrentContext = new InitialContext ();

ثم يُستخدم السياق للبحث عن الأسماء المرتبطة مسبقًا في ذلك السياق. على سبيل المثال:

MyBean myBean = ( MyBean ) myCurrentContext.lookup ( " com.mydomain.MyBean " );

البحث

يمكن إرفاق سمات بمدخلات خاصة تُسمى الدلائل. تُمكّن الدلائل من البحث عن الكائنات باستخدام سماتها المرتبطة بها. تُعد الدلائل نوعًا من أنواع السياق؛ فهي تُقيّد نطاق الأسماء تمامًا كما تفعل بنية الدلائل في نظام الملفات. [ 5 ]

انظر أيضاً

مراجع

  1. "Java SE - التقنيات الأساسية - واجهة تسمية ودليل جافا (JNDI)" . www.oracle.com . تم الاطلاع عليه بتاريخ 17-12-2016 .
  2. "دليل استخدام موارد JNDI" . دليل مستخدم Apache Tomcat 7. مؤسسة برمجيات أباتشي . تم الاطلاع عليه بتاريخ 21 يناير 2014 .
  3. "مُزوّد ​​خدمة تسجيل JNDI/RMI" . docs.oracle.com . تم الاطلاع عليه بتاريخ 17-12-2016 .
  4. "شركة صن مايكروسيستمز تُقدّم واجهة برمجة تطبيقات (API) لتسمية ودليل جافا" . sun.com . 10 مارس 1997. مؤرشف من الأصل بتاريخ 8 سبتمبر 2004.
  5. "فلاتر البحث" . docs.oracle.com . تم الاطلاع عليه بتاريخ 17-12-2016 .