2014-05-22 2 views
0

나는 학생이며 현재 DDS를 통해 파일을 전송하는 방법을 연구 중이다. 우분투 터미널에서 dds 버전 6.3을 실행하고 성공적으로 게시 및 가입했습니다. 문제는 내가 메시지를 편집하고 싶습니다. 마찬가지로 메시지의 파일을 전송하려고합니다. 저를 도울 수있는 사람이 있습니까? 그것은 크게 감사 할 것입니다DDS 데이터 배포 서비스 opensplice

답변

0

이 답변은 opensplice 특정 아니, 그것은 일반적인 DDS입니다.

  1. "메시지"를 편집하는 개념은 없습니다. 메시지가 없습니다 (이것은 DDS 개념/용어 공간에 있음). "보낸 정보 패킷"은 주제에 있으며 이 키순 주제 인 경우 해당 항목의 인스턴스 또는 해당 항목의 인스턴스 샘플 중 하나입니다.

메시지를 보내지 않고 인스턴스를 게시하고 있습니다. 인스턴스를 편집하려면 인스턴스를 편집하고 다시 게시하십시오. 이 다시 게시 된 인스턴스는 원래 게시자 엔티티에서 가져온 것일 수도 있고, 수신 한 구독자에서 가져온 것일 수도 있고 편집 한 다음 다시 게시 한 것일 수도 있습니다.

  1. 파일을 전송하려면 파일 전송 프로그램 (ftp, tftp, sftp 등)을 사용하십시오. 시스템 A는 시스템 B가 유지 보수하는 파일을 필요로합니다. 시스템 A는 요청을 발행하고 시스템 B는 파일의 SFTP 전송을 설정하고 실행 한 다음 '작업 완료'인스턴스를 게시합니다.

의사 IDL :

enum ObjectiveState { 
    OS_Desire, // "I need this" 
    OS_Can,  // "I am able to supply this" 
    OS_Can_Not, // "I am not able to supply this" 
    OS_In_Process, // "I am doing this" 
    OS_Complete, // "I did this" 
    OS_Failed,  // "Tried, but unable to complete, try again maybe?" 
    OS_PermanentFail // "Tried, but can't complete." 
}; 

struct FileTxReq { 
    long long reqid; //@key 
    DestinationNode dest; // idl not supplied, some GUID thing 
    string<256> sourceUri; 
    string<256> destUri; 
    ObjectiveState state; 
}; 

시스템 A는 다음 FileRequestTopic에 샘플을 게시 할 것입니다 :이 파일 저장소를 가지고 있기 때문에

reqid: 0x1234 
dest: {systemA} 
sourceUri: "/store/publicfiles/theImageFile.jpg" 
destUri:  "/Users/me/drop/theImageFile.jpg" 
state: OS_Desire 

시스템 B는 FileRequestTopic에 가입 할 것입니다. 그것은을 찾습니다 요청 된 URI를 발견하고,

reqid: 0x1234 (note this is the same reqid as received) 
dest: {systemA} (note this is also copied from the received instance) 
sourceUri: "/store/publicfiles/theImageFile.jpg" (also the same) 
destUri:  "/Users/me/drop/theImageFile.jpg" (also the same) 
state: OS_Can 

시스템 B는 SFTP 전송을 시작하고 위와 같이 발행하지만, 상태 지금 "OS_In_Process"에 게시합니다. sftp가 완료되면 "OS_Complete"(또는 두 개의 "OS_Failed"상태 중 하나) 샘플을 게시합니다.

이 질문은 1 년 전의 질문이지만, 사람들이 DDS를 사용하여 수행 할 수있는 방법이나 DDS 개념 공간에서 어떻게 보는지에 대해 머리를 맞대는 것은 여전히 ​​도움이 될 수 있습니다.