다음을 통해 공유


Serialization Services

Microsoft RPC는 데이터를 인코딩하고 디코딩하는 두 가지 메서드를 지원하며, 이를 통칭 하여 데이터 직렬화라고 합니다. Serialization은 사용자가 제어하는 버퍼에서 데이터가 마샬링되고 마마샬링되지 않음을 의미합니다. 이는 스텁 및 RPC 런타임 라이브러리가 마샬링 버퍼를 완전히 제어하고 프로세스가 투명한 RPC의 기존 사용과 다릅니다. 영구 미디어, 암호화 등의 스토리지에 버퍼를 사용할 수 있습니다. 데이터를 인코딩할 때 RPC 스텁은 데이터를 버퍼로 마샬링하고 버퍼를 사용자에게 전달합니다. 데이터를 디코딩할 때 마샬링 버퍼에 데이터가 들어 있는 마샬링 버퍼를 제공하고 데이터는 버퍼에서 메모리로 마스케일링되지 않습니다. 프로시저 또는 형식을 기준으로 직렬화할 수 있습니다.

참고

절임이라는 용어는 일반적으로 개발자들 사이에서 serialization을 설명하는 데 사용됩니다. 실제로 Windows SDK 샘플에는 RPC 직렬화 샘플 프로그램을 유지하는 pickle 이라는 디렉터리가 포함되어 있습니다.

 

Serialization은 다른 용도로 데이터를 마샬링하고 구분 해제하기 위해 RPC 메커니즘을 활용합니다. 예를 들어 여러 I/O 작업을 사용하여 개체 그룹을 스트림으로 직렬화하는 대신 애플리케이션은 여러 유형의 여러 개체를 버퍼로 직렬화한 다음 전체 버퍼를 단일 작업으로 작성하여 성능을 최적화할 수 있습니다. serialization 핸들을 조작하는 함수는 사용 중인 serialization 형식과 독립적입니다.

또 다른 예로, RPC 외에 네트워크 전송 메커니즘을 사용해야 하는 경우(예: Microsoft Windows 소켓(Winsock)) RPC 직렬화를 사용하면 프로그램에서 데이터를 버퍼로 마샬링한 다음 Winsock을 사용하여 이 데이터를 전송하는 함수를 호출할 수 있습니다. 애플리케이션이 데이터를 수신하면 RPC 직렬화 메커니즘을 사용하여 Winsock 루틴으로 채워진 버퍼에서 데이터를 분리할 수 있습니다. 이렇게 하면 RPC 스타일 애플리케이션의 많은 이점을 제공하며, 동시에 RPC가 아닌 전송 메커니즘을 사용할 수 있습니다.

네트워크 통신과 관련이 없는 목적으로 serialization을 사용할 수도 있습니다. 예를 들어 RPC 인코딩 함수를 사용하여 데이터를 버퍼로 마샬링하면 다른 애플리케이션에서 사용할 파일에 저장할 수 있습니다. 암호화할 수도 있습니다. 데이터베이스에 데이터의 하드웨어 및 운영 체제 독립적 표현을 저장하는 데 사용할 수도 있습니다.

다음 topics Microsoft RPC에서 지원하는 직렬화 서비스에 대해 설명합니다.