KR100605117B1 - Wcdma 패킷 과금 데이터 처리 방법 및 시스템 - Google Patents

Wcdma 패킷 과금 데이터 처리 방법 및 시스템 Download PDF

Info

Publication number
KR100605117B1
KR100605117B1 KR1020040055023A KR20040055023A KR100605117B1 KR 100605117 B1 KR100605117 B1 KR 100605117B1 KR 1020040055023 A KR1020040055023 A KR 1020040055023A KR 20040055023 A KR20040055023 A KR 20040055023A KR 100605117 B1 KR100605117 B1 KR 100605117B1
Authority
KR
South Korea
Prior art keywords
data
control information
bus
charging
shared memory
Prior art date
Application number
KR1020040055023A
Other languages
English (en)
Other versions
KR20060006148A (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 KR1020040055023A priority Critical patent/KR100605117B1/ko
Publication of KR20060006148A publication Critical patent/KR20060006148A/ko
Application granted granted Critical
Publication of KR100605117B1 publication Critical patent/KR100605117B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/24Accounting or billing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 과금 데이터를 저장하는 공유 메모리와, 하나 이상의 과금 데이터 생성 장치로부터 수신된 원시 과금 데이터 및 생성된 완전 과금 데이터를 공유 메모리에 저장하고, 공유 메모리에 저장한 과금 데이터에 상응하는 제어 정보를 생성하는 어플리케이션 레이어와, 수신된 제어 정보를 임시로 저장하고, 수신된 제어 정보를 어플리케이션 레이어에 포함된 임의의 어플리케이션 프로세스로 전달하는 엠엑스 버스(MX BUS)를 포함하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템에 관한 것으로, 범용 이동통신 시스템(UMTS) 패킷 교환 핵심망(PS-CN)에서 생성되는 과금 정보를 처리하는 다중 프로세스 환경에서 각 CDR의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공한다.
과금, WCDMA, 제어, 이동통신,

Description

WCDMA 패킷 과금 데이터 처리 방법 및 시스템{Method and system for handling WCDMA packet CDR}
도 1은 과금 게이트웨이(Charging Gateway)를 포함하는 일반적인 범용 이동통신 서비스 시스템(UMTS : Universal Mobile Telecommunication Systems) 패킷 교환 핵심망(PS-CN : Packet Switched Core Network)의 구성을 개락적으로 나타낸 블록 구성도.
도 2는 종래의 과금 게이트웨이의 프로세스(process) 구성을 나타낸 도면.
도 3은 종래의 중개 모듈에서의 데이터 처리 과정을 나타낸 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 블록 구성도.
도 5는 본 발명의 바람직한 일 실시예에 따른 메시지 ID 포맷을 예시한 도면.
도 6은 본 발명의 바람직한 일 실시예에 따른 공유 메모리 구조를 나타낸 도면.
도 7은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 설정 과정을 나타낸 데이터 흐름도.
도 8은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 해제 과정을 나타낸 데이터 흐름도.
도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 쓰기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.
도 10은 본 발명의 바람직한 일 실시예에 따른 데이터 읽고 쓰는 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.
도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 읽기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.
도 12는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 종료 후 재기동시 오류 복구 과정을 나타낸 도면.
도 13은 본 발명의 바람직한 일 실시예에 따른 로드 분산(Load Sharing) 처리 과정을 나타낸 도면.
본 발명은 WCDMA 패킷 과금 데이터 처리 방법 및 시스템에 관한 것으로, 특히 다중 프로세스 환경에서 수집된 각 과금 데이터(CDR : Call Detail Record 또는 Charging Data Record)의 유형(type)과 특성에 따라 적절한 프로세스로 라우팅하는 범용적인 기능을 제공하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템에 관한 것이다.
도 1은 과금 게이트웨이(Charging Gateway)를 포함하는 일반적인 범용 이동통신 서비스 시스템(UMTS : Universal Mobile Telecommunication Systems) 패킷 교환 핵심망(PS-CN : Packet Switched Core Network)의 구성을 개락적으로 나타낸 블록 구성도이다.
도 1을 참조하면, 범용 이동통신 서비스 시스템(UMTS)은 기지국(115), RNC(Radio Network Controller, 기지국 제어 장치)(120), SGSN(Serving GPRS Supporting Node, 패킷 교환 장치)(125), HLR(Home Location Register, 홈 위치 등록기)(130), GGSN(Gateway GPRS Supporting Node, 패킷 관문 장치)(135), CG(Charging Gateway, 과금 게이트웨이)(140) 및 BS(Billing System, 과금 시스템)(145)을 포함한다. 이외에도, 범용 이동통신 시스템(UMTS)은 다양한 구성 요소를 더 포함할 수 있다.
SGSN(125)은 가입자의 인증 및 이동성 관리를 수행하고, GGSN(135)은 UMTS PS-CN과 외부 데이터 네트워크간의 연결을 수행한다. SGSN(125)과 GGSN(135)은 UMTS 패킷 교환망에서 호 제어(Call control)를 위한 주요 통신망 요소(network element)이다.
CG(140)는 SGSN(125) 및 GGSN(135)으로부터 과금 정보를 수집하여 가공한 후 BS(145)로 전송한다. 즉, CG(140)는 GGSN(135)으로부터 인터넷 등의 외부 데이터 네트워크 사용에 따른 과금 정보를 포함하는 G-CDR(GGSN-Call Detail Record)을 수신하고, SGSN(125)으로부터 내부 네트워크(internal network) 사용에 관한 과금 정보를 포함하는 S-CDR(SGSN-Call Detail Record)를 수신한다. 또한, CG(140)는 이동 성 관리에 관한 과금 정보를 포함하는 M-CDR(Mobility-Call Detail Record), 단문 메시지 서비스(SMS : Short Message Service)에 관한 과금 정보를 포함하는 S-SMO-CDR 및 S-SMT-CDR을 수신한다.
CG(140)는 수신된 과금 정보에 관한 버퍼링(buffering), BER(Basic Encoding Rule)에 의한 디코딩, 불완전 CDR(partial CDR)에 대한 통합(aggregation), BS(145)가 요청하는 포맷으로의 포맷 변환(reformatting) 기능 등을 수행한다.
도 2는 종래의 과금 게이트웨이의 프로세스(process) 구성을 나타낸 도면이다.
도 2를 참조하면, CG(140)는 어플리케이션 레이어(Application Layer, 205)와 인프라스트럭처 레이어(Infrastructure Layer, 210)를 포함한다.
어플리케이션 레이어(205)는 수집 모듈(collection module), 중개 모듈(mediation module), 분배 모듈(distribution module) 등의 세 개의 주요한 모듈들을 포함한다. 수집 모듈은 과금 데이터(charging data)를 수집하고, 중개 모듈은 수집된 과금 데이터를 처리하며, 분배 모듈은 처리된 과금 데이터를 타겟 시스템(target system)으로 분배한다.
인프라스트럭처 레이어(210)는 어플리케이션 레이어 및 O&M(Operation & Management) 레이어(도시되지 않음)를 구성하는 모듈들을 위한 기본 기능들(basic functions)을 제공한다.
어플리케이션 레이어(205)와 인프라스트럭처 레이어(210)에 포함된 구성 요 소들의 상호 동작을 구체적으로 설명하면 다음과 같다.
CG(140)는 표준 인터페이스로서 GPRS Tunneling Protocol Prime(이하 "Ga" 라 칭함)을 이용하여 GGSN(135) 및 SGSN(125)으로부터 과금 정보를 수신한다. Ga의 규격은 3GPP TS-32.215에 정의되어 있으며, 당해 규격 내에는 데이터 전송에 필요한 메시지 형식(message format), 정보 요소(IE : information element) 형식, 복제 방지 기법(duplication protection mechanism), 장애시 백업(back-up) 장비로의 전환(redirection) 방식 등이 포함된다.
수집 모듈 내의 Ga receiver(과금 정보 수집부, 215)는 SGSN(125)및 GGSN(135)으로부터 과금 정보를 수신하여 저장한다. 저장된 과금 정보는 향후 복구 및 검증을 위한 버퍼링(buffering)시 사용될 수 있다. 또한 Ga receiver(215)는 수신된 과금 정보를 MX BUS(240)로 전송한다.
중개 모듈의 Adapter(220)는 MX BUS(240)로부터 읽어들인 과금 정보를 BER 디코딩(decoding)을 수행한다. 이는 Ga receiver(215)을 통해 수신된 과금 정보가 ASN.1(Abstract Syntax Notation.1)의 BER(Basic Encoding Rule)에 의해 인코딩(encoding)되어 있기 때문이다. 이때 각 필드에 대한 데이터의 정합성 여부를 판단하여 부정 검출(fraud detection) 기능을 수행하며, MX BUS(240)에 디코딩 결과를 기록(write)한다. CDR 필드 중 라우팅 키(routing key)가 되는 필드를 조합하여 데이터 라우팅 경로가 설정되며, 사용자 정보 및 주소를 키(key)로 하여 데이터 수집 기능이 수행된다.
상술한 CDR의 유형 중 G-CDR과 S-CDR의 경우 데이터량(data volume) 및 지속 시간 제한(duration time limit), QoS 변경(QoS change), 요율 시간 변경(tariff time change) 등의 이벤트 발생시 불완전(partial) CDR이 생성되므로 이를 하나의 CDR로 집성하는 과정이 필요하다.
Aggregator(225)은 수신된 불완전 CDR을 하나의 CDR로 통합하는 기능을 수행하며, 당해 세션에 관련된 마지막 CDR이 수신되면 이를 해제(release)한다.
통합된 CDR은 임의의 BS(145)로 전송될 수 있다. 그러나, 복수의 BS들이 존재하는 경우에는 각각의 BS(145)에서 필요로 하는 과금 정보가 서로 다를 수 있다.
Collector(230)는 이러한 요구를 충족하기 위하여 필요한 데이터를 필터링(filtering)하는 기능을 수행하며, 필터링된 과금 정보는 분산 모듈을 통해 각 BS(145)로 분배된다.
그리고, 분산 모듈의 Regulator(235)는 이벤트 단위로 처리된 CDR을 파일링(filing)하는 기능을 수행할 수 있다.
도 3은 종래의 중개 모듈에서의 데이터 처리 과정을 나타낸 도면이다.
도 3에 도시된 바와 같이, Adapter(220)는 Ga receiver(215)에 의해 수집되어 MX BUS(240)에 기록된 G-CDR과 S-CDR 중 불완전 CDR이 존재하는 경우 MX BUS(240)을 거쳐 해당 불완전 CDR을 Aggregator(225)로 라우팅한다. 불완전 CDR이 존재하지 않거나 다른 유형의 CDR들은 통합 과정이 불필요하므로 MX BUS(240)를 경유하여 Collector(230)로 직접 전송된다.
Collector(230)에서 필터링된 CDR 중 긴급(hot-bill) CDR은 즉시 BS(145)로 전송되어져야 하므로 레코드(record) 단위로 처리하는 프로세스인 제1 regulator(310)로 라우팅하고, 일반(normal) CDR은 여러 레코드들을 묶어 하나의 파일로 처리하는 제2 regulator(320)로 라우팅한다.
이와 같이, 종래의 과금 게이트웨이의 어플리케이션 레이어 내의 구성 요소들은 UMTS PS-CN에서 생성된 과금 정보를 처리하기 위하여 데이터들을 읽어들여 고유한 처리 과정을 거친 후 후처리 절차(post procedure)를 위해 처리한 데이터를 MX BUS(240)에 저장한다.
그러나, 이러한 종래의 과금 데이터 처리 방법은 대량의 데이터를 처리하여야 하는 경우, 처리 과정상에 오류가 발생한 경우 등에 처리중인 트랜잭션(transaction)을 보장할 수 없는 문제점이 있었다.
따라서, 상술한 문제점을 해결하기 위한 본 발명의 목적은 범용 이동통신 시스템(UMTS) 패킷 교환 핵심망(PS-CN)에서 생성되는 과금 정보를 처리하는 다중 프로세스 환경에서 각 CDR의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 다른 목적은 과금 게이트웨이에 포함된 구성 요소들이 동일한 데이터 라우팅 방식을 채택함으로써 시스템 개발을 용이하게 하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 과금 CDR 추가 등의 경우 제어 정보의 갱신만으로 과금 정보의 라우팅 경로의 변경을 용이하게 할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 과금 데이터 중개 또는 통합시 제어 정보만을 라우팅하고 실제 과금 데이터는 공유 메모리에 저장되도록 하여 대용량의 데이터 처리시에도 향상된 성능을 유지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 CDR 처리에 적합한 공유 메모리 구조를 채택하여 가변 길이의 데이터 처리가 가능하고, 공유 메모리 자원의 할당 및 해제를 용이하게 하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 과금 게이트웨이의 각 구성 요소의 동작 중 종료(정상 종료 또는 비정상 종료) 후의 재기동시 데이터 처리에 대한 연속성을 유지할 수 있어 과금 정보의 중복 또는 유실을 방지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 논블록킹(non-blocking) 모드를 지원하여 부하 분담(load sharing) 및 분산 처리가 가능하도록 하여 부하 집중시에도 병목 현상을 방지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
상기 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 패킷 과금 데 이터를 처리하는 장치에 있어서, 과금 데이터를 저장하는 공유 메모리-여기서, 상기 과금 데이터는 원시 과금 데이터, 불완전(partial) 과금 데이터 및 완전 과금 데이터를 포함함-; 하나 이상의 과금 데이터 생성 장치로부터 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하고, 상기 원시 과금 데이터를 이용하여 상기 완전 과금 데이터를 생성하며, 상기 완전 과금 데이터를 상기 공유 메모리에 저장하고, 상기 공유 메모리에 저장한 과금 데이터에 상응하는 제어 정보를 생성하며, 상기 완전 과금 데이터를 과금 시스템(Billing System)으로 전달하는 어플리케이션 레이어-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 및 상기 제어 정보를 수신하여 임시로 저장하고, 상기 수신된 제어 정보를 상기 어플리케이션 레이어에 포함된 임의의 어플리케이션 프로세스로 전달하는 엠엑스 버스(MX BUS)를 포함하되, 상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치가 제공된다.
상기 어플리케이션 레이어는, 복수의 어플리케이션 프로세스; 상기 어플리케이션 프로세스가 상기 엠엑스 버스와 연동하기 위한 메쏘드(method)를 제공하는 엠엑스 어플리케이션 프로세스 인터페이스(MX API)-여기서, 상기 메쏘드는 상기 어플리케이션 레이어와 상기 엠엑스 버스간의 컨넥션 연결을 위한 Open(), 컨넥션 해제를 위한 Close(), 데이터 읽기를 위한 Read(), 데이터 쓰기를 위한 Write() 중 적어도 어느 하나를 포함함-; 상기 어플리케이션 프로세스 각각에 상응하여 할당된 개별 공유 메모리 영역을 관리하고, 임의의 어플리케이션 프로세스에 의한 상기 과금 데이터를 상기 개별 공유 메모리 영역에 저장하는 메모리 관리부(DP Handler Class); 및 상기 개별 공유 메모리 영역에 상기 과금 데이터를 저장한 임의의 어플리케이션 프로세스에 의해 생성된 상기 제어 정보를 상기 엠엑스 버스로 전달하고, 상기 엠엑스 버스로부터 상기 제어 정보를 수신하여 상응하는 어플리케이션 프로세스로 전달하는 메시지 큐 클래스(Message Queue Class)를 포함할 수 있다. 또한, 상기 복수의 어플리케이션 프로세스는, 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하는 과금 데이터 수신부(Ga Receiver); 상기 원시 과금 데이터를 디코딩하여 상기 공유 메모리에 저장하는 디코딩부(Adapter); 상기 디코딩된 원시 과금 데이터 중 불완전 과금 데이터가 존재하는 경우 하나의 완전 과금 데이터로 통합하고, 통합된 완전 과금 데이터를 상기 공유 메모리에 저장하는 통합부(Aggregator); 상기 완전 과금 데이터를 상기 과금 시스템에서 처리하기 위해 미리 지정된 형태로 변환하는 수집부(Collector); 및 상기 수집부에 의해 변환된 과금 데이터를 상기 과금 시스템으로 전달하는 전달부(Regulator) 중 어느 하나와 각각 대응되는 것을 특징으로 한다.
상기 엠엑스 버스는 상기 디코딩부로부터 수신된 제어 정보에 포함된 라우팅 목적지 정보를 이용하여 상기 통합부 또는 상기 수집부로 후속 처리 요청을 전달하고, 각각의 어플리케이션 프로세스는 엠엑스 버스로부터 수신되는 제어 정보에 상응하여 상기 공유 메모리에 저장된 과금 데이터를 이용하여 미리 지정된 데이터 처 리를 수행하는 것을 특징으로 한다.
상기 엠엑스 어플리케이션 프로세스 인터페이스로부터 컨넥션 연결 요청이 수신되면, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성한 후, 상기 엠엑스 어플리케이션 프로세스 인터페이스를 통해 각 어플리케이션 프로세스로 컨넥션 연결 응답을 전송하여 컨넥션 연결을 수행하되, 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 한다.
상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고, 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1 개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 한다.
상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 한다.
상기 데이터 페이지 시작 블록 및 상기 데이터 페이지 연속 블록에 저장된 과금 데이터는 상응하는 후속 어플리케이션 프로세스가 상기 과금 데이터를 읽어들여 처리하면 삭제되고, 사용 여부 정보가 미사용으로 설정되는 것을 특징으로 한다.
상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 한다.
상기 과금 데이터 수신부는 최종적으로 처리한 제어 정보의 MID를 임시로 저장하고, 상기 과금 데이터 수신부가 비정상 종료 후 재기동되면, 상기 과금 데이터 수신부는 상기 MID를 상기 엠엑스 버스로 전송하며, 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 임시로 저장된 처리 완료 MID와 불일치하는 경우 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 것을 특징으로 한다.
상기 엠엑스 버스는 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 원시 과금 데이터에 대한 제어 정보를 상기 디 코딩부로 전송하고, 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하며, 상기 디코딩부가 비정상 종료 후 재기동되면, 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 것을 특징으로 한다.
상기 전달부는 비정상 종료 후 재기동되면, 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하고, 상기 엠엑스 버스는 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 삭제하고, 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 어플리케이션 레이어, 엠엑스 버스 및 공유 메모리를 포함하는 패킷 과금 처리 장치에서 패킷 과금 데이터를 처리하는 방법에 있어서-여기서, 상기 어플리케이션 레이어는 과금 데이터 수신부(Ga Receiver), 디코딩부(Adapter), 통합부(Aggregator), 수집부(Collector) 및 전달부(Regulator)에 상응하는 복수의 어플리케이션 프로세스를 포함함-, 상기 과금 데이터 수신부가 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장한 후, 상기 저장된 원시 과금 데이터에 상응하는 제1 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 상기 엠엑스 버스는 상기 원시 과금 데이터의 후속 처리를 위해 상기 제1 제어 정보를 상기 디코딩부로 전달하는 단계; 상기 디코딩부는 상기 공유 메모리에서 상기 제1 제어 정보에 상응하는 원시 과금 데이터를 읽어들여 디코딩하여 상기 공유 메모리에 저장한 후, 상기 저장된 디코딩된 원시 과금 데이터에 상응하는 제2 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계; 상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 불완전 과금 데이터인 경우 상기 제2 제어 정보를 상기 통합부로 전달하는 단계; 상기 통합부는 복수의 불완전 과금 데이터를 통합하여 통합된 완전 과금 데이터를 상기 공유 메모리에 저장한 후 상기 저장된 완전 과금 데이터에 상응하는 제3 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계; 상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 완전 과금 데이터인 경우에는 상기 제2 제어 정보를, 상기 통합부에 의해 완전 과금 데이터가 생성된 경우에는 상기 제3 제어 정보를 상기 수집부로 전달하는 단계; 상기 수집부는 상기 제2 제어 정보 또는 상기 제3 제어 정보에 상응하는 완전 과금 데이터를 읽어들여 과금 시스템(Billing System)에서 처리할 수 있는 형태로 변환하여 상기 공유 메모리에 저장한 후, 상응하는 제4 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계; 상기 엠엑스 버스가 상기 제4 제어 정보를 상기 전달부로 전달하는 단계; 및 상기 전달부는 상기 제4 제어 정보에 상응하는 변환된 과금 데이터를 상기 공유 메모리에서 읽어들여 상기 과금 시스템으로 전달하는 단계를 포함하는 패킷 과금 데이터 처리 방법이 제공된다.
상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 한다.
상기 패킷 과금 데이터 처리 방법은 상기 엠엑스 버스가 상기 어플리케이션 레이어로부터 컨넥션 연결 요청을 수신하는 단계; 상기 엠엑스 버스가 컨넥션 연결을 수행하는 단계; 및 상기 어플리케이션 레이어로 컨넥션 연결 응답을 전송하는 단계를 더 포함할 수 있다. 이때, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성하여 컨넥션 연결을 수행하고, 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함할 수 있다.
상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고, 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 한다.
상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당될 수 있다.
상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함할 수 있다.
상기 패킷 과금 데이터 처리 방법은 상기 과금 데이터 수신부가 최종적으로 처리한 제어 정보의 MID를 임시로 저장하는 단계; 상기 과금 데이터 수신부가 비정상 종료 후 재기동된 경우, 상기 과금 데이터 수신부가 상기 MID를 상기 엠엑스 버스로 전송하는 단계; 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 상기 엠엑스 버스 내에 임시로 저장된 처리 완료 MID와 일치하는지 여부를 판단하는 단계; 및 불일치하는 경우, 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 단계를 더 포함할 수 있다.
상기 패킷 과금 데이터 처리 방법은 상기 엠엑스 버스가 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 제1 제어 정보를 상기 디코딩부로 전송하는 단계; 상기 엠엑스 버스는 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하는 단계; 상기 엠엑스 버스는 상기 디코딩부가 비정상 종료 후 재기동되었는지 여부를 판단하는 단계; 및 비정상 종료 후 재기동된 경우, 상기 엠엑스 버스는 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 단계를 더 포함할 수 있다.
상기 패킷 과금 데이터 처리 방법은 상기 전달부가 비정상 종료 후 재기동된 경우, 상기 전달부는 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하는 단계; 상기 엠엑스 버스는 상기 엠엑스 버스 내에 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 검출하는 단계; 및 일치하는 MID가 존재하는 경우, 일치하지 않는 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 단계를 더 포함할 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 블록 구성도이고, 도 5는 본 발명의 바람직한 일 실시예에 따른 메시지 ID 포맷을 예시한 도면이며, 도 6은 본 발명의 바람직한 일 실시예에 따른 공유 메모리 구조를 나타낸 도면이다.
도 4를 참조하면, 본 발명에 따른 과금 게이트웨이(CG : Charging Gateway)의 MX BUS(400)는 메시지 큐 클래스(Message Queue Class, 430b - 이하, 'Msg Queue Class'라 칭함), 메시지 입출력부(Message Input/Output, 440 - 이하, 'Msg I/O'라 칭함), 클래스 큐(Class Queue, 445 - 이하, 'Class Queue'라 칭함), 메시지 라우터(Message Router, 450 - 이하, 'Msg Router'라 칭함), 접속 관리부(Connection Manager, 455 - 이하, 'Connection Mgr'라 칭함), 모니터링부(Statistics monitor, 460 - 이하, 'Statistics monitor'라 칭함), MID 위치 관리부(MID Location Manager, 465 - 이하, 'MID Location Mgr'이라 칭함), MID 관리부(MID Manager, 470 - 이하, 'MID Mgr'이라 칭함) 및 결산부(Audit, 475 - 이하, 'Audit'라 칭함)를 포함한다.
Msg Queue Class(430b)는 CG(140)의 어플리케이션 레이어의 각 어플리케이션 프로세스들(AP : Access Process, 410)이 공유 메모리 운용부(DP Handler Class, 420)를 이용하여 과금 CDR을 공유 메모리 내에 기록한 후, Msg Queue class(430a)를 통해 Message Queue(435)에 기록(write)한 경우, Message Queue(435)에 기록된 제어 정보를 수신한다.
Msg I/O(440)는 각 어플리케이션 프로세스들이 세션 연결 요청시 쓰레드(thread) 형태로 생성되며, Msg Queue class(430b)에서 제어 정보를 읽어들여 이를 처리한다. Msg I/O(440)의 처리 유형으로는 'Write'(해당 제어 정보를 이용하여 목적지를 결정한 후, 목적지 클래스 큐에 제어 정보를 임시 저장(push)함), 'Read'(Msg Queue Class(430b)에서 제어 정보를 불러들여(pop) 이를 Message Queue(435)에 기록하여 어플리케이션 프로세스가 상응하는 데이터를 읽어들일 수 있도록 함), 'Read Write'(Read와 Write를 하나의 트랜잭션(transaction)으로 묶어 처리), 'TrStart, TrWrite, TrStop'(여러 개의 데이터를 하나의 트랜잭션으로 묶어서 처리) 등이 있다.
Class Queue(445)는 각 어플리케이션 프로세스(410)들로 제어 정보를 제공하 기 위한 저장소로서, 임의의 어플리케이션 프로세스가 데이터 처리 과정을 종료하고 새로운 데이터 읽기를 요청하였을 때, MX BUS(400)는 Class queue(445)에서 상응하는 제어 정보를 불러들여(pop) 해당 어플리케이션 프로세스로 전달한다.
Msg Router(450)는 읽어들인 제어 정보 내의 소스 어플리케이션 아이디(source application ID)와 분기 조건 정보를 이용하여 목적지를 결정한다.
Connection Mgr(455)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, UDP 소켓(socket)을 통해 어플리케이션 레이어의 세션 연결 요청 및 세션 종료 요청을 처리한다. 어플리케이션 레이어로부터 세션 연결 요청이 수신된 경우, Connection Mgr(455)는 중복 요청인지 여부를 검사하고, 기존에 완료(commit)되지 않은 데이터에 대한 복구 기능을 수행하며, 각종 자원(예를 들어, 공유 메모리, Message Queue, Class Queue 등) 을 생성한다.
Statistics monitor(460)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, 각 Class Queue에 큐잉(Queuing)되어 있는 데이터 수량을 모니터링하여 현재 처리 상태 및 병목 지점의 확인이 가능하도록 한다.
MID Location Mgr(465)는 공유 메모리(425)에 저장된 데이터의 위치를 지도(map) 형태로 저장하며, MID(Message ID)를 키로 하여 해당 메시지의 저장 위치를 관리한다. MID는 DP Handler Class(420)에 의해 부여된다. 즉, DP Handler Class(420)는 공유 메모리를 운용하는 클래스로서, 각 어플리케이션 프로세스가 사용할 공유 메모리 영역을 할당하고, 각 어플리케이션 프로세스가 처리한 결과 데이터를 공유 메모리의 여유 영역(free block) 내에 기록하며, 각 어플리케이션 프로 세스가 처리할 데이터에 MID를 부여한다. 이하, 도 5를 참조하여 MX BUS(400)가 각 어플리케이션 프로세스들과 데이터를 주고 받을 때 해당 트랜잭션을 증명하기 위한 메시지 ID(MID)를 설명한다. 본 발명에 따른 CG(140)는 데이터 라우팅 효율을 향상시키기 위하여 각 어플리케이션 프로세스에 의해 처리된 실제 데이터를 공유 메모리(425)에 저장하고, 별도로 라우팅하지 않는다. 따라서, MX BUS(400)에 대해서는 이에 관한 제어 정보만 라우팅하면 된다. 제어 정보에는 해당 메시지를 증명(identification) 하기 위한 MID, 데이터가 저장된 공유 메모리(425)의 주소, 데이터 길이, 데이터를 생성한 소스 어플리케이션 프로세스 ID, 라우팅 목적지를 결정하기 위한 경로 확정 플래그(path define flag) 등이 포함된다. 이 중 MID는 부하 분산(load sharing)을 위하여 동일한 역할을 하는 여러 어플리케이션 프로세스가 동시에 기동하였을 경우 중복되어 전달(publish)되지 않도록 패키지(package) ID 필드(510), 프로세스 ID 필드(520), 메시지 번호 필드(message sequence field)(530)를 포함한다. 패키지 ID 필드(510)는 동일한 홈 네트워크에 복수의 과금 게이트웨이가 존재할 경우 하나의 CG(140)를 특정하기 위한 것이다. 프로세스 ID 필드(520)는 CG(140)의 어플리케이션 레이어에 존재하는 복수의 어플리케이션 프로세스 중에서 하나의 어플리케이션 프로세스를 특정하기 위한 것이다. 메시지 번호 필드(530)는 특정 어플리케이션 프로세스 내에서 처리하는 메시지에 순차적으로 부여되는 정보이다.
MID Mgr(470)는 각 어플리케이션 프로세스가 트랜잭션을 진행하고 있는 데이터의 MID를 임시로 저장하여 각 어플리케이션 프로세스의 비정상 종료 후 재기동시 해당 데이터가 복구될 수 있도록 한다.
Audit(475)는 MX BUS(400)가 비정상 종료 후 재 기동되었을 때 복구를 위해 사용된다. 즉, 현재 트랜잭션이 진행중인 모든 데이터를 Audit File(480)에 저장하여 MX BUS(400)가 비정상 종료 후 재기동되면 해당 Audit File(480)로부터 데이터를 읽어들여 복구를 위해 사용한다.
이외에, 도 4에 도시된 외부 구성 요소를 더 설명하면, MX API(415)는 각 어플리케이션 프로세스들이 MX BUS(400)와 연동하기 위한 메쏘드(Method)를 제공한다. MX API(415)가 제공하는 메쏘드로는 'MxOpen'(MX BUS(400)와 컨넥션 연결 설정시 사용), 'MxClose'(MX BUS(400)와 컨넥션 연결 해제시 사용), 'MxRead'(MX BUS(400)로부터 데이터를 읽어들일 때 사용) 등이 있다.
DB 테이블(485)은 소스 어플리케이션 ID 및 분기 조건에 따른 목적지를 등록한 라우팅 정보 테이블과 클래스 큐 정보를 등록한 클래스 정보 테이블을 포함할 수 있다.
구성 정보 파일(Configuration File, 490)은 MX BUS(400)가 동작을 위해 필요한 구성 정보가 등록된 파일을 나타낸다.
이하, 도 6을 참조하여 효율적 제어가 가능한 공유 메모리(425)의 기능 및 구조를 설명한다.
공유 메모리(425)는 어플리케이션 프로세스들에 의해 처리된 데이터를 저장하는 수단으로, 데이터의 효율적 관리를 위해 일정한 크기의 페이지(page) 단위로 관리된다. MX BUS(400)는 최초 기동시 자신이 사용할 공유 메모리 영역을 생성하 고, 각 어플리케이션 프로세스들은 세션 연결 요청시 자신이 사용할 용량을 MX BUS(400)에 전달한다. MX BUS(400)는 어플리케이션 프로세스들의 요청에 따라 사용 가능한 범위 내에서 DP Handler Class(420)를 이용하여 각 어플리케이션 프로세스들에 용량을 할당한다.
이후, 임의의 어플리케이션 프로세스가 데이터 읽기를 요청하면, MX BUS(400)는 상응하는 데이터의 공유 메모리내의 위치 정보를 MX API(415)로 전달한다. MX API(415)는 위치 정보를 DP Handler Class(420)로 전달하여 공유 메모리에서 해당 데이터를 읽어들이며, 읽어들인 데이터를 해당 어플리케이션 프로세스로 전달한다.
반대로, 임의의 어플리케이션 프로세스가 데이터 쓰기를 요청하면, MX API(415)는 해당 데이터를 DP Handler Class(420)를 이용하여 공유 메모리(425)에 저장하고, 이에 관한 제어 정보를 MX BUS(400)에 기록(write)한다.
공유 메모리(425)에서 데이터가 저장되는 데이터 블록(Data Block)은 그 역할에 따라 데이터 페이지 헤더 블록(Data Page Header Block, 610a, 610b, 610n - 이하 'DPH'라 칭함), 데이터 페이지 시작 블록(Data Page Start Block, 620a, 620b - 이하 'DPS'라 칭함), 데이터 페이지 연속 블록(Data Page Continuous Block, 630a - 이하 'DPC'라 칭함)으로 구분될 수 있다.
DPH(610a, 610b, 610n)는 각 어플리케이션 프로세스에 할당된 데이터 블록들의 최초 페이지에 할당되고, 실제 데이터가 아닌 관리 정보가 삽입된다. 즉, DPH(610A, 610B, 610N)는 각 어플리케이션 프로세스가 사용할 수 있는 공유 메모리 영역에 대한 정보를 표시하는 헤더이다. DPH(610A, 610B, 610N)에는 사용 여부 플래그(flag), 페이지 카운트, 연결 DPH 주소(previous DPH address 및 next DPH address)가 포함된다. 사용 여부 플래그는 어플리케이션 프로세스가 다음 DPH 주소(next DPH address) 이전까지의 전체 영역을 사용하고 있는지의 여부를 나타낸다. 컨넥션 해제시 프리(free)로 설정되어 다른 어플리케이션 프로세스가 이 영역을 사용할 수 있도록 한다. 페이지 카운트는 해당 어플리케이션 프로세스가 사용할 수 있는 전체 페이지의 개수를 나타낸다. 각 어플리케이션 프로세스간에 필요로 하는 페이지 수는 상이할 수 있다. 예를 들어, Ga receiver(215)의 경우 수신된 데이터를 즉시 처리하므로 많은 수의 페이지 카운트를 필요로 하지 않는다. 반면에 Aggregator(225)는 동시에 많은 양의 불완전 CDR을 저장하고 있어야 하므로 많은 수의 페이지 카운트를 필요로 한다. 즉, 해당 어플리케이션 프로세스의 동작 특성에 맞게 동적으로 할당된다. 연결 DPH 주소는 다른 어플리케이션 프로세스 가 사용하는 DPH와 양방향 연결 리스트 구조를 이루고 있는 주소 값이다. 컨넥션 연결 요청이 수신되면 DP Handler Class(420)는 다음 DPH 주소(next DPH address)를 순차적으로 검색하여 해당 주소의 사용 여부 플래그가 프리(free)로 설정되어 있으면 이를 할당해 준다. 또한 컨넥션 해제 요청이 수신되면 DP Handler Class(420)는 해당 DPH를 프리(free)로 설정하고 연결 DPH 주소를 동시에 검색하여 해당 영역도 프리(free)이면 이들을 연결(concatenation)한다.
DPS(620a, 620b)는 각 어플리케이션 프로세스가 공유 메모리(425)에 기록할 데이터의 최초 페이지를 나타내며, 각 어플리케이션 프로세스가 공유 메모리(425) 에 저장할 데이터에 대해 하나씩 할당된다. DPS(620a, 620b)는 사용 여부 플래그, 페이지 카운트, 데이터 길이(data length)를 포함한다. 사용 여부 플래그는 해당 페이지가 현재 사용 중인지의 여부를 나타낸다. 데이터를 기록한 시점에 "used"로 설정되고 후속 처리를 수행하는 어플리케이션 프로세스가 이를 읽어 들여 처리를 완료하면 재사용이 가능하도록 프리(free)로 설정된다. 페이지 카운트는 데이터 저장에 필요한 페이지의 카운트 수를 나타낸다. 페이지 카운트는 저장할 데이터의 길이(length)에 따라 동적으로 설정된다. 데이터 길이는 실제 데이터의 바이트 단위 크기를 나타낸다. DPS(620a, 620b)의 나머지 부분은 실제 데이터로 채워진다.
DPC(630a)는 가변 길이의 데이터를 처리하기 위하여 데이터 길이(data length)가 1개의 페이지 크기(page size)보다 클 경우 동적으로 페이지 수를 할당하기 위해 사용된다. 만약 데이터 길이가 페이지 크기보다 작을 경우 할당되지 않는다.
본 발명은 상술한 바와 같이 데이터 저장에 필요한 공유 메모리를 구조화함으로써 각 어플리케이션 프로세스들의 기동/종료시 해당 어플리케이션 프로세스가 사용하는 공유 메모리(425) 영역의 할당 및/또는 해제를 용이하게 할 수 있다. 또한, 가변 길이의 데이터 처리도 용이하게 할 수 있다.
도 7은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 설정 과정을 나타낸 데이터 흐름도이다.
어플리케이션 프로세스는 MX BUS(400)와 제어 정보를 송/수신하기 위해 먼저 MX BUS(400)와 컨넥션을 설정하여야 한다. 도 7에 어플리케이션 프로세스와 MX BUS(400)간의 컨넥션 설정 과정이 도시되어 있다.
도 7을 참조하면, 단계 710에서 MX API(415)는 어플리케이션 프로세스의 요청에 의해 UDP를 통해 Open Request를 MX BUS(400)로 전송한다.
앞서 설명한 바와 같이, MX BUS(400) 내에는 컨넥션 설정 및 해제를 수행하는 Connection Mgr(455)이 존재한다. Connection Mgr(455)은 MX API(415)로부터 Open Request가 수신되면, 단계 715에서 데이터 복구를 위한 Audit class(475)를 생성한다. Connection Mgr(455)은 제어 정보를 주고 받는데 사용되는 Message Queue(435)를 생성하고(단계 720), 해당 session에 대한 공유 메모리(425) 영역을 할당한다(단계 725). 또한, Connection Mgr(455)은 데이터 라우팅을 위한 Message I/O thread(440)를 생성한다(단계 730). 이후, Connection Mgr(455)은 할당된 공유 메모리(425)의 주소와 Message Queue(435)의 ID를 포함하는 Open Response를 MX API(415)로 전송한다. 전송된 Open Response는 MX API(415)를 통해 각 어플리케이션 프로세스로 전달된다.
이하, 어플리케이션 프로세스들과 MX BUS(400)간에 컨넥션 설정된 이루어진 상태에서 각 어플리케이션 프로세스가 MX BUS(400)를 이용하여 공유 메모리(425)에 저장된 데이터를 읽거나 쓰는 과정에 대해 간략히 설명한다.
먼저, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 데이터를 기록하는 과정을 설명한다.
임의의 어플리케이션 프로세스는 MX API(415) 및 DP Handler Class(420)를 이용하여 공유 메모리(425)에 데이터를 기록한 후 Message Queue(435)에 Write Request를 큐잉(queuing)한다. Message I/O thread(440)는 대기 상태에서 Message Queue(435)로부터 Write Request를 읽어들인다. Audit class(475)는 트랜잭션 보장을 위해 Audit file(480)에 데이터를 기록(write)하고, MID mgr(470)는 트랜잭션 보장을 위해 제어 정보를 저장한다. 또한, MID Location Manager(470)는 후속 처리를 요하는 어플리케이션 프로세스가 공유 메모리(425)에서 해당 데이터를 찾을 수 있도록 주소 정보를 지도(map)에 저장하고, Message router(450)는 목적지 경로를 설정하고 후속 어플리케이션 프로세스가 데이터를 독출할 수 있도록 제어 정보를 Class Queue(445)에 삽입한다. 이후 Message I/O thread(440)는 Write Response를 생성하여 상응하는 어플리케이션 프로세스로 전송한다.
다음으로, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 기록된 데이터를 읽는 과정을 설명한다.
임의의 어플리케이션 프로세스가 MX API(415)를 이용해 Read Request을 Message Queue(435)에 큐잉(queuing)하면 Message I/O thread(440)는 대기 상태에서 이를 읽어들인다. 읽어들이고자 하는 세션의 Class Queue(445)에 상응하는 제어 정보가 존재하면 MID mgr(470)는 읽어들인 데이터에 상응하는 MID를 지도(map)에 저장하고 Message I/O thread(440)는 해당 제어 정보를 이용하여 Response를 생성한다. Message I/O thread(440)가 생성된 Response를 Message Queue(435)에 기록(write)하면 MX API(415)는 당해 제어 정보를 이용하여 데이터가 존재하는 공유 메모리(425)로부터 데이터를 읽어들인 후 이를 해당 어플리케이션 프로세스로 전달한다. 그러나 Class Queue(445)에 읽어들일 정보가 존재하지 않으면 일정 시간 대기 후 타임아웃(time-out)에 대한 Response를 생성한다.
도 8은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 해제 과정을 나타낸 데이터 흐름도이다.
도 8을 참조하면, 단계 810에서 MX API(415)는 어플리케이션 프로세스의 요청에 의해 MX BUS(400)로 Close Request를 전송한다.
MX BUS(400)가 Close Request가 수신하면, MX BUS(400)의 Connection Mgr 쓰레드(455)는 해당 세션에 할당된 공유 메모리(425)를 해제하고(815), Message Queue(435)를 삭제하며(단계 820), 데이터 라우팅을 위한 Message I/O thread(440)를 종료한다(단계 825). 그리고, Connection Mgr 쓰레드(455)는 Close Response를 UDP를 통해 MX API(415)로 전송한다.
도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 쓰기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.
MX BUS(400)에 데이터를 쓰기(write)만 하는 어플리케이션 프로세스(예를 들어, Ga receiver(215))가 종료 후 재기동 되는 경우 오류 복구가 필요할 수 있다. 예를 들어, Ga(GPRS Tunneling Protocol Prime)가 비정상 종료 후 재기동되면 MX BUS(400)에 데이터를 기록하는 어플리케이션 프로세스는 마지막으로 MX BUS(400)에 기록하였으나 응답(Response)을 수신하지 못한 데이터에 대해서는 MX BUS(400)가 해당 데이터 처리를 완료했는지 여부를 확인할 수 없어 데이터의 중복 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 9를 참조하여 설명한다.
도 9를 참조하면. Ga receiver(215)의 경우 Ga(GPRS Tunneling Protocol Prime) 인터페이스를 통해 GGSN 또는 SGSN으로부터 데이터를 수신하여 이를 MX BUS(400)에 기록하며, MX BUS(400)로부터 읽기(read) 과정은 존재하지 않는다. Ga receiver(215)가 MX BUS(400)에 제어 정보를 기록한 후 응답을 수신하지 못하고 종료 되었을 경우 재 기동 시에 이미 전송한 정보를 MX BUS(400)가 처리하였는지 확인하는 과정이 필요하다. 이를 위해 Ga receiver(215)는 매 순간 자신이 마지막으로 처리한 MID를 임시로 저장하고, MX BUS(400)도 Ga receiver(215)로부터 수신한 후 처리를 완료한 MID를 임시로 저장한다. Ga receiver(215)가 재 기동되어 컨넥션 연결을 요청할 때 Ga receiver(215)가 마지막으로 전송했던 MID를 첨부하여 전송하고 MX BUS(400)는 자신이 마지막으로 처리한 MID와 비교하여 처리되었을 경우 이를 버림(discard)으로써 데이터 중복을 방지한다.
도 10은 본 발명의 바람직한 일 실시예에 따른 데이터 읽고 쓰는 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.
MX BUS(400)로부터 데이터를 읽고(read) 처리 결과를 기록(write)하는 어플리케이션 프로세스(예를 들어, Adapter(220))가 종료 후 재기동 되는 경우 오류 복구가 필요할 수 있다. 예를 들어, 데이터 처리 과정 중에 비정상 종료가 발생한 후 재기동 되면 지난번 처리 과정에서 읽어들였으나 처리를 완료하지 못하고 비정상 종료된 해당 데이터의 처리가 누락될 수 있다. 이러한 문제점을 방지하기 위한 방법을 도 10을 참조하여 설명한다.
도 10을 참조하면, Adapter(220)의 경우 Ga receiver(215)가 MX BUS(400)에 기록(write)한 제어 정보를 읽어들인(read) 후 처리 결과를 MX BUS(400)에 기록(write)한다. 이때 읽어들인 데이터를 정상적으로 처리하지 못하고 종료된 후 재기동 되면 MX BUS(400)는 해당 제어 정보를 다시 Adapter(220)가 읽어들일 Class Queue(445)에 전달해주어야 한다. 이를 위하여 MX BUS(400)는 MID Manager class(470)에 각 어플리케이션 프로세스가 처리중인 MID를 임시로 저장하고 처리가 완료되었을 경우 이를 삭제한다. 그리고, 어플리케이션 프로세스가 종료 후 재 기동하였을 경우 MID Manager(470)에 존재하는 MID에 대한 제어 정보를 Class Queue(445)에 삽입하여 누락을 방지한다.
도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 읽기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.
MX BUS(400)로부터 데이터를 읽어(read) 처리 결과를 BS(145)로 전달하는 Regulator(235)가 비정상 종료된 경우 MX BUS(400)는 마지막으로 제공한 데이터를 Regulator(235)가 정상적으로 처리하였는지 확인할 수 없어 데이터의 중복 및/또는 누락 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 11을 참조하여 설명한다.
도 11을 참조하면, Regulator(235)는 처리 결과를 MX BUS(400)에 기록하지 않고 BS(145)로 전송한다. 따라서, 비정상 종료 후 재 기동 되면 MX BUS(400)는 마지막으로 전송한 MID가 Regulator(235)에 의해 정상적으로 처리되지 않았다면 이를 재 전송해 주어야 한다. 이를 위해 Regulator(235)는 매 순간 자신이 마지막으로 처리한 MID를 임시로 저장하고 재 기동 후 컨넥션 연결 요청시 이를 MX BUS(400)로 전송한다. MX BUS(400)는 MID mgr(470)에 해당 MID가 존재할 경우 이를 삭제하여 데이터의 중복을 방지하고 나머지 MID에 해당하는 제어 정보를 Class Queue(445)에 삽입하여 데이터의 누락을 방지한다.
도 12는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 종료 후 재기동시 오류 복구 과정을 나타낸 도면이다.
MX BUS(400)가 종료 후 재기동 되면 공유 메모리(425) 내에 존재하던 데이터들이 모두 유실되므로 데이터의 중복 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 12를 참조하여 설명한다.
도 12를 참조하면, 종료 후 재기동되면 MX BUS(400) 내의 제어 정보 및 공유 메모리(425) 내에 존재하던 데이터들이 모두 유실되는 문제점이 있으므로, 이를 복구하기 위해 MX BUS(400)는 트랜잭션이 진행 중인(즉, 처리가 완료되지 않은) 모든 데이터 및 이에 관한 제어 정보를 Audit file(480)에 저장한다. 즉, 어플리케이션 프로세스가 write request를 호출하면 이에 대한 제어 정보 및 데이터를 Audit file(480)에 저장하고 처리가 완료되면 이를 삭제한다. MX BUS(400)가 종료 후 재 기동 되면 Audit file(480)에서 제어 정보를 읽어들여 목적지를 결정하고 해당 Class Queue(445)에 이를 삽입한다. 이때, 데이터의 저장 위치가 Audit file(480)임을 표시하여 추후 MX API(415)가 실제 데이터를 읽어 들일 수 있도록 한다.
상술한 방법들을 통해 본 발명은 각 어플리케이션 프로세스 및/또는 MX BUS(250)가 정상 혹은 비정상 종료 후 재 기동 되었을 때 중복 및/또는 누락을 방지할 수 있도록 한다.
도 13은 본 발명의 바람직한 일 실시예에 따른 로드 분산(Load Sharing) 처리 과정을 나타낸 도면이다.
본 발명은 Ga receiver(215)에서 Regulator(235)에 이르는 일련의 처리과정 중 특정 단계에서 병목 현상(bottleneck)이 발생되면 해당 과정을 처리하는 어플리케이션 프로세스를 추가로 기동시켜 로드 분산(load sharing)을 할 수 있다. 예를 들어 통화량이 갑자기 증가하여 Ga receiver(215)에 단위 시간동안 많은 데이터가 수신되면 신속한 처리를 위해 Adapter(220)를 추가로 기동할 수 있다. 즉, 본 발명은 로드 분산 처리를 효과적으로 수행하기 위해 데이터 송/수신시 논블록킹 모드(non-blocking mode)를 지원할 수 있고, 동일한 역할을 하는 여러 개의 어플리케이션 프로세스가 동시에 접근하였을 경우 데이터 처리에 대한 분리(isolation) 및 연속성을 보장한다. 본 발명의 로드 분산 처리 과정을 도 13을 참조하여 설명한다.
도 13을 참조하면, MX BUS(400) 내에는 라우팅 경로상의 입력 노드(input node)마다 하나씩 제어 정보(즉, 생성되어 처리된 데이터에 대한 제어 정보)를 큐 잉(queuing) 할 수 있는 저장소인 Class Queue(445)가 존재한다. 예를 들어 Ga receiver(215)가 수신된 데이터를 공유 메모리(425)에 저장한 후 이에 관한 제어 정보를 MX BUS(400)에 기록한다. MX BUS(400)는 이를 읽어들여 목적지를 결정한 후 상응하는 Adapter(220)의 Class Queue(445)에 삽입한다. 제어 정보를 Class Queue(445)에 삽입할 때, 복수의 Ga receiver(215)가 동시에 당해 Adapter(220)에 상응하는 Class Queue(445)에 제어 정보를 삽입하도록 할 수 있으므로 데이터 처리에 대한 분리를 보장하기 위해 록킹 메쏘드(locking method)가 적용된다. 또한 논블록킹 모드(non-blocking mode)를 지원하기 위하여 브로드캐스팅 메쏘드(broadcasting method)를 이용하여 대기하고 있는 여러 개의 Adapter(220)에게 제어 정보가 삽입되었음을 통지한다. 논블록킹 모드 상태에서 대기중인 Adapter(220)중 가장 먼저 통지를 수신한 Adapter(220)가 Class Queue(445)로부터 제어 정보를 독출(popping)한다. 다만, 이때 동시에 여러 Adapter(220)가 Class Queue(445)로부터 제어 정보를 독출할 수 있으므로 록킹 메쏘드(locking method)가 적용된다. 독출(Popping)된 제어 정보는 MX API(415)를 통하여 해당 어플리케이션 프로세스로 전송된다. MX API(415)는 제어 정보 내의 address 정보를 이용해 공유 메모리(425)에서 실제 데이터를 읽어들여 해당 어플리케이션 프로세스가 처리할 수 있도록 한다.
상술한 바와 같이, 본 발명은 Class Queue(445) 자원을 할당하고 브로드캐스팅(broadcasting)과 논블록킹(non-blocking) 상태에서 대기(waiting)하는 기능을 이용하여 분산 처리 환경에서 처리 효율을 향상시키고 데이터 처리의 정합성을 보 장한다.
상술한 바와 같이 본 발명에 따른 WCDMA 패킷 과금 데이터 처리 방법 및 시스템은 범용 이동통신 시스템(UMTS) 패킷 교환 핵심망(PS-CN)에서 생성되는 과금 정보를 처리하는 다중 프로세스 환경에서 각 CDR의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공한다.
또한, 본 발명은 과금 게이트웨이에 포함된 구성 요소들이 동일한 데이터 라우팅 방식을 채택함으로써 시스템 개발을 용이하게 한다.
또한, 본 발명은 과금 CDR 추가 등의 경우 제어 정보의 갱신만으로 과금 정보의 라우팅 경로의 변경을 용이하게 할 수 있다.
또한, 본 발명은 과금 데이터 중개 또는 통합시 제어 정보만을 라우팅하고 실제 과금 데이터는 공유 메모리에 저장되도록 하여 대용량의 데이터 처리시에도 향상된 성능을 유지할 수 있다.
또한, 본 발명은 CDR 처리에 적합한 공유 메모리 구조를 채택하여 가변 길이의 데이터 처리가 가능하고, 공유 메모리 자원의 할당 및 해제를 용이하게 한다.
또한, 본 발명은 과금 게이트웨이의 각 구성 요소의 동작 중 종료(정상 종료 또는 비정상 종료) 후의 재기동시 데이터 처리에 대한 연속성을 유지할 수 있어 과금 정보의 중복 또는 유실을 방지할 수 있다.
또한, 본 발명은 논블록킹(non-blocking) 모드를 지원하여 부하 분담(load sharing) 및 분산 처리가 가능하도록 하여 부하 집중시에도 병목 현상을 방지할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 패킷 과금 데이터를 처리하는 장치에 있어서,
    과금 데이터를 저장하는 공유 메모리-여기서, 상기 과금 데이터는 원시 과금 데이터, 불완전(partial) 과금 데이터 및 완전 과금 데이터 중 하나 이상임-;
    하나 이상의 과금 데이터 생성 장치로부터 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하고, 상기 원시 과금 데이터 중 불완전 과금 데이터가 존재하면 하나의 완전 과금 데이터를 생성하며, 상기 완전 과금 데이터를 상기 공유 메모리에 저장하고, 상기 공유 메모리에 저장된 과금 데이터에 상응하는 제어 정보를 생성하여 출력하며, 상기 완전 과금 데이터를 과금 시스템(Billing System)으로 전달하는 어플리케이션 레이어-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 및
    상기 제어 정보를 수신하여 임시로 저장하고, 상기 수신된 제어 정보를 상기 어플리케이션 레이어에 포함된 임의의 어플리케이션 프로세스로 전달하는 엠엑스 버스(MX BUS)를 포함하되,
    상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되고,
    상기 엠엑스 버스는 선행하는(preceding) 어플리케이션 프로세스로부터 수신된 제어 정보에 포함된 라우팅 목적지 정보를 이용하여 상응하는 후속하는(succeeding) 어플리케이션 프로세스로 후속 처리 요청을 전달하며, 각 어플리케이션 프로세스는 상기 엠엑스 버스로부터 수신된 제어 정보에 상응하여 상기 공유 메모리에 저장된 과금 데이터를 이용하여 미리 지정된 데이터 처리를 수행하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 어플리케이션 레이어는,
    복수의 어플리케이션 프로세스;
    상기 어플리케이션 프로세스가 상기 엠엑스 버스와 연동하기 위한 메쏘드(method)를 제공하는 엠엑스 어플리케이션 프로세스 인터페이스(MX API)-여기서, 상기 메쏘드는 상기 어플리케이션 레이어와 상기 엠엑스 버스간의 컨넥션 연결을 위한 Open(), 컨넥션 해제를 위한 Close(), 데이터 읽기를 위한 Read(), 데이터 쓰기를 위한 Write() 중 적어도 어느 하나를 포함함-;
    상기 어플리케이션 프로세스 각각에 상응하여 할당된 개별 공유 메모리 영역을 관리하고, 임의의 어플리케이션 프로세스에 의한 상기 과금 데이터를 상기 개별 공유 메모리 영역에 저장하는 메모리 관리부(DP Handler Class); 및
    상기 개별 공유 메모리 영역에 상기 과금 데이터를 저장한 임의의 어플리케이션 프로세스에 의해 생성된 상기 제어 정보를 상기 엠엑스 버스로 전달하고, 상기 엠엑스 버스로부터 상기 제어 정보를 수신하여 상응하는 어플리케이션 프로세스로 전달하는 메시지 큐 클래스(Message Queue Class)를 포함하되,
    상기 복수의 어플리케이션 프로세스는,
    상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하는 과금 데이터 수신부(Ga Receiver);
    상기 원시 과금 데이터를 디코딩하여 상기 공유 메모리에 저장하는 디코딩부(Adapter);
    상기 디코딩된 원시 과금 데이터 중 불완전 과금 데이터가 존재하는 경우 하나의 완전 과금 데이터로 통합하고, 통합된 완전 과금 데이터를 상기 공유 메모리에 저장하는 통합부(Aggregator);
    상기 완전 과금 데이터를 상기 과금 시스템에서 처리하기 위해 미리 지정된 형태로 변환하는 수집부(Collector); 및
    상기 수집부에 의해 변환된 과금 데이터를 상기 과금 시스템으로 전달하는 전달부(Regulator) 중 어느 하나와 각각 대응되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  3. 제2항에 있어서,
    상기 엠엑스 버스는 상기 디코딩부로부터 수신된 제어 정보에 포함된 라우팅 목적지 정보를 이용하여 상기 통합부 또는 상기 수집부로 후속 처리 요청을 전달하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  4. 제2항에 있어서,
    상기 엠엑스 어플리케이션 프로세스 인터페이스로부터 컨넥션 연결 요청이 수신되면, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성한 후, 상기 엠엑스 어플리케이션 프로세스 인터페이스를 통해 각 어플리케이션 프로세스로 컨넥션 연결 응답을 전송하여 컨넥션 연결을 수행하되,
    상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  5. 제1항에 있어서,
    상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며,
    상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고,
    상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며,
    상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  6. 제5항에 있어서,
    상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  7. 제5항에 있어서,
    상기 데이터 페이지 시작 블록 및 상기 데이터 페이지 연속 블록에 저장된 과금 데이터는 상응하는 후속 어플리케이션 프로세스가 상기 과금 데이터를 읽어들 여 처리하면 삭제되고, 사용 여부 정보가 미사용으로 설정되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  8. 제1항에 있어서,
    상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  9. 제2항에 있어서,
    상기 과금 데이터 수신부는 최종적으로 처리한 제어 정보의 MID를 임시로 저장하고, 상기 과금 데이터 수신부가 비정상 종료 후 재기동되면, 상기 과금 데이터 수신부는 상기 MID를 상기 엠엑스 버스로 전송하며,
    상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 임시로 저장된 처리 완료 MID와 불일치하는 경우 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  10. 제2항에 있어서,
    상기 엠엑스 버스는 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 원시 과금 데이터에 대한 제어 정보를 상기 디코딩부로 전송하고, 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하며,
    상기 디코딩부가 비정상 종료 후 재기동되면, 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  11. 제2항에 있어서,
    상기 전달부는 비정상 종료 후 재기동되면, 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하고,
    상기 엠엑스 버스는 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 삭제하고, 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.
  12. 어플리케이션 레이어, 엠엑스 버스 및 공유 메모리를 포함하는 패킷 과금 처리 장치에서 패킷 과금 데이터를 처리하는 방법에 있어서-여기서, 상기 어플리케이션 레이어는 과금 데이터 수신부(Ga Receiver), 디코딩부(Adapter), 통합부(Aggregator), 수집부(Collector) 및 전달부(Regulator)에 상응하는 복수의 어플리케이션 프로세스를 포함함-,
    상기 과금 데이터 수신부가 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장한 후, 상기 저장된 원시 과금 데이터에 상응하는 제1 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-;
    상기 엠엑스 버스는 상기 원시 과금 데이터의 후속 처리를 위해 상기 제1 제어 정보를 상기 디코딩부로 전달하는 단계;
    상기 디코딩부는 상기 공유 메모리에서 상기 제1 제어 정보에 상응하는 원시 과금 데이터를 읽어들여 디코딩하여 상기 공유 메모리에 저장한 후, 상기 저장된 디코딩된 원시 과금 데이터에 상응하는 제2 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계;
    상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 불완전 과금 데이터인 경우 상기 제2 제어 정보를 상기 통합부로 전달하는 단계;
    상기 통합부는 복수의 불완전 과금 데이터를 통합하여 통합된 완전 과금 데이터를 상기 공유 메모리에 저장한 후 상기 저장된 완전 과금 데이터에 상응하는 제3 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계;
    상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 완전 과금 데이터인 경우에는 상기 제2 제어 정보를, 상기 통합부에 의해 완전 과금 데이터가 생성된 경우에는 상기 제3 제어 정보를 상기 수집부로 전달하는 단계;
    상기 수집부는 상기 제2 제어 정보 또는 상기 제3 제어 정보에 상응하는 완전 과금 데이터를 읽어들여 과금 시스템(Billing System)에서 처리할 수 있는 형태로 변환하여 상기 공유 메모리에 저장한 후, 상응하는 제4 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계;
    상기 엠엑스 버스가 상기 제4 제어 정보를 상기 전달부로 전달하는 단계; 및
    상기 전달부는 상기 제4 제어 정보에 상응하는 변환된 과금 데이터를 상기 공유 메모리에서 읽어들여 상기 과금 시스템으로 전달하는 단계를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  13. 제12항에 있어서,
    상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  14. 제12항에 있어서,
    상기 엠엑스 버스가 상기 어플리케이션 레이어로부터 컨넥션 연결 요청을 수 신하는 단계;
    상기 엠엑스 버스가 컨넥션 연결을 수행하는 단계; 및
    상기 어플리케이션 레이어로 컨넥션 연결 응답을 전송하는 단계를 더 포함하되.
    상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성하여 컨넥션 연결을 수행하고,
    상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  15. 제12항에 있어서,
    상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며,
    상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고,
    상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며,
    상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  16. 제15항에 있어서,
    상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  17. 제12항에 있어서,
    상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프 로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  18. 제12항에 있어서,
    상기 과금 데이터 수신부가 최종적으로 처리한 제어 정보의 MID를 임시로 저장하는 단계;
    상기 과금 데이터 수신부가 비정상 종료 후 재기동된 경우, 상기 과금 데이터 수신부가 상기 MID를 상기 엠엑스 버스로 전송하는 단계;
    상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 상기 엠엑스 버스 내에 임시로 저장된 처리 완료 MID와 일치하는지 여부를 판단하는 단계; 및
    불일치하는 경우, 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  19. 제12항에 있어서,
    상기 엠엑스 버스가 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 제1 제어 정보를 상기 디코딩부로 전송하는 단 계;
    상기 엠엑스 버스는 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하는 단계;
    상기 엠엑스 버스는 상기 디코딩부가 비정상 종료 후 재기동되었는지 여부를 판단하는 단계; 및
    비정상 종료 후 재기동된 경우, 상기 엠엑스 버스는 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
  20. 제12항에 있어서,
    상기 전달부가 비정상 종료 후 재기동된 경우, 상기 전달부는 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하는 단계;
    상기 엠엑스 버스는 상기 엠엑스 버스 내에 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID를 검출하는 단계; 및
    일치하는 MID가 존재하는 경우, 일치하지 않는 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.
KR1020040055023A 2004-07-15 2004-07-15 Wcdma 패킷 과금 데이터 처리 방법 및 시스템 KR100605117B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040055023A KR100605117B1 (ko) 2004-07-15 2004-07-15 Wcdma 패킷 과금 데이터 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040055023A KR100605117B1 (ko) 2004-07-15 2004-07-15 Wcdma 패킷 과금 데이터 처리 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20060006148A KR20060006148A (ko) 2006-01-19
KR100605117B1 true KR100605117B1 (ko) 2006-07-31

Family

ID=37117888

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040055023A KR100605117B1 (ko) 2004-07-15 2004-07-15 Wcdma 패킷 과금 데이터 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100605117B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100673765B1 (ko) 2006-01-20 2007-01-24 삼성에스디아이 주식회사 유기전계발광 표시장치 및 그 제조방법
KR100833296B1 (ko) * 2006-02-06 2008-05-28 에스케이 텔레콤주식회사 Wcdma 상한 요금제 서비스의 콘텐츠별 차등 과금시스템 및 그 방법
KR100791784B1 (ko) * 2006-03-21 2008-01-03 에스케이 텔레콤주식회사 과금 처리 시스템 및 그 방법
CN101409877B (zh) 2008-11-28 2010-07-14 中兴通讯股份有限公司 一种话单的生成方法
KR102414428B1 (ko) * 2020-09-03 2022-06-30 주식회사 오윈 결제 정보 유실 방지 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010053768A (ko) * 1999-12-01 2001-07-02 이계철 패킷망 원시 과금 데이터의 메모리 저소비형 로딩 장치 및그 방법
KR20030030705A (ko) * 2001-10-12 2003-04-18 엘지전자 주식회사 분산 과금 전송 시스템 및 방법
KR20030080107A (ko) * 2002-04-03 2003-10-11 주식회사 애버커스 Imt-2000시스템에서의 패킷데이터 처리방법
KR20040026225A (ko) * 2002-09-23 2004-03-30 주식회사 케이티프리텔 이동통신 요금 산출 시스템에서의 과금 데이터 분배 장치및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010053768A (ko) * 1999-12-01 2001-07-02 이계철 패킷망 원시 과금 데이터의 메모리 저소비형 로딩 장치 및그 방법
KR20030030705A (ko) * 2001-10-12 2003-04-18 엘지전자 주식회사 분산 과금 전송 시스템 및 방법
KR20030080107A (ko) * 2002-04-03 2003-10-11 주식회사 애버커스 Imt-2000시스템에서의 패킷데이터 처리방법
KR20040026225A (ko) * 2002-09-23 2004-03-30 주식회사 케이티프리텔 이동통신 요금 산출 시스템에서의 과금 데이터 분배 장치및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020030080107 *
1020040026225 *

Also Published As

Publication number Publication date
KR20060006148A (ko) 2006-01-19

Similar Documents

Publication Publication Date Title
US7554992B2 (en) Mobile device communications system and method
US5361372A (en) Memory management for data transmission networks
US8041832B2 (en) Network data distribution system and method
US7761609B1 (en) Socket level packet scheduling for connectionless protocols
US8682288B2 (en) Call list transmission processing method and system of charging system
JP5613835B2 (ja) 課金詳細記録を確実に送信するための方法および装置
CA2383925A1 (en) Network packet aggregation
CN107294869A (zh) 一种虚拟网卡报文抓取的方法及系统
KR20130046540A (ko) 데이터 전송 장치 및 방법
JP2003143250A (ja) 代理応答方法
CN110944039B (zh) 面向5g接入网的微服务发现方法、系统及装置
US6466660B1 (en) Method and apparatus for retroactively updating a communication billing system
KR100605117B1 (ko) Wcdma 패킷 과금 데이터 처리 방법 및 시스템
US6977899B1 (en) Method and apparatus for message-based overload control in a distributed call-processor communication system
US8533360B2 (en) Method and apparatus to report resource values in a mobile network
US7106698B1 (en) System for triggering the control plane in an asynchronous connection-oriented transmission network
US7415025B1 (en) Method and apparatus for clearing a large number of connections in an ATM network
CN113453179B (zh) 一种基于5g会话到话单消息的智能转换方法
US7756160B2 (en) Packet consolidation
WO2020103420A1 (zh) 一种数据传输方法、接收方法、装置及系统
KR100583177B1 (ko) 중복 과금을 방지하기 위한 과금 메시지 처리 방법 및 그과금 서버
KR100369369B1 (ko) 다중채널 레이블 스위치 시스템의 가상채널 머지 장치
KR100491819B1 (ko) 무선랜 과금 시스템에서 라디우스 과금 클라이언트의 운용방법
KR100605118B1 (ko) Wcdma패킷 과금 데이터 수집 방법 및 시스템
WO2021259026A1 (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: 20130709

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140710

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150708

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee