Принятие решений в распределенных приложениях - PullRequest
2 голосов
/ 30 августа 2008

В распределенном приложении, где у вас много клиентов и один главный сервер, вы должны:

  • Сделайте клиентов глупыми, а сервер умными: клиенты быстрые и неинвазивные. Деловые правила нужны только в 1 месте
  • Сделайте клиентов умными, а сервер - тупыми: максимально допустите нагрузку на сервер

Дополнительная информация:

  • Клиенты собирают тонны данных о компьютере, на котором они работают. Сервер должен проанализировать всю эту информацию, чтобы определить работоспособность этих компьютеров
  • Владельцы клиентских компьютеров являются темпераментными и отключат клиентов, если клиент начнет использовать слишком много ресурсов (что сводит на нет цель распределенного приложения в диагностике проблем)

Ответы [ 3 ]

3 голосов
/ 30 августа 2008

Вы должны сделать как можно больше обработки на стороне клиента. Это позволит вашему приложению масштабироваться лучше, чем на стороне сервера. Чтобы решить вашу темпераментную пользовательскую проблему, вы могли бы заставить свои клиентские процессы работать с очень низким приоритетом, чтобы не было заметного снижения производительности со стороны пользователя.

2 голосов
/ 30 августа 2008

В настройках клиент-сервер, если вы заботитесь о безопасности, вы всегда должны программировать, предполагая, что клиент может быть скомпрометирован. Даже если это не так, всегда существует риск того, что кто-то использует старую версию клиента, использует конкурирующую или модифицированную версию клиента, или просто сетевое соединение будет немного странным.

Таким образом, хотя вы выполняете как можно больше работы с клиентом, обрабатывая и сортируя информацию в нужной форме, сервер затем должен выполнить тщательную проверку работоспособности всего, что ему дает клиент.

Так что я думаю, что ответ "оба".

0 голосов
/ 30 августа 2008

Сервер должен проанализировать все это информация, чтобы определить здоровье этих компьютеры

Это, вероятно, самая большая подсказка, которая пока объясняет, о чем ваше приложение. Можете ли вы предоставить более подробный инструктаж о том, чего это приложение стремится достичь в этой распределенной среде? Мы даже не знаем, является ли обработка на стороне клиента интенсивным дисковым вводом-выводом или интенсивностью процессора. То, как вы разрабатываете решение, зависит от характера того, что необходимо сделать, чтобы помочь пользователям / бизнесу выполнить свои задачи и задачи.

...