Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Вопросы интеграции и репликации (мнение ГУРУ) / 25 сообщений из 90, страница 1 из 4
26.04.2010, 12:15
    #36598077
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Здравствуйте.

Сейчас нами разрабатывается некая система на .Net платформе, состоящая из отдельных модулей. Каждый со своей базой. Все базы - скул 2008.
Возникла очевидная потребность по синхронизации каких-то общих данных между модулями.

Вопрос: как это сделать ?

Мои мысли: раз базы разнородные и пересекаются только по некоторому набору данных, то вынести этот набор в отдельную базу с фиксированной структурой (типа "буфер") в которой и будут все импортируемые данные. После этого сделать репликацию между "буферами".

Из альтернатив - бизтолк и ручное создание некой шины данных, которая и будет рулить синхронизацией между модулями. Рассматривается и подход на уровне базы данных, но тут я не силен.

Бизтолк стоит денег, хотя это и самое очевидное решение. Потому рассматриваем альтернативы.

>>Не грози Владимирскому Централу, попивая виски у себя в Лондоне
...
Рейтинг: 0 / 0
26.04.2010, 12:21
    #36598091
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Sysobjects
Возникла очевидная потребность по синхронизации каких-то общих данных между модулями.

потребность в чём?
От этого и пляшите.
В общем случае - это извечная проблема (одна КИС или оркестровка\шины\порталы\...).
1С, например, файлы перебрасывает и не парится.
...
Рейтинг: 0 / 0
26.04.2010, 12:31
    #36598123
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Petro123Sysobjects
Возникла очевидная потребность по синхронизации каких-то общих данных между модулями.

потребность в чём?
От этого и пляшите.
В общем случае - это извечная проблема (одна КИС или оркестровка\шины\порталы\...).
1С, например, файлы перебрасывает и не парится.

Потребность в том, что есть скажем модуль заведения клиентов и есть модуль продаж, которому для работы нужны некие данные по клиентам из первого модуля.
Т.е. нужно реплицировать некий набор данных из первого модуля во второй.
При этот нужно обеспечить оперативность репликации и поддержать синхронизацию. Чтобы при изменении паспорта Иванова в первом модуле второй быстро понял, что данные изменились и ему нужно синхронизироваться по Иванову.

Вопрос как лучше организовать такое?
Варианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов)
...
Рейтинг: 0 / 0
26.04.2010, 12:38
    #36598140
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
SysobjectsВарианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов)
а самый простой и правильный вариант - использование единой БД, не видите разве?
...
Рейтинг: 0 / 0
26.04.2010, 12:40
    #36598145
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
iscrafmSysobjectsВарианты какие вижу я уже написал: SQL Integration Services(не работал с ними, и не знаю, сможет ли она такое сделать), Бизтолк (дорого стоит), Самописная шина интеграции (много трудов)
а самый простой и правильный вариант - использование единой БД, не видите разве?
)))
Мы сейчас наоборот делаем - есть старая система на единой базе, которую разносим по модулям.

Так что единая база - это не вариант. нужно синхронизировать несколько
...
Рейтинг: 0 / 0
26.04.2010, 12:52
    #36598182
lazovik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
iscrafmа самый простой и правильный вариант - использование единой БД, не видите разве?
+512
а потом опять сводить в единую будите... знаем мы такую гармошку!
чем обусловлено разделение?
...
Рейтинг: 0 / 0
26.04.2010, 13:11
    #36598238
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Разделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling).
...
Рейтинг: 0 / 0
26.04.2010, 13:30
    #36598322
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
SysobjectsРазделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling).
слабая связанность (Low coupling) должна быть уравновешена со свойством High Cohesion. Сейчас вы как раз "зоопарк" и разводите. Если хотите реализовать слабую связанность, то поднимитесь на один уровень выше от базы данных, на уровень сервисов, которые работают с этой БД. Их и разводите.
...
Рейтинг: 0 / 0
26.04.2010, 13:34
    #36598338
lazovik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Sysobjects,
дык, какая же это независимость, когда у вас данные завязаны друг на друга...?
...
Рейтинг: 0 / 0
26.04.2010, 13:45
    #36598361
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
lazovikSysobjects,
дык, какая же это независимость, когда у вас данные завязаны друг на друга...?

Так не все же - а только малое подмножество
...
Рейтинг: 0 / 0
26.04.2010, 14:20
    #36598449
lazovik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Я не знаю какова типа у вас система, но осмелюсь предположить, по вашему примеру:
[quot Sysobjects]...модуль заведения клиентов и есть модуль продаж...[quot]
есть клиенты и продажи а значит и товары должны быть...
имеем 3 модуля: клиенты, продажи, товары
в один прекрасный момент вас просят сделать отчет в модуле клиенты, по продажам товара клиентам... что вы сделаете???
это чисто тупой пример, для размышления...
...
Рейтинг: 0 / 0
26.04.2010, 14:46
    #36598522
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
iscrafmа самый простой и правильный вариант - использование единой БД, не видите разве?+500
"База должна быть одна" (с) :)
...
Рейтинг: 0 / 0
26.04.2010, 14:53
    #36598550
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
iscrafmSysobjectsРазделение обусловлено тем, что данные в одной базе - вроде как "зоопарк разводим", а если каждый модуль со своей базой - то обеспечиваем независимость систем (Low coupling).
слабая связанность (Low coupling) должна быть уравновешена со свойством High Cohesion. Сейчас вы как раз "зоопарк" и разводите. Если хотите реализовать слабую связанность, то поднимитесь на один уровень выше от базы данных, на уровень сервисов, которые работают с этой БД. Их и разводите.
+1
...
Рейтинг: 0 / 0
26.04.2010, 14:53
    #36598551
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Есть такой, сам не пробовал, но смотрел обучалки и презентации.

Microsoft Sync Framework

тынц
...
Рейтинг: 0 / 0
26.04.2010, 15:05
    #36598597
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
баз, объективно, конечно может быть несколько. Для синхронизации и консолидации данных придумываются различные механизмы, от MDM до DWH. Но, при наличии единой базы, умышленно разделять ее по озвученной выше причине, а потом думать о том, как объединить - не совсем логично. имхо.
...
Рейтинг: 0 / 0
26.04.2010, 15:43
    #36598728
Sysobjects
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Anti_HackerЕсть такой, сам не пробовал, но смотрел обучалки и презентации.

Microsoft Sync Framework

тынц

Спасиб. Поизучаю.

авторбаз, объективно, конечно может быть несколько. Для синхронизации и консолидации данных придумываются различные механизмы, от MDM до DWH. Но, при наличии единой базы, умышленно разделять ее по озвученной выше причине, а потом думать о том, как объединить - не совсем логично. имхо.
Архитектор тут не я, так что будем синхронизировать.
А потому - можете подробнее рассказать про механизмы синхронизации авторот MDM до DWH
...
Рейтинг: 0 / 0
26.04.2010, 16:39
    #36598889
Panshin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Для SQLserver есть основной механизм синхронизации - это репликация между базами данных на уровне объектов баз данных. Однако не советую им пользоваться так как сама модель публикатор - подписчики плоха (это мое мнение).

При синхронизации баз данных необходимо определиться с уровнем синхронизации: на уровне объектов баз данных или на уровне объектов предметной области. Тогда и поймете что лучше.

Мое мнение.
необходимо писать свое приложение по синхронизации. Да, спецуха. Зато завтра можете внести в него свой функционал, свою преобразующую логику условий и пр. вкусности.

Можете спецуху заказать. Например, мне(igp@redfox.ru).:)
...
Рейтинг: 0 / 0
26.04.2010, 16:50
    #36598920
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Panshinсама модель публикатор - подписчики плоха (это мое мнение).

а альтернатива?
...
Рейтинг: 0 / 0
26.04.2010, 17:05
    #36598954
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Panshin,
Как человек, лично настраивавший "штатную" MS - репликацию между интернет-банкингом и АБС
Скажу: механизм вполне себе достаточно гибкий и работоспособный. Просто нужно хорошо его понимать.
В одном из проектов (так сложилось исторически) была примерно такая же организация данных - разные базы не только под разные "бизнесы", но даже под разные рабочие места .
Все "скрещивалось" спец. вьюшками и распределенными запросами... и все работало, при этом обходились стандартными возможностями MSSQL.
...
Рейтинг: 0 / 0
26.04.2010, 17:13
    #36598984
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Panshin
необходимо писать свое
любят же у нас велосипеды
...
Рейтинг: 0 / 0
26.04.2010, 17:42
    #36599055
Infernal V. Raven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Sysobjects
Архитектор тут не я, так что будем синхронизировать.

А что на этот счет думают архитекторы?
...
Рейтинг: 0 / 0
26.04.2010, 19:03
    #36599231
severn_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Базу безусловно лучше делать одну.
Ссылочную целостность ту же как ты будешь реализовывать ?
Скажем, удаляется Клиент.
Нельзя удалять Клиента, по которому есть документы - отгрузки, оплаты.
Это уже две подсистемы завязаны с Клиентами.
А дальше у тебя могут появиться еще подсистемы - скажем, выполнение работ.
CRM функционал - еще одна отдельная подсистема.
Когда сущности в этих дополнительных подсистемах сидят в той же БД, легко наладить ссылочную целостность, а когда они будут в отдельных БД - будет бардак.

В частности, придется очень сложно отслеживать - что где удалять.
Скажем, удаляешь из одной БД Клиента - надо проверить, нет ли ссылок на него во ВСЕХ прочих БД, т.е. в Продажах, Кассе, Выполнении работ, CRM... И будут появляться новые.

Так что целиком согласен с предыдущими авторами - зоопарк получается.

Разделение подсистем должно происходить на уровне кода. Т.е. разные подсистемы работают со своими объектами (классами).
Например, в Продажах могут быть описаны классы Накладная, Счет-Фактура.
В Кассе - приходный и расходный кассовые ордера, м/б там же и банковские документы.
В Работах - Заказы и документы о ходе их выполнения.
В CRM - дополнительные данные о днях рождения клиентов, любимой собаке/жене/теще, способы связи, и функционал оповещения - типа послать СМС на стотовый - "Ваш заказ готов, забирайте."
А хранятся данные всех подсистем в одной БД.

ORM-системы типа DataObjects или EntityFramework такую задачу решают на раз, обновляя структуру БД при изменении структуры объектов какой-то из твоих подсистем, или при добавлении новой, и оставляя в неприкосновенности таблицы, используемые другими подсистемами. Вот, кстати, 1С такого не умеет - от того проистекает масса сложностей.
...
Рейтинг: 0 / 0
26.04.2010, 19:27
    #36599263
Vika Vinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Ну и я тоже поставлю своих пару центов. Хоть и не считаю себя ГУРУ в вашем непонятном вопросе... По опыту скажу:

1. Microsoft BizTalk Server - можете пока не использовать - в среде Microsoft only он никчему; это не значит что его надо сбрасывать со счетов сразу
2. Нужен хороший архитектор котрый прежде всего с БА разберется куда и какие данные представлять
3. Вполне возможно создание отдельной системы покрывающей все перегрузочные и контролирующие аспекты объектов бизнес процессов. и как следствие - создание единой базы март {DataMart} или хранилища {DataWarehouse} против которого будут все отчеты запущены. Не думаю чтобы весь много-системный функционал занимался подобными то есть повторяющимися задачами. Скорее всего Вы на пути интеграционного масштабирования - консолидации. Скорее всего многие базы консолидирются в конце концов и Вы останетесь с двумя тремя супер базами. Поверх которой будет data warehouse. Начните с простого - про реверсируйте {reverse - engineering - SYBASE PowerDesigner v 15.1 Вам в помощь} все Ваши базы и найдите подобные объекты.
...
Рейтинг: 0 / 0
26.04.2010, 19:31
    #36599270
Vika Vinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
severn_Базу безусловно лучше делать одну.
.
я думаю есть еще одна проблема у ТС - Часть продуктов Ентерпрайза - покупные - и их будет не так то просто консолидировать.
...
Рейтинг: 0 / 0
26.04.2010, 19:34
    #36599272
Vika Vinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы интеграции и репликации (мнение ГУРУ)
Sysobjects)))
Мы сейчас наоборот делаем - есть старая система на единой базе, которую разносим по модулям.

Так что единая база - это не вариант. нужно синхронизировать несколько
А вот это я пропустила.... Как это???? И главное - ЗАЧЕМ???
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Вопросы интеграции и репликации (мнение ГУРУ) / 25 сообщений из 90, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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