Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ODBC драйвер. Запрос данных через web.  (Прочитано 14833 раз)
0 Пользователей и 7 Гостей смотрят эту тему.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« : 25-08-2009 13:04 » 

Такая у меня есть задачка: нужно физически разнести два сервера по разным защищенным сетям, без соединений по VPN и т.п.
На одном сервере СУБД, на другом программа, работающая под виндой, обращающаяся к базе через ADO (используется не интенсивно). Одним из самых легких решений было бы наличие некоторого драйвера, который в системе выглядел бы как ODBC-драйвер, а общался бы по HTTP с удаленным web-сервером, которому передавал бы запросы и от которого принимал бы запрошенные данные. Этакий ODBC-SQL-HTTP-Proxy.

Направьте, пожалуйста, мои мысли куда-нибудь по делу - я пока не соображу, в какую сторону мне рыть.

Вариант с изменением ПО возможен, но существенно более трудоемок.



В общем, пока больше склоняемся, что самое быстрое и менее трудоемкое - IP-tunnel. Но от идеи с таким дваймером не отказываемся - на случай если по каким-либо причинам не удастся связать боле традиционными способами.
« Последнее редактирование: 25-08-2009 19:41 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 26-08-2009 04:23 » 

применимо для MS SQL
1) указать серверу слушать определенный порт, который можно на проксе забиндить. В программе в строке подключения указать нужный порт
2) для 2005 и выше можно организовать средствами сервера HTTP-EndPoint
3) написать свою промежуточную программу


ИМХО лучше использовать первый или второй вариант
Записан

I Have Nine Lives You Have One Only
THINK!
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 26-08-2009 05:36 » 

1. Можно подробнее? Я не понял мысли. Ты имеешь в виду, просто провести соединение через инет?

2. В данном случае у нас - Sybase на Linux. У них совместимые с MS SQL протоколы, но сомневаюсь, что имеющаяся версия СУБД (11.9.2) поддерживает нововведения MS.

3. Подробнее, пожалуйста.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 26-08-2009 06:46 » 

по первому пункту
если связь между двумя сетями только посредством инета то
сказать к примеру чтобы сервер слушал нестандартный порт. этот порт разрешить на проксе (если таковая есть)
должно получится обычное соединение с сервером. в принципе и стандартный порт подойдет.
проблема в том, что сервер будет виден из сети и может быть подвергнут атаке

по третьему пункту
написать свою прогу которая располагается на SQL и будет отлавливать приходящие сообщения от удаленных серверов
выполнять запросы и возвращать результаты. к примеру, этот форум тоже написан на БД и сайт - это "промежуточная прога"
Записан

I Have Nine Lives You Have One Only
THINK!
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #4 : 26-08-2009 06:48 » 

хотя если прога использует ADO, то третий пункт вряд ли подойдет
Записан

I Have Nine Lives You Have One Only
THINK!
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 26-08-2009 07:54 » 

Т.е. опять возвращаемся к пробросу трафика на сетевом уровне.
Все же по части первоначальной идеи интересно было бы услышать мнения.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #6 : 26-08-2009 12:10 » 

Цитата
Все же по части первоначальной идеи интересно было бы услышать мнения.

может тут что-то
вот еще некий провайдер MediaCatalogWebDB
Записан

I Have Nine Lives You Have One Only
THINK!
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 26-08-2009 12:19 » 

RXL, Если было бы два Linux, в нете я видел создание туннеля через ssh. Виндовс версия ssh как на это будет реагировать я не знаю.
Что то типа этого https://cloud-support.engineyard.com/faqs/database/setup-ssh-tunnel-to-mysql-database
« Последнее редактирование: 26-08-2009 12:22 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 26-08-2009 12:34 » 

Finch, по идее должно работать (rdp по ssh работает)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 26-08-2009 15:34 » 

С туннелем уже порешили.
Но тема все же об ODBC.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #10 : 31-08-2009 09:18 » 

Цитата
аличие некоторого драйвера, который в системе выглядел бы как ODBC-драйвер, а общался бы по HTTP с удаленным web-сервером, которому передавал бы запросы и от которого принимал бы запрошенные данные. Этакий ODBC-SQL-HTTP-Proxy.

это обыкновенный multitier, но я не понимаю, при чём тут ODBC.

если есть туннель - почему нельзя поднять ODBC DS на сервере СУБД и не обращаться к нему из клиента?
какая неободимость общаться именно по HTTP? тебе не всё равно, в каком виде по сети пойдут пакеты? если нужно повесить общение с БД на 80-й порт, почему тупо не сделать маппинг на обеих сторонах канала?

писать промежуточный драйвер, эмулирующий для проги ODBC, а реально работающий через web-реквесты - задача нетривиальная.
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 31-08-2009 14:03 » 

Игор, ODBC - потому чтобы ничего не менять в существующем ПО, а только драйвер ODBC и запись DSN в реестре.

HTTP хорош тем, что проходит через различные прокси, для чего нет нужды в перенастройке сетевых файрволов.

Изначально были условия, что сеть чужая, админов там нет или все в отпуске, сервер БД переезжает и срочно нужно соединить их бухов с этой базой. К счастью, админы нашлись в смежной конторе и вопрос решился созданием туннеля.

Позже объясню подробнее.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #12 : 31-08-2009 16:13 » 

Ром, ну нетривиально это. для таких вещей умные люди пишут целые умные программы. вот такие например:

Цитата: ODBC Socket Server II
ODBC Socket Server is an open source database access toolkit that exposes Windows NT ODBC data sources via an XML-based TCP/IP interface.It was developped by Team FXML (fxml@excite.com), we would like to keep on developping and improving it under GPL

src: http://sourceforge.net/projects/odbcsock/
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 31-08-2009 16:25 » 

Примерно то, что я и искал... Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #14 : 31-08-2009 16:33 » 

RXL, я случайно нагуглил Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines