KR100725066B1 - 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법 - Google Patents

다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법 Download PDF

Info

Publication number
KR100725066B1
KR100725066B1 KR1020050070793A KR20050070793A KR100725066B1 KR 100725066 B1 KR100725066 B1 KR 100725066B1 KR 1020050070793 A KR1020050070793 A KR 1020050070793A KR 20050070793 A KR20050070793 A KR 20050070793A KR 100725066 B1 KR100725066 B1 KR 100725066B1
Authority
KR
South Korea
Prior art keywords
data
processing
client
session
processed
Prior art date
Application number
KR1020050070793A
Other languages
English (en)
Other versions
KR20070016040A (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 KR1020050070793A priority Critical patent/KR100725066B1/ko
Priority to CNB2006100583903A priority patent/CN100488131C/zh
Priority to US11/390,492 priority patent/US20070033284A1/en
Priority to JP2006144576A priority patent/JP2007042070A/ja
Publication of KR20070016040A publication Critical patent/KR20070016040A/ko
Application granted granted Critical
Publication of KR100725066B1 publication Critical patent/KR100725066B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 유무선 통신망을 통해 접속된 서버와 하나 이상의 클라이언트 사이의 데이터 통신을 위한 시스템 서버 및 데이터 처리 방법에 관한 것이다. 시스템 서버는 클라이언트와의 접속을 개시하거나 중단하는 접속 모듈; 클라이언트와 데이터를 송수신하는 데이터 송수신 모듈; 쓰레드를 생성하고 할당하는 쓰레드 관리 모듈; 현재 접속 중인 클라이언트들 각각에 부여된 세션 아이디(ID)와, 해당 클라이언트가 처리를 요청한 피처리 데이터의 처리 상태를 저장하는 세션 정보 데이터베이스; 및 상기 세션 정보 데이터베이스에 저장된 피처리 데이터의 처리 상태를 갱신하고, 상기 피처리 데이터의 처리 상태를 기초로 데이터 처리를 수행하고 있지 아니한 것으로 판단되는 경우에는 해당 세션을 반납하는 세션 관리 모듈을 포함한다.
서버, 클라이언트, 데이터 처리, 세션 정보, 버퍼, 쓰레드 풀

Description

다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및 데이터 처리 방법 {A SYSTEM SERVER FOR DATA COMMUNICATION WITH MULTIPLE CLIENTS AND A DATA PROCESSING METHOD}
도 1은 본 발명의 데이터 통신 시스템(200)을 개념적으로 도시한 블록도이다.
도 2는 본 발명의 데이터 통신 시스템(200)의 서버(100)의 구성의 제1 실시예를 도시한 블록도이다.
도 3은 본 발명의 데이터 통신 시스템(200)의 서버(100)의 구성의 제2 실시예를 도시한 블록도이다.
도 4는 본 발명에 의한 데이터 처리 방법의 일실시예에 있어서, 서버(100) 측의 처리 과정을 도시한 흐름도이다.
도 5는 본 발명에 의한 데이터 처리 방법의 일실시예에 있어서, 클라이언트(10) 측의 처리 과정을 도시한 흐름도이다.
본 발명은 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및 데이터 처리 방법에 관한 것이다. 특히, 본 발명은 데이터 처리를 안정적이고 효율적으로 하는 동시에 클라이언트의 정보를 실시간으로 모니터링 할 수 있는 시스템 서버 및 데이터 처리 방법에 관한 것이다.
최근 기업의 내외부 업무를 실시간으로 처리할 수 있는 "실시간 기업(Real Time Enterprise; RTE)" 시스템을 도입하는 기업들이 늘고 있다. 즉, 기업의 내부 업무 처리는 물론 외부 파트너 및 고객들과 관련된 업무까지 실시간으로 관리하고 처리할 수 있도록 함으로써 업무 효율을 극대화하기 위해 RTE 시스템이 도입되고 있다. 그런데, CDMA 또는 무선랜 등의 무선 통신망으로 RTE 시스템과 같은 데이터 처리 시스템을 구축하는 경우, 현재의 IT 인프라의 한계로 인하여, 데이터 정합성, 데이터 처리의 안정성, 시스템의 신뢰성 등이 여전히 부족한 실정이다. 특히, 서버에 다수의 사용자가 동시에 접속한 경우에는 가비지(garbage) 세션에 의해 시스템이 다운되는 경우가 종종 발생한다.
또한, RTE 시스템은 특히 기업 외부 업무의 관리를 위해, 서버에 접속한 각 클라이언트의 상태를 모니터링하고 클라이언트가 요청하는 데이터 처리를 효율적이고 안정적으로 처리하는 것이 중요한 과제이다.
본 발명은 다수 클라이언트와의 데이터 통신을 위한 시스템 서버에 있어서, 각 세션의 데이터 처리 상태를 모니터링 하는 동시에 가비지 세션을 관리함으로써 시스템 자원을 효율적으로 운용하는 것을 목적으로 한다.
또한, 본 발명은 효율적이고 안정적인 데이터 처리를 위해 동시 접속자 처리 및 중복 데이터 처리 프로세스를 개선하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 본 발명은, 유무선 통신망을 통해 접속된 서버와 하나 이상의 클라이언트 사이의 데이터 통신을 위한 시스템 서버에 있어서, 클라이언트와의 접속을 개시하거나 중단하는 접속 모듈; 클라이언트와 데이터를 송수신하는 데이터 송수신 모듈; 쓰레드를 생성하고 할당하는 쓰레드 관리 모듈; 현재 접속 중인 클라이언트들 각각에 부여된 세션 아이디(ID)와, 해당 클라이언트가 처리를 요청한 피처리 데이터의 처리 상태를 저장하는 세션 정보 데이터베이스; 및 상기 세션 정보 데이터베이스에 저장된 피처리 데이터의 처리 상태를 갱신하고, 상기 피처리 데이터의 처리 상태를 기초로 데이터 처리가 수행되고 있지 않다고 판단되는 경우에는 해당 세션을 반납하는 세션 관리 모듈을 포함하는 시스템 서버를 제공한다.
또한, 본 발명은 유무선 통신망을 통해 접속된 서버와 하나 이상의 클라이언트 사이의 데이터 처리 방법에 있어서, (1) 클라이언트에 대한 세션을 생성하고 쓰레드를 할당하는 단계; (2) 상기 클라이언트로부터 데이터 처리 요청을 수신하는 단계; (3) 상기 클라이언트의 세션 정보를 처리 대기로서 저장하는 단계; (4) 상기 클라이언트가 처리를 요청한 피처리 데이터의 처리를 개시하는 단계; (5) 상기 클라이언트의 세션 정보를 처리 중으로서 갱신하여 저장하는 단계; (6) 상기 피처리 데이터의 처리가 종료된 경우, 상기 클라이언트의 세션 정보를 처리 완료로서 갱신하여 저장하는 단계; (7) 상기 세션 정보를 기초로 해당 세션에 있어서 데이터 처리에 소요되는 시간을 소정 시간과 비교하는 단계; 및 (8) 피처리 데이터의 처리 결과를 클라이언트로 송신하고, 상기 클라이언트의 세션을 삭제하는 단계를 포함하는 데이터 처리 방법을 제공한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 관하여 상세히 설명한다.
도 1은 본 발명의 일 실시예에 의한 데이터 통신 시스템을 개념적으로 도시한 블록도이다. 본 발명의 데이터 통신 시스템(200)은 서버(100)와 클라이언트(10-1, 10-2, 10-3; 이하 "10") 및 서버(100)와 클라이언트(10)를 접속하는 유무선 통신망(20)을 포함한다. 본 실시예에서, 서버(100)는 SAP, 오라클, MS-SQL 등의 기간 시스템(100-1)과 서로 다른 기종의 클라이언트(10)와 서버(100)를 연결하는 미들웨어(100-2)를 포함하는 것으로 한다.
시스템 서버(100)의 각 구성은 전용 하드웨어를 구성하여 구현할 수도 있고, 통상적인 범용 컴퓨터 시스템을 프로그래밍하여 구현하는 것도 물론 가능하다.
도 2는 본 발명의 데이터 통신 시스템(200)의 서버(100)의 구성의 제1 실시예를 도시한 블록도이다. 상기 서버(100)는 접속 모듈(110), 데이터 송수신 모듈(120), 쓰레드 관리 모듈(130), 세션 정보 데이터 베이스(140), 세션 관리 모듈(150)을 포함한다. 모듈들(110 내지 150)은 버스에 의해 상호 연결된다.
상기 접속 모듈(110)은 클라이언트(10)와 서버(100) 간의 접속을 개시하거나 종료한다. 상기 접속의 개시 또는 종료는 클라이언트(10) 또는 서버(10)의 요청 또는 지시에 따라 수행될 수도 있고, 일정한 경우에 자동으로 수행될 수도 있다. 예를 들면, 상기 접속 모듈(110)은 클라이언트(10)로부터 접속 요청이 있는 경우 이 접속 요청에 따라 접속을 개시하고, 더 이상 프로세스를 진행할 수 없거나 프로세스를 완결한 경우에는 접속을 자동으로 종료하는 것이 바람직하다. 특히, 클라이언트로부터 커밋(commit) 메시지가 수신되면 접속을 자동으로 종료하는 것이 데이터 처리 요금을 절감하는데 바람직하다.
상기 데이터 송수신 모듈(120)은 클라이언트(10)로부터 데이터를 수신하거나 클라이언트(10)로 데이터를 송신한다.
상기 쓰레드 관리 모듈(130)은 쓰레드를 생성하고 할당한다. 클라이언트(10)가 서버에 접속하면 리스너는 쓰레드 풀(thread pool)에 상기 클라이언트에 할당할 담당 쓰레드를 요청한다. 이때, 상기 쓰레드 관리 모듈(130)은, 쓰레드 풀에 현재 대기 중인 여유 쓰레드가 존재하는 경우에는 이 여유 쓰레드를 담당 쓰레드로서 할당하고, 쓰레드 풀에 현재 대기 중인 여유 쓰레드가 존재하지 않는 경우에는 동시 접속자 수를 확인한다. 만약 접속자 수가 허용가능한 최대 동시 접속자 수를 초과하지 않은 경우에는 상기 쓰레드 관리 모듈(130)이 쓰레드를 추가 생성하여 클라이언트(10)에 할당하고, 최대 동시 접속자 수를 초과한 경우에는 해당 클라이언트는 쓰레드를 할당받기 위해 대기한다.
상기 세션 정보 데이터베이스(140)는 현재 접속 중인 클라이언트(10)들 각각 에 부여된 세션 아이디(ID)와, 해당 클라이언트가 처리를 요청한 피처리 데이터의 처리 상태를 세션 정보로서 저장한다. 여기서 피처리 데이터의 처리 상태란, 예컨대, 데이터의 처리가 개시되기 전이면 "처리 대기", 처리 중이면 "처리 중", 처리가 종료되면 "처리 완료" 등으로 정의된 정보들을 의미한다. 한편, 상기 세션 아이디는 각각의 사용자마다 고유하게 설정되는 것이 바람직하다. 이와 같이 고유한 세션 아이디를 부여함으로써, 각 사용자가 어떤 장비를 이용하여 접속했는지를 추적할 수 있다.
상기 세션 관리 모듈(150)은, 상기 세션 정보 데이터베이스(140)에 저장된 피처리 데이터의 처리 상태, 즉 세션 정보를 갱신하고, 각 세션을 상기 세션 정보에 따라 분류한다. 예컨대, 상기 세션 관리 모듈(150)은 "처리 대기" 상태에 있던 피처리 데이터에 대한 처리가 개시되면 세션 정보 데이터베이스(140)에 저장된 세션 정보를 "처리 중"으로 갱신하여 저장한다. 이러한 세션 정보의 갱신은 실시간으로 이루어지는 것이 바람직하다. 또한, 세션 관리 모듈(150)은 상기 데이터 처리 상태를 기초로 데이터 처리를 수행하고 있지 않은 것으로 판단되는 경우에는 해당 세션을 반납한다. 예컨대, 상기 세션 관리 모듈(150)은 쓰레드 할당 시부터 세션의 데이터 처리 상태가 "처리 완료"가 되는데 걸리는 시간을 체크하면서 미리 정해진 시간 이상 소요되는 경우에는 해당 세션을 반납한다. 또는, 세션 정보가 갱신되는데 걸리는 시간을 체크하여 일정 시간 이상 경과해도 세션 정보가 갱신되지 않으면 데이터 처리를 수행하고 있지 아니한 것으로 보아 해당 세션을 반납해도 좋다. 이와 같이, 세션의 데이터 처리 상태를 기초로 데이터 처리를 수행하고 있지 않은 가비지 세션을 반납함으로써 서버(100)를 효율적으로 사용할 수 있다.
이러한 경우, 클라이언트(10)에 데이터 미처리 메시지를 송신하고 클라이언트가 처리되지 않은 피처리 데이터를 로컬 데이터베이스에 저장해 두었다가 처리함으로써 데이터 처리의 누락을 방지할 수 있다.
도 3은 본 발명의 데이터 통신 시스템(200)의 서버(100)의 구성의 제2 실시예를 도시한 블록도이다. 도 2에 도시된 제1 실시예와 동일한 도면 부호를 사용한 구성 요소는 제1 실시예와 그 구성 및 기능에 있어 유사하므로, 이하에서는 제1 실시예와 차이가 있는 부분에 관하여서만 설명한다. 도 3에 도시된 바와 같이, 제2 실시예는 상기 제1 실시예의 구성에 더하여, 버퍼 모듈(160) 및 데이터 처리 모듈(170)을 더 포함한다.
본 실시예에서는, "처리 대기"라는 정보가 클라이언트의 세션 정보로서 세션 정보 데이터베이스에 저장되면, 세션 관리 모듈(150)이 각 클라이언트로부터의 피처리 데이터를 순차적으로 버퍼 모듈(160)로 넘겨줌으로써, 피처리 데이터들이 버퍼 모듈(160)에 저장된다. 버퍼 모듈(160)에 저장된 피처리 데이터는 순차적으로 데이터 처리 모듈(170)로 넘겨진다. 즉, 본 실시예에서는 클라이언트 접속시 할당된 쓰레드는 서버와 클라이언트 간의 통신을 담당하고, 데이터의 처리는 별도의 데이터 처리 모듈에서 행한다는 점에서 상기한 제1 실시예와 구별된다. 데이터 처리 성능을 향상시키기 위해 상기 데이터 처리 모듈(170)은 별도의 쓰레드 풀을 갖는 것이 바람직하다.
이와 같이 버퍼 모듈(160)을 중간에 둠으로써 순간적으로 접속자가 폭주하여 많은 데이터 처리 요청이 들어오더라도 이들을 버퍼에 쌓아 순차적으로 처리할 수 있기 때문에, 기간 시스템에서의 처리가 지연되더라도 게이트웨이의 성능을 유지하는 것이 가능하다.
한편, 서버(100)는 검사 모듈(180) 및 오류데이터 관리 모듈(190)을 더 포함할 수 있다. 상기 검사 모듈(180)은 클라이언트(10)로부터 전송된 피처리 데이터에 이상이 있는지를 검사하고, 만약 이상이 있으면 클라이언트에 에러 메시지를 보내고 세션과 쓰레드를 반납함으로써 해당 프로세스를 종료한다. 이 경우에, 클라이언트(10)는 처리되지 않은 데이터를 로컬 데이터베이스에 저장해 두었다가 나중에 배치(batch) 처리하는 것이 바람직하다. 이와 같이, 서버(100)가 수신한 피처리 데이터에 이상이 있는 경우에는 클라이언트(10)의 로컬 데이터베이스에 저장해 두었다가 나중에 처리함으로써, 데이터 처리가 누락되는 것을 방지할 수 있다.
상기 검사 결과 이상이 없는 경우에는, 상기 검사 모듈(10)은 오류데이터 관리 모듈(190)에 상기 피처리 데이터와 동일한 데이터의 처리 결과가 저장되어 있는지를 확인한다. 상기 오류데이터 관리 모듈(190)은 기존에 처리가 완료되었으나 전송 단계에서 오류가 발생한 데이터를 저장한다. 상기 검사는, 예를 들면, 클라이언트(10)에서 피처리 데이터를 송신할 때 각 데이터에 고유의 아이디(ID)를 부여하고, 오류데이터 관리 모듈(190)이 저장하고 있는 기존의 데이터 중 피처리 데이터와 동일한 아이디를 갖는 것이 있는지를 서로 비교함으로써 가능하다. 상기 검사 결과, 오류데이터 관리 모듈(190)에 피처리 데이터와 동일한 데이터에 대한 처리 결과가 저장되어 있는 경우에는 오류데이터 관리 모듈(190)에 저장된 데이터를 클라이언트(10)로 전송한다.
이와 같이 이미 처리가 완료되었으나 전송 단계에서 오류가 발생한 데이터를 별도로 관리함으로써, 데이터 처리가 중복되는 것을 방지할 수 있다.
도 4는 본 발명에 의한 데이터 처리 방법의 일실시예에 있어서, 서버(100) 측의 데이터 처리 과정의 일 예를 도시한 흐름도이다.
도 4a는 프로세스 개시부터 클라이언트에 쓰레드를 할당하는 과정을 도시한다. 클라이언트로(10)부터 접속 요청을 수신(S400)하면, 접속 모듈(110)은 서버(100)와 클라이언트(10) 간의 접속을 개시(S410)하고 세션 관리 모듈(150)은 해당 클라이언트에 대한 세션을 생성(S420)한다. 이때, 각각의 사용자마다 고유한 세션 아이디(ID)를 부여함으로써, 각 사용자가 동일한 세션 아이디로 어떤 장비를 이용하여 접속하였는지를 추적하는 것이 가능하다. 다음으로, 쓰레드 풀(thread pool)에 쓰레드를 요청(S430)하면, 쓰레드 관리 모듈(130)은 쓰레드 풀에 현재 대기 중인 여유 쓰레드가 존재하는지를 판단(S440)하여, 쓰레드 풀에 현재 대기 중인 여유 쓰레드가 존재하는 경우(S440: 예)에는 이 여유 쓰레드를 해당 클라이언트(10)에 담당 쓰레드로서 할당하고, 쓰레드 풀에 현재 대기 중인 여유 쓰레드가 존재하지 않는 경우(S440: 아니오)에는 동시 접속자 수를 확인(S450)한다. 만약 접속자 수가 허용가능한 최대 동시 접속자 수를 초과하지 않은 경우(S450: 아니오)에는 쓰레드를 추가 생성(S460)하여 할당하지만(S470), 최대 동시 접속자 수를 초과한 경우(S450: 예)에는 쓰레드를 할당받기 위해 대기한다.
클라이언트(10)에 담당 쓰레드가 할당되면, 도 4b에 도시된 바와 같이, 서버의 데이터 송수신 모듈(120)은 클라이언트(10)가 처리를 요청한 피처리 데이터를 읽고(480), 이 피처리 데이터에 이상이 있는지 여부를 검사(490)한다. 만약 피처리 데이터에 이상이 있는 경우(S490: 아니오)에는 클라이언트(10)에 에러 메시지를 송신(S500)하고 프로세스를 종료한다. 앞서 살펴본 바와 같이, 에러 메시지를 수신한 클라이언트(10)는 피처리 데이터를 로컬 데이터베이스에 저장하는 것이 바람직하다.
피처리 데이터에 이상이 없는 경우(S490: 예)에는, 오류데이터 관리 모듈(190)에 피처리 데이터와 동일한 데이터의 처리 결과가 존재하는지를 확인한다(S510). 이는 앞서 살펴본 바와 같이, 클라이언트(10)에서 피처리 데이터를 송신할 때 각 데이터에 고유의 아이디(ID)를 부여하고, 오류데이터 관리 모듈(190)에 저장되어 있는 기존의 데이터 중 피처리 데이터와 동일한 ID를 갖는 것이 있는지를 서로 비교함으로써 가능하다. 만약 오류데이터 관리 모듈(190)에 피처리 데이터와 동일한 아이디를 갖는 데이터가 있으면(S510: 예), 오류데이터 관리 모듈(190)이 기존에 처리된 데이터를 클라이언트(10)로 송신(S520)하고, 송신이 정상적으로 이루어지면 해당 프로세스가 종료된다.
오류데이터 관리 모듈(190)에 피처리 데이터와 동일한 데이터가 저장되어 있지 아니한 경우(S510: 아니오)에는, 피처리 데이터의 처리가 개시된다. 이때, 처리의 개시에 앞서 "처리 대기"라는 정보가 해당 클라이언트의 세션 정보로서 세션 정보 데이터베이스(140)에 저장(S530)된다. 다음으로, 피처리 데이터는 버퍼 모듈(160)에 저장(S540)된 후, 데이터 처리 모듈(170)로 순차적으로 넘겨진다. 이와 같이 피처리 데이터를 일단 버퍼에 저장함으로써 순간적으로 접속자가 폭주하더라 도 피처리 데이터를 버퍼에 쌓아 순차적으로 데이터를 처리할 수 있고, 기간 시스템에서의 처리가 늦어지더라도 게이트웨이에서의 처리 요청을 지연시키지 않을 수 있다.
데이터 처리 모듈(170)에서 해당 피처리 데이터의 처리가 개시되면 해당 클라이언트(10)의 세션 정보는 "처리 중"으로 갱신(S550)되고, 처리가 완료되면 세션 정보가 "처리 완료"로 갱신(S560)된다.
피처리 데이터의 처리가 완료되면 해당 피처리 데이터의 처리를 요청한 클라이언트(10)로 그 결과가 송신되는데, 전송이 정상적으로 이루어지면(S570: 아니오), 클라이언트(10)가 커밋(commit) 메시지를 서버(100)로 송신한다. 커밋 메시지가 수신되면, 해당 클라이언트(10)에 할당된 쓰레드를 쓰레드 풀로 반납하고 해당 세션을 반납(S590)하는 것으로 프로세스가 종료된다.
만약 클라이언트(10)로의 데이터 송신시 오류가 발생(S570: 예)하면, 처리된 데이터는 오류데이터 관리 모듈(190)에 저장(S580)되고, 프로세스가 종료된다.
한편, 본 발명은 세션의 데이터 처리 과정을 모니터링 함으로써 데이터 처리를 수행하고 있지 아니한 세션을 반납한다. 예컨대, 쓰레드를 할당한 시점에서 데이터 처리를 개시한 시점, 데이터 처리 개시시부터 데이터 처리 완료시까지의 시간 등을 체크하고, 이 시간이 미리 정해진 기준 시간을 초과하는 경우에는 데이터 처리를 수행하고 있지 아니한 것으로 보아 세션을 반납한다. 이는 쓰레드 할당 모듈, 버퍼, 데이터 처리 모듈 등과 연동하는 세션 관리 모듈이 세션의 데이터 처리 상태를 지속적으로 모니터링 함으로써 가능하다. 이렇게 함으로써, 가비지 세션으 로 인해 시스템 자원이 낭비되는 것을 방지할 수 있다.
이 경우, 서버(100)는 클라이언트(10)에 데이터 미처리 메시지를 송신하는 것이 바람직하다. 데이터 미처리 메시지를 수신하면, 클라이언트(10)는 해당 데이터를 로컬 데이터베이스에 저장해 두었다가 후에 배치 처리함으로써 처리가 누락되는 것을 방지할 수 있다.
도 5는 본 발명에 의한 데이터 처리 방법의 일실시예에 있어서, 클라이언트(10) 측의 처리 과정을 도시한 흐름도이다.
클라이언트(10)는 서버에 접속 요청을 보내고(S1000), 접속이 정상으로 이루어지면 데이터 처리 요청을 서버(100)에 송신(S1100)하고 피처리 데이터를 로컬 데이터 베이스에 저장한다(S1200). 만약 데이터 송신이 정상적으로 이루어지지 않으면(S1300: 예) 로컬 데이터베이스에 저장해 두었다가 나중에 배치로 일괄처리한다.
데이터 송신이 정상적으로 이루어지면(S1300: 아니오), 데이터 처리 결과가 수신될 때까지 대기한다(S1400). 만약 서버(100)로부터 해당 클라이언트(10)의 세션에서 데이터 처리를 수행하지 않는다는 데이터 미처리 메시지를 수신하거나 또는 서버(100)의 데이터 처리가 종료된 후 처리된 데이터를 수신하는 과정에서 오류가 발생하면(S1500: 예), 데이터 송신시 오류가 발생한 경우와 마찬가지로 로컬 데이터베이스에 저장해 두었다가 나중에 배치로 일괄처리한다.
처리된 데이터가 정상적으로 수신(S1500: 아니오)되면, 커밋(commit) 메시지를 서버(100)로 송신(S1600)하고, 피처리 데이터를 로컬 데이터베이스로부터 삭제함으로써 프로세스를 종료(S1700)한다.
이상, 본 발명의 바람직한 실시예에 관하여 구체적으로 설명하였으나, 본 발명의 기술적 범위가 이에 국한되는 것은 아니다. 본 발명의 기술적 범위는 후술하는 특허청구범위에 의하여 결정되며, 본 발명의 기술적 범위 이내에서 상기한 실시예들의 다양한 변형 및 수정이 가능할 것이기 때문이다.
본 발명에 의하면, 다수의 클라이언트가 서버에 동시에 접속한 경우 각 클라이언트의 접속 상태 및 데이터 처리 상태를 기초로 현재 데이터 처리를 수행하고 있지 아니한 것으로 판단되는 세션을 반납함으로써, 가비지 세션으로 인해 시스템 자원이 낭비되는 것을 방지할 수 있다.
또한, 기존에 미처리된 데이터 또는 전송 과정에서 오류가 발생한 데이터는 별도로 관리함으로써, 처리가 누락되거나 중복되는 것을 방지할 수 있다.

Claims (14)

  1. 유무선 통신망을 통해 접속된 서버와 하나 이상의 클라이언트 사이의 데이터 통신을 위한 시스템 서버에 있어서,
    클라이언트와의 접속을 개시하거나 중단하는 접속 모듈;
    클라이언트와 데이터를 송수신하는 데이터 송수신 모듈;
    쓰레드를 생성하고 할당하는 쓰레드 관리 모듈;
    현재 접속 중인 클라이언트들 각각에 부여된 세션 아이디(ID)와, 해당 클라이언트가 처리를 요청한 피처리 데이터의 처리 상태를 저장하는 세션 정보 데이터베이스; 및
    상기 세션 정보 데이터베이스에 저장된 피처리 데이터의 처리 상태를 갱신하고, 상기 피처리 데이터의 처리 상태를 기초로 데이터 처리를 수행하고 있지 아니한 것으로 판단되는 경우에는 해당 세션을 반납하는 세션 관리 모듈을 포함하는 시스템 서버.
  2. 제1항에 있어서,
    상기 세션 관리 모듈은 피처리 데이터의 처리 상태가 소정 시간 갱신되지 않는 경우 해당 세션을 반납하는 것을 특징으로 하는 시스템 서버.
  3. 제1항에 있어서,
    상기 세션 관리 모듈은 쓰레드 할당 시부터 데이터 처리시까지의 기간이 소정 시간을 초과한 경우 해당 세션을 반납하는 것을 특징으로 하는 시스템 서버.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 세션 정보 데이터베이스에 저장된 데이터 처리 상태는 처리 대기, 처리 중, 처리 완료로 분류되는 것을 특징으로 하는 시스템 서버.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 세션 아이디는 각 사용자에 고유한 것을 특징으로 하는 시스템 서버.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 서버는 상기 클라이언트로부터 전송된 피처리 데이터가 정상인지를 검사하는 검사 모듈을 더 포함하고,
    피처리 데이터에 에러가 있을 때는 클라이언트에 에러 메시지를 송신하는 것을 특징으로 하는 시스템 서버.
  7. 제6항에 있어서,
    상기 서버는, 처리 완료 후 그 결과를 전송하는 과정에서 오류가 발생한 경우에, 그 처리 결과를 저장하는 오류데이터 관리 모듈을 더 포함하고,
    상기 검사 모듈은 또한, 상기 피처리 데이터와 동일한 데이터의 처리 결과가 상기 오류데이터 관리 모듈에 저장되어 있는지를 확인하고, 만약 동일한 데이터의 처리 결과가 존재하는 경우에는 상기 오류데이터 관리 모듈에 저장된 상기 처리 결과를 클라이언트로 송신하는 것을 특징으로 하는 시스템 서버.
  8. 제1항에 있어서,
    피처리 데이터를 순차적으로 저장하는 버퍼 모듈; 및
    상기 버퍼 모듈로부터 전송된 피처리 데이터의 처리를 수행하는 데이터 처리 모듈을 더 포함하는 것을 특징으로 하는 시스템 서버.
  9. 유무선 통신망을 통해 접속된 서버와 하나 이상의 클라이언트 사이의 데이터 처리 방법에 있어서,
    (1) 클라이언트에 대한 세션을 생성하고 쓰레드를 할당하는 단계;
    (2) 상기 클라이언트로부터 데이터 처리 요청을 수신하는 단계;
    (3) 상기 클라이언트의 세션 정보를 처리 대기로서 저장하는 단계;
    (4) 상기 클라이언트가 처리를 요청한 피처리 데이터의 처리를 개시하는 단계;
    (5) 상기 클라이언트의 세션 정보를 처리 중으로서 갱신하여 저장하는 단계;
    (6) 상기 피처리 데이터의 처리가 종료된 경우, 상기 클라이언트의 세션 정보를 처리 완료로서 갱신하여 저장하는 단계;
    (7) 상기 세션 정보를 기초로 해당 세션에 있어서 데이터 처리에 소요되는 시간을 소정 시간과 비교하는 단계; 및
    (8) 피처리 데이터의 처리 결과를 클라이언트로 송신하고, 상기 클라이언트의 세션을 삭제하는 단계
    를 포함하는 데이터 처리 방법.
  10. 제9항에 있어서,
    상기 단계 (8)은, (8-1) 데이터 송신시 오류가 발생한 경우 상기 피처리 데이터의 처리 결과를 오류데이터로서 별도로 저장하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  11. 제10항에 있어서,
    상기 단계 (2)는,
    (2-1) 클라이언트 처리를 요청한 데이터에 이상이 있는지 여부를 검사하는 단계 및
    (2-2) 상기 데이터가 상기 단계 (8-1)의 피처리 데이터와 동일한지 여부를 검사하는 단계를 더 포함하고,
    상기 단계 (2-1)의 검사 결과 상기 데이터에 이상이 있는 것으로 판단되면 클라이언트로 에러 메시지를 전송하고,
    상기 단계 (2-2)의 검사 결과, 상기 데이터가 상기 단계 (8-1)의 피처리 데이터와 동일한 것으로 판단되면, 상기 오류데이터를 클라이언트로 송신하는 것을 특징으로 하는 데이터 처리 방법.
  12. 제9항에 있어서,
    상기 단계 (7)의 비교 결과, 해당 세션에 있어서 데이터 처리에 소요되는 시간이 소정 시간을 초과하면 해당 세션을 반납하는 것을 특징으로 하는 데이터 처리 방법.
  13. 제9항에 있어서,
    상기 단계 (3)은 (3-1) 상기 피처리 데이터를 버퍼에 저장하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  14. 제9항에 있어서,
    각 클라이언트는 고유한 세션 아이디를 갖는 것을 특징으로 하는 데이터 처리 방법.
KR1020050070793A 2005-08-02 2005-08-02 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법 KR100725066B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020050070793A KR100725066B1 (ko) 2005-08-02 2005-08-02 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법
CNB2006100583903A CN100488131C (zh) 2005-08-02 2006-03-03 与多个客户端进行数据处理用系统服务器及数据处理方法
US11/390,492 US20070033284A1 (en) 2005-08-02 2006-03-27 System server for data processing with multiple clients and a data processing method
JP2006144576A JP2007042070A (ja) 2005-08-02 2006-05-24 多数のクライアントとのデータ処理のためのシステムサーバ及びデータ処理方法(asystemserverfordataprocessingwithmultipleclientsandadataprocessingmethod)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050070793A KR100725066B1 (ko) 2005-08-02 2005-08-02 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20070016040A KR20070016040A (ko) 2007-02-07
KR100725066B1 true KR100725066B1 (ko) 2007-06-08

Family

ID=37700480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050070793A KR100725066B1 (ko) 2005-08-02 2005-08-02 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법

Country Status (4)

Country Link
US (1) US20070033284A1 (ko)
JP (1) JP2007042070A (ko)
KR (1) KR100725066B1 (ko)
CN (1) CN100488131C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075970B1 (ko) * 2009-09-09 2011-10-21 주식회사 금영 노래반주기의 통신부하 분산방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003646A (ja) * 2007-06-20 2009-01-08 Asyst Technologies Japan Inc 通信制御装置
US20110185134A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Temporary state service protocol
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
FR2956543B1 (fr) * 2010-02-17 2012-02-03 Evidian Procede et dispositif de propagation d'evenements de gestion de session.
KR101923487B1 (ko) * 2011-09-29 2018-11-30 삼성전자 주식회사 통신 연결 서비스 제공 방법 및 장치
US9996403B2 (en) * 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment
CN103491057A (zh) * 2012-06-12 2014-01-01 深圳中兴网信科技有限公司 一种共享会话数据的方法、系统及装置
US9247033B2 (en) * 2012-12-26 2016-01-26 Google Inc. Accessing payload portions of client requests from client memory storage hardware using remote direct memory access
CN103647837B (zh) * 2013-12-18 2017-04-05 北京博雅立方科技有限公司 多线程报告下载方法和装置
CN104376086B (zh) * 2014-11-19 2018-09-11 浪潮(北京)电子信息产业有限公司 数据处理方法和装置
CN105700938B (zh) * 2016-01-15 2019-02-19 浪潮通用软件有限公司 一种多线程处理数据的方法及装置
CN106559138B (zh) * 2016-11-22 2019-08-13 深圳市讯方技术股份有限公司 一种多任务切换方法及装置
CN107276994A (zh) * 2017-05-31 2017-10-20 沃太能源南通有限公司 一种储能系统的通讯管理系统及方法
CN110610103A (zh) * 2019-09-24 2019-12-24 成都卫士通信息安全技术有限公司 一种密标文件验标方法及装置
CN112565347A (zh) * 2020-11-17 2021-03-26 航天银山电气有限公司 通信接入方法及装置、存储介质
CN114584602B (zh) * 2022-03-01 2023-08-29 百果园技术(新加坡)有限公司 一种会话状态管理方法、系统、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000032086A (ja) 1998-07-09 2000-01-28 Hitachi Ltd 複数システム間におけるセション維持管理方式
JP2000163369A (ja) 1998-11-30 2000-06-16 Nippon Telegr & Teleph Corp <Ntt> 処理結果分散管理方法及びシステム及び処理結果分散管理サーバ装置及び処理結果分散管理プログラムを格納した記憶媒体
KR20010039100A (ko) * 1999-10-29 2001-05-15 서평원 광전송 시스템의 쓰레드 생성에 의한 멀티태스킹 관리방법
JP2002123436A (ja) 2000-10-13 2002-04-26 Toshiba Corp セッション管理システム、セッション管理方法およびコンピュータプログラム
KR20030026373A (ko) * 2001-09-06 2003-04-03 오정석 메모리 관리장치를 구비한 전송서버 및 그 방법
KR20030079923A (ko) * 2000-10-27 2003-10-10 테러플레이 시스템즈 에이비 멀티-유저를 위한 통신 인프라스트럭쳐 배열
KR20060065054A (ko) * 2004-12-09 2006-06-14 한국전자통신연구원 세션 관리 기능을 이용한 데이터 동기화 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446225B1 (en) * 1998-04-23 2002-09-03 Microsoft Corporation Server system with scalable session timeout mechanism
US6557038B1 (en) * 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US7788346B2 (en) * 2002-03-01 2010-08-31 Oracle America, Inc. System and method for state data back-up in a distributed data system
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000032086A (ja) 1998-07-09 2000-01-28 Hitachi Ltd 複数システム間におけるセション維持管理方式
JP2000163369A (ja) 1998-11-30 2000-06-16 Nippon Telegr & Teleph Corp <Ntt> 処理結果分散管理方法及びシステム及び処理結果分散管理サーバ装置及び処理結果分散管理プログラムを格納した記憶媒体
KR20010039100A (ko) * 1999-10-29 2001-05-15 서평원 광전송 시스템의 쓰레드 생성에 의한 멀티태스킹 관리방법
JP2002123436A (ja) 2000-10-13 2002-04-26 Toshiba Corp セッション管理システム、セッション管理方法およびコンピュータプログラム
KR20030079923A (ko) * 2000-10-27 2003-10-10 테러플레이 시스템즈 에이비 멀티-유저를 위한 통신 인프라스트럭쳐 배열
KR20030026373A (ko) * 2001-09-06 2003-04-03 오정석 메모리 관리장치를 구비한 전송서버 및 그 방법
KR20060065054A (ko) * 2004-12-09 2006-06-14 한국전자통신연구원 세션 관리 기능을 이용한 데이터 동기화 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075970B1 (ko) * 2009-09-09 2011-10-21 주식회사 금영 노래반주기의 통신부하 분산방법

Also Published As

Publication number Publication date
KR20070016040A (ko) 2007-02-07
CN1909485A (zh) 2007-02-07
JP2007042070A (ja) 2007-02-15
US20070033284A1 (en) 2007-02-08
CN100488131C (zh) 2009-05-13

Similar Documents

Publication Publication Date Title
KR100725066B1 (ko) 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법
US9665450B2 (en) Controlling access of clients to service in cluster environment
USRE45806E1 (en) System and method for the optimization of database access in data base networks
US8099402B2 (en) Distributed data storage and access systems
US9176779B2 (en) Data access in distributed systems
CN101079896B (zh) 一种构建并行存储系统多可用性机制并存架构的方法
US8954976B2 (en) Data storage in distributed resources of a network based on provisioning attributes
US20130282795A1 (en) Method And Apparatus for Web Based Storage On Demand
CN102426594A (zh) 对数据库进行操作的方法和系统
CN101751415B (zh) 元数据服务系统、元数据同步方法与写服务器更新方法
CN105337923B (zh) 数据分发方法和系统及数据发送装置和数据接收装置
CN101771723A (zh) 数据同步方法
EP2307991A2 (en) Distributed data storage and access systems
CN111343262B (zh) 分布式集群登录方法、装置、设备和存储介质
WO2017206960A1 (zh) 数据传输方法、数据传送客户端及数据传送执行器
CN112291298A (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
CN112799860A (zh) 基于消息队列和搜索引擎实现服务回调的方法
CN101789963A (zh) 数据同步系统
EP3341853B1 (en) Message processing node and database in a message processing system and methods of operating the same
CN107483637B (zh) 一种基于nfs的客户端链接管理方法及装置
CN113612811B (zh) 一种在多通道中客户端挂载的方法、系统、设备及介质
CN113727138A (zh) 一种hls内网回源方法
CN112019623A (zh) 基于ftp协议的分布式存储系统及其实现方法
CN110309191A (zh) 存储业务数据的方法、装置和系统
US20210004375A1 (en) Dynamic transaction coalescing

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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130509

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140507

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150518

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160513

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180517

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190516

Year of fee payment: 13