Abstract:
Именуващата услуга (naming service) най-общо представлява
механизъм, чрез който един обект може да се асоциира с дадено име и в
последствие да се търси по това име.
В езика за програмиране JAVA се дефинира механизъм за разработка и поддръжка
на именуващи услуги посредством спецификацията JNDI: Java Naming and
Directory Interface.
SPI (Service Provider Interface) разделът на JNDI спецификацията предоставя
унифициран начин за разработване на приложения предлагащи именуващи услуги
и начин за публикуване на тези услуги, така че да бъдат достъпни за приложения
използващи JNDI API (Application Programming Interface).
Настоящата дипломна работа описва ограниченията наложени от JNDI
спецификацията, представя проблемите възникващи в резултат на тези
ограничения и предлага начин за разрешаването им посредством система за
регистрация и управление на доставчици на jndi услуги.
Системата е разработена като модул надстройка на JNDI SPI, който притежава
следните характеристики:
• Предоставя начин за намиране и зареждане на jndi имплементации
независещ от използването на клиентския classloader, т.е. да освобождава
доставчиците на именуващи услуги от ограничението – техните
имплементации да са достъпни за клиентския classloader. Това решение
съвместява JNDI услугите и изолацията на компонентите в сървърите за
приложения.
• Предоставя възможност на всеки доставчик на именуващи услуги сам да
избере механизма за намиране и зареждане на jndi имплементацията, която
той предлага. По този начин се снема ограничението, че само първият
доставчик, който успее да се регистрира в JNDI средата има привилегията
да пренапише този механизъм.
• Предоставя възможност на клиентите на именуващи услуги да използват
JNDI API, за връзка с доставчиците на тези услуги, т.е. разработеният модул
трябва да е съвместим с JNDI SPI и достъпен посредством JNDI API.
В началото е включен общ преглед на технологиите засегнати в процеса на
разработката – Java, JNDI, Java EE Server, naming service, семантичен обект.
Описано е взаимодействието и интеграцията между тях като постепенно е изграден
модел на проблемната област.
В детайли е разгледана стандартната функционалност заложена в JNDI
средата за интеграция на доставчици на jndi услуги и ролята на NamingManager
класа в нея. Описана е семантиката на основните операции в JNDI - създаване на
нов начален контекст, именуване на обект и търсене на обект по име. На база на
направения функционален анализ са идентифицирани ограниченията наложени от
JNDI средата и именно те са използвани за формиране на функционалните
изисквания към разработката.
Методологията избрана за проектиране на разработката е test-driven
development. Съгласно принципите й са дефинирани и реализирани автоматизирани
JUnit тестове удостоверяващи функционалната цялост, бързодействие и
ефективност на разработваната система, както и съвместимостта и интеграцията й с
JNDI средата.
Описана е архитектурата и реализацията на системата за регистрация и
управление на доставчици на jndi услуги и интеграцията й в JNDI средата, както и
подобренията и оптимизациите направени в следствие на резултатите от
изпълнените тестове за валидация.
Разработеният модул използва единствено средствата предоставени от jdk5 и
включената в него стандартна JNDI библиотека версия 1.2.1. Така създадената
система за регистрация и управление на jndi доставчици може да се използва
самостоятелно или да се интегрира в произволна сървърна система използваща jndi
услуги.
Включено е ръководство за употреба указващо начините и предпоставките
за използване на разработената система от доставчиците на jndi услуги и техните
клиенти, както и съвместимостта на системата със стандартната функционалност
на JNDI средата и миграцията на вече съществуващи приложения към новата
функционалност.
В заключение са оценени постигнатите резултати и актуалността на
разработената система и са предложени възможни подобрения и бъдещи насоки за
развитие.
Description:
Система за регистрация и управление на доставчици на
JNDI услуги
Дипломант: Елица Николова Панчева, фак. № М-21360, спец. Информатика,
специализация Разпределени системи и мобилни технологии
Научен ръководител: доц. д-р Боян Бончев
Дата на защита: 24 октомври 2007, София