2012-02-26 5 views
2

Какой протокол используется для связи между сервером приложений и сервером БД в Java EE, если они оба размещены на разных компьютерах?Связь между сервером приложений и сервером БД в Java EE

Я имею в виду, если я использую JDBC, то могу ли я просто указать IP-адрес сервера БД в файле конфигурации (строка подключения) и соединение будет установлено?

И если он установлен, то какой протокол используется для связи через два сервера? Является ли эта база данных протокола зависимой?

Или мне нужно иметь веб-службы на сервере БД для связи с сервером приложений?

+0

РБД являются, как правило, свободно реализовать свой собственный протокол. Это показано в URL-адресе подключения, который предоставляется драйверам JDBC для установления соединения. Например, для HSQLDB URL-адрес: «jdbc: hsqldb: hsql: // host [: port] [/ ] [<пары ключ-значение>]]. Протокол, указанный здесь, является проприетарным протоколом «hsql». Как отметил JB, к счастью, драйвер JDBC позаботится о ваших коммуникациях. – scottb

ответ

4

Протокол связи с БД зависит от базы данных. Драйвер JDBC обеспечивает связь с БД для вас.

URL-адрес базы данных также зависит от базы данных и содержит информацию, необходимую для подключения драйвера к серверу базы данных.

Использование веб-служб на сервере БД, безусловно, плохая идея:

  • было бы запретить использование транзакций в приложении Java EE
  • вы не смогли бы перейти к результатам без нагрузки их все в памяти
  • было бы ужасно медленно
  • веб-служба на сервере БД все еще связывается с тем же самым собственным протоколом с сервером базы данных.

Прочтите JDBC tutorial для получения дополнительной информации.

+0

Приятные причины отсутствия веб-служб на сервере БД ... можете ли вы подробнее рассказать о «вы не сможете прокручивать результаты без загрузки их в память»? – seahorse

+1

Поскольку веб-служба должна вернуть полный список в приложение Java, вместо приложения Java, выполняющего итерацию напрямую через результирующий набор JDBC. –

2

Обычно соединение реализовано в драйвере JDBC. Драйвер позволяет работать с определенным сервером БД. Есть propriaetary драйверы (например, для Oracle, например) или с открытым исходным кодом.

Что нужно указывать, как правило, зависит от используемой вами базы данных и ее настройки. Вы говорите «только IP», как насчет пользователя/пароля, схемы (если она существует), порта и т. Д. Этот материал лучше всего найти в Google, я считаю :)

Что касается протокола, обычно его пользовательский протокол снова реализован в драйвере. С точки зрения разработчика приложений это должно быть нормально, пока драйвер реализует конкретную версию JDBC.

Что касается веб-служб, я не понимаю, почему вы должны использовать их ...

Надежда, это помогает

Смежные вопросы