Форум: "Сети";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
ВнизОбщий вопрос по структуре программы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c