Пример требований к системе. Часть 5.
6 Замечания по архитектуре
6.1 Передача партнера
Операция “передача партнера от одного медпредставителя другому” должна совершаться в одном месте - в центре. Проведенные изменения должны быть переданы двум медпредставителям.
Предлагаю создать отдельный объект для хранения связи “медпредставитель-партнер”, имеющий атрибуты “активен/неактивен” и время изменения.
6.2 Синхронизация данных
Три различных варианта
6.2.1 Использование канала вне рамок системы
Организуется обмен файлами. В качестве канала передачи можно использовать:
• Закачку по FTP
• Пересылка по email
• Физическая пересылка носителя
Преимущества:
• Независимость от канала связи
• Гарантированная передача больших объемов при плохом канале
Недостатки:
• Высокие накладные расходы при эксплуатации системы
6.2.2 Встроенный механизм репликации MSSQL
Преимущества:
• Стандартный метод MSSQL
• Не требуется разработка процедур обмена в рамках программы.
Недостатки:
• Механизм тяжеловесен
• Технология плохо изучена. Высок риск не реализации.
• Сложность настройки и администрирования.
• Из опыта сторонних разработчиков репликация не рассчитывалась на то, что бы работать через модемное подключение
6.2.3 Обмен данными посредством вебсервисов
Последовательность
Преимущества:
• Гибкость. В дальнейшем можно независимо менять элементы, схемы бах данных и, даже, платформы отдельных элементов системы, при сохранении схем обмена данными. Так же возможно подключение средств гарантированной доставки сообщений (MSSQL).
Недостатки:
• Несколько большее время разработки (компенсируется легкостью администрирования и эксплуатации).
6.2.4 Рекомендации
Рекомендую использовать собственный механизм обмена, основанный на передаче XML данных посредством вебсервисов. Этот подход хорошо зарекомендовал себя и, в настоящий момент, рекомендуется ведущими разработчиками ПО.
6.3 Состав локальной БД.
База партнеров должна быть общей для всех представителей в связи с тем, что:
• Представитель должен иметь полный доступ к истории своей деятельности
• Список партнеров, присутствующих на семинаре, может включать не только “своих” партнеров
Это усложнит синхронизацию БД.
6.4 Идентификатор записи
Т.к. база данных распределенная, то не рекомендуется использовать автоинкремент. Рекомендуется GUID.