#거래소 & Koscom 정보분배 Tcp데이타 수신및 처리

 

1. 수신받는 쪽이 서버입니다.

    1.1 거래소 & Koscom은 데이타를 송신하는 역할을 합니다.

    1.2 Ack데이타가 없다.(무조건 수신만 받는 서버의 역할을 담당합니다.) 

    1.2.1 다른 서버&클라이언트 구조와 다르게, Ack데이타가 존재하지 않으므로 수신하는 서버의 하드웨어 스펙과
    수신프로그램의 성능이 중요합니다.

    1.2.2 송신프로그램에서 1000 Record 라는 데이타를 주었는데, 수신프로그램에서

    1000 Record 데이타를 수신 못한다면 수신서버는 제 역할을 못한다고 할수 있습니다.

    1.3 수신서버에서 데이타를 못받게된다면, 송신서버(거래소 & Koscom 정보분배)에서는
    Error를 결과값으로 받게됩니다.

    1.4 Error를 결과값으로 받게되면, 송신서버(거래소 & Koscom 정보분배)담당자는
    연락을 취하는경우가 보통입니다.

    1.5 간략하게 정리하자면, 송신서버(거래소 & Koscom 정보분배)에서는 send라는 함수만 사용하고

    1.6 수신서버에서는 recv함수만 사용하면 되는것입니다.

 

2. 수신받는 데이타가 하나의 레코드가 아닐수 있습니다.

    2.1 최소 1개 레코드에서 n개의 레코드가 될수 있습니다.(호가여러개, 혹은 호가와 체결이 결합되어진 여러개)

    2.2 물론 레코드와 레코드를 분리하는 방법은 수신패킷 내부에 포함되어 있습니다.

 

3. 레코드와 레코드 사이의 구별하는 패킷분리 인자가 보통 3개 존재합니다.

    3.1 0xff, 0x0d, 0x0a 3개의 char변수를 기반으로 분리합니다.

 

4. 레코드한개를 분리해서 처리하도록 합니다.

    4.1 여러개의 레코드에서 한개의 레코드를 추출해서, 처리를 합니다.

        4.1.1 호가 레코드, 1종목 처리

        4.1.2 체결 레코드, 1종목 처리

    4.2 추출한 레코드를 수신프로그램에서 동시에 처리하는것은 바람직 하지 않습니다.

        4.2.1 주로 Queue를 통해서 전송해서 Queue를 읽어들이는 처리프로그램을 따로 작성해야 합니다.

    4.3 Queue통해서 읽어들인 레코드는 주식로직을 통해서 처리합니다.

    4.4 주식로직에 대한 부분은 너무 방대하므로 여기서는 SKIP합니다.

    4.5 수신구조체가 필요합니다.

    4.6 처리구조체가 필요합니다.(수신된 데이타를 전부 보관하는건 비효율적이라고 생각합니다.)

    4.6.1 화면에서 필요한 데이타를 기획해서, 처리구조체를 정의하면 됩니다.

 

5. 처리되어진 데이타는 저장소에 보관합니다.(대량의 데이타이고 빠른 조회를 위해서 메모리 기반으로 많이 저장소를 선택합니다.)

    5.1 Shared Memory가 될수 있습니다.

    5.2 DataBase가 될수 있습니다.

    5.3 File가 될수 있습니다.

 

6. 저장되어진 데이타를 조합해서, 클라이언트로 보내주면,거래소 & Koscom 정보분배 Tcp데이타를 외부에서 볼수 있습니다.

    6.1 Web
    (Request & Response <-> Web Server <-> Was(Tomcat) <-> JNI <-> Jni FrameWork <-> Memory In Server)

    6.2 HTS

    6.3 MTS

 

7. 업무볼륨

    7.1 1-5번까지의 부분은 서버의 역할중에서 10%정도 볼륨이며

    7.2 5-6번까지의 부분이 나머지 90%의 역할을 담당합니다.

 

 

더욱 궁금한부분은 xterm92@naver.com으로 연락부탁드립니다.

+ Recent posts