تسمية جافا وواجهة الدليل
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( يوليو 2014 ) |
واجهة التسمية والدليل في Java ( JNDI ) هي واجهة برمجة تطبيقات Java لخدمة الدليل التي تسمح لعملاء برامج Java باكتشاف البيانات والموارد (في شكل كائنات Java ) والبحث عنها عبر اسم. مثل جميع واجهات برمجة تطبيقات Java التي تتفاعل مع أنظمة المضيف، فإن واجهة التسمية والدليل في Java مستقلة عن التنفيذ الأساسي. بالإضافة إلى ذلك، فهي تحدد واجهة مزود الخدمة (SPI) التي تسمح بتوصيل تنفيذات خدمة الدليل بالإطار. [1] قد يتم توفير المعلومات التي يتم البحث عنها عبر JNDI بواسطة خادم أو ملف مسطح أو قاعدة بيانات؛ الاختيار متروك للتنفيذ المستخدم.
تتضمن الاستخدامات النموذجية لـ JNDI ما يلي:
- ربط تطبيق Java بخدمة دليل خارجية (مثل قاعدة بيانات العناوين أو خادم LDAP )
- السماح لبرنامج Java Servlet بالبحث عن معلومات التكوين المقدمة بواسطة حاوية الويب المستضيفة [2]
خلفية
تستخدم واجهات برمجة التطبيقات Java RMI و Java EE واجهة برمجة التطبيقات JNDI للبحث عن الكائنات في الشبكة. [3]
توفر واجهة برمجة التطبيقات (API) ما يلي:
- آلية لربط كائن باسم
- واجهة بحث في الدليل تسمح بالاستعلامات العامة
- واجهة حدث تسمح للعملاء بتحديد وقت تعديل إدخالات الدليل
- ملحقات LDAP لدعم القدرات الإضافية لخدمة LDAP
يسمح جزء SPI بدعم أي نوع من خدمات التسمية أو الدليل عمليًا، بما في ذلك:
أصدرت شركة Sun Microsystems لأول مرة مواصفات JNDI في 10 مارس 1997. [4] اعتبارًا من عام 2006 [تحديث]، الإصدار الحالي هو JNDI 1.2.
البحث الأساسي
تنظم واجهة التسمية والدليل في Java (JNDI) أسماءها في تسلسل هرمي. يمكن أن يكون الاسم أي سلسلة مثل "com.example.ejb.MyBean". يمكن أن يكون الاسم أيضًا كائنًا ينفذ الواجهة Name؛ ومع ذلك، فإن السلسلة هي الطريقة الأكثر شيوعًا لتسمية الكائن. يرتبط الاسم بكائن في الدليل عن طريق تخزين الكائن أو مرجع إلى الكائن في خدمة الدليل التي يتم تحديدها بواسطة الاسم.
تحدد واجهة برمجة تطبيقات JNDI سياقًا يحدد المكان الذي يجب البحث فيه عن كائن. عادةً ما يتم استخدام السياق الأولي كنقطة بداية.
في أبسط الحالات، يجب إنشاء سياق أولي باستخدام التنفيذ المحدد والمعلمات الإضافية المطلوبة من قبل التنفيذ. سيتم استخدام السياق الأولي للبحث عن اسم. السياق الأولي يشبه جذر أو قمة شجرة الدليل لنظام الملفات. فيما يلي مثال لإنشاء سياق أولي:
سياق جدول التجزئة Args = جدول تجزئة جديد < سلسلة ، سلسلة > ();
// يجب عليك أولاً تحديد مصنع السياق.
// هذه هي الطريقة التي تختار بها بين تنفيذ 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 من مسار الفصل.
السياق myCurrentContext = new InitialContext ();
يتم بعد ذلك استخدام السياق للبحث عن الأسماء المرتبطة سابقًا في هذا السياق. على سبيل المثال:
MyBean myBean = ( MyBean ) myCurrentContext . lookup ( "com.mydomain.MyBean" );
البحث
يمكن ربط السمات بإدخالات خاصة تسمى الدلائل. تمكن الدلائل من البحث عن الكائنات من خلال السمات المرتبطة بها. الدلائل هي نوع من السياق؛ فهي تقيد مساحة الاسم تمامًا مثل بنية الدليل على نظام الملفات. [5]
انظر أيضا
مراجع
- ^ "Java SE - Core Technologies - Java Naming and Directory Interface (JNDI)". www.oracle.com . تم الاسترجاع في 2016-12-17 .
- ^ "دليل استخدام موارد JNDI". دليل مستخدم Apache Tomcat 7. Apache Software Foundation . تم الاسترجاع في 21 يناير 2014 .
- ^ "موفر خدمة تسجيل JNDI/RMI". docs.oracle.com . تم الاسترجاع في 2016-12-17 .
- ^ "SUN MICROSYSTEMS, INC. INTRODUCES JAVA NAMING AND DIRECTORY INTERFACE API". sun.com . 1997-03-10. مؤرشف من الأصل في 2004-09-08.
- ^ "مرشحات البحث". docs.oracle.com . تم الاسترجاع في 2016-12-17 .
روابط خارجية
- صفحة Java SE 7 JNDI
- صفحة Java SE 8 JNDI
- وثائق مرجعية حول Java SE 8 JNDI javax.naming
- برنامج JNDI التعليمي
