Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.77.149] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Встал вопрос о проектировании такой системы... Есть десяток удаленных территориально филиалов, каждый естественно имеет выделенный сервер и 10-от компьютеров. Интернет настроен только на серверах филиалов. Каждый компьютер сети собирает кое-какую статистику. Задача: собрать статистику со всех компьютеров в БД и отобразить в форме отчетов (желательно выполненных в форме ASP страничек). Вопрос: 1. Как лучше организовать передачу данных статистики на главный сервер? 2. С помощью каких технологий удобней и быстрей это реализовать? P.S. Хотелось бы реализовать и передачу команд с ответами от главного сервера - придаточным, а от них клиентам. |
Сообщ.
#2
,
|
|
|
Цитата Отшельник @ Как лучше организовать передачу данных статистики на главный сервер? тут мне кажется надо болше думать в сторону создания своего протокола общения сервера с клиентами |
Сообщ.
#3
,
|
|
|
Цитата Отшельник @ 1. Как лучше организовать передачу данных статистики на главный сервер? 2. С помощью каких технологий удобней и быстрей это реализовать? : 1. System.Runtime.Remoting 2. Windows Communicatoin Foundation |
Сообщ.
#4
,
|
|
|
PIL а можно поподробней? (чтобы разложить все по полочкам....)
|
Сообщ.
#5
,
|
|
|
Отшельник, в кратце архитектура может быть следующей.
1. Начнем с клиентов, каждый компьютер в сети содержит локальную службу которая собирает статистику. 2. В определенное время или по требованию выделеного сервера, эти службы отсылают статистику на выделеный центральный сервер филиала. Если есть возможность использовать WCF (3.*) я бы остановился на нем. 3. Далее по такой же схеме выделеные сервера отсылают данные на головной сервер который и сохраняет данные в БД делая доступными их для подсистемы построения отчетов. Взаимодействие в локальной сети (через WCF) я бы реализовывал через NetTcpBinding привязку (с канальным шифрованием - режим по умолчанию для такой привязки) или NetMsmqBinding (если требуется гаранитированная доставка сообщений и возможность работы в оффлайн режиме), а взаимодействие между серверами уже через WSHttpBinding, желательно с безопасностью в режиме Message, когда все передаваемые сообщения шифруются и подписываются (WCF делает это автоматически после соответствующий настройки). 4. На головном сервере ты можешь развернуть MS Sql Reporting Service он позволяет довольно легко дизайнить отчеты и делать их доступными в виде ASP.NET страничек для клиентов. |
Сообщ.
#6
,
|
|
|
juice спасибо.
С WCF к сожалению не знаком, придется многое проштудировать. |
Сообщ.
#7
,
|
|
|
в принципе структура ясна... есть только небольшие вопросы...
Цитата juice @ 2. В определенное время или по требованию выделеного сервера, эти службы отсылают статистику на выделеный центральный сервер филиала. предположим сбор данных происходит по требованию главного сервера... Возникает вопрос? Откуда сервер будет знать о всех установленных клиентах? (приходит на ум только одно - на сервере хранить коллекцию с соответствиями IP - NameService - DateRegister, и при запуске клиента посылать сообщение о регистрации на сервер, естественно если регистрация произведена - пропускать ее)... Или есть другие варианты? |
Сообщ.
#8
,
|
|
|
Цитата Отшельник @ Или есть другие варианты? 1. список зарегистрированных и активный их опрос. Хорошо, когда список клиентов постоянен и меняется редко. 2. сервер обслуживает только зарегестрированных. не зарегистрированные могут подать запрос на регистрацию. Удовлетворяет эти запросы админ через польз. интерфейс сервера. 3. обслуживание всех желающих - клиенты регятся на сервере и он их обсдуживает. возможна защита паролем. Хорошо когда клиенты меняются часто. (получается то же что 2, тока регистрация автоматическая, без админа). Добавлено Отшельник, попробуй почитать книженцию http://www.books.ru/shop/books/479716. Почерпнёшь идей вагон (хотя конкретно этот вопрос она бы тебе не очень помогла решить) |
Сообщ.
#9
,
|
|
|
ок, спасибо всем участвующим....
|