![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Общий вопрос по структуре программы [D7, WinXP]
Empleado © (2007-02-26 11:00:00)Добрый день. Возник вопрос по архитектуре программы с сокетами.
Буду благодарен, если вы выскажите ваши мысли, соображения, поправки, укажите на подводные камни, подскажите на что надо обратить особое внимание, что не описано в книгах, предложите иной вариант.
(ПС. Просьба камнями не кидаться :)) - первый раз в жизни буду делать сетевую фиговину. Книжку Indy in Depth уже читаю...)
Дано:
Организация с несколькими удаленными офисами, имеющих разного рода приложениями, БД, и т.д.
Необходимо:
Написать программу-синхронизатор, который способен обмениваться данными между офисами.
Особенности:
- возможность работы на ОЧЕНь медленных часто рвущихся линиях;
- теоретически, синхронизируемые данные могут быть любыми - данные из БД, файлы внутреннего документооборота, и т.д.;
- частичная синхронизация баз данных (отдельные таблицы, а иногда и выборка из таблиц, например: не отправлять цены покупки, а только цены продаж);
- задачи удаленного администрирования серверов синхронизации, установленных в удаленных оффисах;
- возможность расстановки приоритетов, контроль и отчетность;
и т.д. и т.п.
Исходя из моих знаний по сетям и их приложений, набросал небольшую схемку будущей программы. Мои мысли лежат вот тут:
http://empleado.hotbox.ru/SynchServerArch.jpg(102 Kb)
Несколько комментариевк мыслям:
- Schema 1 - несколькими .ехе; Schema 2 - одним .ехе;
- реализовать на базе TCP; используя сжатие; с возможностью докачки файлов;
- свой собственный протокол обмена данными с идентификацией конечных пользователей-приложений, принимающих/отправляющих данные;
- организация очередей данных со строгой последовательностью, учитывая установленные приоритеты;
- если брать Schema 1, то как лучше организовать обмен между слоями 2 и 3? Через сокеты или файлами в спец. отведенной директории? Склоняюсь к файлам, т.к. все равно все сделанное надо будет хранить в логах;
- возможность криптинга (например, если траффик не идет через VPN);
- реализовать как сервис, с соответствующим интерфейсом управления;
Вопросы:
Какая из схем, на ваш взгляд, имеет место быть, и какую из них проще реализовать?
(Честно говоря, у меня еще куча вопросов по реализации, но пока остановлюсь на этом)
Заранее спасибо.
Всего доброго.
Empleado (2007-02-27 11:14:00) [1]
> Выбираю схему номер 1
Теотетически, схема 1 мне кажется более гибкой (расширяемость, управление).
С другой стороны, не слишком ли много будет "лишних" межпроцессовых операций + сложнее реализация?...
>all
Интересно мнение и опыт тех, кто делал подобное.
Спасибо
S@shka (2007-02-26 13:42:00) [2]Выбираю схему номер 1
Развивать будет гораздо легче
empleado (2007-02-26 13:32:00) [3]
> S@shka © (26.02.07 13:08) [1]
>ссылка не работает
Вроде работает (проверил, закачивает с сайта, не из кэша).
Попробуй сделать "save as" по ссылке и сохранить на диск, не открывая сразу в браузере.
"Особенности" были даны, чтобы иметь представление о назначении сервера синхронизации.
Пока о конкретных способах реализации каждой задачи речь не идет.
В данный момент интересует структура и принципы, чтобы сделать следующие шаги.
Спасибо
S@shka (2007-02-26 13:08:00) [4]
> возможность расстановки приоритетов, контроль и отчетность;
Мне кажется одна только вот эта задача, по расстановке приоритетов - может быть достаточно трудоемка (конкретизировать!)
> задачи удаленного администрирования серверов синхронизации,
> установленных в удаленных оффисах;
VNC поставь или RemoteAdmin )
> теоретически, синхронизируемые данные могут быть любыми
> - данные из БД, файлы внутреннего документооборота, и т.
> д.;
Если кто то эти данные выгружает в определенный вид - то без разницы что передавать.
> - возможность работы на ОЧЕНь медленных часто рвущихся линиях;
Кто ж их рвет? )))
> http://empleado.hotbox.ru/SynchServerArch.jpg
ссылка не работает