powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Подключение пользователя к БД... Как есть правильно?
42 сообщений из 42, показаны все 2 страниц
Подключение пользователя к БД... Как есть правильно?
    #36940670
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток, интересует такой вопрос: Предположим есть некая система, могопользовательская(трёхзвенка). В базе соответственно есть таблица с пользователями. Интересует вопрос как правильнее было бы организовать подключение пользователя в базе: на сервере заводить логин и пароль(который соответственно лежит в таблице в базе) и по нему пускать в систему или подключаться через какого-либо одного "пользователя", и под ним же работать с базой, а сервер приложений уже от имени этого пользователя выполняет все запросы к базе, селекты, хранимки и т.д? Как есть TRUE? Зараннее благодарен.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36940834
Ditry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обычно сервер приложений работает с базой через одного своего пользователя. Так проще разграничивать права на бизнес операции в системе и т.д.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36940948
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ditry,

А если при подключении к серверу приложений, ему передавать логин/пароль пользователя БД, то сложнее будет сделать разграничение например прав доступа?
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36941127
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowDitry,

А если при подключении к серверу приложений, ему передавать логин/пароль пользователя БД, то сложнее будет сделать разграничение например прав доступа?Да можно, тут проблема не в том, как передавать логин/пароль.

Тут накладываются такие фичи, используемые в серверах приложений, как пулы коннектов к БД, кеширование чтения/записи данных и т.п. Это всё сложнее использовать при персональной авторизации в БД.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36941480
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know,
наоборот,
сервер знает, что пользователь у него внешний, поэтому при коннекте он (сервер) ищет его не у себя а в ....
Код: plaintext
CREATE USER OPS$ALL_ORACLE_EXT IDENTIFIED EXTERNALLY;
http://www.all-oracle.ru/content/view/?part=1&id=78
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36941675
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowDitry,

А если при подключении к серверу приложений, ему передавать логин/пароль пользователя БД, то сложнее будет сделать разграничение например прав доступа?
клиент в 3-звенном приложении не работает с СУБД. Он работает с Сервером приложений. Дело не в сложности, а в правилах архитектуры. Вам дадут множество примеров, как обеспечивается доступ в различных СУБД, но к 3T они не имеют никакого отношения. Это иллюзия, что можно так сделать и все будет работать.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36942292
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

Как раз и интересует как сделать правильно, пользователь работает с сервером приложений, а как быть с сервером БД? Под каким пользователем к базе лезет сервер приложений? под своим? или под тем логин/пароль которого задал пользователь?
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36942365
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowiscrafm,

Как раз и интересует как сделать правильно, пользователь работает с сервером приложений, а как быть с сервером БД? Под каким пользователем к базе лезет сервер приложений? под своим? или под тем логин/пароль которого задал пользователь?
под своим. Объекты БД и объекты приложений это разные по своей сути объекты.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36942447
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowКак есть TRUE? Зараннее благодарен.
Будьте уверены, что все велосипедостроители работают с базой от имени одного пользователя. Как же true - вопрос, вообще говоря, интересный. Я бы сказал, что, например, для сайта публичной библиотеки и для корпоративной информационной системы true решения будут изрядно разными :)

Во-первых, стоит отметить, что правильным для "серьёзных систем" была бы аутентификация и на сервере приложений, и в СУБД через LDAP. Во-вторых, для "серьёзных систем" пожалуй что нет конкурентов предлагаемой Oracle схеме с proxy users. Суть этой схемы: application server коннектится к СУБД под "своими" пользователем-паролем. Далее, когда требуется, application server говорит СУБД: а теперь я побуду Васей - и после этого работает с СУБД "от имени и по поручению Васи", используя его роли, имея его права на доступ итп.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36942619
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с предыдущими ораторами - ответ зависит сильно от ситуации.
У всех схем есть свои плюсы и минусы. В общем случае, я бы сказал, что сервер приложений работает от одного пользователя. Это при условии, что Вам много чего не надо. Ну вот к примеру - вы не хотите логгировать операции на уровне БД, Вы не хотите иметь повышенной секьюрити (а ну как ломанут сервер приложений) и т.д. и т.п.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943188
shaden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот еще тогда вопрос: если сервер приложений работает с базой данной, используя одного пользователя БД, как решается вопрос лицензирования? По-идее, нужна тогда только одна лицензия на этого пользователя или я не прав и нужно лицензировать всех пользователей, которые используют сервер приложений?
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943196
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shadenПо-идее, нужна тогда только одна лицензия на этого пользователя
По чьей идее?

По идее, нужно читать условия лицензирования СУБД. Можете быть уверены, что там этот вопрос специально оговорен, равно как и вопрос выставления разработанного софта в интернет с потенциально неограниченным количеством пользователей.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943220
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarershadenПо-идее, нужна тогда только одна лицензия на этого пользователя
По чьей идее?

По идее, нужно читать условия лицензирования СУБД. Можете быть уверены, что там этот вопрос специально оговорен, равно как и вопрос выставления разработанного софта в интернет с потенциально неограниченным количеством пользователей.

Угу, если я не ошибаюсь, то с точки зрения Oracle, например, такой софт это попадание на максимальную лицензию практически. Как вы там технически заходите в БД, их мало волнует. Им интересно, сколько реально одновременных пользователей работает с БД.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943230
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HauerКак вы там технически заходите в БД, их мало волнует. Им интересно, сколько реально одновременных пользователей работает с БД.
Ну в общем-то, я их даже вполне понимаю.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943340
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerHauerКак вы там технически заходите в БД, их мало волнует. Им интересно, сколько реально одновременных пользователей работает с БД.
Ну в общем-то, я их даже вполне понимаю.

Да, конечно, это справедливо.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36943879
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Т.е как я понял должно быть две "базы" пользователей - одна на сервере, и вторая на самом сервере приложений.
авторСуть этой схемы: application server коннектится к СУБД под "своими" пользователем-паролем. Далее, когда требуется, application server говорит СУБД: а теперь я побуду Васей - и после этого работает с СУБД "от имени и по поручению Васи", используя его роли, имея его права на доступ итп.
А какой смысл серверу приложений "прыгать" от пользователя к пользователю(теперь я побуду Васей, Петей, Джорджем...). А если к серверу приложений подключаются десятки-сотни пользователей, не замучается сервер "прыгать"?
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944005
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowТ.е как я понял должно быть две "базы" пользователей - одна на сервере, и вторая на самом сервере приложений.
Я бы сказал, это на две больше, чем нужно

I dont knowА какой смысл серверу приложений "прыгать" от пользователя к пользователю(теперь я побуду Васей, Петей, Джорджем...).
А какой смысл вообще иметь разных пользователей (Васю, Петю, Джорджа)? Смысл в том, что у них разные права на операции, разные ограничения видимых данных и т. д. и т. п.

I dont knowА если к серверу приложений подключаются десятки-сотни пользователей,
Маловато будет. Десятки-сотни пользователей разумнее обслуживать клиент-сервером. Сервер приложений целесообразен для тысяч, скорее даже десятков тысяч пользователей.

I dont knowне замучается сервер "прыгать"?
Куда меньше, чем замучается в альтернативных решениях.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944201
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerДесятки-сотни пользователей разумнее обслуживать клиент-сервером. Сервер приложений целесообразен для тысяч, скорее даже десятков тысяч пользователей.

на чем основан такой вывод?
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944227
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsoftwarerДесятки-сотни пользователей разумнее обслуживать клиент-сервером. Сервер приложений целесообразен для тысяч, скорее даже десятков тысяч пользователей.

на чем основан такой вывод?

Да уж... Я вообще не понимаю, как количество пользователей влияет на такой выбор.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944229
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Ваши мысли понятны, только имхо мы уплываем от начальной мысли. Попробую расписать: сейчас проектирую структуру системы(документооборота) Количество одновременно работающих пользователей думаю максимум пару тысяч(с запасом). От двухзвенки отказался сразу по причине:
1) "Сервера" должны взаимодействовать друг с другом(под взаимодействием подразумевается делегирование одного сервера другому части информации хранящейся на нём, например списка работников, документов и т.д. Слово сервера взято в кавычки, т.к под сервером понимаю именно сервер приложений, которые как раз и будут взаимодействовать друг с другом).
2) Должно быть несколько интерфейсов к системе, например linux, win и web версия... Понимаю что можно взять какой-либо кросплатформенный тулкит и наваять по принципу клиент-сервер, но всё-же... Вот тут возникает ещё один вопрос, как клиентскому приложению взаимодействовать с "сервером"(т.е в данном случае с сервером приложений, так получается), через какой-то протокол? изобретать велосипед?(конкретно для этой системы)

Такие вот мыслишки, поэтому и спрашиваю, раз клиент будет работать с "сервером", то как же самому серверу цепляться к БД. :)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944315
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know
...
Вот тут возникает ещё один вопрос, как клиентскому приложению взаимодействовать с "сервером"(т.е в данном случае с сервером приложений, так получается), через какой-то протокол? изобретать велосипед?(конкретно для этой системы)


Ой... а зачем же велосипед-то. Я не знаю, что у Вас за платформа на уме, но везде есть какие-то решения уже готовые - хотя бы какие-нибудь типа RMI, RFC, Remoting (адепты Micrososft не пинайте, если попутал:-)), CORBA и т.д. и т.п. Выбирайте, что вашей душе угодно:-) А еще лучше, посмотреть на бест практики для конкретно Вашей платформы.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944332
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hauer,

Хм... а как?, например: клиент говорит серверу: "создай задачу", "дай мне данные", "верни мне все документы которые редактировались" и т.д В этом случае клиент отправляет серверу запрос, предположим(к примеру) так GET(DOCUMENT, 1234)... сервер из базы делает запрос select blabla where id=1234 blabla... и возвращает документ клиенту
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944398
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmна чем основан такой вывод?
На сочетании нескольких факторов. Сколько пользователей нормально/плохо тянут СУБД, сколько стоит дополнительный геморрой разработки и поддержки, когда система проявляет склонность к распределённости и "категорически неБДшному" функционалу итп. Это не вывод, это эвристика.

I dont know1) "Сервера" должны взаимодействовать друг с другом
1. Что за сервера? Какие у каждого функции, почему их обязательно несколько?
2. А зачем для взаимодействия серверов трёхзвенка?

I dont know2) Должно быть несколько интерфейсов к системе, например linux, win и web версия...
Я понимаю, чем трёхзвенка может осложнить решение этой задачи. А чем она её упростит? Бизнес-логика уже не помещается в клиенте?

I dont knowПонимаю что можно взять какой-либо кросплатформенный тулкит и наваять по принципу клиент-сервер, но всё-же...
Вы связываете тёплое с мягким, имхо. Вариабельность клиентской платформы никак не связана с количеством звеньев сверх одного. Кроссплатформенные тулкиты тут в общем-то не при чём, хотя для таких требований естественный выбор - взять яву и нарисовать одно приложение с двумя-трёмя "мордами".

I dont knowВот тут возникает ещё один вопрос, как клиентскому приложению взаимодействовать с "сервером"
Ну, пока что непонятно, зачем вообще нужен "сервер". Клиентское приложение вполне может взаимодействовать с СУБД по стандартному, отработанному и кроссплатформенному протоколу этой СУБД. Если же таки делать трёхзвенку, то вариантов фактически три:

Использовать единообразную технологию для всех случаев (ту же яву) и соответственно любой реализованный в ней протокол

Использовать простой стандартный протокол, реализованный для всего (скажем, xml-rpc), сделав к нему нужную высокоуровневую оболочку

Использовать что-нибудь экзотическое-недоделанное типа CORBA, приплясывая с кучей бубнов.

I dont knowТакие вот мыслишки, поэтому и спрашиваю, раз клиент будет работать с "сервером", то как же самому серверу цепляться к БД. :)
Это совершенно отдельный вопрос, ответ на который в общем случае уже дан, а в необщем не хватает информации.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944616
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

автор1. Что за сервера? Какие у каждого функции, почему их обязательно несколько?
2. А зачем для взаимодействия серверов трёхзвенка?

Попробую обрисовать ситуацию, надеюсь ход мыслей будет понятен, скорректируйте, если что не так:

Предположим что пользователь работает с моей системой(также предположим, что система клиент-серверная, а не трёх-звенка как я планирую). Имеется несколько учреждений, которые работают с этой системой, причём у каждого учреждения своя база(своя база для того, чтобы не лепить всё в одну, об этом чуть дальше). Теперь предположим что пользователь(А) хочет отправить задачу другому пользователю(Б), который находится в другой базе(соответственно в базе пользователя(А), нет пользователя(Б) и наоборот). А задачу нужно передать, таким образом предполагается наличие какой-либо сторонней программки, которая берёт сообщение из одной базы и передаёт её в другую.

Я решил подойти так, что пользователи работают не с БД напрямую, а с некой прослойкой(сервером системы, назовём его для условности СДО, вот как раз и получается трёхзвенка. прим.). СДО может быть соеденён с другими СДО, территориально находящимися в разных частях города/страны, и делегировать ему скажем часть своих справочников, т.е Пользователь А, работая и открывая справочник пользователей видит не только пользователей своего сервера, но и пользователей, которые этому серверу делегировали другие СДО(делегирование предполагается задавать в настройках, кто кого видит, кто что может делать и т.д). При этом предполагается что система будет кросс-платформенной.

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

авторБизнес-логика уже не помещается в клиенте?
Предполагается наоборот, бизнес логика будет храниться на сервере БД, а СДО её использовать и предоставлять пользователям(и делегировать другим СДО, например головной офис запрашивает у пподразделения отчёт, сам отчёт-его select находится на сервере подразделения, а СДО головного офиса делегирована возможность его запускать, в головном просто нажимают кнопочку "Отчёт", СДО головного даёт запрос СДО подразделения - "Дай мне отчёт", СДО подразделения даёт запрос своей БД, та результат выборки, СДО подразделения эти результаты отправляет на СДО головного... там глядят... всё радуются... выдохнули)

Попробовал объяснить как смог(у меня это обычно плохо получается). :)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944678
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarershadenПо-идее, нужна тогда только одна лицензия на этого пользователя
По чьей идее?

По идее, нужно читать условия лицензирования СУБД. Можете быть уверены, что там этот вопрос специально оговорен, равно как и вопрос выставления разработанного софта в интернет с потенциально неограниченным количеством пользователей.

Да, с лицензированием не все так просто. И ситуация меняется, некоторые вендоры гайки могут закрутить.

Видел в условиях лицензирования MS SQL термин "Мультиплексирование" - как раз для случаев "Множество коннектов к серверу приложений -> Один коннект к СУБД". MS утверждает, что надо платить за всех реально используемых.

Детально не разбирался, потому как начиная с какого-то порога выгодней стало брать лицензию не на подключения, а на сервер/процессор.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944727
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowПопробую обрисовать ситуацию, надеюсь ход мыслей будет понятен, скорректируйте, если что не так
Ход мыслей понятен и ожидаем, но спорно (чтобы не говорить "не так") практически всё.

В первую очередь, стоит всерьёз оценить, нужно ли уходить от одной базы. Произнесены только два слова, которые это оправдывают - территориальная распределённость. Тут надо оценивать, какие предполагаются каналы, сколько и как подключённых пользователей, каковы будут показатели по траффику и скорости работы. Если можно нормально остаться на одной базе - имеет смысл в N^2 раз сократить себе геморрой.

Далее, для связи нескольких баз не нужна никакая "сторонняя программа". Для этого нужна либо настроенная репликация, давно реализованная для всех СУБД, либо доступ к удалённым базам - не знаю, везде ли он реализован, но скорее всего именно так.

Наконец, даже предполагая, что нужна сторонняя программа, совершенно не обязательно писать эту стороннюю программу в виде большого ненужного промежуточного сервера. У Вас, собственно, не прозвучало задачи, которую он мог бы с блеском решить, прозвучало "а хочется написать вот это, вот это и вообще много крутого", но совершенно непонятно, нафига реализовывать велосипеды вместо давным-давно существующего решения тех же задач в СУБД.

По поводу гибкости: да, конечно, разделение баз позволяет гибко тасовать их между физическими железяками и географическими расположениями. Но нужно всерьёз оценить, стоит ли такая гибкость дополнительных проблем. И стоит помнить, что хорошее железо чаще всего стоит значительно дешевле, нежели дополнительный труд программистов и администраторов.

I dont knowавторБизнес-логика уже не помещается в клиенте?
Предполагается наоборот, бизнес логика будет храниться на сервере БД,
Это была шутка с намёком. При реализации логики в клиенте написать несколько "морд" клиента действительно тяжело и возникает "естественное" желание вынести её из клиента в третье звено. При реализации же логики в СУБД несколько клиентов сводятся к нескольким "мордам" одной и той же логики, и реализация в этом случае промежуточного звена - лишние трудозатраты.

I dont knowнапример головной офис запрашивает у пподразделения отчёт, сам отчёт-его select находится на сервере подразделения, а СДО головного офиса делегирована возможность его запускать, в головном просто нажимают кнопочку "Отчёт", СДО головного даёт запрос СДО подразделения - "Дай мне отчёт", СДО подразделения даёт запрос своей БД, та результат выборки, СДО подразделения эти результаты отправляет на СДО головного... там глядят... всё радуются... выдохнули)
Угу, о чём и речь. Программист сидит и пишет для СДО реализацию того, что делается в СУБД примерно за 30 секунд. А когда (что обычно) головной офис захочет увидеть данные всех подразделений в едином отчёте - обрадованный программист вообще на месяц уйдёт реализовывать в СДО механизм слияния.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944925
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowHauer,

Хм... а как?, например: клиент говорит серверу: "создай задачу", "дай мне данные", "верни мне все документы которые редактировались" и т.д В этом случае клиент отправляет серверу запрос, предположим(к примеру) так GET(DOCUMENT, 1234)... сервер из базы делает запрос select blabla where id=1234 blabla... и возвращает документ клиенту

Ну да, именно, так. Если Вам интересны подробности, Вы обрисуйте платформу, а я Вам скажу, как:-)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944961
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Тут имхо основным плюсом такого подхода как раз и является гибкость. Ещё есть такая штука как например различие бизнес процессов и некоторое различие структуры сущностей. Скажем есть организация А и Б, в организации А документооборот поставлен так, а в организации Б он поставлен по другому, но тем не менее внутри этой организации это документооборот(У нас кстати именно такая ситуация :) ). Конечно, теоретически, можно все бизнес процессы привести к некому общему процессу, единому для всех, но иногда это не возможно или не имеет смысла. Документ попадает в организацию и выходит из неё, как он там крутится, это дело этой организации. Есть также различие карточек документов, формально это одна и та же карточка документа(назовём её РКК), только в одной конторе в РКК 5 полей, а в другой 20, часть из них конечно общая, как например номер документа, дата регистрации, источник и т.д а оставшаяся часть специфична для этой организации.

Поможет ли тут репликация? Если нет нужды держать синхронизированный набор данных, данные у каждого свои.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944979
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know,

А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36944994
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowsoftwarer,

Тут имхо основным плюсом такого подхода как раз и является гибкость. Ещё есть такая штука как например различие бизнес процессов и некоторое различие структуры сущностей. Скажем есть организация А и Б, в организации А документооборот поставлен так, а в организации Б он поставлен по другому, но тем не менее внутри этой организации это документооборот(У нас кстати именно такая ситуация :) ). Конечно, теоретически, можно все бизнес процессы привести к некому общему процессу, единому для всех, но иногда это не возможно или не имеет смысла. Документ попадает в организацию и выходит из неё, как он там крутится, это дело этой организации. Есть также различие карточек документов, формально это одна и та же карточка документа(назовём её РКК), только в одной конторе в РКК 5 полей, а в другой 20, часть из них конечно общая, как например номер документа, дата регистрации, источник и т.д а оставшаяся часть специфична для этой организации.

Поможет ли тут репликация? Если нет нужды держать синхронизированный набор данных, данные у каждого свои.

Ну вот опять... Вот теперь я Вам могу предложить использовать какую-нибудь серьёзную интеграционную программульку типа ESB. Ну вот не знаю еще что тут писать - BizTalk, MQ, SAP XI/PI, да фиг знает еще что.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945000
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know,

Во: ESB
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945010
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hauer,

авторВы обрисуйте платформу
Платформы пока как таковой нет, есть попытка реализации собственной системы(на данный момент проектирую систему, взвешиваю все за и против, восполняю белые пятна, если чего-то не знаю), система планируется кросс-платформенной. Вообще мне нравится подход работы как например с аськой, есть клиент(и протокол), клиентов много всяких, под разные ОС, выбрал любой, подключился к серверу и работай, небольшой вес программы и небольшой трафик. Клиент работает со своим сервером, а сервер данные хранит в базе. Такая идея... вот:)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945085
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know,

Ну это правильно, надо осмотреться сначала всегда. А ссылочку гляньте - по Вашему описанию, это Ваша тема.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945104
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HauerI dont know,

Во: ESB

Таких системок, кстати, кучка бесплатных есть - на wiki далеко не полный список.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945109
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HauerI dont know,

А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы.

Просто изначально я спрашивал и хотел узнать про конкретный момент работы системы как таковой, т.е там не имело значение что есть и как, в дальнейшем, тема стала раскручиваться, поэтому стараюсь расписать для чего это. И так:
Планируется разработка системы эл.документооборота. На данном этапе оцениваются возможные архитектурные решения, взвешиваются все за и против для того чтобы придти к подходящей архитектуре системы. Я предполагаю использование трёхзвенной архитектуры, как наиболее гибкой и расширяемой. Единственный момент насколько я понял это сложность реализации. Что касается имеющихся систем, то одну из существующих уже используем, с добавлением кучки наших костылей. Остальные в чём то не подходят. Поэтому прошу сильно не пинаться :)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945152
Hauer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowHauerI dont know,

А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы.

Просто изначально я спрашивал и хотел узнать про конкретный момент работы системы как таковой, т.е там не имело значение что есть и как, в дальнейшем, тема стала раскручиваться, поэтому стараюсь расписать для чего это. И так:
Планируется разработка системы эл.документооборота. На данном этапе оцениваются возможные архитектурные решения, взвешиваются все за и против для того чтобы придти к подходящей архитектуре системы. Я предполагаю использование трёхзвенной архитектуры, как наиболее гибкой и расширяемой. Единственный момент насколько я понял это сложность реализации. Что касается имеющихся систем, то одну из существующих уже используем, с добавлением кучки наших костылей. Остальные в чём то не подходят. Поэтому прошу сильно не пинаться :)

Да никто и не пинается. Я просто призываю Вас не относиться слишком серьёзно к здешним мнениям. А то вот какой-нибудь школьник старших классов типа меня Вам тут понапишет чего-нибудь, а Вы загрузитесь:-)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945215
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowТут имхо основным плюсом такого подхода как раз и является гибкость.
Безусловно. И ключевой вопрос, в котором программисты часто принимают плохое решение - оценка стоимости и нужности гибкости, правильное размещение границы между оправданной и излишней гибкостью. Прошу прощения за не совсем деликатный пример, но, выбирая себе автомобиль за свои деньги, Вы будете долго думать, оценивать варианты и наконец, что-то решите. И можно быть уверенным, что Вы не потребуете от автомобиля гибкости в варианте "мне может потребоваться отвезти на дачу пять-десять кубов песка, может потребоваться проскальзывать между машинами в пробке и может потребоваться встречать деловых партнёров на представительском классе". А вот проектируя софт за чужие деньги, к сожалению, подобное желание гибкости встречается. Потому как закладывать такую "гибкость" легче и интереснее, нежели продумывать, что на самом деле может понадобиться.

I dont knowЕщё есть такая штука как например различие бизнес процессов
Есть. И оно никак не влечёт за собой необходимость разных баз. В моей текущей задаче так вообще, для некоторых значимых моментов каждый год свои настройки, потому как внутри организации всё меняется.

I dont knowи некоторое различие структуры сущностей.
А такой штуки нет. Вернее, опыт работы с ней эффективно учит тому, что допускать её - себе дороже.

I dont knowКонечно, теоретически, можно все бизнес процессы привести к некому общему процессу,
И теоретически нельзя, и практически нельзя. Эту сказку начальство рассказывало мне ещё в 98-м году, и я уже тогда в неё не верил. Как вскоре оказалось - правильно не верил.

I dont knowЕсть также различие карточек документов, формально это одна и та же карточка документа(назовём её РКК), только в одной конторе в РКК 5 полей, а в другой 20,
Видимы, нужны и/или доступны 5 полей, а в другой - 20. Это совершенно стандартная задача, вскоре Вы обнаружите, что в одной и той же организации одному пользователю из этих 20 полей нужно показать 8, другому - 10, третьему - оставшиеся 6. Речь, конечно, идёт о полях, значимых с точки зрения бизнес-логики. Всякие custom memo - отдельный несложный вопрос.

I dont knowПоможет ли тут репликация? Если нет нужды держать синхронизированный набор данных, данные у каждого свои.
Репликация совершенно не означает необходимости одинаковой структуры. А вот попытка разрабатывать более-менее работающий софт за разумные деньги - означает. Я уже готов с интересом понаблюдать, как в Вашей схеме сервера будут передавать друг другу "отчёты" и особенно сливать данные из них при различии структур данных. И мне очень интересно, пытались ли Вы хотя бы оценить трудоёмкость тестирования вашего софта на 20 разных структурах БД. Также любопытно, как часто Вы проводили согласованное изменение (одинаковых) структур БД на десятке-другом серверов, сталкивались ли с допущенными ранее мелкими различиями и их влиянием на выполнение патчей, пробовали ли писать патчи так, чтобы они отработали на двадцати разных структурах.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945824
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
автор"мне может потребоваться отвезти на дачу пять-десять кубов песка, может потребоваться проскальзывать между машинами в пробке и может потребоваться встречать деловых партнёров на представительском классе"
Будете смеяться, но от текущей системы примерно такое и требовалось, только это требование появилось уже после того как её купили. Вот и начали мы воять кузов для песка, и сиденья кожей обтягивать и ужимать машинку, чтоб в пробки пролезала Изначальный вариант системы стал сильно кастомизирован под бизнесс-процессы, а также к нему были прикручены различные костыли, и работает это местами не слишком стабильно, но всё же... и фишка вся в том, что если у вас изначально были жигули, сколько вы салон кожей и деревом не отделывайте, у вас мерседеса всё равно не получится, может изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему...

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

Немного утрированно, c чем можно сравнить вариант с одной базой и вариант с несколькими: в первом случае это как коммунальная квартира, вроде у каждого свой уголок, но в целом бардак... Во втором же случае это жилой дом с квартирами, у каждого своя отдельная квартира и там он крутится как хочет не мешая другим. имхо.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36945890
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont know
может изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему...

проще кому? Тому кто придёт после тебя?
Пойдя в магазин за автомобилем решил присмотреть грузовик?
Чисто женская логика.
Сложнее сделать простоту, а не наоборот :)
"Сложнее всего в мире достигнуть простоты - это крайняя граница опыта и последнее усилие гения".
George Sand.
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36946594
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowБудете смеяться, но от текущей системы примерно такое и требовалось,
Да нет, не буду. Ибо баян.

I dont knowможет изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему...
Не исключено, что это правильное решение. Но не менее вероятно, что, сидя с мерседесом, Вы обнаружите, что нужно было закладывать БелАЗ, вот я к чему. Чтобы было проще - и сейчас, и потом, и всегда - нужно хорошо думать и выбирать решение, соответствующее сегодняшним и завтрашним потребностям задачи. От Вас пока не прозвучало ничего, кроме неопределённой "гибкости", что стимулировало бы выбрать трёхзвенку.

Что вам нужно на самом деле? Да не знаю, и никто здесь не знает. Это нужно глубоко врубаться в задачу и много думать.

I dont knowНу почему нельзя? Наверно это зависит от самих бизнес-процессов,
Да потому, что это зависит от клиентов. Если ограничиться госструктурами, это реально - их бизнес-процессы зарегламентированы законами и инструкциями. А коммерческий клиент на фразу "у нас заложен вот такой бизнес-процесс, вы теперь будете так работать" говорит "нет, мы будем работать как я сказал, а вот купим ли вашу систему - зависит от того, поддерживает ли она наш бизнес-процесс". В итоге на свет появляются очень весёлые внедренческие решения, например, я на всю жизнь запомню одно внедрение OeBS, в котором то, что в реальности было химическим заводом (общая схема: с одного конца в здание входит труба газопровода, с другого - выходит, посередине оборудование, перерабатывающее этот газ) представлялось в системе как комбинация из трёх складов с прописанными бизнес-правилами перекладывания ТМЦ со склада на склад.

I dont knowавтори особенно сливать данные из них при различии структур данных
Структуры баз то как раз одинаковы... отличие может быть например в реквизитах справочника или в самих справочниках, в одной базе есть такой справочник, а в другой нет,
:)

I dont knowно в тоже время в нашем случае такие проблемы возникали в основном из-за отсутствия каких-либо автоматизированных средств для решения наших задач. ... и к тому-же в некоторые системы надо перенести эти изменения с учётом "местной" специфики ...
Пока что не изобрели искусственного интеллекта, способного модифицировать патч с учётом "местной" специфики. Автоматизация - дело хорошее, но в условиях добровольного зоопарка она не спасает. Спасает исключительно запинывание зоопарка в жёсткие рамки, когда "местная специфика" учитывается в предусмотренных для того местах, а всё остальное - общее.

I dont knowДумаю при наличии скажем хорошей среды администрирования проблем будет гораздо меньше.
(пожимая плечами) Почему Вы не взяли эту хорошую среду и не решили возникавшие проблемы? Или не написали свою хорошую?

Нет, я верю, что к тому были объективные причины. Вот только странно думать, что теперь вдруг "хорошая" откуда-то возьмётся :)

I dont knowНемного утрированно, c чем можно сравнить вариант с одной базой и вариант с несколькими: в первом случае это как коммунальная квартира, вроде у каждого свой уголок, но в целом бардак... Во втором же случае это жилой дом с квартирами, у каждого своя отдельная квартира и там он крутится как хочет не мешая другим. имхо.
В этой аналогии первый вариант стоит сравнить скорее с казармой: там могут жить десантники, танкисты и даже те и другие сразу, но любой офицер сходу разберётся, что к чему. Аналогию с жилым домом можно оставить, она хорошо иллюстрирует проблемы патчей: поставленная соседями железная дверь перекрывает доступ к общеподъездному автомату, в результате чего все сидят без света, а прочистка вентиляционной шахты брошенной туда гирей пробивает соседский холодильник (то и другое - реальные случаи).
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36946878
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Я уже почему то начинаю склоняться в сторону клиент-сервера... может быть это действительно более оправдано... В этом случае обобщающий вопрос: Несколько контор в одной базе, это вообще по фен-шую? :)
...
Рейтинг: 0 / 0
Подключение пользователя к БД... Как есть правильно?
    #36946964
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knowВ этом случае обобщающий вопрос: Несколько контор в одной базе, это вообще по фен-шую? :)
(пожимая плечами) А несколько подразделений одной конторы в одной базе - это вообще по фен-шую? А несколько сотрудников одного подразделения?

Cугубо имхо, данные, которые могут быть востребованы в одном запросе, заведомо феншуйно могут быть размещены в одной базе. Даже если заведомо не могут - такое размещение таки имеет некоторые плюсы. Тот же Oracle в своё время продвигал концепцию Virtual Private Database, суть которой в том, что в сервисе а-ля, например, mywordpress.com, создавать свою базу для каждого пользователя как-то глупо; вместо этого все работают с физически одной БД, но права пользователей выставлены так, что каждый видит только свои данные и общие справочники.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Подключение пользователя к БД... Как есть правильно?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]