다음을 통해 공유


Serialization Services

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

메모

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

 

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

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

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

다음 항목에서는 Microsoft RPC에서 지원하는 serialization 서비스에 대해 설명합니다.