Попытка выяснить, какие опции у меня есть, чтобы программа, выполняемая локально, получала свои вычисления или результаты вычислений из удаленного источника.Варианты технологии C# для хранения/управления расчетами удаленно
Задача: У меня есть приложение для сбора данных, которое считывает множество инструментов и собирает данные во время тестирования оборудования. Эти данные, а не различные формы агрегации (min, max, average и т. Д.), А также несколько вычислений, применяются к нему, и результат сохраняется в базе данных. Этот процесс выполняется несколько раз во время теста. Это приложение работает на машине, предназначенной для выполнения этого теста, но пользователи вне теста также должны выполнять те же вычисления для экспериментов, анализа данных и т. Д.
В прошлом наши два приложения (одно с оборудованием и один с пользователями) будут обновляться каждый раз, когда расчет будет изменен, а затем развернут повсюду. Это боль.
Вопрос: Я ищу возможные варианты решения этой проблемы.
То, что я нашел до сих пор.
1). WCF.
Нравится: Необходимо только обновить сервер, и обе программы теперь могут воспользоваться новым расчетом.
Концерн: DataContract будет содержать несколько классов, которые должны быть переданы функции (ей). (Общий размер «данных» может варьироваться от 1 МБ до 1 ГБ в зависимости от ситуации). Не уверен, что в настоящий момент объем данных является реальной проблемой.
2). Храните скомпилированные библиотеки DLL и загружайте/загружайте их. Запросить сервер для библиотеки классов. Загрузить. Загрузите его в память и используйте вычисления.
Нравится: Не нужно передавать много данных взад и вперед.
Концерн: DLL, который сейчас находится на каждом компьютере. Люди не могут быть принуждены обновить до правильной версии, что может вызвать проблемы. DLL на локальном компьютере может представлять угрозу безопасности.
Дополнительная информация: При выполнении приложения для проверки оборудования имеется от 1 до 2 пользователей. За пределами тестирования около 10-20 пользователей, большинство из которых только смотрят на результаты расчетов. (По сути, запрос к базе данных). Из этой группы есть небольшое подмножество, которое в настоящее время имеет возможность пересчитывать результаты. Я не знаю, как часто это выполняется группой, но с любыми пользователями, если вы забираете что-то, что они могут в настоящее время делать, они склонны бороться с ним, хотя на практике они, вероятно, никогда не будут использовать эту функцию ... –
Все эти процессы, повторил еще 25 раз. IE) У меня около 25 тестовых систем, которые изолированы друг от друга, но мы стараемся, чтобы системы программного обеспечения были одинаковыми, чтобы упростить поддержку инструментов. Я не забочусь о том, чтобы увязнуть сервер, поскольку каждая система имеет свой собственный сервер. Меня больше интересует количество данных, передаваемых через сеть, и общая отзывчивость приложения. –