KR100871587B1 - 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치 - Google Patents

공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치 Download PDF

Info

Publication number
KR100871587B1
KR100871587B1 KR1020070038986A KR20070038986A KR100871587B1 KR 100871587 B1 KR100871587 B1 KR 100871587B1 KR 1020070038986 A KR1020070038986 A KR 1020070038986A KR 20070038986 A KR20070038986 A KR 20070038986A KR 100871587 B1 KR100871587 B1 KR 100871587B1
Authority
KR
South Korea
Prior art keywords
message
data
shared memory
session
application process
Prior art date
Application number
KR1020070038986A
Other languages
English (en)
Other versions
KR20080094486A (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 KR1020070038986A priority Critical patent/KR100871587B1/ko
Publication of KR20080094486A publication Critical patent/KR20080094486A/ko
Application granted granted Critical
Publication of KR100871587B1 publication Critical patent/KR100871587B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이 데이터의 흐름 제어 방법 및 그 장치에 관한 것이다. 프로세스간 가변 길이 데이터 흐름 제어 방법은 (a) 상기 응용 프로세스로부터 접속 요청 신호를 수신하는 경우, 공유 메모리에 대한 접속을 허가하는 단계; (b) 상기 응용 프로세스로부터 수신된 데이터 메시지를 상기 공유 메모리에 저장하고, 미리 할당된 대기 행렬에 상기 수신된 데이터 메시지에 상응하여 생성된 메시지 정보 구조체를 추가하는 단계; 및 (c) 상기 생성된 메시지 정보 구조체에 대응하는 블록 정보를 상기 공유 메모리에 기록하는 단계를 포함한다. 따라서, 본 발명에 따른 프로세스간 가변 길이 데이터 흐름 제어 장치는 자원 이용 효율을 극대화함으로써, 과금 데이터를 보다 빠르고 효과적으로 처리할 수 있다.
Figure R1020070038986
공유 메모리, 프로세스, 과금, API, 대기 행렬

Description

공유 메모리 페이징 기법에 의한 프로세스간 가변 길이 데이터 흐름 제어 방법 및 그 장치{METHOD AND APPARATUS FOR CONTROLLING THE INTER-PROCESS VARIABLE LENGTH PACKET DATA FLOW USING THE SHARED MEMORY PAGING TECHNIQUES}
도 1은 본 발명의 일 실시예에 따른 과금 게이트웨이 시스템 구성도
도 2는 본 발명에 일 실시예에 따른 프로세스흐름관리부의 블록도
도 3은 본 발명에 일 실시예에 따른 프로세스흐름관리부의 초기화 절차를 도시한 순서도
도 4는 본 발명의 일 실시예에 따른 세션 관리부의 동작을 도시한 순서도
도 5는 본 발명의 일 실시예에 따른 응용 프로세스가 요청한 서비스를 초기화하는 방법을 도시한 순서도
도 6은 본 발명의 일 실시예에 따른 응용 프로세스가 요청한 서비스를 초기화하는 과정을 도시한 흐름도
도 7은 본 발명의 일 실시예에 따른 프로세스흐름관리부에서 응용 프로세스의 메시지 삽입 요청을 처리하는 절차를 도시한 흐름도
도 8은 본 발명의 일 실시예에 따른 프로세스흐름관리부에서 응용 프로세스의 메시지 추출 및 삭제 요청을 처리하는 절차를 도시한 흐름도
도 9는 본 발명의 일 실시예에 따른 응용 프로세스에 설정된 서비스를 종료하는 절차를 도시한 흐름도
*주요 도면 부호
100 : 과금 게이트웨이
215 : 응용 프로세스
220 : 프로세스흐름관리API
225 : 유닉스 공유 메모리
230 : 세션 관리부
240 : 메모리 관리부
250 : 세션 스레드
290 : 로그 파일 생성부
본 발명은 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이 데이터 흐름 제어 방법 및 그 장치에 관한 것으로, 좀 더 상세하게는 응용 프로세스 간 송수신되는 데이터의 흐름을 제어하는데 있어서, 실제적인 데이터를 공유 메모리상에서 관리하고 데이터 블록 페이지 주소를 이용하여 데이터의 흐름을 제어하는 것이 가 능한 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이 데이터 흐름 제어 방법 및 그 장치에 관한 것이다. .
과학 기술의 발전과 경제 수준의 향상은 통신 기기의 개발과 광범위한 보급을 가능하게 하였다. 또한 통신 기기의 보급은 원격지에 위치한 사용자간에 유무선 통신망을 통한 데이터의 송수신을 가능하게 하였다.
서비스 사업자는 특정 사용자에 제공된 패킷 및 음성 서비스에 대한 과금을 수행하기 위해 서비스 별 제공된 과금 기초 데이터를 생성하고 이를 수집 및 처리하여 고객 별 요금 청구서를 작성할 필요가 있다.
하지만, 통신 서비스 가입자의 폭발적인 증가에 따라, 단위 시간 당 과금 처리 시스템에서 처리할 과금 기초 데이터의 양은 급격히 증가하고 있는 실정이다.
또한, 최근 통신 서비스가 다양화됨에 따라, 실시간으로 처리되어야 하는 과금 기초 데이터가 증가하고 있다.
하지만, 실시간 과금 기초 데이터를 효과적으로 수집 및 처리하기 위해서는 하드웨어 성능뿐만 아니라 과금 처리 시스템에 탑재되는 소프트웨어의 성능 최적화시키는 것이 중요하다.
일반적으로, 유선 또는 무선 통신 등에 관련된 대용량의 과금 데이터를 처리하는 과금 처리 시스템은 다중 프로세스 및 다중 스레드(Multi-Thread)로 구성되며, 처리할 데이터의 특성에 따라 다양한 데이터 흐름 제어가 필요하다.
또한, 처리할 데이터의 양 및 제공할 서비스의 종류 등의 운영 환경에 따라 프로세스 및 스레드의 동적인 생성 및 삭제가 발생하므로, 시스템 자원의 효율적인 할당 및 관리가 무엇보다 중요하다.
일반적으로, 과금 처리 시스템에 사용되는 유닉스(Unix) 운용 체제에 있어서, 복수의 프로세스 및 스레드 간의 데이터 메시지의 전달은 프로세스간 통신(IPC : Inter-Process Communication) 방식을 이용하여 수행되었다.
하지만, 대용량의 데이터 메시지를 IPC 방식을 이용하여 전달하는 것은 잦은 메모리 억세스(Access) 및 메모리 복사가 요구되며, 이에 따른 성능 저하를 야기되는 문제점이 있었다.
상기한 바와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 프로세스 및 스레드 간 송수신되는 데이터 메시지를 공유 메모리상에서만 처리하는 것이 가능한 프로세스 간 데이터 흐름 제어 장치를 제공하는 것이다.
또한, 본 발명의 목적은 응용 업무 프로세스로부터 실시간 수신되는 다양한 크기의 데이터를 효과적으로 처리하기 하는 것이 동적인 메모리 할당 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 응용 프로세스가 미리 정의된 프로세스 흐름 관리API를 통해서만 프로세스 흐름 관리부에 접근하는 것을 가능하게 함으로써, 불법적인 메모리의 접근을 미연에 방지하는 메모리 접근 제어 수단을 제공하는 것이다.
또한, 본 발명의 다른 목적은 실시간 발생하는 데이터 메시지의 처리 내역에 관한 로그 파일을 유지하고 장애 발생시 효과적으로 복구가 가능한 과금 게이트웨이 시스템을 제공하는 것이다.
또한, 본 발명의 다른 목적은 트랜잭션 단위의 데이터 처리를 가능하게 함으로써, 데이터 처리 성능을 향상시키는 것이다.
또한, 본 발명의 다른 목적은 프로세스흐름관리부에 소정의 사용자 인터페이스를 통해 프로세스/자원/망의 상태 관리, 통계 및 분석, 장애 관리 및 구성 정보 관리를 위한 운용 관리부를 추가함으로써, 시스템의 유지 보수가 용이할 뿐만 아니라 연구 개발을 위한 테스트 베드로 활용 가능한 과금 게이트웨이 시스템을 제공하는 것이다.
본 발명의 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면, 응용 프로세스 간 전송되는 메시지의 흐름을 제어하는 장치가 개시된다.
본 발명의 일 실시예에 따르면, 응용 프로세스 간 전송되는 메시지의 흐름을 제어하는 장치는 상기 응용 프로세스로부터 수신된 가변 길이 데이터 메시지 및 상기 데이터 메시지의 블록 정보를 유지하는 공유 메모리-여기서, 블록 정보는 메시지 식별자, 데이터 메시지 길이, 데이터 블록 페이지 시작 주소 중 적어도 하나를 포함함-; 상기 응용 프로세스의 제어 신호에 따라, 상기 블록 정보를 갱신하고, 상 기 데이터 메시지를 저장하기 위한 데이터 블록 페이지를 할당하는 제1 내지 제n 세션 스레드; 및 상기 응용 프로세스의 요청에 따라, 상기 응용 프로세스에 상응하는 상기 세션 스레드를 생성하거나 삭제하는 세션 관리부를 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 과금 게이트웨이 시스템에서 응용 프로세스 간 데이터 흐름을 제어하는 방법이 개시된다.
본 발명의 일 실시예에 따른 과금 게이트웨이 시스템에서 응용 프로세스 간 데이터 흐름을 제어하는 방법은 (a) 상기 응용 프로세스로부터 접속 요청 신호를 수신하는 경우, 공유 메모리에 대한 접속을 허가하는 단계; (b) 상기 응용 프로세스로부터 수신된 데이터 메시지를 상기 공유 메모리에 저장하고, 미리 할당된 대기 행렬에 상기 수신된 데이터 메시지에 상응하여 생성된 메시지 정보 구조체를 추가하는 단계; 및 (c) 상기 생성된 메시지 정보 구조체에 대응하는 블록 정보를 상기 공유 메모리에 기록하는 단계를 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, (a) 상기 응용 프로세스로부터 접속 요청 신호를 수신하는 경우, 공유 메모리에 대한 접속을 허가하는 단계; (b) 상기 응용 프로세스로부터 수신된 데이터 메시지를 상기 공유 메모리에 저장하고, 미리 할당된 대기 행렬에 상기 수신된 데이터 메시지에 상응하여 생성된 메시지 정보 구조체를 추가하는 단계; 및 (c) 상기 생성된 메시지 정보 구조체에 대응하는 블록 정보를 상기 공유 메모리에 기록하는 단계를 포함하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법을 실행하는 프로그램이 기록된 기록 매체가 제공된다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 우선 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
이하에서, 본 발명에 따른 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이 데이터 흐름 제어 방법 및 그 장치에 관한 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 과금 게이트웨이 시스템 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 과금 게이트웨이 시스템(100)은 SGSN(Serving Gateway Support Node, 140) 및 GGSN(Gateway GPRS Support Node, 150)로부터 수신된 실시간 과금 기초 데이터(Charging Data Record, 이하, 'CDR'이라 함)를 수신하는 경우, 프로세스 흐름 제어(Process Flow Control), 실시간 흐름 제어(Realtime Flow Control) 및 배치 흐름 제어(Batch Flow Control) 등의 흐름 제어 모델을 수행한 후, 처리 결과를 빌링시스템(160) 및 통계시스템(170)에 제공하는 기능을 수행할 수 있다.
여기서, 흐름 제어 모델은 응용 비즈니스 프로세스-여기서, 응용 비즈니스 프로세스는 업무 단위 별 물리적인 데몬(Deamon) 프로세스로 구현될 수 있음-의 업무 특성에 따라 세 가지의 흐름 제어 모델 중 어느 하나가 선택적으로 수행될 수 있다.
예를 들면, 프로세스 흐름 제어 모델은 대용량 및 실시간으로 발생하는 데이터에 대한 신속한 처리를 요하는 요금관리(Mediation) 및 요금계산(Rating) 작업에 적합할 수 있다.
여기서, 요금관리는 원시 과금 데이터를 수집하여 원시 과금 파일을 생성하거나, 생성된 원시 과금 파일을 이용하여 장애 복구를 위한 백업 파일을 생성하는 작업을 포함할 수 있다.
또한, 요금계산은 수집된 과금 데이터, 고객 별 요율 정보-여기서, 요율 정보는 가입 상품 별 요율, 할인율 및 마일리지 적립율 등의 정보를 포함할 수 있음-를 이용하여 사용 요금을 계산하는 작업을 포함할 수 있다.
특히, 본 발명에 따른 과금 게이트웨이(100)는 업무 프로세스의 기능 및 특성에 따라 정의된 복수의 독립된 모듈로 구성함으로써, 모듈 별 소정 기능의 변경 및 추가가 용이할 뿐만 아니라, 멀티 프로세스 처리가 가능한 특징이 있다.
이하의 설명에서는, CDR을 수집, 가공 및 배포하기 위한 과금 게이트웨이(100)의 구조 및 동작 원리를 도면을 참조하여 상세히 설명하기로 한다.
본 발명의 일 실시예에 따른 과금 게이트웨이(100)는 프로세스흐름관리부(110), 프로세스흐름관리응용프로그램인터페이스(120, 이하, '프로세스흐름관리API(Application Programming Interface)'이라 함) 및 응용 업무 프로세스(130)을 포함할 수 있다.
프로세스흐름관리부(110)는 응용 업무 프로세스(130)의 제어 신호에 따라 세 션의 설정 및 해제하는 기능, 세션 스레드(Thread) 별 할당되는 대기 행렬(Queue)을 관리하는 기능 및 장애 복구를 위한 로그 파일을 관리하는 기능을 포함할 수 있다.
특히, 본 발명에 따른 프로세스흐름관리부(110)는 응용 업무 프로세스(130)로부터 실시간 수신되는 다양한 크기의 메시지 블록을 저장하기 위해 자원의 낭비 없이 필요한 메모리를 동적으로 할당 할 수 있는 특징이 있다.
응용 업무 프로세스(130)는 는 프로세스흐름관리API(120)상에 미리 정의된 API를 통해서만 프로세스흐름관리부(110)에 접속할 수 있다. 즉, 응용 업무 프로세스(130)는 특정 서비스의 요청 및 메시지 블록의 처리가 필요한 경우, 미리 정의된 API를 이용하여 프로세스흐름관리API(120)에 미리 정의된 특정 함수를 호출할 수 있다. 프로세스흐름관리API(120)는 호출 함수에 상응하는 제어 메시지를 생성하여 프로세스흐름관리부(110)에 전송할 수 있다.
특히, 본 발명에 따른 과금 게이트웨이(100)는 응용 업무 프로세스(130)의 프로세스흐름관리부(110)로의 접근을 프로세스흐름관리API(120)를 통해서만 가능하게 함으로써, 불법적인 공유 메모리(115) 접근을 미연에 방지할 수 있다.
요약하면, 본 발명에 따른 응용 업무 프로세스(130)는 프로세스흐름관리부(110)에서 제공하는 서비스를 이용하여 위해서는 반드시 프로세스흐름관리API(120)에 정의된 API를 이용해야 한다.
응용 업무 프로세스(130)는 GTP(GPRS Tunneling Protocol) 인터페이스(131), ASN.1 해독기(132), AG(Aggregate, 133), 필터(Filter, 134), 상관기(Correllator, 135) 및 분배기(Distributor, 136) 프로세스를 포함할 수 있다.
GTP 인터페이스 프로세스(131)는 SGSN(140)과 GGSN(150)으로부터 GPRS 터널링 프로토콜을 통하여 CDR을 수집하는 기능 및 외부 장치(예를 들면, 스위치, 게이트웨이 및 응용 서버를 포함함)로부터 수신되는 과금 기초 데이터(예를 들면, CDR, IPDR 및 UDR를 포함할 수 있음)의 흐름을 과금 게이트웨이(100)의 부하에 따라 제어할 수 있다.
ASN.1 해독기 프로세스(132)는 ASN.1 타입으로 인코딩(Encoding)된 CDR 데이터를 디코딩(Decoding)하여 미리 정의된 표준 포맷으로 변환하는 기능을 제공할 수 있다.
AG 프로세스(132)는 ASN.1 해독기(132)를 통해 디코딩된 CDR을 소스 별로 구분하고, 하나의 소스로부터 수신된 복수의 부분 CDR을 하나의 완전한 CDR로 결합하는 기능을 제공할 수 있다.
필터 프로세스(134)는 빌링시스템(160) 또는 통계시스템(170)에 적합한 정보를 생성하기 위해, CDR에 포함된 적어도 하나의 필드 중 필요한 필드만을 필터링하는 기능을 수행할 수 있다.
상관기 프로세스(135)는 복수의 소스로부터 생성된 CDR의 상관 관계를 분석하고, 분석된 상관 관계에 따라 완전한 하나의 CDR을 생성하는 기능을 수행할 수 있다.
예를 들면, 과금 게이트웨이(100)가 하나의 세션에 속하는 CDR을 SGSN(140)과 GGSN(150)으로부터 수신하는 경우, 본 발명에 따른 상관기 프로세스(135)는 수 신된 CDR의 상관 관계를 분석하여 하나의 완전한 CDR을 생성할 수 있다.
분배기 프로세스(136)는 과금 게이트웨이(100)에 의해 처리된 과금 데이터를 빌링시스템(160) 및 통계시스템(170)에 전송하는 기능을 수행할 수 있다.
특히, 응용 업무 프로세스(130)는 외부 장치로부터 수신된 CDR의 종류 및 특성에 따라 상기한 프로세스의 일부 기능을 수행하지 않을 수 있다.
예를 들면, 외부 장치로부터 수신된 CDR이 부분 CDR이 아닌 경우, 과금 게이트웨이(100)는 AG 프로세스(133)의 기능을 수행하지 않을 수 있다. 또한, 외부 장치로부터 문자 메시지에 대응하는 CDR이 수신된 경우, 과금 게이트웨이(100)는 AG 프로세스(133) 및 상관기 프로세스(135) 기능을 수행하지 않을 수 있다.
도 1에 도시된 바와 같이, 본 발명은 공유 메모리에 저장된 메시지 블록을 복수의 프로세스가 접근하는 것을 가능하게 함으로써, 프로세스 간 통신시 매번 메시지 블록 생성하고 생성된 메시지 블록을 송/수신하는 것을 방지할 수 있다.
결과적으로, 본 발명은 공유 메모리를 통해 프로세스 간 메시지 송/수신 시 사용되는 메모리 카피(Copy)의 횟수를 줄임으로써, 과금 게이트웨이(100)의 전체적인 성능을 향상시키는 효과를 얻을 수 있다.
도 2는 본 발명의 일 실시예에 따른 프로세스흐름관리부의 상세 블록도이다.
도 2를 참조하면, 본 발명에 따른 프로세스흐름관리부(200)는 세션관리부(Session Negotiator, 230), 운용 관리부(Operation/Administration & Management, 235), 메모리 관리부(Memory Manager, 240), 세션 스레드(Session Thread, 250), 대기 행렬(Queue, 260), 제어부(270), 장애 관리부(Audit Manager, 280), 장애 복구부(Audit Recovery, 285) 및 로그 파일 생성부(Audit Logger, 290) 중 적어도 하나를 포함할 수 있다.
구성 정보 저장부(245) 및 트랜잭션 로그 파일 저장부(295)는 프로세스흐름관리부(200)의 내부 또는 외부에 구비될 수 있다.
도 2에 도시된 바와 같이, 구성 정보 저장부(245)는 메모리관리부(240)와 트랜잭션 로그 파일 저장부(295)는 장애 관리부(280), 장애 복구부(285) 및 로그 파일 생성부(290)와 각각 인터페이스를 가질 수 있다.
본 발명에 따른 제어부(270)는 프로세스흐름관리API(220)를 통해 응용 프로세스(215)가 송신한 제어 메시지를 수신하는 경우, 수신된 제어 메시지를 처리하는 하부 모듈로 해당 메시지를 전달하거나 하부 모듈로부터 생성된 제어 메시지를 프로세스흐름관리API(220)에 전달하는 기능을 수행할 수 있다. 즉, 제어부(270)는 프로세스흐름관리부(200)에서의 메시지 라우터(router)로서의 기능을 수행할 수 있다.
또한, 제어부(270)는 프로세스흐름관리부(200)가 최초 시작되는 경우, 미리 정의된 순서에 따라 하부 모듈을 초기화시키는 기능을 수행할 수 있다.
여기서, 하부 모듈은 세션관리부(230), 운용관리부(235), 메모리관리부(240), 장애관리부(280), 장애복구부(285) 및 로그 파일 생성부(290)을 포함할 수 있다.
세션 스레드(250)는 응용 프로세스(215)로부터 수신되는 제어 신호에 따라, 세션 관리부(230)에 의해 실시간으로서 생성 또는 삭제될 수 있다.
대기 행렬(260)은 프로세스흐름관리부(200)의 초기화 과정에서 미리 생성되거나, 응용 프로세스(215)로부터 수신된 제어 신호(여기서, 제어 신호는 서비스 요청 신호 및 서비스 종료 신호를 포함함)에 따라 동적으로 생성 또는 삭제 될 수 있다.
본 발명에 따른 세션 스레드(250)는 대기 행렬(260)과 일대일 대응 관계가 성립될 수 있다. 예를 들면, 제 1 대기 행렬(265)는 제 1 세션 스레드(255)에 의해 관리되는 대기 행렬일 수 있다.
응용 프로그램 모듈(210)은 적어도 하나의 응용 프로세스(215) 및 각각의 응용 프로세스(215)에 상응하는 프로세스흐름관리API(220)를 포함할 수 있다.
도 2를 참조하면, 응용 프로세스(215)별 프로세스흐름관리API(220)가 일대일로 대응하는 것으로 도시되어 있으나, 본 발명의 다른 일 실시예에 따른 프로세스흐름관리부(220)는 응용 프로그램 모듈(210)내에서 하나만 존재하고 모든 응용 프로세스가 공유하는 구조를 가질 수도 있음을 주의해야 한다.
응용 프로세스(215)는 프로세스흐름관리API(220)를 통해서만 프로세스흐름관리부(200)에 접근할 수 있으며, 응용 프로세스(215)와 프로세스흐름관리부(200)와의 메시지 전달은 유닉스(Unix) 시스템에서 제공하는 두 개의 IPC(Interprocess Communication)를 통해 수행될 수 있다.
예를 들면, 제어 메시지-여기서, 제어 메시지는 서비스 요청 및 해제 메시지를 포함할 수 있음-는 유닉스 시스템에서 제공하는 도메인 소켓(Socket) 통신을 이 용하며, 실제적인 데이터 메시지는 유닉스 공유 메모리(225)를 이용하여 통신할 수 있다.
즉, 응용 프로세스(215)는 데이터 메시지를 저장/검색/삭제하기 위해 사용하는 제어 메시지-여기서, 제어 메시지는 미리 정의된 API인 PUT/GET 등의 함수를 이용할 수 있음-를 유닉스 시스템에서 제공하는 도메인 소켓을 이용하여 프로세스흐름관리부(200)에 전송할 수 있다.
만약, 프로세스흐름관리API(220)가 응용프로세스(215)로부터 처리 완료된 데이터 메시지의 저장을 위한 제어 메시지-여기서, 제어 메시지는 저장할 데이터 메시지의 시작 주소 및 길이 정보를 포함할 수 있음-를 수신하는 경우, 프로세스흐름관리API(220)는 수신된 주소 정보 및 길이 정보를 참조하여 응용프로세스(215)에 할당된 공유 메모리에 해당 데이터 메시지를 저장할 수 있다.
세션 스레드(255)는 저장된 데이터 메시지에 대한 블록 정보-여기서, 블록 정보는 고유한 메시지 식별자, 공유 메모리 상에서의 메시지 시작 주소 및 메시지 길이 정보를 포함할 수 있음-는 응용 프로세스(215)에 상응하는 대기 행렬(265)에 저장할 수 있다.
이후, 프로세스 간 데이터 메시지의 송수신은 대기 행렬(265)에 저장된 포인터 정보를 이용하여 수행될 수 있다.
운용 관리자는 운용관리부(235)가 제공하는 소정의 사용자 인터페이스를 통해 프로세스/자원/망의 상태 관리, 통계 및 분석, 장애 관리 및 구성 정보 관리 기능을 수행할 수 있다.
메모리관리부(240)는 제어부(270)의 제어 신호에 따라, 구성 정보 저장부(245)로부터 시스템 구성 정보를 획득하여 메모리 초기화 작업을 수행하거나, 응용 프로세스(215) 별 할당된 공유 메모리 및 대기 행렬(265)의 재할당 기능을 수행할 수 있다.
장애 관리부(280)는 시스템 운용 중 발생하는 장애를 감지하는 기능을 수행하며, 장애 복구부(285)는 장애 관리부(280)의 제어 신호에 따라 트랜잭션 로그 파일 저장부(295)에 저장된 로그 파일을 추출하여, 장애를 복구할 수 있다.
로그 파일 생성부(290)는 세션 스레드(250)의 제어 신호에 따라 로그 파일을 생성하여 트랜잭션 로그 파일 저장부(295)에 저장한다. 또한, 로그 파일 생성부(290)는 생성된 로그 파일에 대한 정보를 장애 관리부(280)에 전송할 수 있다.
장애 관리부(280)는 로그 파일 생성부(290)으로부터 새롭게 생성된 로그 파일에 대한 정보를 수신하는 경우, 트랜잭션 로그 파일 저장부(295)에 저장된 로그 파일 리스트를 갱신할 수 있다.
일반적으로, 응용 프로세스(215)에서 생성되는 데이터 메시지의 크기가 큰 경우(256Kbyte 이상인 경우를 포함함), 소켓을 통한 데이터 메시지의 전송은 잦은 메모리 카피(copy)에 따른 프로세서 처리 부하와 프로세스 간 데이터 전송에 따른 데이터 전송 부하를 발생시킴으로, 전체적인 과금 게이트웨이(100)의 처리 효율을 떨어뜨릴 수 있는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 본 발명은 특정 이벤트의 발생은 소켓 통신을 통해 수행하고, 실제적인 데이터 메시지의 송/수신은 공유 메모 리를 이용함으로써, 응용 프로세스(215)와 프로세스흐름관리부(200)가 공유 메모리를 사용하는데 있어서, 충돌 방지를 위한 별도의 세마포어(Semaphore)나 로킹(Locking) 기능을 추가하지 않아도 되는 장점이 있다.
특히, 본 발명의 일 실시예에 따른 프로세스흐름관리부(200)는 공유 메모리에 저장된 데이터 메시지를 다른 응용 프로세스에 전달해야 하는 경우, 대기 행렬 및 프로세스 블록을 이용한 메모리 포인터 전달 방식을 이용하므로, 시스템 자원-여기서, 시스템 자원은 메모리, CPU 및 데이터 전송 버스를 포함할 수 있음-의 사용을 줄이는 효과가 있다.
본 발명의 일 실시예에 따른 유닉스 공유 메모리(225) 구조는 응용 프로세스(215)와 프로세스흐름관리부(220) 사이의 메시지 송수신에 필요한 제어 정보를 저장하는 프로세스 블록과 실제적인 데이터 메시지 저장에 이용되는 비교적 작은 크기를 갖는 연속적인 데이터 블록-예를 들면, 1킬로바이트(Kbyte)의 크기가 될 수 있음-으로 구성된 메시지 블록으로 구성될 수 있다.
여기서, 프로세스 블록과 데이터 블록의 사이즈 및 개수는 사용자의 설정에 따라 변경될 수 있음을 주의해야 한다.
프로세스 블록은 응용 프로세스(215)의 정보와 프로세스흐름관리API(220)에서 데이터 메시지를 읽거나 쓰기 위해 필요한 메시지 블록의 주소 정보를 포함할 수 있다.
메시지 블록은 두 개의 연결 리스트(Linked List)로 구성될 수 있다, 각각은 현재 메시지 전송에 사용중인 데이터 블록을 위한 할당 리스트(Allocate List)와 가용한 데이터 블록을 위한 비할당 리스트(Reserved List)일 수 있다
예를 들면, 만약 메모리관리부(240)가 프로세스흐름관리API(220)로부터 데이터 메시지 전송을 위한 메모리 요청 신호를 수신하는 경우, 메모리관리부(240)는 필요한 만큼의 메모리를 비할당 리스트에서 할당하고, 할당된 메모리 주소 정보를 프로세스흐름관리API(220)에 제공할 수 있다. 이때, 할당된 메모리에 상응하는 데이터 블록은 할당 리스트로 이동된다.
만약, 메모리관리부(240)가 프로세스흐름관리API(220)로부터 특정 데이터 블록의 삭제 요청 메시지를 수신하는 경우, 해당 데이터 블록을 할당 리스트로부터 비할당 리스트에 이동시킨다.
다음은 본 발명의 일 실시예에 따른 1킬로바이트 크기를 갖는 데이터 블록의 자료 구조이다.
Typedef struct
{
ME_ADDR_T next_;
int32_t length_;
} ME_STShmDataHeader;
Typedef struct
{
ME_STShmDataHeader header_;
char data_[1024-sizeof(ME_STShmDataHeader)];
} ME_STShmDataBlock;
상기한 자료 구조와 같이, 하나의 데이터 블록은 소정의 헤더(header) 필드와 캐랙터(char) 타입의 데이터 필드를 포함할 수 있다.
여기서, 헤더는 연결 리스트 상의 다음 데이터 블록의 주소를 가리키는 next_필드와 데이터의 길이를 가리키는 length_필드를 포함할 수 있다.
이상의 자료 구조를 통해, 본 발명에 따른 프로세스흐름관리부(200)는 응용 프로세스(215)의 데이터 전송에 필요한 메모리를 효과적으로 할당할 수 있다.
도 3은 본 발명의 일 실시예에 따른 프로세스흐름관리부의 초기화 절차를 도시한 순서도이다.
과금 게이트웨이(100)가 기동되면 프로세스흐름관리부(200)는 서비스 제공을 위한 하부 모듈의 초기화 작업을 시작한다(S300).
본 발명의 일 실시예에 따른 프로세스흐름관리부(200)에 탑재되는 프로그램은 기능 및 특성에 따라 복수의 태스크로 모듈화되어 구성될 수 있다. 이때, 시스템의 하부 모듈을 제어하는 태스크(이하, '제어 태스크'이라 함)가 존재할 수 있으며, 제어 태스크는 시스템의 부팅 및 프로그램 로딩이 완료되면, 최초로 실행되어 시스템의 하부 모듈의 초기화를 수행할 수 있다.
본 발명의 다른 일 실시예에 따르면, 시스템에 전원이 인가된 후 시스템의 부팅 및 프로그램 로딩이 완료되면, 프로세스흐름관리부(200)에 탑재되는 하부 모듈의 초기화에 필요한 절차를 정형화된 프로그램 언어로 구현한 초기화 프로그램-여기서, 초기화 프로그램은 사용자 정의된 함수일 수 있음-이 호출될 수 있다.
이하의 설명에서는 하부 모듈의 초기화를 도 2에 도시된 제어부(270)에 상응하는 태스크에서 수행하는 것으로 설명하나 반드시 이에 한정되지 않음을 주의해야 한다.
메모리 관리부(240)는 제어부(270)의 제어 신호에 따라 메모리 관리부(240)의 초기화 절차를 수행한다, 여기서, 메모리 관리부(240)의 초기화 절차는 공유 메모리를 초기화하는 단계(S310)와 대기 행렬을 초기화하는 단계(S320)를 포함할 수 있다.
여기서, 공유 메모리를 초기화 하는 단계는 메모리 관리부(240)가 구성 정보 저장부(245)로부터 공유 메모리의 구성 정보를 추출하는 단계 및 추출된 공유 메모리 구성 정보를 참조하여 프로세스 블록과 데이터 블록을 초기화하는 단계를 포함할 수 있다.
대기 행렬 초기화 단계는 메모리 관리부(240)가 구성 정보 저장부(245)로부터 대기 행렬의 구성 정보를 추출하는 단계 및 추출된 대기 행렬 구성 정보를 참조하여 데이터 메시지 정보를 저장하기 위한 대기 행렬을 생성하고 생성된 대기 행렬을 대기 행렬 리스트에 등록하는 단계를 포함할 수 있다.
여기서, 데이터 메시지 정보는 데이터 메시지 별로 고유하게 부여되는 메시지 식별자 필드, 메시지 길이 필드 및 공유 메모리상에 저장된 데이터 블록의 시작 주소 필드를 포함할 수 있다.
장애 복구부(285)는 제어부(270)의 제어 신호에 따라, 소정의 기록 매체-여기서, 기록 매체는 트랜잭션 로그 파일 저장부(295)일 수 있음-에 저장된 이벤트 로그 파일을 분석하여 복구가 필요한지 판단한다(S330).
판단 결과, 복구가 필요한 경우, 장애 복구부(285)는 처리가 종료되지 않은 데이터 메시지를 해당 이벤트 로그 파일로부터 추출하여, 공유 메모리상의 데이터 블록에 추출된 데이터 메시지를 기록하고, 기록된 데이터 메시지에 상응하는 데이터 메시지 정보를 해당 대기 행렬에 등록한다(S340).
상기한 330 단계에 있어서, 복구가 필요하지 않은 경우, 제어부(270)는 이벤트 로그 파일을 관리하는 장애 관리부(280) 스레드를 생성한다(S350).
제어부(270)는 응용 프로세스의 요청에 따라 세션을 설정하거나 삭제하는 기능을 수행하는 세션 관리부(230) 스레드를 생성한 후(S360), 응용 프로세스 접속 대기 상태로 천이한다(S370).
도 4는 본 발명의 일 실시예에 따른 세션 관리부의 동작을 도시한 순서도이다.
도 4에 도시된 바와 같이, 세션 관리부(230) 스레드-이하의 설명에서는 세션 관리부(230) 스레드를 세션 관리부(230)라 명하기로 함-가 기동되면(400), 세션 관리부(230)는 제어 메시지의 수신 여부를 주기적으로 확인한다(S410).
확인 결과, 수신된 제어 메시지가 존재하는 경우, 세션 관리부(230)는 수신 된 제어 메시지가 응용 프로세스로부터 수신된 접속 요청 신호인지 판단한다(S420).
판단 결과, 접속 요청 신호인 경우, 세션 관리부(230)는 해당 응용 프로세스에 상응하는 세션 스레드를 생성하고(S430), 생성된 세션 스레드 정보를 세션 리스트에 등록한다(S440).
여기서, 접속 요청 신호는 소정의 응용 프로세스 식별자를 포함할 수 있으며, 생성된 세션 스레드와 해당 응용 프로세스는 응용 프로세스 식별자를 이용하여 일대일 통신을 수행할 수 있다.
상기한 420 단계에서, 판단 결과, 접속 요청 신호가 아닌 경우, 세션 관리부(230)는 수신된 제어 메시지가 응용 프로세스로부터 수신된 세션 종료 요청 신호인지 판단한다(420).
판단 결과, 세션 종료 요청 신호인 경우, 세션 관리부(230)는 해당 응용 프로세스에 상응하는 세션 스레드를 세션 리스트로부터 삭제한 후(S460), 응용 프로세스 접속 대기 상태로 천이한다(S470).
본 발명의 일 실시예에 따른 세션 관리부(230)는 세션 리스트에 포함된 세션 스레드의 상태를 체크하여, 활성(Active), 정지(Stop) 중 어느 하나의 상태로 설정할 수 있다.
여기서, 활성 상태는 세션 스레드의 동작이 정상임을 의미하고, 정지 상태는 세션 스레드가 비정상적으로 종료되었음을 의미한다.
세션 관리부(230)는 주기적으로 세션 리스트에 포함된 세션 스레드의 상태 정보를 조회하여, 정지 상태인 세션 스레드를 세션 리스트로부터 삭제할 수 있다.
도 5는 본 발명의 일 실시예에 따른 응용 프로세스가 요청한 서비스를 초기화하는 방법을 도시한 순서도이다.
도 5에 도시된 바와 같이, 세션 스레드의 동작이 시작되면, 세션 스레드는 응용 프로세스로부터 패킷이 수신되었는지 확인한다(S510).
확인 결과, 패킷이 수신된 경우, 세션 스레드는 수신된 패킷이 서비스 개시 요구 메시지인지 확인한다(S520).
확인 결과, 서비스 개시 요구 메시지인 경우, 세션 스레드는 요청된 서비스의 개시가 가능한지 여부를 판단한다(S530).
여기서, 서비스 개시 가능 여부의 판단은 구성 정보 저장부(245)에 해당 응용 프로세스에 상응하는 대기 행렬의 등록 여부와 해당 응용 프로세스에 상응하는 서비스 개시 요구가 이미 수신되었는지 여부를 판단하는 절차를 포함할 수 있다.
상기한 530 단계에서, 서비스 개시가 가능한 경우, 세션 스레드는 서비스 초기화 작업 및 해당 응용 프로세스에 서비스 개시 요청에 대한 응답 메시지를 송신한다(S540).
여기서, 서비스 초기화 작업은 메모리 관리부(240)로부터 공유 메모리 상의 프로세스 블록을 할당 받는 단계 및 해당 응용 프로세스에 상응하는 대기 행렬을 할당 받는 단계를 포함할 수 있다.
만약, 서비스 초기화 작업이 성공한 경우, 세션 스레드는 할당된 프로세스 블록의 상대 주소를 포함하는 응답 메시지를 해당 응용 프로세스에 송신할 수 있다.
여기서, 상대 주소는 할당된 공유 메모리의 절대적인 시작 주소(이하, '베이스 주소(Base Address)'이라 함)에 상대적인 오프셋(Offset) 주소 값일 수 있다.
만약, 서비스 초기화 작업을 수행하는 과정에서 오류가 발생한 경우, 세션 스레드는 소정의 오류 코드-여기서, 오류 코드는 할당 가능한 프로세스 블록이 존재하지 않음을 의미하는 코드를 포함할 수 있음-를 포함하는 응답 메시지를 해당 응용 프로세스에 송신할 수 있다.
상기한 530 단계에서 서비스 개시가 불가능한 것으로 판단된 경우, 세션 스레드는 해당 응용 프로세스에 오류 응답 메시지를 송신할 수 있다(S550).
세션 스레드는 서비스 개시 요청 메시지에 상응하는 성공 응답 메시지의 송신 시 소켓 오류-여기서, 소켓 오류는 세션 스레드와 응용 프로세스 사이의 IPC 통신이 불가능함을 의미함-의 발생 여부를 판단한다(S560).
판단 결과, 소켓 오류가 발생하지 않은 경우. 세션 스레드는 요청된 서비스를 개시한다(S570).
상기한 560 단계에서, 소켓 오류가 발생한 경우, 세션 스레드는 세션 스레드를 종료할 수 있다(S590).
상기한 520 단계에 있어서, 수신된 패킷이 서비스 개시 요구 메시지가 아닌 경우, 세션 스레드는 소켓 에러의 발생 여부를 판단한다(S580).
판단 결과, 소켓 오류가 발생하지 않은 경우, 세션 스레드는 상기한 510 단 계를 수행한다. 반면, 소켓 오류가 발생한 것으로 판단된 경우, 세션 스레드는 상기한 590 단계를 수행한다.
본 발명의 일 실시예에 따른 세션 스레드를 종료하는 방법은 해당 세션 스레드가 자신의 동작을 중지하고 할당된 메모리를 반환하는 단계, 해당 세션 스레드가 세션 스레드 종료 보고 메시지를 세션 관리부(230)에 송신하는 단계 및 세션 관리부(230)가 세션 스레드 종료 보고 메시지를 송신한 세션 스레드에 상응하는 정보를 세션 리스트에서 삭제하는 단계를 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따른 응용 프로세스가 요청한 서비스를 초기화하는 과정을 도시한 흐름도이다.
도 6을 참조하면, 응용 프로세스(215)는 프로세스흐름관리부(200)의 서비스를 제공받기 위해 프로세스흐름관리 접속 요구 신호를 프로세스흐름관리API(220)에 송신한다(S602).
프로세스흐름관리API(220)는 응용 프로세스(215)가 프로세스흐름관리부(200)에 의해 설정된 공유 메모리로의 접근에 필요한 베이스 주소를 획득한 후(S604), 프로세스흐름관리 접속 응답 신호를 응용 프로세스(215)에 송신한다(S806).
프로세스흐름관리API(220)가 응용 프로세스(215)로부터 서비스 개시 요구 신호를 수신하는 경우(S608), 프로세스흐름관리API(220)는 유닉스 도메인 소켓을 클라이언트 모드로 전환시킨다(S610).
유닉스 도메인 소켓이 클라이언트 모드로 설정되는 경우, 응용 프로세 스(215)는 프로세스흐름제어관리부(200)에 접속할 수 있으며, 클라이언트-서버 구조로 동작할 수 있다. 여기서, 클라이언트는 응용 프로세스(215)이고, 서버는 프로세스흐름제어관리부(200)가 될 수 있다.
만약 세션 관리부(230)가 프로세스흐름관리API(220)로부터 소켓 연결 요구 신호를 수신하면(S612), 세션 관리부(230)는 세션 스레드(250)를 생성하고 생성된 세션 스레드에 대한 정보를 세션 리스트에 등록할 수 있다(S614).
이후, 세션 관리부(230)는 생성된 세션 스레드에 상응하는 소정의 세션 식별자를 포함하는 소켓 연결 응답 신호를 프로세스흐름관리API(220)에 송신한다(S616).
프로세스흐름관리API(220)는 상기 614 단계에서 설정된 세션 스레드(250)에 세션 식별자를 포함하는 세션 개시 요구 신호를 송신한다(S618).
만약, 세션 스레드(250)가 세션 개시 요구 신호를 수신하면, 세션 스레드(250)는 메모리 관리부(240)에 의해 할당된 대기 행렬을 바인딩(binding)하고, 메모리 관리부(240)로부터 프로세스 블록을 할당 받아 설정한다(S620).
이후, 세션 스레드(250)는 세션 식별자, 대기 행렬 바인딩 식별자, 프로세스블록 상대 주소 중 적어도 하나를 포함하는 세션 개시 응답 신호를 프로세스흐름관리API(220)에 송신한다(S622).
프로세스흐름관리API(220)는 미리 정의된 변수에 수신된 프로세스 블록의 상대 주소 값을 설정한 후(S624), 세션 식별자를 포함하는 서비스 개시 응답 신호를 응용 프로세스(215)에 송신한다(S626).
이후, 응용 프로세스(215)는 수신된 세션 식별자를 이용하여 세션 스레드(250)와 일대일 통신을 수행할 수 있다.
본 발명의 다른 일 실시예에 따른 프로세스흐름관리API(220)는 응용 프로세스와 해당 응용 프로세스에 상응하여 할당된 세션 스레드를 위한 세션 식별자의 매핑 테이블을 유지함으로써, 서비스 개시 응답에 세션 식별자를 포함하지 않을 수 있다.
즉, 응용 프로세스가 세션 식별자를 몰라도 프로세스흐름관리API(220)는 매핑 테이블을 이용하여 수신된 제어 신호를 해당 세션 스레드로 전달할 수 있다.
도 7은 본 발명의 일 실시예에 따른 프로세스흐름관리부에서 응용 프로세스의 메시지 삽입 요청을 처리하는 절차를 도시한 흐름도이다.
도 7을 참조하면, 프로세스흐름관리API(220)가 응용 프로세스(215)로부터 데이터 및 데이터의 길이 정보를 포함하는 메시지 저장 요구 신호를 수신하는 경우(S702), 프로세스흐름관리API(220)는 수신된 데이터를 저장하기 위해 필요한 데이터 블록 페이지가 예약된 프로세스 블록에 존재하는지 확인한다(S704).
여기서, 필요한 데이터 블록 페이지는 수신된 데이터 길이를 미리 정의된 데이터 블록의 크기(예를 들면, 본 발명의 일 실시예에 따른 데이터 블록의 크기는 1Kbyte에서 데이터 블록의 헤더 사이즈를 차감한 값일 수 있음)로 나눈 몫에 1을 더한 값일 수 있다.
확인 결과, 필요한 데이터 블록이 존재하지 않는 경우, 프로세스흐름관리 API(220)는 수신된 데이터 길이 정보를 포함하는 데이터 블록 할당 요구 신호를 세션 스레드(250)에 송신한다(S706).
세션 스레드(250)는 기존에 할당된 데이터 블록 페이지를 반환한 후 메모리 관리부(240)로부터 필요한 데이터 블록을 재할당 받는다(S708). 세션 스레드(250)는 재할당된 데이터 블록에 상응하는 상대 주소를 계산하고(S710), 계산된 상대 주소를 포함하는 데이터 블록 할당 응답 신호를 프로세스흐름관리API(220)에 송신한다(S712).
프로세스흐름관리API(220)는 수신된 상대 주소에 데이터를 저장한 후(S714), 메시지 저장 응답 신호를 응용 프로세스(215)에 송신한다(S716).
프로세스흐름관리API(220)는 응용 프로세스(215)로부터 실행 요구 신호를 수신하는 경우(S718), 수신된 실행 요구 신호를 세션 스레드(250)에 전달한다(S720).
만약 세션 스레드(250)가 실행 요구 신호를 수신하면, 세션 스레드(250)는 상기 714 단계에서 저장된 데이터에 대응하는 메시지 식별자 및 메시지 정보 구조체를 생성한다(S722).
여기서, 메시지 식별자는 공유 메모리의 프로세스 블록에 저장된 데이터 블록 정보를 대기 행렬에 등록하기 위해 메시지 별로 고유하게 할당되는 식별자이다.
메시지 정보 구조체는 메시지 식별자, 데이터의 길이 및 데이터가 기록된 공유메모리상의 상대 주소를 포함할 수 있다.
로그 파일 생성부(290)는 메시지 정보 구조체를 포함하는 로그 생성 요구 신호를 세션 스레드(250)로부터 수신하는 경우, 소정의 로그 파일에 메시지 정보 구 조체에 상응하는 정보를 저장한다(S726).
본 발명의 일 실시예에 따른 로그 생성 요구 신호는 메시지의 삽입 또는 삭제를 지시하는 제어 식별자를 포함할 수 있으며, 로그 파일 생성부(290)는 수신된 제어 식별자에 따라, 메시지 정보 구조체에 상응하는 메시지를 삽입 또는 삭제할 수 있다.
세션 스레드(250)는 로그 파일 생성부(290)로부터 로그 생성 응답 신호를 수신하면(S730), 기 생성된 메시지 정보 구조체를 대기 행렬 연결 리스트의 마지막 노드에 추가한 후(S730), 추후 응용 프로세스(215)로부터 수신될 메시지 저장 요구 신호를 처리하기 위한 소정의 데이터 블록 페이지를 메시지 관리부(240)로부터 획득한다(S732).
세션 스레드(250)는 획득된 데이터 블록 페이지의 상대 주소를 계산한 후(S734), 계산된 상대 주소 및 데이터 블록 페이지의 개수 정보를 포함하는 실행 응답 신호를 프로세스흐름관리API(220)에 송신한다(S736).
프로세스흐름관리API(220)는 수신된 상대 주소 및 데이터 블록 페이지의 개수 정보를 이용하여, 프로세스 블록 정보를 갱신한 후(S738) 실행 응답 신호를 응용 프로세스(215)에 송신한다(S740).
만약, 상기한 704 단계에서, 필요한 데이터 블록 페이지가 존재하는 경우, 프로세스흐름관리API(220)는 수신된 데이터를 공유 메모리에 저장한 후 소정의 응답 메시지를 응용 프로그램(215)에 송신할 수 있다. 이후, 상기한 718 내지 740 단계가 순차적으로 수행될 수 있다.
본 발명의 일 실시예에 따르면, 세션 스레드(250)는 재할당할 데이터 블록 페이지를 메모리 관리부(240)으로부터 획득할 수 없는 경우, 공유 메모리가 풀(Full) 상태임을 지시하는 데이터 블록 할당 응답 신호를 프로세스흐름관리API(220)에 송신할 수 있다. 이후, 프로세스흐름관리API(220)는 응답 결과가 재시도(AGAIN)인 메시지 저장 응답 신호를 응용 프로세스(215)에 송신할 수 있다.
여기서, 재시도는 다른 응용 프로세스가 데이터 블록 페이지를 반환할 때까지 일정 시간 동안 대기한 후 다시 메모리 저장을 시도하라는 의미로 사용될 수 있다.
본 발명의 다른 일 실시예에 따르면, 프로세스흐름관리API(220)는 트랜잭션 단위로 데이터를 처리하기 위해, 응용 프로세스(215)로부터 수신된 복수의 데이터 메시지를 공유 메모리에 버퍼링한 후, 실행 요구 신호를 수신하면, 버퍼링된 데이터 메시지에 대한 정보를 대기 행렬에 반영할 수 있다.
즉, 프로세스흐름관리부(200)는 상기한 702 단계 내지 716 단계를 여러 번 반복 수행한 후, 공유 메모리상에 버퍼링 된 데이터를 트랜잭션 단위로 한번에 처리함으로써, 프로세스 간의 잦은 문맥 전환(context switching)에 의한 처리 효율이 떨어지는 것을 방지할 수 있다.
도 8은 본 발명의 일 실시예에 따른 프로세스흐름관리부에서 응용 프로세스의 메시지 추출 및 삭제 요청을 처리하는 절차를 도시한 흐름도이다.
도 8을 참조하면, 프로세스흐름관리API(220)가 응용 프로세스(215)로부터 메 시지 추출 요구 신호를 수신하는 경우(S802), 프로세스흐름관리API(220)는 메시지 읽기(Read) 요구 신호를 세션 스레드(250)에 송신한다(S804).
세션 스레드(250)는 응용 프로세스(215)에 할당된 대기 행렬 연결 리스트의 첫번째 노드에서 메시지 정보 구조체를 추출한 후, 응용 프로세스(215)에 할당된 프로세스 블록에 추출된 메시지 정보 구조체를 기록한다(S806).
만약, 프로세스흐름관리API(220)가 세션 스레드(250)으로부터 패킷 응답 신호를 수신하는 경우(S808), 프로세스 블록의 정보를 참조하여, 데이터 블록에 저장된 데이터를 사용자 버퍼에 복사한 후(S810), 복사된 데이터 및 메시지 식별자를 포함하는 메시지 추출 응답 신호를 응용 프로세스(215)에 송신한다(S812).
응용 프로세스(215)는 수신된 메시지에 대한 처리가 완료하면(S814), 메시지 식별자 및 삭제 플래그(Flag)를 포함하는 메시지 삭제 요구 신호를 프로세스흐름관리API(220)에 송신한다(S816).
프로세스흐름관리API(220)는 프로세스 블록에 삭제할 메시지 정보를 설정한 후(S818), 메시지 삭제 응답 신호를 응용 프로세스(S215)에 송신한다(S820).
프로세스흐름관리API(220)는 응용 프로세스(215)로부터 실행 요구 신호-여기서, 실행 요구 신호는 메시지 식별자를 포함할 수 있음-를 수신하면, 수신된 실행 요구 신호를 세션 스레드(250)에 전달한다(S824).
세션 스레드(250)는 로그 파일에 기록된 메시지-여기서, 메시지는 삭제 요청된 메시지임-를 삭제하기 위해 메시지 정보를 포함하는 로그 삭제 요구 신호를 로그 파일 생성부(290)에 송신한다(S826).
로그 파일 생성부(290)는 로그 파일에서 해당 메시지를 삭제한 후(S928), 로그 삭제 응답 신호를 세션 스레드(250)에 송신한다(S830).
세션 스레드(250)는 삭제 요청된 메시지에 상응하여 대기 행렬 리스트에 저장된 메시지 정보 및 공유 메모리에 저장된 데이터 블록을 삭제한 후(S832) 실행 응답 신호를 프로세스흐름관리API(220)에 송신한다(S834).
이후, 프로세스흐름관리API(220)는 실행 응답 신호를 응용 프로세스(215)에 송신함으로써(S836), 메시지 추출 및 삭제 절차를 종료한다.
본 발명의 일 실시예에 따른 프로세스흐름관리부(200)는 트랙잭션 단위의 처리를 지원하기 위해, 상기한 802 단계 내지 820 단계를 반복 수행한 후, 응용 프로세스(215)로부터 실행 요구 신호를 수신하면, 반복 수행된 결과를 공유 메모리, 대기 행렬 및 로그 파일에 반영할 수 있다.
도 9는 본 발명의 일 실시예에 따른 응용 프로세스에 설정된 서비스를 종료하는 절차를 도시한 흐름도이다.
도 9에 도시된 바와 같이, 프로세스흐름관리API(220)가 응용 프로세스(215)로부터 서비스 해제 요구 신호를 수신하는 경우(S910), 프로세스흐름관리API(220)는 수신된 서비스 해제 요구 신호를 세션 스레드(250)에 전송한다(S920).
세션 스레드(250)는 응용 프로세스(215)를 위한 서비스를 종료함과 동시에 할당된 메모리-여기서, 메모리는 응용 프로세스(215)를 위해 할당된 대기 행렬일 수 있음-를 반환한 후(S930), 서비스 해제 응답 신호를 프로세스흐름관리API(220) 에 송신한다(S940).
또한, 세션 스레드(250)는 자신의 세션 스레드 식별자를 포함하는 세션 스레드 중지 보고 신호를 세션 관리부(230)에 송신한다(S950).
프로세스흐름관리API(220)는 세션 스레드(250)로부터 서비스 해제 응답 신호를 수신하면, 응용 프로세스(215)에 설정된 공유 메모리 접속 권한을 해제(Detach)한 후(S960), 서비스 해제 응답 신호를 응용 프로세스(215)에 송신한다(S980).
만약, 세션 관리부(230)가 세션 스레드(250)으로부터 세션 스레드 중지 보고를 수신하는 경우, 세션 관리부(230)는 자신이 관리하는 세션 스레드 리스트에서 세션 스레드(250)에 상응하는 세션 정보를 삭제한다(S970).
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명은 프로세스 및 스레드 간 송수신되는 데이터 메시지를 공유 메모리상에서만 처리하는 것이 가능한 흐름 제어 장치를 구비함으로써, 과도한 메모리 복사(copy)에 따른 처리 성능 저하를 방지하는 장점이 있다.
본 발명에 따른 프로세스흐름관리부는 응용 업무 프로세스로부터 실시간 수신되는 다양한 크기의 데이터를 처리하기 위해 비교적 작은 단위의 데이터 블록 페이지를 동적으로 할당하는 기능을 추가함으로써, 자원의 낭비 없이 필요한 메모리를 할당하는 장점이 있다.
또한, 본 발명은 응용 프로세스가 미리 정의된 프로세스 흐름 관리API를 통해서만 프로세스 흐름 관리부에 접근하는 것을 가능하게 함으로써, 불법적인 메모리의 접근을 미연에 방지하는 효과를 얻을 수 있다.
또한, 본 발명은 실시간 발생하는 데이터 메시지의 처리 내역에 관한 로그 파일을 유지함으로써, 장애 발생시 효과적으로 복구가 가능한 장점이 있다.
또한, 본 발명은 트랜잭션 단위의 데이터 처리가 가능하므로, 데이터 처리 성능을 향상시키는 효과를 얻을 수 있다.
또한, 본 발명은 특정 이벤트의 발생은 소켓 통신을 통해 수행하고, 실제적인 데이터 메시지의 송/수신은 공유 메모리를 이용함으로써, 응용 프로세스와 프로세스흐름관리부가 공유 메모리를 사용하는데 있어서, 충돌 방지를 위한 별도의 세마포어(Semaphore)나 로킹(Locking) 기능을 추가하지 않아도 되는 장점이 있다.
또한, 본 발명에 따른 프로세스흐름관리부는 공유 메모리에 저장된 데이터 메시지를 다른 응용 프로세스에 전달해야 하는 경우, 대기 행렬 및 프로세스 블록을 이용한 메모리 포인터 전달 방식을 이용하므로 시스템 자원-여기서, 시스템 자원은 메모리, CPU 및 전송 버스를 포함할 수 있음-을 효과적으로 사용하는 장점이 있다.
또한, 본 발명은 프로세스흐름관리부에 소정의 사용자 인터페이스를 통해 프로세스/자원/망의 상태 관리, 통계 및 분석, 장애 관리 및 구성 정보 관리를 위한 운용 관리부를 추가함으로써, 시스템의 유지 보수가 용이할 뿐만 아니라 연구 개발을 위한 테스트 베드로 활용될 수 있다.

Claims (19)

  1. SGSN(Serving Gateway Support Node) 및 GGSN(Gateway GPRS Support Node)로부터 과금 기초 데이터를 수신하여, 상기 과금 기초 데이터의 처리 결과를 빌링 시스템 및 통계 시스템으로 전달하는 과금 게이트웨이 시스템에 적용되는, 응용 프로세스 간의 가변 길이 데이터 흐름을 제어하는 장치로서,
    상기 응용 프로세스로부터 수신된 가변 길이 데이터 메시지 및 상기 데이터 메시지의 블록 정보를 유지하는 공유 메모리-여기서, 블록 정보는 메시지 식별자, 데이터 메시지 길이, 데이터 블록 페이지 시작 주소 중 적어도 하나를 포함함-;
    상기 응용 프로세스의 제어 신호에 따라, 상기 블록 정보를 갱신하고, 상기 데이터 메시지를 저장하기 위한 데이터 블록 페이지를 할당하는 제1 내지 제n 세션 스레드; 및
    상기 응용 프로세스의 요청에 따라, 상기 응용 프로세스에 상응하는 상기 세션 스레드를 생성하거나 삭제하는 세션 관리부를 포함하고,
    상기 세션 관리부는 상기 세션 스레드에 대응하는 대기 행렬을 할당하되, 상기 대기 행렬은 적어도 하나의 메시지 정보 구조체로 이루어진 연결 리스트(Linked List)이며,
    상기 메시지 정보 구조체는 메시지 식별자 필드, 데이터 메시지 길이 필드, 데이터 블록 페이지 시작 주소 중 적어도 하나를 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  2. 제1항에 있어서,
    상기 장치는 응용 프로세스에 상기 공유 메모리로의 접속 권한을 부여하는 프로세스흐름관리API를 더 포함하되,
    상기 프로세스흐름관리API는
    상기 수신된 데이터 메시지를 공유 메모리에 저장하는 수단;
    상기 제어 신호를 상기 응용 프로세스로부터 수신하는 경우, 소정의 포맷으로 변환하여 상기 세션 관리부 및 상기 세션 스레드 중 어느 하나에 송신하는 수단; 및
    상기 세션 관리부 및 상기 세션 스레드 중 어느 하나로부터 수신된 제어 신호를 소정의 포맷으로 변환하여 상기 응용 프로세스에 송신하는 수단
    을 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  3. 제2항에 있어서,
    상기 제어 신호는 유닉스 도메인 소켓(socket) 통신을 통해 송수신 되는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치..
  4. 삭제
  5. 삭제
  6. 제 1항에 있어서,
    상기 세션 스레드는 상기 응용 프로세스로부터 소정의 제어 신호를 수신하는 경우, 상기 메시지 정보 구조체를 상기 대기 행렬의 상기 연결 리스트에 추가 또는 삭제하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  7. 제 6항에 있어서,
    상기 공유 메모리는 적어도 하나의 상기 블록 정보로 구성된 프로세스 블록을 포함하되,
    상기 세션 스레드는 상기 메시지 정보 구조체를 삽입 또는 삭제하는 경우, 상기 메시지 정보 구조체를 참조하여 상기 프로세스 블록을 갱신하는 것을 특징으 로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  8. 제1항에 있어서,
    상기 장치는 상기 세션 스레드의 제어 신호에 따라 로그 파일을 생성하는 로그 파일 생성부를 더 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  9. 제8항에 있어서,
    상기 장치는 장애를 감지하고 상기 생성된 로그 파일을 관리하는 장애 관리부를 더 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  10. 제9항에 있어서,
    상기 장치는 상기 장애 관리부로부터 장애 발생을 알리는 제어 신호를 수신하는 경우, 상기 생성된 로그 파일을 이용하여 장애를 복구하는 장애 복구부를 더 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  11. 제 1항에 있어서,
    상기 장치는 미리 설정된 구성 정보를 이용하여 상기 공유 메모리를 초기화하고, 소정의 제어 신호에 따라 동적으로 메모리를 할당하는 메모리 관리부를 더 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 가변 길이 데이터 흐름 제어 장치.
  12. SGSN(Serving Gateway Support Node) 및 GGSN(Gateway GPRS Support Node)로부터 과금 기초 데이터를 수신하여, 상기 과금 기초 데이터의 처리 결과를 빌링 시스템 및 통계 시스템으로 전달하는 과금 게이트웨이 시스템에 적용되는, 응용 프로세스 간의 가변 길이 데이터 흐름을 제어하는 방법으로서,
    (a) 상기 응용 프로세스로부터 접속 요청 신호를 수신하는 경우, 공유 메모리에 대한 접속을 허가하는 단계;
    (b) 상기 응용 프로세스로부터 수신된 데이터 메시지를 상기 공유 메모리에 저장하고, 미리 할당된 대기 행렬에 상기 수신된 데이터 메시지에 상응하여 생성된 메시지 정보 구조체를 추가하는 단계; 및
    (c) 상기 생성된 메시지 정보 구조체에 대응하는 블록 정보를 상기 공유 메모리에 기록하는 단계를 포함하고,
    상기 (a) 단계는
    (a1) 상기 응용 프로세스로부터 서비스 개시 요구 신호를 수신하는 경우 상기 응용 프로세스에 대응하는 세션 스레드를 생성하는 단계; 및
    (a2) 상기 세션 스레드에 상응하는 대기 행렬을 바인딩(binding)하고, 상기 공유 메모리에 상기 블록 정보를 기록하기 위한 프로세스 블록을 할당하는 단계를 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  13. 삭제
  14. 제 12항에 있어서,
    상기 응용 프로세스로부터 서비스 해제 요구를 수신하는 경우, 상기 생성된 세션 스레드를 삭제하고 상기 공유 메모리로의 접속 권한을 해제하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  15. 제 12항에 있어서,
    상기 (b) 단계는 상기 수신된 데이터 메시지의 크기에 상응하는 데이터 블록 페이지를 할당하고, 상기 할당된 데이터 블록 페이지의 시작 주소에 상기 수신된 데이터 메시지를 저장하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  16. 제 12항에 있어서,
    상기 (b) 단계와 상기 (c) 단계 사이에, 상기 수신된 데이터 메시지에 상응하는 로그 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  17. 제 16항에 있어서,
    상기 응용 프로세스로부터 상기 저장된 데이터 메시지의 삭제 요구 신호를 수신하는 경우, 상기 저장된 로그 정보를 삭제하고 상기 대기 행렬 및 상기 공유 메모리에 저장된 상기 데이터 메시지에 상응하는 정보를 모두 삭제하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  18. 제 12항에 있어서,
    상기 메시지 정보 구조체는 상기 수신된 데이터 메시지에 상응하여 고유하게 할당된 메시지 식별자 필드, 상기 수신된 데이터 메시지의 크기를 가리키는 길이 필드, 상기 공유 메모리 상의 저장 위치를 가리키는 주소 필드 중 적어도 하나를 포함하는 것을 특징으로 하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법.
  19. SGSN(Serving Gateway Support Node) 및 GGSN(Gateway GPRS Support Node)로부터 과금 기초 데이터를 수신하여, 상기 과금 기초 데이터의 처리 결과를 빌링 시스템 및 통계 시스템으로 전달하는 과금 게이트웨이 시스템에 적용되는, 응용 프로세스 간 데이터 흐름을 제어하는 방법을 실행하는 유형화된 명령어로 이루어진 프로그램이 기록된 전자 장치에서 판독할 수 있는 기록 매체에 있어서,
    (a) 상기 응용 프로세스로부터 접속 요청 신호를 수신하는 경우, 공유 메모리에 대한 접속을 허가하는 단계;
    (b) 상기 응용 프로세스로부터 수신된 데이터 메시지를 상기 공유 메모리에 저장하고, 미리 할당된 대기 행렬에 상기 수신된 데이터 메시지에 상응하여 생성된 메시지 정보 구조체를 추가하는 단계; 및
    (c) 상기 생성된 메시지 정보 구조체에 대응하는 블록 정보를 상기 공유 메모리에 기록하는 단계를 포함하고,
    상기 (a) 단계는 (a1) 상기 응용 프로세스로부터 서비스 개시 요구 신호를 수신하는 경우 상기 응용 프로세스에 대응하는 세션 스레드를 생성하는 단계; 및 (a2) 상기 세션 스레드에 상응하는 대기 행렬을 바인딩(binding)하고, 상기 공유 메모리에 상기 블록 정보를 기록하기 위한 프로세스 블록을 할당하는 단계를 포함하는 공유 메모리 페이징 기법을 이용한 프로세스 간 데이터 흐름 제어 방법을 실행하는 프로그램이 기록된 기록 매체.
KR1020070038986A 2007-04-20 2007-04-20 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치 KR100871587B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070038986A KR100871587B1 (ko) 2007-04-20 2007-04-20 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070038986A KR100871587B1 (ko) 2007-04-20 2007-04-20 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20080094486A KR20080094486A (ko) 2008-10-23
KR100871587B1 true KR100871587B1 (ko) 2008-12-02

Family

ID=40154662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070038986A KR100871587B1 (ko) 2007-04-20 2007-04-20 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100871587B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983651B1 (ko) * 2008-01-08 2010-09-24 주식회사 케이티 메시지 저장을 위한 장치 및 방법
CN112328514B (zh) * 2020-11-12 2024-02-06 深圳中微电科技有限公司 一种多线程处理器系统产生独立进程标识的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063568A (ja) 1996-06-28 1998-03-06 Sun Microsyst Inc マルチスレッド環境におけるメモリの割り当て方法及びシステム
KR20010010275A (ko) * 1999-07-19 2001-02-05 정선종 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법
KR20010073676A (ko) * 2000-01-19 2001-08-01 구자홍 메모리 방식의 데이터 공유방법
KR20030020664A (ko) * 2001-09-04 2003-03-10 엘지전자 주식회사 교환 시스템에서 프로세스간 통신 방법
US20040268363A1 (en) 2003-06-30 2004-12-30 Eric Nace System and method for interprocess communication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063568A (ja) 1996-06-28 1998-03-06 Sun Microsyst Inc マルチスレッド環境におけるメモリの割り当て方法及びシステム
KR20010010275A (ko) * 1999-07-19 2001-02-05 정선종 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법
KR20010073676A (ko) * 2000-01-19 2001-08-01 구자홍 메모리 방식의 데이터 공유방법
KR20030020664A (ko) * 2001-09-04 2003-03-10 엘지전자 주식회사 교환 시스템에서 프로세스간 통신 방법
US20040268363A1 (en) 2003-06-30 2004-12-30 Eric Nace System and method for interprocess communication

Also Published As

Publication number Publication date
KR20080094486A (ko) 2008-10-23

Similar Documents

Publication Publication Date Title
US6067634A (en) System and method for resource recovery in a distributed system
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
US10298469B2 (en) Automatic asynchronous handoff identification
JPH1145187A (ja) 分散ガーベッジコレクションのためのリソースの管理方法、装置、コンピュータプログラム生産物、コンピュータシステム並びにプラットフォーム間に分散したリソースの割当及び割当解除方法
JP4205323B2 (ja) 配信システム、配信サーバとその配信方法、配信プログラム
KR100857036B1 (ko) 과금 시스템에서 트랜잭션 로그 파일을 이용한 장애 복구방법 및 그 장치
WO2021159831A1 (zh) 编程平台的用户代码运行方法及平台、节点、设备、介质
CN111158878B (zh) 资源转移请求线程控制方法、装置及存储介质
US8954584B1 (en) Policy engine for automating management of scalable distributed persistent applications in a grid
CN111290696A (zh) 一种应用程序组件的流控方法及装置
CN114237937A (zh) 一种多线程的数据传输方法和装置
US10360057B1 (en) Network-accessible volume creation and leasing
CN111464589A (zh) 智能合约处理方法、计算机设备及存储介质
CN113179301A (zh) 文件的下载方法和装置、存储介质、电子装置
US7047389B2 (en) Memory allocation method and computer readable medium
CN109818977B (zh) 一种接入服务器通信优化方法、接入服务器以及通信系统
CN111586140A (zh) 一种数据交互的方法及服务器
KR100871587B1 (ko) 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치
CN114020529A (zh) 一种流表数据的备份方法、装置、网络设备和存储介质
US6728895B1 (en) System and method for resource recovery in a distributed system
CN110569238B (zh) 一种基于大数据的数据治理方法、系统、存储介质和服务端
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN111124291A (zh) 分布式存储系统的数据存储处理方法、装置、电子设备
CN107741885B (zh) 基于cs架构的事务与业务关联方法、关联系统
CN113055493B (zh) 数据包处理方法、装置、系统、调度设备和存储介质

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: 20121116

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131114

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151126

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161103

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee