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

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

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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам