Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.28;
Скачать: CL | DM;

Вниз

Общий вопрос по структуре программы   Найти похожие ветки 

 
Empleado ©   (2007-02-26 11:00) [0]

Добрый день. Возник вопрос по архитектуре программы с сокетами.
Буду благодарен, если вы выскажите ваши мысли, соображения, поправки, укажите на подводные камни, подскажите на что надо обратить особое внимание, что не описано в книгах, предложите иной вариант.
(ПС. Просьба камнями не кидаться :)) - первый раз в жизни буду делать сетевую фиговину. Книжку Indy in Depth уже читаю...)

Дано:
Организация с несколькими удаленными офисами, имеющих разного рода приложениями, БД, и т.д.

Необходимо:
Написать программу-синхронизатор, который способен обмениваться данными между офисами.
Особенности:
- возможность работы на ОЧЕНь медленных часто рвущихся линиях;
- теоретически, синхронизируемые данные могут быть любыми - данные из БД, файлы внутреннего документооборота, и т.д.;
- частичная синхронизация баз данных (отдельные таблицы, а иногда и выборка из таблиц, например: не отправлять цены покупки, а только цены продаж);
- задачи удаленного администрирования серверов синхронизации, установленных в удаленных оффисах;
- возможность расстановки приоритетов, контроль и отчетность;
и т.д. и т.п.

Исходя из моих знаний по сетям и их приложений, набросал небольшую схемку будущей программы. Мои мысли лежат вот тут:
http://empleado.hotbox.ru/SynchServerArch.jpg (102 Kb)

Несколько комментариев к мыслям:
- Schema 1 - несколькими .ехе; Schema 2 - одним .ехе;
- реализовать на базе TCP; используя сжатие; с возможностью докачки файлов;
- свой собственный протокол обмена данными с идентификацией конечных пользователей-приложений, принимающих/отправляющих данные;
- организация очередей данных со строгой последовательностью, учитывая установленные приоритеты;
- если брать Schema 1, то как лучше организовать обмен между слоями 2 и 3? Через сокеты или файлами в спец. отведенной директории? Склоняюсь к файлам, т.к. все равно все сделанное надо будет хранить в логах;
- возможность криптинга (например, если траффик не идет через VPN);
- реализовать как сервис, с соответствующим интерфейсом управления;

Вопросы:
Какая из схем, на ваш взгляд, имеет место быть, и какую из них проще реализовать?
(Честно говоря, у меня еще куча вопросов по реализации, но пока остановлюсь на этом)

Заранее спасибо.
Всего доброго.


 
S@shka ©   (2007-02-26 13:08) [1]


> возможность расстановки приоритетов, контроль и отчетность;

Мне кажется одна только вот эта задача, по расстановке приоритетов - может быть достаточно трудоемка (конкретизировать!)


> задачи удаленного администрирования серверов синхронизации,
>  установленных в удаленных оффисах;

VNC поставь или RemoteAdmin )


> теоретически, синхронизируемые данные могут быть любыми
> - данные из БД, файлы внутреннего документооборота, и т.
> д.;

Если кто то эти данные выгружает в определенный вид - то без разницы что передавать.


> - возможность работы на ОЧЕНь медленных часто рвущихся линиях;

Кто ж их рвет? )))


> http://empleado.hotbox.ru/SynchServerArch.jpg


ссылка не работает


 
empleado ©   (2007-02-26 13:32) [2]


> S@shka ©   (26.02.07 13:08) [1]
>ссылка не работает

Вроде работает (проверил, закачивает с сайта, не из кэша).
Попробуй сделать "save as" по ссылке и сохранить на диск, не открывая сразу в браузере.

"Особенности" были даны, чтобы иметь представление о назначении сервера синхронизации.
Пока о конкретных способах реализации каждой задачи речь не идет.
В данный момент интересует структура и принципы, чтобы сделать следующие шаги.
Спасибо


 
S@shka ©   (2007-02-26 13:42) [3]

Выбираю схему номер 1

Развивать будет гораздо легче


 
Empleado ©   (2007-02-27 11:14) [4]


> Выбираю схему номер 1

Теотетически, схема 1 мне кажется более гибкой (расширяемость, управление).
С другой стороны, не слишком ли много будет "лишних" межпроцессовых операций + сложнее реализация?...

>all
Интересно мнение и опыт тех, кто делал подобное.
Спасибо



Страницы: 1 вся ветка

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1190713799
ferdinando
2007-09-25 13:49
2007.10.28
Си


3-1182345924
ambhtr
2007-06-20 17:25
2007.10.28
Как правильно удалить созданный в Run Time индекс?


15-1190802582
em240
2007-09-26 14:29
2007.10.28
C#+icq


5-1162213823
любитель
2006-10-30 16:10
2007.10.28
подскажите как победить


2-1191416861
KLAUS
2007-10-03 17:07
2007.10.28
IP адрес