2013-03-17 2 views

ответ

2

Как следует из названия, rpc (вызовы удаленной процедуры) представляет собой конструкцию для вызова функции на удаленном узле (и получения результата).

Порт (в Эрланге) - это просто точка связи, даже (обязательно) к удаленному узлу. Вы используете порты, например, для связи с другой (не Эрланг) программой.

Обе конструкции предназначены для разных целей. Никто не лучше, они просто разные. Если вы хотите, rpc находится на более высоком уровне абстракции, чем порты, но это не делает его лучше или хуже.

+0

@why Не очень высокий уровень абстракции. Rpc, хотя и NIF, ведет себя как * вызов функции *, в то время как порт ведет себя как * процесс *. Rpc является последовательным и блокируется, а порт является параллельным и неблокирующим. Что говорит вам, когда вы будете использовать один над другим. – rvirding

+0

Вы в целом правы. Тем не менее, некоторые люди видят синхронный вызов функции как более высокую абстракцию, поскольку параллелизм - это неприятная деталь для абстрагирования. – Matthias

+0

Немного странная точка зрения, рассматривающая параллелизм, - это то, о чем говорит Эрланг, и, конечно же, отказоустойчивость. – rvirding

Смежные вопросы