Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Использование JNDI в Tomcat

#java #tomcat


Попытался настроить отдельный сервер с JNDI на Tomcat 7 и обнаружил, что это невозможно.
Я правильно понимаю, что доступ к ресурсам Tomcat может обеспечить только в пределах
текущей Java-машины, на которой крутится сам Tomcat?

Из этого следует, что получить объект, соединения с базой могут только приложения,
запущенные в контексте Tomcat'a, на котором поднят JNDI? В связи с этим назрел вопрос^
а зачем это тогда вообще надо - не проще ли пользоваться конфигурационными файлами
и нативными объектами внутри приложения, которому это необходимо? Я планировал поднять
сервер с jndi и использовать его как единый сервис доступа к данным для различных приложений,
составляющих единый программный комплекс.

Как используется jndi в архитектурном смысле в распределенных системах?
    


Ответы

Ответ 1



JNDI не предназначен для распределённого использования по разным серверам. Для распределённого исполнения используется вызов удалённых процедур. Собственно для чего нужен jndi? Представь, что есть у тебя 2 сервака. Делать отдельные сборки для каждого вполне пойдёт. А что если их 5, или 10? Одна правка должна будет вылиться в 5, 10 реальных правок. Плюс, по-хорошему, каждую сборку надо тестировать. Вот другая ситуация. Ты написал приложение, которое является частью программного комплекса. Другой человек решил встроить его у себя, чтобы посмотреть всю цепочку локально. И теперь он должен обратится к тебе, чтобы ты сделал ему отдельную сборку. Накладно получается. А если их опять 5 или 10? Собственно JNDI это и есть в большинстве случаев конфигурация, приходящая из вне, с сервера. Кроме того, в случае с базой данных, при использовании jndi, от приложения скрыто реальное нахождение базы, а также имя пользователя и пароль, поэтому их нельзя украсть. Так же можно легко переключится на другую базу просто сделав правки в свойствах jndi, не трогая само приложения (только перезапустив).

Комментариев нет:

Отправить комментарий