문제

코르바 관련 질문이 있습니다.

내 Java 응용 프로그램에서 나는 typedef 시퀀스 데이터;

이제 이 데이터 벡터를 가지고 놀았습니다.내가 Corba 사양에 맞다면 시퀀스는 xs:base64Binary 또는 xs:hexBinary로 변환됩니다.불투명 유형이어야 하므로 마샬링을 사용해서는 안 됩니다.

나는 다양한 IDL 스타일을 시도했습니다.

void Get(out Data d);
Data Get();

하지만 내가 본 것은 Corba를 사용하여 데이터를 이동하는 것이 소켓을 직접 사용하는 것보다 훨씬 느리다는 것입니다.약간의 오버헤드가 있어도 괜찮지만 데이터가 아직 마샬링된 것처럼 보입니다.

마샬링을 억제하기 위해 오브를 어떻게든 구성해야 합니까, 아니면 뭔가를 놓쳤습니까?

도움이 되었습니까?

해결책

1) 아니요. 구성할 필요가 없습니다.2) 당신은 아무것도 놓치지 않았습니다.

CORBA가 모든 것을 마샬링하므로 옥텟 시퀀스도 마샬링됩니다. 항상 있는 그대로(바이트 시퀀스로) 마샬링됩니다..마샬링은 어떤 방식으로든 변경해야 한다는 의미는 아닙니다.CDR 인코딩은 객체 직렬화를 위해 매번 사용됩니다.이 프로세스를 마샬링이라고 합니다.

그런데 SUN의 java orb나 JacORB를 사용하시나요? 모든 ORB에는 서로 다르거나 추가 속성 설정이 있을 수 있습니다.(하지만 그러면 안 됐는데...)

CORBA 3.0.3 사양에 대한 Octect 정의:"0 - 255 범위를 벗어나는 옥텟 상수 값은 컴파일 시간 오류를 발생시킵니다.[...] 옥텟 유형은 통신 시스템에 의해 전송될 때 어떤 변환도 거치지 않도록 보장되는 8비트 수량입니다."

다음에서 편집 이탤릭체

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