|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowПопробую обрисовать ситуацию, надеюсь ход мыслей будет понятен, скорректируйте, если что не так Ход мыслей понятен и ожидаем, но спорно (чтобы не говорить "не так") практически всё. В первую очередь, стоит всерьёз оценить, нужно ли уходить от одной базы. Произнесены только два слова, которые это оправдывают - территориальная распределённость. Тут надо оценивать, какие предполагаются каналы, сколько и как подключённых пользователей, каковы будут показатели по траффику и скорости работы. Если можно нормально остаться на одной базе - имеет смысл в N^2 раз сократить себе геморрой. Далее, для связи нескольких баз не нужна никакая "сторонняя программа". Для этого нужна либо настроенная репликация, давно реализованная для всех СУБД, либо доступ к удалённым базам - не знаю, везде ли он реализован, но скорее всего именно так. Наконец, даже предполагая, что нужна сторонняя программа, совершенно не обязательно писать эту стороннюю программу в виде большого ненужного промежуточного сервера. У Вас, собственно, не прозвучало задачи, которую он мог бы с блеском решить, прозвучало "а хочется написать вот это, вот это и вообще много крутого", но совершенно непонятно, нафига реализовывать велосипеды вместо давным-давно существующего решения тех же задач в СУБД. По поводу гибкости: да, конечно, разделение баз позволяет гибко тасовать их между физическими железяками и географическими расположениями. Но нужно всерьёз оценить, стоит ли такая гибкость дополнительных проблем. И стоит помнить, что хорошее железо чаще всего стоит значительно дешевле, нежели дополнительный труд программистов и администраторов. I dont knowавторБизнес-логика уже не помещается в клиенте? Предполагается наоборот, бизнес логика будет храниться на сервере БД, Это была шутка с намёком. При реализации логики в клиенте написать несколько "морд" клиента действительно тяжело и возникает "естественное" желание вынести её из клиента в третье звено. При реализации же логики в СУБД несколько клиентов сводятся к нескольким "мордам" одной и той же логики, и реализация в этом случае промежуточного звена - лишние трудозатраты. I dont knowнапример головной офис запрашивает у пподразделения отчёт, сам отчёт-его select находится на сервере подразделения, а СДО головного офиса делегирована возможность его запускать, в головном просто нажимают кнопочку "Отчёт", СДО головного даёт запрос СДО подразделения - "Дай мне отчёт", СДО подразделения даёт запрос своей БД, та результат выборки, СДО подразделения эти результаты отправляет на СДО головного... там глядят... всё радуются... выдохнули) Угу, о чём и речь. Программист сидит и пишет для СДО реализацию того, что делается в СУБД примерно за 30 секунд. А когда (что обычно) головной офис захочет увидеть данные всех подразделений в едином отчёте - обрадованный программист вообще на месяц уйдёт реализовывать в СДО механизм слияния. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 13:27 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowHauer, Хм... а как?, например: клиент говорит серверу: "создай задачу", "дай мне данные", "верни мне все документы которые редактировались" и т.д В этом случае клиент отправляет серверу запрос, предположим(к примеру) так GET(DOCUMENT, 1234)... сервер из базы делает запрос select blabla where id=1234 blabla... и возвращает документ клиенту Ну да, именно, так. Если Вам интересны подробности, Вы обрисуйте платформу, а я Вам скажу, как:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:26 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
softwarer, Тут имхо основным плюсом такого подхода как раз и является гибкость. Ещё есть такая штука как например различие бизнес процессов и некоторое различие структуры сущностей. Скажем есть организация А и Б, в организации А документооборот поставлен так, а в организации Б он поставлен по другому, но тем не менее внутри этой организации это документооборот(У нас кстати именно такая ситуация :) ). Конечно, теоретически, можно все бизнес процессы привести к некому общему процессу, единому для всех, но иногда это не возможно или не имеет смысла. Документ попадает в организацию и выходит из неё, как он там крутится, это дело этой организации. Есть также различие карточек документов, формально это одна и та же карточка документа(назовём её РКК), только в одной конторе в РКК 5 полей, а в другой 20, часть из них конечно общая, как например номер документа, дата регистрации, источник и т.д а оставшаяся часть специфична для этой организации. Поможет ли тут репликация? Если нет нужды держать синхронизированный набор данных, данные у каждого свои. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:38 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont know, А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:43 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowsoftwarer, Тут имхо основным плюсом такого подхода как раз и является гибкость. Ещё есть такая штука как например различие бизнес процессов и некоторое различие структуры сущностей. Скажем есть организация А и Б, в организации А документооборот поставлен так, а в организации Б он поставлен по другому, но тем не менее внутри этой организации это документооборот(У нас кстати именно такая ситуация :) ). Конечно, теоретически, можно все бизнес процессы привести к некому общему процессу, единому для всех, но иногда это не возможно или не имеет смысла. Документ попадает в организацию и выходит из неё, как он там крутится, это дело этой организации. Есть также различие карточек документов, формально это одна и та же карточка документа(назовём её РКК), только в одной конторе в РКК 5 полей, а в другой 20, часть из них конечно общая, как например номер документа, дата регистрации, источник и т.д а оставшаяся часть специфична для этой организации. Поможет ли тут репликация? Если нет нужды держать синхронизированный набор данных, данные у каждого свои. Ну вот опять... Вот теперь я Вам могу предложить использовать какую-нибудь серьёзную интеграционную программульку типа ESB. Ну вот не знаю еще что тут писать - BizTalk, MQ, SAP XI/PI, да фиг знает еще что. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:46 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:47 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
Hauer, авторВы обрисуйте платформу Платформы пока как таковой нет, есть попытка реализации собственной системы(на данный момент проектирую систему, взвешиваю все за и против, восполняю белые пятна, если чего-то не знаю), система планируется кросс-платформенной. Вообще мне нравится подход работы как например с аськой, есть клиент(и протокол), клиентов много всяких, под разные ОС, выбрал любой, подключился к серверу и работай, небольшой вес программы и небольшой трафик. Клиент работает со своим сервером, а сервер данные хранит в базе. Такая идея... вот:) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 14:50 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont know, Ну это правильно, надо осмотреться сначала всегда. А ссылочку гляньте - по Вашему описанию, это Ваша тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 15:09 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
HauerI dont know, Во: ESB Таких системок, кстати, кучка бесплатных есть - на wiki далеко не полный список. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 15:14 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
HauerI dont know, А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы. Просто изначально я спрашивал и хотел узнать про конкретный момент работы системы как таковой, т.е там не имело значение что есть и как, в дальнейшем, тема стала раскручиваться, поэтому стараюсь расписать для чего это. И так: Планируется разработка системы эл.документооборота. На данном этапе оцениваются возможные архитектурные решения, взвешиваются все за и против для того чтобы придти к подходящей архитектуре системы. Я предполагаю использование трёхзвенной архитектуры, как наиболее гибкой и расширяемой. Единственный момент насколько я понял это сложность реализации. Что касается имеющихся систем, то одну из существующих уже используем, с добавлением кучки наших костылей. Остальные в чём то не подходят. Поэтому прошу сильно не пинаться :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 15:15 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowHauerI dont know, А вообще, Вы жесткие вопросы тут задаете. Именно, Вы планируете создавать серьёзную (распределенную) систему (так кажется, по крайней мере). И при этом впрыскиваете какие-то маленькие дозы информации и ожидаете дельных комментариев. Боюсь, так не пройдет. Вот я что-то тут написал, softwarer... Да мы же толком не понимаем, о чем речь. Ну не решаются такие вопросы на основании нескольких десятков строчек в форуме. И, по большому счету, скорее всего грош цена здешним комментам в плане успеха Вашей системы. Просто изначально я спрашивал и хотел узнать про конкретный момент работы системы как таковой, т.е там не имело значение что есть и как, в дальнейшем, тема стала раскручиваться, поэтому стараюсь расписать для чего это. И так: Планируется разработка системы эл.документооборота. На данном этапе оцениваются возможные архитектурные решения, взвешиваются все за и против для того чтобы придти к подходящей архитектуре системы. Я предполагаю использование трёхзвенной архитектуры, как наиболее гибкой и расширяемой. Единственный момент насколько я понял это сложность реализации. Что касается имеющихся систем, то одну из существующих уже используем, с добавлением кучки наших костылей. Остальные в чём то не подходят. Поэтому прошу сильно не пинаться :) Да никто и не пинается. Я просто призываю Вас не относиться слишком серьёзно к здешним мнениям. А то вот какой-нибудь школьник старших классов типа меня Вам тут понапишет чего-нибудь, а Вы загрузитесь:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 15:28 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
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 разных структурах БД. Также любопытно, как часто Вы проводили согласованное изменение (одинаковых) структур БД на десятке-другом серверов, сталкивались ли с допущенными ранее мелкими различиями и их влиянием на выполнение патчей, пробовали ли писать патчи так, чтобы они отработали на двадцати разных структурах. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 15:47 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
softwarer, автор"мне может потребоваться отвезти на дачу пять-десять кубов песка, может потребоваться проскальзывать между машинами в пробке и может потребоваться встречать деловых партнёров на представительском классе" Будете смеяться, но от текущей системы примерно такое и требовалось, только это требование появилось уже после того как её купили. Вот и начали мы воять кузов для песка, и сиденья кожей обтягивать и ужимать машинку, чтоб в пробки пролезала Изначальный вариант системы стал сильно кастомизирован под бизнесс-процессы, а также к нему были прикручены различные костыли, и работает это местами не слишком стабильно, но всё же... и фишка вся в том, что если у вас изначально были жигули, сколько вы салон кожей и деревом не отделывайте, у вас мерседеса всё равно не получится, может изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему... авторИ теоретически нельзя, и практически нельзя. Эту сказку начальство рассказывало мне ещё в 98-м году, и я уже тогда в неё не верил. Как вскоре оказалось - правильно не верил. Ну почему нельзя? Наверно это зависит от самих бизнес-процессов, если они сами по себе различны по своей сути, то конечно нельзя, а если процессы в целом идентичны, отличаются лишь деталями(например у кого-то регистрацию документов ведёт "баба Нюра", а потом отдаёт на рассмотрение, а у кого-то помощник директора да ещё и расписывает... так давай те сделаем одинаково, чтобы везде например регистрировал один, а рассматривал другой... видал такие примеры) автори особенно сливать данные из них при различии структур данных Структуры баз то как раз одинаковы... отличие может быть например в реквизитах справочника или в самих справочниках, в одной базе есть такой справочник, а в другой нет, отличие будет в пользователях, в этой базе один пользователи, в этой другие, маршруты обработки документов, здесь одни, там другие и т.д авторТакже любопытно, как часто Вы проводили согласованное изменение (одинаковых) структур БД на десятке-другом серверов, сталкивались ли с допущенными ранее мелкими различиями и их влиянием на выполнение патчей, пробовали ли писать патчи так, чтобы они отработали на двадцати разных структурах. Пробовал. Тут с вами соглашусь, это проблематично, я бы сказал даже сложно, поддерживать в актуальном состоянии все базы, но в тоже время в нашем случае такие проблемы возникали в основном из-за отсутствия каких-либо автоматизированных средств для решения наших задач. Например для системы(базы) на которой работает одна организация доработали какой-либо модуль,маршрут,функцию... теперь возникает задача расклонировать это всё на все системы и к тому-же в некоторые системы надо перенести эти изменения с учётом "местной" специфики(бизнес-процессов). Думаю при наличии скажем хорошей среды администрирования проблем будет гораздо меньше. Немного утрированно, c чем можно сравнить вариант с одной базой и вариант с несколькими: в первом случае это как коммунальная квартира, вроде у каждого свой уголок, но в целом бардак... Во втором же случае это жилой дом с квартирами, у каждого своя отдельная квартира и там он крутится как хочет не мешая другим. имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 20:43 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont know может изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему... проще кому? Тому кто придёт после тебя? Пойдя в магазин за автомобилем решил присмотреть грузовик? Чисто женская логика. Сложнее сделать простоту, а не наоборот :) "Сложнее всего в мире достигнуть простоты - это крайняя граница опыта и последнее усилие гения". George Sand. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 21:37 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowБудете смеяться, но от текущей системы примерно такое и требовалось, Да нет, не буду. Ибо баян. I dont knowможет изначально стоит заложить мерседес, чтобы потом проще было? Вот я к чему... Не исключено, что это правильное решение. Но не менее вероятно, что, сидя с мерседесом, Вы обнаружите, что нужно было закладывать БелАЗ, вот я к чему. Чтобы было проще - и сейчас, и потом, и всегда - нужно хорошо думать и выбирать решение, соответствующее сегодняшним и завтрашним потребностям задачи. От Вас пока не прозвучало ничего, кроме неопределённой "гибкости", что стимулировало бы выбрать трёхзвенку. Что вам нужно на самом деле? Да не знаю, и никто здесь не знает. Это нужно глубоко врубаться в задачу и много думать. I dont knowНу почему нельзя? Наверно это зависит от самих бизнес-процессов, Да потому, что это зависит от клиентов. Если ограничиться госструктурами, это реально - их бизнес-процессы зарегламентированы законами и инструкциями. А коммерческий клиент на фразу "у нас заложен вот такой бизнес-процесс, вы теперь будете так работать" говорит "нет, мы будем работать как я сказал, а вот купим ли вашу систему - зависит от того, поддерживает ли она наш бизнес-процесс". В итоге на свет появляются очень весёлые внедренческие решения, например, я на всю жизнь запомню одно внедрение OeBS, в котором то, что в реальности было химическим заводом (общая схема: с одного конца в здание входит труба газопровода, с другого - выходит, посередине оборудование, перерабатывающее этот газ) представлялось в системе как комбинация из трёх складов с прописанными бизнес-правилами перекладывания ТМЦ со склада на склад. I dont knowавтори особенно сливать данные из них при различии структур данных Структуры баз то как раз одинаковы... отличие может быть например в реквизитах справочника или в самих справочниках, в одной базе есть такой справочник, а в другой нет, :) I dont knowно в тоже время в нашем случае такие проблемы возникали в основном из-за отсутствия каких-либо автоматизированных средств для решения наших задач. ... и к тому-же в некоторые системы надо перенести эти изменения с учётом "местной" специфики ... Пока что не изобрели искусственного интеллекта, способного модифицировать патч с учётом "местной" специфики. Автоматизация - дело хорошее, но в условиях добровольного зоопарка она не спасает. Спасает исключительно запинывание зоопарка в жёсткие рамки, когда "местная специфика" учитывается в предусмотренных для того местах, а всё остальное - общее. I dont knowДумаю при наличии скажем хорошей среды администрирования проблем будет гораздо меньше. (пожимая плечами) Почему Вы не взяли эту хорошую среду и не решили возникавшие проблемы? Или не написали свою хорошую? Нет, я верю, что к тому были объективные причины. Вот только странно думать, что теперь вдруг "хорошая" откуда-то возьмётся :) I dont knowНемного утрированно, c чем можно сравнить вариант с одной базой и вариант с несколькими: в первом случае это как коммунальная квартира, вроде у каждого свой уголок, но в целом бардак... Во втором же случае это жилой дом с квартирами, у каждого своя отдельная квартира и там он крутится как хочет не мешая другим. имхо. В этой аналогии первый вариант стоит сравнить скорее с казармой: там могут жить десантники, танкисты и даже те и другие сразу, но любой офицер сходу разберётся, что к чему. Аналогию с жилым домом можно оставить, она хорошо иллюстрирует проблемы патчей: поставленная соседями железная дверь перекрывает доступ к общеподъездному автомату, в результате чего все сидят без света, а прочистка вентиляционной шахты брошенной туда гирей пробивает соседский холодильник (то и другое - реальные случаи). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 11:12 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
softwarer, Я уже почему то начинаю склоняться в сторону клиент-сервера... может быть это действительно более оправдано... В этом случае обобщающий вопрос: Несколько контор в одной базе, это вообще по фен-шую? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 12:18 |
|
Подключение пользователя к БД... Как есть правильно?
|
|||
---|---|---|---|
#18+
I dont knowВ этом случае обобщающий вопрос: Несколько контор в одной базе, это вообще по фен-шую? :) (пожимая плечами) А несколько подразделений одной конторы в одной базе - это вообще по фен-шую? А несколько сотрудников одного подразделения? Cугубо имхо, данные, которые могут быть востребованы в одном запросе, заведомо феншуйно могут быть размещены в одной базе. Даже если заведомо не могут - такое размещение таки имеет некоторые плюсы. Тот же Oracle в своё время продвигал концепцию Virtual Private Database, суть которой в том, что в сервисе а-ля, например, mywordpress.com, создавать свою базу для каждого пользователя как-то глупо; вместо этого все работают с физически одной БД, но права пользователей выставлены так, что каждый видит только свои данные и общие справочники. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 12:38 |
|
|
start [/forum/topic.php?fid=33&gotonew=1&tid=1548173]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 305ms |
total: | 452ms |
0 / 0 |