서버에 대한 명령 실행
클라이언트 응용 프로그램이 설치되어 있는 로컬 컴퓨터가 서버 응용 프로그램(EK80 프로그램)이 설치되어 있는 EK80 프로세서 유닛에 연결되면 특정 메시지를 통해 명령이 실행됩니다.
노트
이러한 맥락에서 EK80 프로세서 유닛을 "서버"라고 부르고, EK80 프로그램을 "서버 응용 프로그램"이라고 부를 수 있습니다.
그리고 로컬 컴퓨터에서 실행할 목적으로 직접 개발한 프로그램을 "클라이언트 응용 프로그램"이라고 일컫습니다.
Request
서버 응용 프로그램의 유효한 명령 대상 중 하나에게 명령을 실행하려면 Request 메시지를 서버 응용 프로그램(EK80 프로그램)에게 전송해야 합니다. 명령 요청에서 주요 요소를 예로 들면 아래와 같습니다.
struct Request
  {
  char Header[4]; // ”REQ\0”
  char MsgControl[22]; // Sequence no, Current msg no, Total msg no
  char MsgRequest[1400]; // XML based command request
  };
MsgControl 필드는 다음과 같은 영역으로 구성됩니다.
1 시퀀스 번호: 서버로 전송되는 각 요청 메시지의 순차 번호
2 현재 메시지: 요청을 여러 UDP 메시지로 분할해야 하는 경우 저장되는 현재 메시지
3 전체 메시지: 현재 요청을 구성하고 있는 전체 메시지 수
MsgControl의 내용이 ”2,1,3\0”이라면 현재 UDP 메시지가 클라이언트에서 서버로 전송된 두 번째 요청 메시지이며, 현재 메시지가 총 3개의 UDP 메시지로 구성된 요청 중 1번 메시지라는 것을 의미합니다.
MsgRequest 내용은 현재 명령 대상에 따라 다르며, 자세한 내용은 나중에 설명하겠습니다. 지금은 요청 형식이 XML 기반이며, 요청할 때는 명령 대상, 명령 대상에 대한 메소드, 그리고 현재 메소드와 관련된 입력 파라미터를 지정해야 한다는 정도면 충분합니다. 일반적인 요청 구조는 아래와 같습니다.
<request>
  <clientInfo>
    <cid>clientid</cid>
    <rid>requestid</rid>
  </clientInfo>
  <type>invokeMethod</type>
  <targetComponent>xx</targetComponent>
  <method>
    <yy>
      <zz></zz>
    </yy>
  </method>
</request>
여기에서,
•  clientid = 클라이언트 ID
•  requestid = 요청 ID
•  xx = 현재 명령 대상의 이름
•  yy = 현재 메소드 이름
•  zz = 현재 메소드의 파라미터
Response
서버 응용 프로그램(EK80 프로그램)은 아래와 같은 Response 메시지로 응답합니다.
struct Response
  {
  char Header[4]; // ”RES\0”
  char Request[4]; // ”REQ/0”
  char MsgControl[22]; // Sequence no, Current msg no, Total msg no
  char MsgResponse[1400]; // XML based response text
      // containing result of command request
  };
Response 내용은 현재 명령 대상에 따라 다르며, 자세한 내용은 나중에 설명하겠습니다. 지금은 응답 형식이 XML 기반이며, 응답 메시지에 결과, 오류 메시지, 그리고 현재 메소드와 관련된 출력 파라미터가 입력된다는 정도면 충분합니다. 일반적인 응답 구조는 아래와 같습니다.
<response>
  <clientInfo>
    <cid dt="3">clientid</cid>
    <rid dt="3">requestid</rid>
  </clientInfo>
  <fault>
    <detail>
    <errorcode dt="3">0</errorcode>
    </detail>
  </fault>
  <yyResponse>
    <zz dt=”3”></zz>
  </yyResponse>
</response>
여기에서,
•  clientid = 클라이언트 ID
•  requestid = 요청 ID
•  error code = 작업 결과 0 = 작업 성공
•  yy = 현재 메소드 이름
•  zz = 현재 메소드의 파라미터