|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Здравствуйте. Сейчас нами разрабатывается некая система на .Net платформе, состоящая из отдельных модулей. Каждый со своей базой. Все базы - скул 2008. Возникла очевидная потребность по синхронизации каких-то общих данных между модулями. Вопрос: как это сделать ? Мои мысли: раз базы разнородные и пересекаются только по некоторому набору данных, то вынести этот набор в отдельную базу с фиксированной структурой (типа "буфер") в которой и будут все импортируемые данные. После этого сделать репликацию между "буферами". Из альтернатив - бизтолк и ручное создание некой шины данных, которая и будет рулить синхронизацией между модулями. Рассматривается и подход на уровне базы данных, но тут я не силен. Бизтолк стоит денег, хотя это и самое очевидное решение. Потому рассматриваем альтернативы. >>Не грози Владимирскому Централу, попивая виски у себя в Лондоне ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:15 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Sysobjects Возникла очевидная потребность по синхронизации каких-то общих данных между модулями. потребность в чём? От этого и пляшите. В общем случае - это извечная проблема (одна КИС или оркестровка\шины\порталы\...). 1С, например, файлы перебрасывает и не парится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:21 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Petro123Sysobjects Возникла очевидная потребность по синхронизации каких-то общих данных между модулями. потребность в чём? От этого и пляшите. В общем случае - это извечная проблема (одна КИС или оркестровка\шины\порталы\...). 1С, например, файлы перебрасывает и не парится. Потребность в том, что есть скажем модуль заведения клиентов и есть модуль продаж, которому для работы нужны некие данные по клиентам из первого модуля. Т.е. нужно реплицировать некий набор данных из первого модуля во второй. При этот нужно обеспечить оперативность репликации и поддержать синхронизацию. Чтобы при изменении паспорта Иванова в первом модуле второй быстро понял, что данные изменились и ему нужно синхронизироваться по Иванову. Вопрос как лучше организовать такое? Варианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:31 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
SysobjectsВарианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов) а самый простой и правильный вариант - использование единой БД, не видите разве? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:38 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
iscrafmSysobjectsВарианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов) а самый простой и правильный вариант - использование единой БД, не видите разве? ))) Мы сейчас наоборот делаем - есть старая система на единой базе, которую разносим по модулям. Так что единая база - это не вариант. нужно синхронизировать несколько ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:40 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
iscrafmа самый простой и правильный вариант - использование единой БД, не видите разве? +512 а потом опять сводить в единую будите... знаем мы такую гармошку! чем обусловлено разделение? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 12:52 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Разделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 13:11 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
SysobjectsРазделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling). слабая связанность (Low coupling) должна быть уравновешена со свойством High Cohesion. Сейчас вы как раз "зоопарк" и разводите. Если хотите реализовать слабую связанность, то поднимитесь на один уровень выше от базы данных, на уровень сервисов, которые работают с этой БД. Их и разводите. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 13:30 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Sysobjects, дык, какая же это независимость, когда у вас данные завязаны друг на друга...? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 13:34 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
lazovikSysobjects, дык, какая же это независимость, когда у вас данные завязаны друг на друга...? Так не все же - а только малое подмножество ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 13:45 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Я не знаю какова типа у вас система, но осмелюсь предположить, по вашему примеру: [quot Sysobjects]...модуль заведения клиентов и есть модуль продаж...[quot] есть клиенты и продажи а значит и товары должны быть... имеем 3 модуля: клиенты, продажи, товары в один прекрасный момент вас просят сделать отчет в модуле клиенты, по продажам товара клиентам... что вы сделаете??? это чисто тупой пример, для размышления... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 14:20 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
iscrafmа самый простой и правильный вариант - использование единой БД, не видите разве?+500 "База должна быть одна" (с) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 14:46 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
iscrafmSysobjectsРазделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling). слабая связанность (Low coupling) должна быть уравновешена со свойством High Cohesion. Сейчас вы как раз "зоопарк" и разводите. Если хотите реализовать слабую связанность, то поднимитесь на один уровень выше от базы данных, на уровень сервисов, которые работают с этой БД. Их и разводите. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 14:53 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 14:53 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
баз, объективно, конечно может быть несколько. Для синхронизации и консолидации данных придумываются различные механизмы, от MDM до DWH. Но, при наличии единой базы, умышленно разделять ее по озвученной выше причине, а потом думать о том, как объединить - не совсем логично. имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 15:05 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Anti_HackerЕсть такой, сам не пробовал, но смотрел обучалки и презентации. Microsoft Sync Framework тынц Спасиб. Поизучаю. авторбаз, объективно, конечно может быть несколько. Для синхронизации и консолидации данных придумываются различные механизмы, от MDM до DWH. Но, при наличии единой базы, умышленно разделять ее по озвученной выше причине, а потом думать о том, как объединить - не совсем логично. имхо. Архитектор тут не я, так что будем синхронизировать. А потому - можете подробнее рассказать про механизмы синхронизации авторот MDM до DWH ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 15:43 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Для SQLserver есть основной механизм синхронизации - это репликация между базами данных на уровне объектов баз данных. Однако не советую им пользоваться так как сама модель публикатор - подписчики плоха (это мое мнение). При синхронизации баз данных необходимо определиться с уровнем синхронизации: на уровне объектов баз данных или на уровне объектов предметной области. Тогда и поймете что лучше. Мое мнение. необходимо писать свое приложение по синхронизации. Да, спецуха. Зато завтра можете внести в него свой функционал, свою преобразующую логику условий и пр. вкусности. Можете спецуху заказать. Например, мне(igp@redfox.ru).:) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 16:39 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Panshinсама модель публикатор - подписчики плоха (это мое мнение). а альтернатива? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 16:50 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Panshin, Как человек, лично настраивавший "штатную" MS - репликацию между интернет-банкингом и АБС Скажу: механизм вполне себе достаточно гибкий и работоспособный. Просто нужно хорошо его понимать. В одном из проектов (так сложилось исторически) была примерно такая же организация данных - разные базы не только под разные "бизнесы", но даже под разные рабочие места . Все "скрещивалось" спец. вьюшками и распределенными запросами... и все работало, при этом обходились стандартными возможностями MSSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 17:05 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Panshin необходимо писать свое любят же у нас велосипеды ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 17:13 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Sysobjects Архитектор тут не я, так что будем синхронизировать. А что на этот счет думают архитекторы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 17:42 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Базу безусловно лучше делать одну. Ссылочную целостность ту же как ты будешь реализовывать ? Скажем, удаляется Клиент. Нельзя удалять Клиента, по которому есть документы - отгрузки, оплаты. Это уже две подсистемы завязаны с Клиентами. А дальше у тебя могут появиться еще подсистемы - скажем, выполнение работ. CRM функционал - еще одна отдельная подсистема. Когда сущности в этих дополнительных подсистемах сидят в той же БД, легко наладить ссылочную целостность, а когда они будут в отдельных БД - будет бардак. В частности, придется очень сложно отслеживать - что где удалять. Скажем, удаляешь из одной БД Клиента - надо проверить, нет ли ссылок на него во ВСЕХ прочих БД, т.е. в Продажах, Кассе, Выполнении работ, CRM... И будут появляться новые. Так что целиком согласен с предыдущими авторами - зоопарк получается. Разделение подсистем должно происходить на уровне кода. Т.е. разные подсистемы работают со своими объектами (классами). Например, в Продажах могут быть описаны классы Накладная, Счет-Фактура. В Кассе - приходный и расходный кассовые ордера, м/б там же и банковские документы. В Работах - Заказы и документы о ходе их выполнения. В CRM - дополнительные данные о днях рождения клиентов, любимой собаке/жене/теще, способы связи, и функционал оповещения - типа послать СМС на стотовый - "Ваш заказ готов, забирайте." А хранятся данные всех подсистем в одной БД. ORM-системы типа DataObjects или EntityFramework такую задачу решают на раз, обновляя структуру БД при изменении структуры объектов какой-то из твоих подсистем, или при добавлении новой, и оставляя в неприкосновенности таблицы, используемые другими подсистемами. Вот, кстати, 1С такого не умеет - от того проистекает масса сложностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 19:03 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Ну и я тоже поставлю своих пару центов. Хоть и не считаю себя ГУРУ в вашем непонятном вопросе... По опыту скажу: 1. Microsoft BizTalk Server - можете пока не использовать - в среде Microsoft only он никчему; это не значит что его надо сбрасывать со счетов сразу 2. Нужен хороший архитектор котрый прежде всего с БА разберется куда и какие данные представлять 3. Вполне возможно создание отдельной системы покрывающей все перегрузочные и контролирующие аспекты объектов бизнес процессов. и как следствие - создание единой базы март {DataMart} или хранилища {DataWarehouse} против которого будут все отчеты запущены. Не думаю чтобы весь много-системный функционал занимался подобными то есть повторяющимися задачами. Скорее всего Вы на пути интеграционного масштабирования - консолидации. Скорее всего многие базы консолидирются в конце концов и Вы останетесь с двумя тремя супер базами. Поверх которой будет data warehouse. Начните с простого - про реверсируйте {reverse - engineering - SYBASE PowerDesigner v 15.1 Вам в помощь} все Ваши базы и найдите подобные объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 19:27 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
severn_Базу безусловно лучше делать одну. . я думаю есть еще одна проблема у ТС - Часть продуктов Ентерпрайза - покупные - и их будет не так то просто консолидировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 19:31 |
|
Вопросы интеграции и репликации (мнение ГУРУ)
|
|||
---|---|---|---|
#18+
Sysobjects))) Мы сейчас наоборот делаем - есть старая система на единой базе, которую разносим по модулям. Так что единая база - это не вариант. нужно синхронизировать несколько А вот это я пропустила.... Как это???? И главное - ЗАЧЕМ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2010, 19:34 |
|
|
start [/forum/topic.php?fid=33&fpage=32&tid=1548307]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
112ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 196ms |
0 / 0 |