문제

파이썬 용 원격 절차 통화 엔진을 찾고 있는데 파이로 (파이썬 원격 객체) 그리고 RPYC (원격 파이썬 호출) 둘 다 내가 찾고있는 것입니다.

그러나 나는 그들이 서로 비교하는 방법과 그들의 장단점이 무엇인지 궁금합니다.

도움이 되었습니까?

해결책

나는 개인적으로 그들을 대략적으로 동등하게 찾지만 RPYC의 저자 (여기) 더 단순성을 주장합니다 (아마도 분산 컴퓨팅에 사용 된 모든 사람에게는 그가 요점을 얻었을 것입니다. 나는 좋은 판사를 만들기 위해 너무 익숙 할 수 있습니다 ;-). 그를 인용 ... :

Pyro는 이력서에 상당한 프로젝트의 긴 목록을 가지고 있지만, 필요한 코드의 양을 고려하고, 개체 등록, 이름 서버 등을 고려하면 서버를 너무 복잡하게 설정하는 것을 발견했습니다. 이름 서버의 유무에 관계없이 이벤트, 리빈딩, 프록시 대 속성-프록시, 이름은 독특해야합니다). 그리고 제한적입니다 (원격 객체는 선택 가능해야하므로 원격 파일 등으로 작업 할 수 없습니다). 대체로, 파이로는 너무 많은 특별한 경우를 가지고 있으며 일반적으로 너무 복잡합니다 (예, 나는이 복잡한 것으로 간주합니다). 물론 저는 독립적 인 검토자가 아니지만 스스로 판단하십시오. RPYC가 더 간단하고 깨끗하지 않습니까?

동전의 반대편에서 Pyro는 약간의 보안을 제공하려고 시도합니다 (RPYC의 저자 주장은 어쨌든 너무 약하고 많은 Pyro의 주장 된 합병증의 기초가 있습니다).

더 독립적 인 목소리 인 David Mertz는 제안합니다 여기 RPYC에 대한 좋은 설명 (Pyro는 훨씬 더 길었고 David는 이전 기사를 다루는 것을 지적합니다). "클래식 모드"는 완전히 일반적으로 단순하고 제로 보안 부분이며, "Pyro의 선택적 보안 프레임 워크없이 Pyro와 본질적으로 동일"; "서비스 모드"는 더 안전합니다 (명시 적으로 허용되지 않는 모든 것은 기본적으로 금지 된 것입니다. 나에게 공정한 평가 인 것 같습니다.

BTW, 나는 단일 언어 RPC 시스템을 특별히 좋아하지 않습니다. 파이썬이 내 요구의 99%를 차지하더라도 (그리고 그다지 높지는 않지만 ;-), 나는 나머지 1에 어떤 언어를 사용할 수 있다는 사실을 좋아합니다. %... RPC 계층에서 포기하고 싶지 않습니다!-) JSON-RPC ~을 통해 이것 모듈 등 ...!-).

다른 팁

YMMV, 그러나 다음은 다음 프로젝트에서 사용하기 위해 RPYC, PYRO4 및 ZERORPC를 평가 한 결과입니다. 심도있는 테스트가 없으며, 이는 심층적 인 검토가 아니며, 다가오는 프로젝트의 요구에 대한 각각의 메모에 대한 내 메모입니다.

Zerorpc :

  • 상당히 의존성
  • 아주 젊은 프로젝트 (DotCloud의 주요 지원)
  • 문서가 거의 없습니다
  • 원격 객체의 속성에 액세스 할 수 없습니다
  • 속성 액세스 부족으로 인해 원격 개체에서 IPYTHON 탭 완료가 작동하지 않습니다.

pyro4 :

  • Python3 지원
  • 멋지고 풍부한 문서
  • 성숙한 프로젝트
  • 속성 액세스/ipython 탭 완료가 없습니다

pyro3 :

  • 속성 액세스 지원 (문서에서 청구; 확인되지 않음)
  • Python3 지원이 없습니다

RPYC :

  • 원격 객체에서 속성 액세스, IPYTHON 탭 완료
  • Python3 지원 (문서에서 청구; 아직 확인되지 않음)
  • 흠이있는 문서

fwiw :

나는 rpyc를 좋아하는 경향이있다 (아마도 내 첫 번째 였기 때문에? ;-), 그러나 그것은 문서화가 드물다. RPC에 처음 노출되었으며 일을하는 방법을 "Grok"하는 데 오랜 시간이 걸렸습니다. 저자 (Tomer)는 매우 도움이되며 Google RPYC 목록의 QS에 응답합니다.

RPC를 처음 접한다면 파이로부터 시작하여 견고한 문서를 활용하여 로프를 배우는 것이 좋습니다. 필요에 따라 RPYC, Zerorpc 등으로 이동하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top