Отправить класс, а не просто интерфейс класса, между серверами?
-
07-07-2019 - |
Вопрос
Я создаю сеточное приложение, которое требует от меня отправки пакетов программного обеспечения, которые обертывают класс, в участвующие узлы в моей сетке. Р>
Первой идеей, которую я придумал, было, чтобы главные узлы связывались с каждым узлом (работающим со службой Windows) и отправляли сборку, содержащую класс, который придерживается общего интерфейса вместе с файлом .config, содержащим, в общем, конфигурацию информация.
Есть ли лучший способ сделать это? Помимо дискуссии о том, должно ли это быть толчком или подтягиванием, каков наилучший способ получить эффективное обновление программного обеспечения? Было бы замечательно, если бы я мог использовать что-то похожее на службу WCF, вызываемую клиентскими узлами, но это, конечно, оставило бы реальную обработку на главном узле, что эффективно разгруппировало бы мой кластер.
Решение
Вы можете отправлять байты сборки и загружать их непосредственно в среду выполнения. Это хорошо работает для управляемого кода. Я не знаю лучшего способа сделать это. И да, используйте модель push:)
Другие советы
Это похоже на правильный подход. По сути, так работает большинство моделей плагинов .NET. Р>
Единственный другой подход, который я могу придумать, - отправлять файлы сценариев туда и обратно. Вы могли бы сделать свой собственный DSL, но я думаю, что это было бы излишним. Использовать что-то вроде Iron Ruby или Iron Python было бы намного проще, а также намного мощнее. Еще одна мысль - отправить сценарии PowerShell. Р>
Я никогда не пробовал этого, но также можно отправлять файлы C # или VB туда и обратно, а затем компилировать их, когда они должны быть запущены. Однако я вижу небольшое преимущество по сравнению с двумя предыдущими предложениями.