KR101535979B1 - 인터페이스 서비스 방법 및 인터페이스 서버 - Google Patents

인터페이스 서비스 방법 및 인터페이스 서버 Download PDF

Info

Publication number
KR101535979B1
KR101535979B1 KR1020130071235A KR20130071235A KR101535979B1 KR 101535979 B1 KR101535979 B1 KR 101535979B1 KR 1020130071235 A KR1020130071235 A KR 1020130071235A KR 20130071235 A KR20130071235 A KR 20130071235A KR 101535979 B1 KR101535979 B1 KR 101535979B1
Authority
KR
South Korea
Prior art keywords
message
memory
server
file
tree structure
Prior art date
Application number
KR1020130071235A
Other languages
English (en)
Other versions
KR20140147986A (ko
Inventor
이형주
Original Assignee
주식회사 엘지씨엔에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지씨엔에스 filed Critical 주식회사 엘지씨엔에스
Priority to KR1020130071235A priority Critical patent/KR101535979B1/ko
Publication of KR20140147986A publication Critical patent/KR20140147986A/ko
Application granted granted Critical
Publication of KR101535979B1 publication Critical patent/KR101535979B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

인터페이스 서비스 방법은 복수의 서버들 사이에서 메시지를 처리하는 인터페이스 서버에서 수행되고, 제1 서버로부터 제1 메시지를 수신하는 단계, 상기 제1 메시지를 휘발성 메모리에 저장하는 단계, 가상 타이머로부터 획득되고 특정 기준 이상의 해상도를 가지는 시간 스탬프를 통해 비휘발성 메모리에 파일경로와 파일이름을 생성하는 단계 및 상기 저장된 메시지를 해당 파일에 저장하는 단계를 포함한다.

Description

인터페이스 서비스 방법 및 인터페이스 서버{METHOD OF INTERFACING SERVICE AND INTERFACE SERVER}
본 발명은 인터페이스 서버에 관한 것으로, 보다 상세하게는, 인터페이스 서버를 구조화 하여 효율을 향상시키는 기술에 관한 것이다.
인터페이스(Interface) 서버는 복수의 서버 사이를 연계한다. 인터페이스 서버는 서로 다른 서버간의 메시지 전송이 필요한 경우 각각의 서버의 특성을 반영하여 해당 메시지를 연계하여 전송한다.
한국공개특허 제10-2009-0058167호는 인터페이스 서버의 사용자 단말 인증 방법에 대한 발명으로, 인터페이스 서버에서 응용 서비스 제공 서버로 네트워크에 대한 인터페이스를 제공하는 기술을 개시한다.
한국공개특허 제10-2004-0099436호는 표준 인터페이스 서버 구동 시스템에 대한 발명으로, 표준 인터페이스 서버를 탑재하여 내부 데이터를 표준에 맞도록 클라이언트에게 제공하여 수리 및 추가 관리가 용이한 기술을 개시한다.
이러한 선행 기술들은 인터페이스 서버에서 메시지 저장을 하나의 파일 또는 하나의 폴더로 관리하는 방식으로 인터페이스 서버의 메시지 관리 또는 검색에 있어서 높은 효율을 제공하지 못한다.
한국공개특허 제10-2009-0058167호 한국공개특허 제10-2004-0099436호
본 발명은 쓰레드(Thead) 넘버와 시간정보를 기초로 형성된 트리 구조를 가진 인터페이스 서비스 방법 및 인터페이스 서버를 제공하고자 한다.
본 발명은 수신되는 인바운드(Inbound) 메시지의 수신 속도에 따라 트리 구조의 해상도를 결정하여 해당 메시지를 저장하는 인터페이스 서비스 방법 및 인터페이스 서버를 제공하고자 한다.
본 발명은 트리 구조에 저장된 아웃바운드(Outbound) 메시지를 일정 순서에 따라 정렬하여 아웃바운드 서버에 빠르고 정확하게 전달할 수 있는 인터페이스 서비스 방법 및 인터페이스 서버를 제공하고자 한다.
본 발명은 아웃바운드 서버에 아웃바운드 메시지 송신에 실패한 경우 해당 메시지를 별도로 관리할 수 있는 인터페이스 서비스 방법 및 인터페이스 서버를 제공하고자 한다.
실시예들 중에서, 인터페이스 서비스 방법은 복수의 서버들 사이의 인터페이스 서버에서 데이터를 처리하고, 상기 복수의 서버들 중 적어도 하나의 제1 서버로부터 적어도 하나의 제1 데이터를 수신하는 단계, 상기 제1 데이터를 제1 메모리에 기록(write)하는 단계, 제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계 및 상기 제1 데이터를 상기 폴더 및 파일에 저장하는 단계를 포함한다.
인터페이스 서비스 방법은 상기 제1 서버로부터 메시지를 수신하는 단계 이전에 상기 제2 메모리에 쓰레드(Thread)별 작업 공간을 생성하는 단계를 더 포함할 수 있다.
상기 제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계는 상기 복수의 서버들로부터 특정 메시지에 대한 검색요청이 수신되면 상기 특정 메시지의 수신 시간을 분석하여 상기 제2 메모리를 검색하는 단계를 더 포함할 수 있다.
상기 제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계는 상기 현재 시각을 특정 기준 이상의 해상도로 분해하는 단계, 상기 분해된 현재 시각의 제1 부분을 상기 폴더에 대한 파일경로로 결정하는 단계 및 상기 분해된 현재 시각의 제2 부분을 상기 파일에 대한 파일이름으로 결정하는 단계를 더 포함할 수 있다. 여기에서, 상기 해상도는 하기의 [수학식]에 의해 결정될 수 있다.
[수학식]
N = 7 + {Min(10^k <Avg_M< 10^(k+3))/3} (k=0,3,6,9...)
N: 해상도
Avg_M: 초당 수신 메시지 개수
Min(10^k < X < 10^(k+3)): X가 (10^k ≤ X < 10^(k+3)) 범위에 있을 때의 최소 k값
상기 파일경로는 상위 폴더에 100개 이내의 하위 폴더 또는 파일을 저장할 수 있다.
인터페이스 서비스 방법은 상기 해당 파일이 생성되면 상기 제2 메모리에서 있는 가장 오래된 파일을 제2 메시지로 상기 제1 메모리에 저장하는 단계 및 상기 저장된 제2 메시지를 제2 서버에 송신한 다음 상기 가장 오래된 파일을 상기 제2 메모리로부터 삭제하는 단계를 더 포함할 수 있다.
상기 가장 오래된 파일을 제2 메시지로 상기 제2 메모리에 저장하는 단계는 상기 제2 메모리의 파일을 상기 현재 시각의 내림차순으로 정렬하고 정렬된 내림차순 리스트를 상기 제1 메모리에 저장하는 단계 및 상기 정렬된 내림차순 리스트의 최상위 파일을 읽어서 상기 제2 메모리에 저장하는 단계를 더 포함할 수 있다.
상기 저장된 제2 메시지를 제2 서버에 송신하는 단계는 일정 송신 횟수 또는 일정 시간 동안 상기 제2 서버에서 송신 성공 메시지가 수신되지 않는 경우 상기 제2 메시지를 송신 실패 폴더에 저장하는 단계를 더 포함할 수 있다.
상기 저장된 제2 메시지를 제2 서버에 송신하는 단계는 상기 제2 서버에서 송신 성공 메시지가 수신되면 상기 제1 서버에 송신 성공 메시지를 송신하는 단계를 더 포함할 수 있다.
상기 가장 오래된 파일을 제2 메시지로 상기 휘발성 메모리에 저장하는 단계는 상기 제2 메모리에 저장된 순서와 무관하게 상기 복수의 서버들에 의해 요청된 파일을 상기 제2 메시지로 저장하는 단계를 더 포함할 수 있다.
실시예들 중에서, 인터페이스 서버는 적어도 하나의 제1 서버로부터 적어도 하나의 제1 데이터를 수신하는 데이터 수신부 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 트리 구조 생성부 및 상기 제1 데이터를 상기 트리 구조 생성부에 의해 생성된 폴더 및 파일에 저장하는 인터페이스 제어부를 포함한다.
인터페이스 서버는 상기 제1 데이터를 기록(write)하는 제1 메모리 및 상기 제1 데이터를 상기 트리 구조 생성부에 의해 생성된 폴더 및 파일에 저장하는 제2 메모리를 더 포함할 수 있다.
상기 트리 구조 생성부는 상기 제1 서버로부터 메시지를 수신하기 전에 상기 제2 메모리에 쓰레드(Thread)별 작업 공간을 생성할 수 있다.
상기 인터페이스 제어부는 상기 복수의 서버들로부터 특정 메시지에 대한 검색요청이 수신되면 상기 특정 메시지의 수신 시간을 분석하여 상기 제2 메모리를 검색하는 단계를 더 포함할 수 있다.
상기 트리 구조 생성부는 상기 현재 시각을 특정 기준 이상의 해상도로 분해하고, 상기 분해된 현재 시각의 제1 부분을 상기 폴더에 대한 파일경로로 결정하며, 상기 분해된 현재 시각의 제2 부분을 상기 파일에 대한 파일이름으로 결정할 수 있다.
상기 파일경로는 상위 폴더에 100개 이내의 하위 폴더 또는 파일을 저장할 수 있다.
상기 인터페이스 제어부는 상기 해당 파일이 생성되면 상기 제2 메모리에서 있는 가장 오래된 파일을 제2 메시지로 상기 제1 메모리에 저장하고 상기 저장된 제2 메시지를 제2 서버에 송신한 다음 상기 가장 오래된 파일을 상기 제2 메모리로부터 삭제할 수 있다.
상기 인터페이스 제어부는 상기 제2 메모리의 파일을 상기 시간 스탬프의 내림차순으로 정렬하고 정렬된 내림차순 리스트를 상기 제1 메모리에 저장하고 상기 정렬된 내림차순 리스트의 최상위 파일을 읽어서 상기 제2 메모리에 저장할 수 있다.
상기 인터페이스 제어부는 일정 송신 횟수 또는 일정 시간 동안 상기 제2 서버에서 송신 성공 메시지가 수신되지 않는 경우 상기 제2 메시지를 송신 실패 폴더에 저장할 수 있다.
상기 인터페이스 제어부는 상기 제2 서버에서 송신 성공 메시지가 수신되면 상기 제1 서버에 송신 성공 메시지를 송신할 수 있다.
상기 인터페이스 제어부는 상기 제2 메모리에 저장된 순서와 무관하게 상기 복수의 서버들에 의해 요청된 파일을 상기 제2 메시지로 저장할 수 있다.
본 발명의 일 실시예에 따른 인터페이스 서비스 방법과 이와 관련된 기술들은 인터페이스 서버에서 쓰레드(Thead) 넘버와 시간정보를 기초로 형성된 트리(Tree)구조에 인바운드 메시지를 저장하여 초경량 멀티 쓰레드에 의한 신뢰성 있는 메시지 처리가 가능하도록 할 수 있다.
본 발명의 일 실시예에 따른 인터페이스 서비스 방법과 이와 관련된 기술들은 트리 구조를 통해 서버 장애시 빠른 메시지 추적 및 검색이 가능하도록 할 수 있다.
본 발명의 일 실시예에 따른 인터페이스 서비스 방법과 이와 관련된 기술들은 트리 구조를 통해 메시지 보존 보장성, 메시지 가독성 및 메시지 검색성을 강화하여 안정적 메시지 처리를 가능하게 할 수 있다.
본 발명의 일 실시예에 따른 인터페이스 서비스 방법과 이와 관련된 기술들은 아웃바운드(Outbound) 메시지에 대한 재전송 보장성을 높이고, 송신 실패 메시지에 대해서는 별도로 편리하게 관리할 수 있다.
도 1은 본 발명의 일 실시예에 따른 인터페이스 서버 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 인터페이스 서버를 설명하는 블록도이다.
도 3은 인바운드 메시지 기록 과정을 설명하는 흐름도이다.
도 4는 아웃바운드 메시지의 읽기 과정을 설명하는 흐름도이다.
도 5는 비휘발성 메모리에 생성된 트리 구조를 예시하는 도면이다.
도 6은 아웃바운드 메시지 송신 과정을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 인터페이스 서버 시스템을 설명하는 도면이다.
도 1을 참조하면, 인터페이스 서버 시스템(100)은 복수의 서버들 및 적어도 하나 이상의 인터페이스(Interface) 서버(110)를 포함한다. 복수의 서버들 중 적어도 하나는 인바운드(Inbound) 서버(110)이고, 복수의 서버들 중 적어도 하나는 아웃바운드(Outbound) 서버(130)일 수 있다. 인바운드 서버(110)는 아웃바운드 서버(120)와 같거나 다를 수 있다.
인바운드 서버(110)는 인터페이스 서버(120)를 통해 아웃바운드 서버(130)에 송신할 메시지를 보유한다. 여기에서, 해당 메시지는 특정 규약의 형태로 구현되고 인터페이스 서버(120)에 의해 아웃바운드 서버(130)에서 인식될 수 있는 형태로 변환될 수 있다. 인바운드 서버(110)는 복수의 서버들로 구현될 수 있다. 즉, 복수의 인바운드 서버들(110)이 하나의 인터페이스 서버(120)에 네트워크를 통해 연결될 수 있다. 인바운드 서버(110)는 네트워크를 통해 인터페이스 서버(120)와 연결되며, 특정 전송 규약에 따라 해당 메시지가 송신될 수 있다.
인터페이스 서버(120)는 인바운드 서버(110)로부터 메시지를 수신하여 아웃바운드 서버(130)로 송신한다. 인터페이스 서버(120)는 해당 메시지를 아웃바운드 서버(130)에 의해 송신될 수 있는 형태로 변환하여 송신할 수 있다. 인터페이스 서버(120)는 해당 메시지의 단순 전송뿐만 아니라 메시지 전송에 대한 보장성을 확보할 수 있다. 즉, 인터페이스 서버(120)는 아웃바운드 서버(130)에 인바운드 서버(110)의 메시지를 일정 시간 안에 정확히 전송하였다는 보장성을 제공할 수 있다. 인터페이스 서버(120)는 해당 메시지를 휘발성 메모리 또는 비휘발성 메모리에 기록하여 처리할 수 있다. 인터페이스 서버(120)는 도 2를 참조하여 설명한다.
아웃바운드 서버(130)는 인터페이스 서버(120)로부터 인바운드 서버(110)의 메시지를 수신한다. 여기에서, 해당 메시지는 인터페이스 서버(120)에 의해 아웃바운드 서버(130)에서 인식될 수 있는 형태로 변환될 수 있다. 아웃바운드 서버(130)는 복수의 서버들로 구현될 수 있다. 즉, 복수의 아웃바운드 서버들(130)은 하나의 인터페이스 서버(120)에 네트워크를 통해 연결될 수 있다. 아웃바운드 서버(110)는 네트워크를 통해 인터페이스 서버(120)와 연결되며, 특정 전송 규약에 따라 해당 메시지가 송신될 수 있다. 일 실시예에서, 아웃바운드 서버(130)는 해당 메시지에 대한 수신 성공 메시지 또는 수신 실패 메시지를 인터페이스 서버(120)에 송신할 수 있다.
도 2는 도 1에 있는 인터페이스 서버를 설명하는 블록도이다.
도 2를 참조하면, 인터페이스 서버(120)는 메시지 수신부(210), 제1 메모리(220), 제2 메모리(230), 트리(Tree)구조 생성부(240), 파일 정렬부(250), 메시지 송신부(260) 및 인터페이스 제어부(270)를 포함한다.
메시지 수신부(210)는 인바운드 서버(110)로부터 메시지를 수신한다. 해당 메시지는 특정 규약의 형태로 구현될 수 있고, 아웃바운드 서버(130)로 송신하기 위해 다른 형태로 변환될 수 있다.
제1 메모리(220)는 메시지 또는 메시지 파일의 저장 리스트를 임시 저장한다. 제1 메모리(220)는 메시지 저장 또는 송신 처리 과정에서 발생할 수 있는 메시지 또는 저장 리스트의 유실을 방지한다.
일 실시예에서, 제1 메모리(220)는 휘발성 메모리로 구현될 수 있고, 제2 메모리(230)는 비휘발성 메모리로 구현될 수 있다.
제2 메모리(230)는 인바운드 서버(110)로부터 수신한 메시지(이하, 인바운드 메시지)를 트리(Tree) 형태로 저장한다. 트리 구조는 상위 폴더 및 하위 폴더와 하위 폴더 내부에 저장된 메시지 파일로 구성된다. 트리 구조는 인터페이스 서버(120) 내부의 가상 타이머로부터 획득된 시간정보를 기초로 형성될 수 있다. 제2 메모리(230)는 도 5를 참조하여 설명한다.
트리 구조 생성부(240)는 인바운드 메시지 저장을 위해 제2 메모리(230)에 트리 구조를 생성한다. 트리 구조 생성부(240)는 트리 구조를 생성하여 인터페이스 서버(120)가 대용량의 인바운드 메시지를 빠르고 효율적으로 처리하도록 할 수 있다. 트리 구조 생성부(240)는 도 3을 참조하여 설명한다.
파일 정렬부(250)는 아웃바운드 서버(130)에 송신할 트리 구조에 저장된 메시지(이하, 아웃바운드 메시지)를 저장된 시간의 내림차순으로 정렬한다. 정렬된 리스트는 제1 메모리(220)에 저장되어 아웃바운드 메시지를 읽는 과정에서 발생할 수 있는 데이터 유실을 방지한다. 파일 정렬부(250)은 도 4를 참조하여 설명한다.
메시지 송신부(260)는 아웃바운드 서버(130)에 아웃바운드 메시지를 송신한다. 메시지 송신부(260)는 특정 전송 규약에 따라 아웃바운드 메시지를 송신할 수 있다. 메시지 송신부(260)는 아웃바운드 메시지를 아웃바운드 서버(130)가 송신 가능한 형태로 변환하여 송신할 수 있다.
인터페이스 제어부(270)는 메시지 수신부(210), 제1 메모리(220), 제2 메모리(230) 및 메시지 송신부(260)의 동작 및 데이터 흐름을 제어한다. 인터페이스 제어부(270)는 인바운드 서버(110)로부터 수신한 메시지를 제2 메모리(230)에 쓰는 과정 및 제2 메모리(230)에 저장된 메시지를 읽는 과정에서의 데이터 흐름을 제어할 수 있다. 인터페이스 제어부(270)는 도 3 및 도 4를 참조하여 설명한다.
도 3은 인바운드 메시지를 트리 구조에 기록 과정을 설명하는 흐름도이다.
도 3에서, 메시지 수신부(210)는 인바운드 서버(110)로부터 인바운드 메시지를 수신한다(단계 S310). 인터페이스 제어부(270)는 인바운드 메시지를 제1 메모리(즉, 휘발성 메모리)(220)에 기록하여(단계 S320) 트리 구조 생성 과정에서 발생할 수 있는 인바운드 메시지 유실을 방지한다.
트리 구조 생성부(240)는 쓰레드 넘버와 현재 시각을 기초로 트리 구조의 폴더(들)를 생성하고(단계 S330) 최하위 폴더에 시간정보를 기초로 제2 메모리(즉, 비휘발성 메모리)(230)에 파일을 생성한다(단계 S340). 일 실시예에서, 현재 시각은 실제 시간에 해당하거나 또는 인터페이스 서버(120) 내부의 가상 타이머로부터 획득된 시간 정보를 통해 구현될 수 있다. 일 실시예에서, 트리 구조 생성부(240)는 현재 시각의 제1 부분을 폴더에 대한 파일경로로 결정할 수 있고, 현재 시각의 제2 부분을 파일에 대한 파일이름으로 결정할 수 있다.
인터페이스 제어부(270)는 인바운드 메시지를 제1 메모리(즉, 휘발성 메모리)(220)에서 읽어서(단계 S350) 트리 구조 생성부(240)에 의해 생성된 해당 파일에 저장한다(단계 S360). 인터페이스 제어부(270)는 일정 기간 동안에 저장된 메시지에 대해 자동으로 백업하고 필요에 따라 메시지를 검색하여 외부 서버에 송신할 수 있다.
일 실시예에서, 인터페이스 제어부(270)는 복수의 서버들(인바운드 서버 또는 아웃바운드 서버)로부터 특정 인바운드 메시지에 대한 검색요청을 수신하면 해당 메시지의 수신 시간을 분석하여 제2 메모리(즉, 비휘발성 메모리)(230)를 검색할 수 있다. 인터페이스 제어부(270)는 해당 메시지의 수신 시간을 년도, 월, 일, 시간 단위로 구분하여 분석하고, 분석된 정보를 기초로 트리 구조에서 시간 정보를 기초로 저장되어 있는 인바운드 메시지를 검색하여 복수의 서버들에 송신할 수 있다. 다른 일 실시예에서, 인터페이스 제어부(270)는 소스코드에 의해 메시지를 검색할 수 있다.
도 4는 아웃바운드 메시지의 읽기 과정을 설명하는 흐름도이다.
도 4에서, 파일 정렬부(250)는 트리 구조에 저장된 아웃바운드 메시지를 저장된 시간의 내림차순으로 정렬한다(단계 S410). 아웃바운드 메시지는 정렬된 리스트에 따라 순차적으로 아웃바운드 서버(130)으로 송신될 수 있다.
인터페이스 제어부(270)는 파일 정렬부(250)에 의해 정렬된 리스트를 제1 메모리(즉, 휘발성 메모리)(220)에 저장하여(단계 S420) 아웃바운드 메시지를 읽는 과정에서 발생할 수 있는 데이터 유실을 방지한다.
인터페이스 제어부(270)는 정렬된 리스트의 최상위 파일을 제2 메모리(즉, 비휘발성 메모리)에서 읽어서(단계 S430) 제1 메모리(즉, 휘발성 메모리)(220)에 저장한다(단계 S440).
일 실시예에서, 인터페이스 제어부(270)는 제2 메모리(즉, 비휘발성 메모리)(230)에 저장된 순서와 무관하게 복수의 서버들(인바운드 서버(110) 또는 아웃바운드 서버(130))에 의해 요청된 파일을 우선적으로 제1 메모리(즉, 휘발성 메모리)(220)에 저장하여 우선적으로 송신되도록 할 수 있다.
인터페이스 제어부(270)는 제1 메모리(즉, 휘발성 메모리)(220)에 저장된 아웃바운드 메시지를 읽고, 메시지 송신부(260)는 아웃바운드 메시지를 아웃바운드 서버(130)에 송신한다(단계 S450).
도 5는 비휘발성 메모리에 생성된 트리 구조를 예시하는 도면이다.
도 5에서, 트리 구조 생성부(240)는 인바운드 메시지가 수신되면 제2 메모리(즉, 비휘발성 메모리)(230)에 트리 구조를 생성할 수 있다. 트리 구조는 상위 폴더 및 하위 폴더와 하위 폴더 내부에 저장된 메시지 파일로 구성될 수 있다. 트리 구조는 쓰레드(Thread) 넘버와 현재 시각을 기초로 형성될 수 있다. 현재 시각은 기 설명한 바와 같이, 실제 시간에 해당하거나 또는 인터페이스 서버(120) 내부의 가상 타이머로부터 획득된 시간 정보로 구현될 수 있다.
보다 구체적으로, 트리 구조 생성부(240)는 현재 시각을 특정 기준 이상의 해상도로 분해할 수 있다. 즉, 여기에서, 해상도는 측정 가능한 시각에 대한 분해능력을 의미할 수 있다. 트리 구조 생성부(240)는 현재 시각의 제1 부분을 폴더에 대한 파일경로로 결정할 수 있고, 현재 시각의 제2 부분을 파일에 대한 파일이름으로 결정할 수 있다. 예를 들어, 현재 시각이 2012년 07월 24일 13시 54분 19.90116183475694973초에 해당하면, 폴더의 파일경로는 [2012-07-24-13-54-19-901]에 해당할 수 있고 파일이름은 2012-07-24-13-54-19-90116183475694973를 포함할 수 있다.
일 실시예에서, 트리 구조 생성부(240)는 쓰레드 넘버를 기초로 트리 구조의 최상위 폴더를 생성할 수 있다. 즉, 트리 구조 생성부(240)는 제2 메모리(즉, 비휘발성 메모리)(230)에 적어도 하나 이상의 쓰레드(Thread)에 대해 쓰레드별 작업 공간을 우선적으로 생성하여 프로세스 내에서 인바운드 메시지의 기록 효율을 향상시킬 수 있다. 트리 구조 생성부(240)는 특정 기준 이상의 해상도를 가지는 시간 스탬프를 통해 비휘발성 메모리에 파일경로와 파일이름을 생성할 수 있다. 예를 들어, 트리 구조 생성부(240)는 시간 스탬프의 해상도가 8인 경우에는 년도, 월, 일, 시간, 분, 초, 밀리 세컨드(Milisecond)에 해당하는 이름의 폴더(520 내지 580)를 각각 순차적으로 생성하고 마이크로 세컨드(Microsecond)에 해당하는 이름의 인바운드 메시지 저장 파일(590)을 생성할 수 있다. 트리 구조 생성부(240)는 시간 스탬프의 해상도가 9인 경우에는 년도에서 마이크로 세컨드까지에 해당하는 이름의 폴더를 각각 순차적으로 생성하고 나노세컨드(Nanosecond)에 해당하는 이름의 인바운드 메시지 저장 파일을 생성할 수 있다.
일 실시예에서, 해상도는 하기의 [수학식]에 의해 결정될 수 있다.
[수학식]
N = 7 + {Min(10^k < Avg_M < 10^(k+3))/3} (k=0,3,6,9...)
N: 해상도
Avg_M: 초당 수신 메시지 개수
Min(10^k < X < 10^(k+3)): X가 (10^k ≤ X < 10^(k+3)) 범위에 있을 때의 최소 k값
해상도(N)의 기본 값으로 주어진 7은 년도, 월, 일, 시, 분 및 초(Second)에 대응하는 폴더를 순차적으로 생성하고 밀리 세컨드(Milisecond)에 해당하는 이름의 인바운드 메시지 저장 파일을 생성하는 것을 의미한다. {Min(10^k <Avg_M< 10^(k+3)) /3}의 값은 초당 수신 인바운드 메시지 개수(Avg_M)에 따라 해상도(N)에 변화를 주는 값으로, 초당 수신 인바운드 메시지 개수(Avg_M)가 증가할수록 일정 비율로 증가하는 값이다. 예를 들어, 초당 수신 인바운드 메시지 개수(Avg_M)가 1,001개 라면, k값은 3으로 결정될 수 있고 해상도(N)은 8로 결정될 수 있다. 비슷한 방식으로, 초당 수신 인바운드 메시지 개수(Avg_M)가 1,000,001개 라면, k값은 6으로 결정될 수 있고 해상도(N)은 9로 결정될 수 있다.
일 실시예에서, 트리 구조 생성부(240)는 인바운드 메시지 저장 파일에 시간 해상도 2의 값을 설정할 수 있다. 예를 들어, 최하위 폴더가 밀리 세컨드를 기초로 생성된 경우, 최하위 폴더에 저장된 인바운드 메시지 저장 파일은 나노 세컨드(Nanosecond)를 기초로 생성될 수 있다.
다른 일 실시예에서, 트리 구조 생성부(240)는 하위 폴더 또는 인바운드 메시지 저장 파일을 저장하는 상위 폴더에 100개 이내의 하위 폴더 또는 파일을 저장하도록 하여 트리 구조의 효율을 최대화할 수 있다
도 6은 아웃바운드 메시지 송신 과정을 설명하는 흐름도이다.
인터페이스 제어부(270)는 송신할 아웃바운드 메시지를 제1 메모리(즉, 휘발성 메모리)(220)에 저장한다(단계 S610).
인터페이스 제어부(270)는 제1 메모리(즉, 휘발성 메모리)(220)에 저장된 아웃바운드 메시지를 읽고, 메시지 송신부(260)는 아웃바운드 메시지를 아웃바운드 서버(130)에 송신한다(단계 S620).
메시지 송신부(260)는 아웃바운드 서버(130)로부터 수신 성공 메시지를 수신할 때까지 계속적으로 아웃바운드 메시지를 송신한다(단계 S630).
일 실시예에서, 인터페이스 제어부(270)는 일정 송신 횟수 또는 일정 시간 동안 아웃바운드 서버에서 송신 성공 메시지를 수신할 수 없는 경우 송신 실패한 아웃바운드 메시지를 송신 실패 폴더에 별도로 저장하여 관리할 수 있다.
인터페이스 제어부(270)는 아웃바운드 서버(130)로부터 수신 성공 메시지를 송신한 경우 제2 메모리(즉, 비휘발성 메모리)(230)에 있는 전송한 아웃바운드 메시지가 저장된 파일을 삭제한다(단계 S650). 인터페이스 제어부(270)는 해당 파일의 삭제로 해당 폴더에 파일이 존재하지 않은 경우 해당 폴더를 삭제하여 저장 효율을 높일 수 있다.
일 실시예에서, 인터페이스 제어부(270)는 아웃바운드 서버에서 송신 성공 메시지를 수신하는 경우 인바운드 서버에 송신 성공 메시지를 송신할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 인터페이스 서버 시스템
110: 인바운드 서버
120: 인터페이스 서버
130: 아웃바운드 서버
210: 메시지 수신부
220: 휘발성 메모리
230: 비휘발성 메모리
240: 트리 구조 생성부
250: 파일 정렬부
260: 메시지 송신부
270: 인터페이스 제어부
500: 비휘발성 메모리
510: 쓰레드(Thread) 넘버 폴더
520 내지 580: 시간 스탬프 폴더
590: 인바운드 메시지 저장 파일

Claims (22)

  1. 복수의 서버들 사이의 인터페이스 서버에서 데이터를 처리하는 방법에 있어서,
    상기 복수의 서버들 중 적어도 하나의 제1 서버로부터 적어도 하나의 제1 데이터를 수신하는 단계;
    상기 제1 데이터를 제1 메모리에 기록(write)하는 단계;
    제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계; 및
    상기 제1 데이터를 상기 폴더 및 파일에 저장하는 단계를 포함하는 인터페이스 서비스 방법.
  2. 제1항에 있어서,
    상기 제1 서버로부터 적어도 하나의 제1 데이터를 수신하는 단계 이전에
    상기 제2 메모리에 쓰레드(Thread)별 작업 공간을 생성하는 단계를 더 포함하는 인터페이스 서비스 방법.
  3. 제1항에 있어서, 상기 제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계는
    상기 복수의 서버들로부터 특정 메시지에 대한 검색요청이 수신되면 상기 특정 메시지의 수신 시간을 분석하여 상기 제2 메모리를 검색하는 단계를 더 포함하는 인터페이스 서비스 방법.
  4. 제1항에 있어서, 상기 제2 메모리에 현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 단계는
    상기 현재 시각을 특정 기준 이상의 해상도로 분해하는 단계;
    상기 분해된 현재 시각의 제1 부분을 상기 폴더에 대한 파일경로로 결정하는 단계; 및
    상기 분해된 현재 시각의 제2 부분을 상기 파일에 대한 파일이름으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 인터페이스 서비스 방법.
  5. 제4항에 있어서, 상기 해상도는
    하기의 [수학식]에 의해 결정되는 것을 특징으로 하는 인터페이스 서비스 방법.
    [수학식]
    N = 7 + {Min(10^k <Avg_M< 10^(k+3))/3} (k=0,3,6,9...)

    N: 해상도
    Avg_M: 초당 수신 메시지 개수
    Min(10^k < X < 10^(k+3)): X가 (10^k ≤ X < 10^(k+3)) 범위에 있을 때의 최소 k값
  6. 제4항에 있어서, 상기 파일경로는
    상위 폴더에 100개 이내의 하위 폴더 또는 파일을 저장하는 것을 특징으로 하는 인터페이스 서비스 방법.
  7. 제1항에 있어서,
    상기 해당 파일이 생성되면 상기 제2 메모리에서 있는 가장 오래된 파일을 제2 메시지로 상기 제1 메모리에 저장하는 단계; 및
    상기 저장된 제2 메시지를 제2 서버에 송신한 다음 상기 가장 오래된 파일을 상기 제2 메모리로부터 삭제하는 단계를 더 포함하는 인터페이스 서비스 방법.
  8. 제7항에 있어서, 상기 가장 오래된 파일을 제2 메시지로 상기 제2 메모리에 저장하는 단계는
    상기 제2 메모리의 파일을 상기 현재 시각의 내림차순으로 정렬하고 정렬된 내림차순 리스트를 상기 제1 메모리에 저장하는 단계; 및
    상기 정렬된 내림차순 리스트의 최상위 파일을 읽어서 상기 제2 메모리에 저장하는 단계를 더 포함하는 인터페이스 서비스 방법.
  9. 제7항에 있어서, 상기 저장된 제2 메시지를 제2 서버에 송신하는 단계는
    일정 송신 횟수 또는 일정 시간 동안 상기 제2 서버에서 송신 성공 메시지가 수신되지 않는 경우 상기 제2 메시지를 송신 실패 폴더에 저장하는 단계를 더 포함하는 인터페이스 서비스 방법.
  10. 제7항에 있어서, 상기 저장된 제2 메시지를 제2 서버에 송신하는 단계는
    상기 제2 서버에서 송신 성공 메시지가 수신되면 상기 제1 서버에 송신 성공 메시지를 송신하는 단계를 더 포함하는 인터페이스 서비스 방법.
  11. 제7항에 있어서, 상기 가장 오래된 파일을 제2 메시지로 상기 제1 메모리에 저장하는 단계는
    상기 제2 메모리에 저장된 순서와 무관하게 상기 복수의 서버들에 의해 요청된 파일을 상기 제2 메시지로 저장하는 단계를 더 포함하는 인터페이스 서비스 방법.
  12. 적어도 하나의 제1 서버로부터 적어도 하나의 제1 데이터를 수신하는 데이터 수신부;
    현재 시각에 근거하여 폴더 및 파일을 트리 구조로 생성하는 트리 구조 생성부; 및
    상기 제1 데이터를 상기 트리 구조 생성부에 의해 생성된 폴더 및 파일에 저장하는 인터페이스 제어부를 포함하는 인터페이스 서버.
  13. 제12항에 있어서,
    상기 제1 데이터를 기록(write)하는 제1 메모리; 및
    상기 제1 데이터를 상기 트리 구조 생성부에 의해 생성된 폴더 및 파일에 저장하는 제2 메모리를 더 포함하는 인터페이스 서버.
  14. 제13항에 있어서, 상기 트리 구조 생성부는
    상기 제1 서버로부터 메시지를 수신하기 전에 상기 제2 메모리에 쓰레드(Thread)별 작업 공간을 생성하는 것을 특징으로 하는 인터페이스 서버.
  15. 제13항에 있어서, 상기 인터페이스 제어부는
    상기 적어도 하나의 제1 서버로부터 특정 메시지에 대한 검색요청이 수신되면 상기 특정 메시지의 수신 시간을 분석하여 상기 제2 메모리를 검색하는 단계를 더 포함하는 인터페이스 서버.
  16. 제13항에 있어서, 상기 트리 구조 생성부는
    상기 현재 시각을 특정 기준 이상의 해상도로 분해하고, 상기 분해된 현재 시각의 제1 부분을 상기 폴더에 대한 파일경로로 결정하며, 상기 분해된 현재 시각의 제2 부분을 상기 파일에 대한 파일이름으로 결정하는 것을 특징으로 하는 인터페이스 서버.
  17. 제16항에 있어서, 상기 파일경로는
    상위 폴더에 100개 이내의 하위 폴더 또는 파일을 저장하는 것을 특징으로 하는 인터페이스 서버.
  18. 제13항에 있어서, 상기 인터페이스 제어부는
    상기 해당 파일이 생성되면 상기 제2 메모리에서 있는 가장 오래된 파일을 제2 메시지로 상기 제1 메모리에 저장하고
    상기 저장된 제2 메시지를 제2 서버에 송신한 다음 상기 가장 오래된 파일을 상기 제2 메모리로부터 삭제하는 것을 특징으로 하는 인터페이스 서버.
  19. 제18항에 있어서, 상기 인터페이스 제어부는
    상기 제2 메모리의 파일을 현재 시각의 내림차순으로 정렬하고 정렬된 내림차순 리스트를 상기 제1 메모리에 저장하고
    상기 정렬된 내림차순 리스트의 최상위 파일을 읽어서 상기 제2 메모리에 저장하는 것을 특징으로 하는 인터페이스 서버.
  20. 제18항에 있어서, 상기 인터페이스 제어부는
    일정 송신 횟수 또는 일정 시간 동안 상기 제2 서버에서 송신 성공 메시지가 수신되지 않는 경우 상기 제2 메시지를 송신 실패 폴더에 저장하는 것을 특징으로 하는 인터페이스 서버.
  21. 제18항에 있어서, 상기 인터페이스 제어부는
    상기 제2 서버에서 송신 성공 메시지가 수신되면 상기 제1 서버에 송신 성공 메시지를 송신하는 것을 특징으로 하는 인터페이스 서버.
  22. 제18항에 있어서, 상기 인터페이스 제어부는
    상기 제2 메모리에 저장된 순서와 무관하게 상기 적어도 하나의 제1 서버에 의해 요청된 파일을 상기 제2 메시지로 저장하는 것을 특징으로 하는 인터페이스 서버.
KR1020130071235A 2013-06-20 2013-06-20 인터페이스 서비스 방법 및 인터페이스 서버 KR101535979B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130071235A KR101535979B1 (ko) 2013-06-20 2013-06-20 인터페이스 서비스 방법 및 인터페이스 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130071235A KR101535979B1 (ko) 2013-06-20 2013-06-20 인터페이스 서비스 방법 및 인터페이스 서버

Publications (2)

Publication Number Publication Date
KR20140147986A KR20140147986A (ko) 2014-12-31
KR101535979B1 true KR101535979B1 (ko) 2015-07-27

Family

ID=52676500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130071235A KR101535979B1 (ko) 2013-06-20 2013-06-20 인터페이스 서비스 방법 및 인터페이스 서버

Country Status (1)

Country Link
KR (1) KR101535979B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237725A (ja) * 2009-03-30 2010-10-21 Hitachi Software Eng Co Ltd ファイルサーバ運用支援装置、方法、プログラム及び記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237725A (ja) * 2009-03-30 2010-10-21 Hitachi Software Eng Co Ltd ファイルサーバ運用支援装置、方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
KR20140147986A (ko) 2014-12-31

Similar Documents

Publication Publication Date Title
US20210357408A1 (en) Temporal optimization of data operations using distributed search and server management
CN104077341B (zh) 即时通讯中生成关键词自动回复映射关系的方法和装置
CN104462534B (zh) 网络信息分享方法和装置
CN108289034B (zh) 一种故障发现方法和装置
CN102368261A (zh) 一种可扩展的运维报表生成方法
CN103051717A (zh) 一种http请求处理的方法、装置和设备
CN103095819A (zh) 推送数据信息的方法及数据信息推送系统
CN107977473B (zh) 基于Logback的分布式系统日志的检索方法和系统
CN105827706A (zh) 消息推送装置及方法
WO2010104280A3 (ko) 복수의 접속 통계 서버를 통합하여 운영하는 시스템 및 그 방법
US20180219810A1 (en) Transmitting tagged electronic messages
US10540325B2 (en) Method and device for identifying junk picture files
CN110162512A (zh) 一种日志检索方法、装置及存储介质
US8880108B2 (en) Short message processing method and apparatus
KR20120048525A (ko) Sms를 통해 원격 디바이스를 제어하는 방법 및 이를 위한 장치
CN105657677A (zh) 一种短信发送方法、短信网关及业务平台
CN103702176A (zh) 一种基于hls协议的视频下载方法及其装置
CN103490978A (zh) 终端、服务器和消息监视方法
CN112398797B (zh) 数据传输方法、接收装置、发送装置、介质、设备及系统
CN104079623A (zh) 多级云存储同步控制方法及系统
CN103440302B (zh) 实时数据交换的方法和系统
CN1265600C (zh) 通过电信网跟踪多媒体消息的模块化方法和设备
KR101535979B1 (ko) 인터페이스 서비스 방법 및 인터페이스 서버
CN104298416A (zh) 即时通讯中自动回复消息的生成方法和装置
US20140032744A1 (en) Method of comparing outputs in a plurality of information systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 5