Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Сбор данных с удаленных СУБД |
Автор: Zamuta 24.10.2009, 14:31 |
Всем привет! Ситуация следующая. Существуют территориально разнесенные СУБД из кторых нужно с определенной периодичностью делать выборки данных, т.е. только селекты, и эти данные отправлять в один сервер БД (со статическим внешним IP). Рядом с территориально разнесенными СУБД нет web серверов, с которыми бы можно было работать, и серверы СУБД находятся внутри корпоративных сетей, внешние IP адреса у СУБД могут быть динамическими. Делать общедуступное прямое подключение к клиентской СУБД из вне не хочется из-за соображений безопасности, а учитывая динамические IP этих СУБД идея о прямом подключении и вовсе отпадает. Исходя из этого, смотрю в сторону RMI. Держать рядом с каждой клиентской СУБД веб сервер сервлет контейнер не хочется (кроме выборки и отправки данных больше ничего не требуется). Поэтому решение с RMI вижу более приоритетным по отношению к веб сервисам. Проблему с клиентскими динамическими IP думаю решить так. Клиенты сами инициируют регистрацию на сервере, после чего отправляют ему данные, т.е. не сервер ищет клиентов. Решение RMI у Spring frmw. чем-то отличается от сановского? Наверняка уже существуют стандартные решения по этому вопросу. Покритикуйте меня. |
Автор: stron 24.10.2009, 16:15 |
Zamuta, а СУБД все одинаковые? может всё стоит решит ьна уровне самих БД? или какое-нибудь средство ETL прикрутить? |
Автор: Zamuta 24.10.2009, 17:45 |
К сожалению нет. Я уже думал об этом. Периодически будут появляться новые клиентские СУБД заранее неопределенного типа. |
Автор: COVD 24.10.2009, 21:25 |
Вполне вероятно, что клиентские компьютеры, расположенные в корпоративных сетях, смогут иметь возможность доступа к внешнему серверу только по HTTP на 80 порт. Поэтому даже при использовании RMI на сервере необходим контейнер сервлетов, слушающий на порту 80, с сервлетом, обеспечивающим коммуникацию с RMI. Это называется http tunneling. Можно для простоты вообще обойтись только HTTP 80 для всех клиентов, потому что дополнительные пересылаемые данные (http headers) обычно невелики. В этом случае клиенты отправляют данные в любом формате методом POST, используя HttpURLConnection или апачевский HttpClient (RMI не нужен). |
Автор: Zamuta 25.10.2009, 04:45 | ||
Да, центральный сервер БД будет однозначно работать в связке с tomcat. http tunneling надо будет потестить. ivanovpv, спасибо за ссылку, очень в тему, буду пробовать. Буду все это дело к Spring прикручивать, посмотрим что получится. |