rpc 예제

다음은 WebOb를 사용하여 웹 서비스를 작성하는 방법의 예입니다. 이 예제에서는 WebOb 및 simplejson JSON 라이브러리를 사용하여 JSON-RPC 끝점을 만드는 방법을 보여 주며 있습니다. 또한 WSGIProxy를 사용하여 WebOb를 클라이언트 라이브러리로 사용하는 방법도 보여 줄 수 있습니다. 이제 RPCClient.cs 및 RPCServer.cs 대한 전체 예제 소스 코드(기본 예외 처리 포함)를 살펴보겠습니다. 기본 RPC 응용 프로그램 개발 및 간단한 예제는 자습서 항목을 참조하십시오. 인터페이스 설명 언어의 현대적인 예는 구글의 프로토콜 버퍼 .proto 파일입니다. 원격 코드는 다른 사용자 및 호출자와 다른 권한으로 실행됩니다. 실제로 원격 호출은 호출자보다 더 많거나 적은 권한으로 실행될 수 있습니다. 이는 원칙적으로 구성 요소가 최소 권한으로 작동하도록 하여 시스템의 보안을 향상시키는 데 사용할 수 있습니다. 안타깝게도 원치 않는 작업을 수행하기 위해 RPC 메커니즘을 전복할 수 없도록 보안 문제를 신중하게 평가해야 합니다. 예를 들어 RPC 구현은 연결된 클라이언트가 데이터의 하위 집합에 대한 작업의 하위 집합이 아니라 모든 작업을 수행하도록 암시적으로 신뢰할 수 있습니다. 원격 프로시저 호출. RPC는 다른 컴퓨터에서 프로시저(함수)를 실행할 수 있다는 생각입니다.

실제로 프로시저는 동일한 컴퓨터에서 실행될 수 있지만 다른 컨텍스트(예: 서로 다른 사용 권한 및 수명 주기가 다른 사용자)에 있을 수 있습니다. 구조체를 마샬링하려면 직렬화해야 하는 필드를 결정합니다. 모든 데이터 항목을 보낼 필요는 없습니다(예: 일부 항목은 특정 RPC와 관련이 없거나 서버가 존재하는 다른 데이터 항목에서 다시 계산할 수 있음). 이 예제에서는 JSON-RPC를 제시하지만 JSON-RPC를 보증하는 것은 아닙니다. 사실 나는 JSON-RPC를 좋아하지 않는다. 그것은 불필요 하 게 un-RESTful, 그리고 XML-RPC에 너무 밀접 하 게 모델링. 좋은 프로그래머는 테스트부터 시작합니다. 그러나 적어도 우리는 시험으로 끝날 것입니다. 우리는 우리의 테스트에 대 한 doctest를 사용 합니다. 테스트는 문서/json 예제 코드/test_jsonrpc.txt에 있으며 문서/json 예제 코드/test_jsonrpc.py로 실행할 수 있습니다.

다음과 같은 개념: 강력한 RPC 스텁 코드는 네트워크 오류 및 버전 관리를 지능적으로 처리해야 합니다. 예를 들어 서버는 여전히 스텁 코드의 초기 버전을 실행 중인 클라이언트의 요청을 처리해야 할 수 있습니다. 스텁 코드는 원격 프로시저 호출을 수행하는 복잡성을 숨기는 데 필요한 코드입니다. 스텁 코드의 역할 중 하나는 필요한 데이터를 바이트 스트림으로 원격 서버로 보낼 수 있는 형식으로 마샬링하는 것입니다. 이 자습서에서는 RabbitMQ를 사용하여 RPC 시스템인 클라이언트와 확장 가능한 RPC 서버를 빌드합니다. 배포할 가치가 있는 시간이 많이 걸리는 작업이 없기 때문에 Fibonacci 번호를 반환하는 더미 RPC 서비스를 만들 것입니다. 기본 개념은 빈 요청: 원격 프로시저가 인터페이스를 통해 명명된다는 것입니다. 인터페이스는 인수의 형식과 번호를 설명하는 특정 서비스를 고유하게 식별합니다. 프로그래밍 languauges에서 형식 정의와 목적이 유사합니다.

이러한 기술의 대부분은 RESTful 서비스와 함께 더 잘 사용되므로 자체 프로토콜을 구현하는 경우 해당 방향을 생각해 보십시오. 2. RPC는 성능을 향상시키기 위해 많은 프로토콜 계층을 생략하는 경우가 많습니다. 프로그램이 RPC를 자주 호출할 수 있기 때문에 성능이 조금이라도 향상되는 것도 중요합니다. __import__(모듈)을 사용하여 모듈을 가져오지만 반환 값은 변덕스여 있습니다.