Отправить класс, а не просто интерфейс класса, между серверами?

StackOverflow https://stackoverflow.com/questions/1427264

Вопрос

Я создаю сеточное приложение, которое требует от меня отправки пакетов программного обеспечения, которые обертывают класс, в участвующие узлы в моей сетке.

Первой идеей, которую я придумал, было, чтобы главные узлы связывались с каждым узлом (работающим со службой Windows) и отправляли сборку, содержащую класс, который придерживается общего интерфейса вместе с файлом .config, содержащим, в общем, конфигурацию информация.

Есть ли лучший способ сделать это? Помимо дискуссии о том, должно ли это быть толчком или подтягиванием, каков наилучший способ получить эффективное обновление программного обеспечения? Было бы замечательно, если бы я мог использовать что-то похожее на службу WCF, вызываемую клиентскими узлами, но это, конечно, оставило бы реальную обработку на главном узле, что эффективно разгруппировало бы мой кластер.

Это было полезно?

Решение

Вы можете отправлять байты сборки и загружать их непосредственно в среду выполнения. Это хорошо работает для управляемого кода. Я не знаю лучшего способа сделать это. И да, используйте модель push:)

Другие советы

Это похоже на правильный подход. По сути, так работает большинство моделей плагинов .NET.

Единственный другой подход, который я могу придумать, - отправлять файлы сценариев туда и обратно. Вы могли бы сделать свой собственный DSL, но я думаю, что это было бы излишним. Использовать что-то вроде Iron Ruby или Iron Python было бы намного проще, а также намного мощнее. Еще одна мысль - отправить сценарии PowerShell.

Я никогда не пробовал этого, но также можно отправлять файлы C # или VB туда и обратно, а затем компилировать их, когда они должны быть запущены. Однако я вижу небольшое преимущество по сравнению с двумя предыдущими предложениями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top