XML 바이너리 최적화 패키지

XML-binary Optimized Packaging

XML-Binary Optimized Packaging(XOP; XML 바이너리 최적화 패키징)은 바이너리 데이터를 포함XML 정보 세트(infoset)의 시리얼화 및 XML 정보 세트에의 역직렬화를 위해 정의된 메커니즘입니다.

혜택들

XOP를 사용하면 XML 시리얼라이저를 통하지 않고 XML Infoset의 바이너리 데이터 부분을 시리얼화할 수 있습니다.XML Infoset의 XML 직렬화는 텍스트 기반이므로 모든 이진 데이터는 base64를 사용하여 인코딩해야 합니다.XOP를 사용하면 XML Infoset에서 바이너리 데이터를 추출하여 XML Infoset에 바이너리 데이터가 포함되지 않고 바이너리 데이터가 다르게 직렬화될 수 있으므로 이 문제를 방지할 수 있습니다.

따라서 XOP는 시리얼라이제이션의 사이즈를 줄일 수 있습니다(base64 인코딩의 오버헤드가 약 33%이므로).또한 (실장 방법에 따라) 처리 효율을 높일 수 있습니다.이 크기가 커지면 데이터를 전송하거나 저장하는 데 추가 리소스가 필요합니다.

비용.

XOP는 다른 수준의 처리를 도입합니다.따라서 복잡성과 처리 오버헤드가 증가합니다.

XOP 패키지의 표현에 따라 오버헤드가 발생합니다.이 값은 이진 데이터가 클 때는 무시할 수 있지만 이진 데이터가 작을 경우에는 유의할 수 있습니다.

작동

XOP는 단일 XML Infoset에서 작동합니다.

원래의 XML Infoset의 바이너리 부분이 추출되어 「XOP Infoset」(기본적으로 외부 참조로 대체된 바이너리 부분이 있는 원래의 XML Infoset)이 남습니다.XOP Infoset의 참조는 "xop:포함" 요소.XOP Infoset과 추출된 콘텐츠를 "XOP 패키지"라는 표현으로 직렬화할 수 있습니다.XOP 패키지는 전송 또는 저장할 수 있습니다.

XML Infoset을 재구성하기 위해 XOP 패키지는 XOP Infoset과 추출된 콘텐츠로 역직렬화되고 추출된 콘텐츠는 XML Infoset으로 돌아갑니다.

XOP 패키지

XOP는 다양한 패키징 메커니즘과 함께 사용할 수 있습니다.패키징 메커니즘은 XOP Infoset 및 바이너리 청크의 표현 방법을 정의합니다.

XOP 사양은 패키징 메커니즘으로 MIME을 사용하는 방법을 정의합니다.MIME과 함께 사용할 경우 XOP Infoset은 루트 MIME 부분에서 XML로 표시되고 이진 청크는 다른 MIME 부분에서 표시됩니다.이러한 다른 MIME 부품은 바이너리 데이터로 시리얼화될 수 있으므로 XML Infoset 내에 남아 있는 경우 base64로 인코딩할 필요가 없습니다.

XOP는 MIME 패키징 메커니즘의 사용을 요구하지 않으므로 다른 패키징 메커니즘을 사용할 수 있습니다.

SOAP 웹 서비스에서의 사용 현황

일반적으로 XOP는 MTOM을 사용한SOAP 메시지를 나타내기 위해 사용되므로 MIME 패키징 메커니즘이 가장 널리 사용됩니다.

예를 들어 다음과 같습니다.

MIME 버전: 1.0 Content-Type: Multipart/Related; boundary=MIME_boundary;... --MIME_boundary Content-Type: application/xop+xml;
...
<Soap: Envelope> ...<고객명:본문> ...<m: photo xmlmime: contentType="image/png"> <xop:xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:http://example.org/me.png"/> </m: photo> 포함
...
--MIME_boundary Content-Type: image/png Content-Transfer-Encoding: binary Content-ID: <http://example.org/me.png>
// png의 바이너리 옥텟

「 」를 참조해 주세요.

레퍼런스

외부 링크