Двусторонняя межпроцессная связь (через именованные каналы) - WCF или .Net Remoting? - PullRequest
3 голосов
/ 09 ноября 2010

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

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

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

Я изо всех сил пытаюсь выбрать подход, который я должен использовать: - Моя цель - сделать общение как можно более простым.- Безопасность на самом деле не проблема.

Что мне выбрать?

Ответы [ 2 ]

4 голосов
/ 09 ноября 2010

Обе технологии должны подходить для того, что вы хотите сделать. Основное различие между двумя API-интерфейсами:

  • Удаленное взаимодействие предназначено для того, чтобы все интерфейсы выглядели локально, независимо от их происхождения.
  • WCF предназначен для того, чтобы все интерфейсы выглядели удаленно, независимо от их происхождения.

WCF кажется более сложным, потому что он раскрывает сложность, а не скрывает ее. Поскольку ваша заявленная цель состоит в том, чтобы устранить сложность кода, вы также можете перейти на Remoting.

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

Я предпочитаю подход WCF для всего, но это очень субъективное предпочтение.

0 голосов
/ 09 ноября 2010

Зависит от того, насколько разговорчивы ваши приложения (родители и дети).

Если общение довольно простое, вы можете перейти на .NET Remoting, но если у вас более сложная схема связи, я (лично) выбрал бы WCF.

...