KR20060006148A - Method and system for handling wcdma packet cdr - Google Patents

Method and system for handling wcdma packet cdr Download PDF

Info

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

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의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공한다.The present invention provides a shared memory for storing billing data, raw billing data received from at least one billing data generating device and complete billing data generated in a shared memory, and control information corresponding to billing data stored in the shared memory. WCDMA packet charging data processing method comprising an application layer to generate, and temporarily stores the received control information, and transmits the received control information to any application process included in the application layer (MX BUS) and System, a universal function of routing data to an appropriate process according to the type and nature of each CDR in a multi-process environment that handles billing information generated in a Universal Mobile Telecommunications System (UMTS) Packet Switched Core Network (PS-CN) To provide.

과금, WCDMA, 제어, 이동통신,Billing, WCDMA, control, telecommunications,

Description

WCDMA 패킷 과금 데이터 처리 방법 및 시스템{Method and system for handling WCDMA packet CDR} Method and system for handling WCDMA packet CDR             

도 1은 과금 게이트웨이(Charging Gateway)를 포함하는 일반적인 범용 이동통신 서비스 시스템(UMTS : Universal Mobile Telecommunication Systems) 패킷 교환 핵심망(PS-CN : Packet Switched Core Network)의 구성을 개락적으로 나타낸 블록 구성도.1 is a block diagram schematically illustrating a configuration of a general Universal Mobile Telecommunication Systems (UMTS) Packet Switched Core Network (PS-CN) including a charging gateway.

도 2는 종래의 과금 게이트웨이의 프로세스(process) 구성을 나타낸 도면.2 is a diagram illustrating a process configuration of a conventional charging gateway.

도 3은 종래의 중개 모듈에서의 데이터 처리 과정을 나타낸 도면.3 is a view showing a data processing procedure in a conventional mediation module.

도 4는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 블록 구성도.Figure 4 is a block diagram of an MX BUS according to an embodiment of the present invention.

도 5는 본 발명의 바람직한 일 실시예에 따른 메시지 ID 포맷을 예시한 도면.5 illustrates a message ID format according to a preferred embodiment of the present invention.

도 6은 본 발명의 바람직한 일 실시예에 따른 공유 메모리 구조를 나타낸 도면.Figure 6 illustrates a shared memory structure in accordance with one preferred embodiment of the present invention.

도 7은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 설정 과정을 나타낸 데이터 흐름도. 7 is a data flow diagram illustrating a connection establishment process between an application process and an MX BUS according to an embodiment of the present invention.

도 8은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 해제 과정을 나타낸 데이터 흐름도.8 is a data flow diagram illustrating a connection release process between the application processes and the MX BUS according to an embodiment of the present invention.

도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 쓰기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.9 is a diagram illustrating a process of recovering an error generated in a data writing process according to an exemplary embodiment of the present invention.

도 10은 본 발명의 바람직한 일 실시예에 따른 데이터 읽고 쓰는 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.FIG. 10 is a diagram illustrating a process of recovering an error generated in a process of reading and writing data according to an exemplary embodiment of the present invention. FIG.

도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 읽기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면.11 is a diagram illustrating a process of recovering an error generated in a data reading process according to an exemplary embodiment of the present invention.

도 12는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 종료 후 재기동시 오류 복구 과정을 나타낸 도면.12 is a diagram illustrating an error recovery process when restarting after the termination of the MX BUS according to an embodiment of the present invention.

도 13은 본 발명의 바람직한 일 실시예에 따른 로드 분산(Load Sharing) 처리 과정을 나타낸 도면.13 is a view showing a load sharing process according to an embodiment of the present invention.

본 발명은 WCDMA 패킷 과금 데이터 처리 방법 및 시스템에 관한 것으로, 특히 다중 프로세스 환경에서 수집된 각 과금 데이터(CDR : Call Detail Record 또는 Charging Data Record)의 유형(type)과 특성에 따라 적절한 프로세스로 라우팅하는 범용적인 기능을 제공하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템에 관한 것이다.The present invention relates to a WCDMA packet billing data processing method and system, and more particularly to routing to the appropriate process according to the type (type) and characteristics of each billing data (CDR: Call Detail Record or Charging Data Record) collected in a multi-process environment The present invention relates to a method and system for processing WCDMA packet charging data that provides a general purpose function.

도 1은 과금 게이트웨이(Charging Gateway)를 포함하는 일반적인 범용 이동통신 서비스 시스템(UMTS : Universal Mobile Telecommunication Systems) 패킷 교환 핵심망(PS-CN : Packet Switched Core Network)의 구성을 개락적으로 나타낸 블록 구성도이다.FIG. 1 is a block diagram schematically illustrating a configuration of a general Universal Mobile Telecommunication Systems (UMTS) packet switched core network (PS-CN) including a charging gateway. .

도 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)은 다양한 구성 요소를 더 포함할 수 있다. Referring to FIG. 1, a universal mobile communication service system (UMTS) includes a base station 115, a Radio Network Controller (RNC) 120, a Serving GPRS Supporting Node (SGSN) 125, and an HLR. (Home Location Register) 130, Gateway GPRS Supporting Node (GGSN) (135), Charging Gateway (CG) 140, and Billing System (BS) (145) ). In addition, the universal mobile communication system (UMTS) may further include various components.

SGSN(125)은 가입자의 인증 및 이동성 관리를 수행하고, GGSN(135)은 UMTS PS-CN과 외부 데이터 네트워크간의 연결을 수행한다. SGSN(125)과 GGSN(135)은 UMTS 패킷 교환망에서 호 제어(Call control)를 위한 주요 통신망 요소(network element)이다. The SGSN 125 performs subscriber authentication and mobility management, and the GGSN 135 performs a connection between the UMTS PS-CN and an external data network. The SGSN 125 and the GGSN 135 are main network elements for call control in a UMTS packet switched network.

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을 수신한다. The CG 140 collects and processes the charging information from the SGSN 125 and the GGSN 135 and transmits the charging information to the BS 145. That is, the CG 140 receives a GSNN-Call Detail Record (G-CDR) including charging information according to the use of an external data network such as the Internet from the GGSN 135, and receives an internal network from the SGSN 125. Receive SSGSN-Call Detail Record (S-CDR) including billing information about usage. In addition, the CG 140 includes an S-SMO-CDR including charging information regarding a mobility-call detail record (M-CDR) and a short message service (SMS) including charging information regarding mobility management. And S-SMT-CDR.

CG(140)는 수신된 과금 정보에 관한 버퍼링(buffering), BER(Basic Encoding Rule)에 의한 디코딩, 불완전 CDR(partial CDR)에 대한 통합(aggregation), BS(145)가 요청하는 포맷으로의 포맷 변환(reformatting) 기능 등을 수행한다.CG 140 buffers the received billing information, decodes by Basic Encoding Rules (BER), aggregates for partial CDRs, and formats into formats requested by BS 145. Performs reformatting functions.

도 2는 종래의 과금 게이트웨이의 프로세스(process) 구성을 나타낸 도면이다.2 is a diagram illustrating a process configuration of a conventional charging gateway.

도 2를 참조하면, CG(140)는 어플리케이션 레이어(Application Layer, 205)와 인프라스트럭처 레이어(Infrastructure Layer, 210)를 포함한다.Referring to FIG. 2, the CG 140 includes an application layer 205 and an infrastructure layer 210.

어플리케이션 레이어(205)는 수집 모듈(collection module), 중개 모듈(mediation module), 분배 모듈(distribution module) 등의 세 개의 주요한 모듈들을 포함한다. 수집 모듈은 과금 데이터(charging data)를 수집하고, 중개 모듈은 수집된 과금 데이터를 처리하며, 분배 모듈은 처리된 과금 데이터를 타겟 시스템(target system)으로 분배한다.The application layer 205 includes three main modules: a collection module, a mediation module, and a distribution module. The collecting module collects charging data, the mediation module processes the collected charging data, and the distribution module distributes the processed charging data to a target system.

인프라스트럭처 레이어(210)는 어플리케이션 레이어 및 O&M(Operation & Management) 레이어(도시되지 않음)를 구성하는 모듈들을 위한 기본 기능들(basic functions)을 제공한다. Infrastructure layer 210 provides basic functions for modules that make up an application layer and an Operation & Management (O & M) layer (not shown).

어플리케이션 레이어(205)와 인프라스트럭처 레이어(210)에 포함된 구성 요 소들의 상호 동작을 구체적으로 설명하면 다음과 같다.The interaction of the components included in the application layer 205 and the infrastructure layer 210 will now be described in detail.

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) 방식 등이 포함된다. CG 140 receives charging information from GGSN 135 and SGSN 125 using GPRS Tunneling Protocol Prime (hereinafter referred to as “Ga”) as a standard interface. Ga standard is defined in 3GPP TS-32.215, and within this standard, message format, information element (IE) format, duplication protection mechanism, backup in case of data transmission are required. (back-up) redirection to equipment.

수집 모듈 내의 Ga receiver(과금 정보 수집부, 215)는 SGSN(125)및 GGSN(135)으로부터 과금 정보를 수신하여 저장한다. 저장된 과금 정보는 향후 복구 및 검증을 위한 버퍼링(buffering)시 사용될 수 있다. 또한 Ga receiver(215)는 수신된 과금 정보를 MX BUS(240)로 전송한다.The Ga receiver (charging information collecting unit 215) in the collecting module receives and stores the charging information from the SGSN 125 and the GGSN 135. The stored billing information can be used for buffering for future recovery and verification. The Ga receiver 215 also transmits the received charging information to the 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)로 하여 데이터 수집 기능이 수행된다. The adapter 220 of the mediation module performs BER decoding on the charging information read from the MX BUS 240. This is because the charging information received through the Ga receiver 215 is encoded by the Basic Encoding Rule (BER) of ASN.1 (Abstract Syntax Notation. 1). At this time, the integrity of the data for each field is determined to perform a fraud detection function, and the decoding result is written to the MX BUS 240. A data routing path is established by combining fields that are routing keys among CDR fields, and a data collection function is performed using user information and an address as keys.

상술한 CDR의 유형 중 G-CDR과 S-CDR의 경우 데이터량(data volume) 및 지속 시간 제한(duration time limit), QoS 변경(QoS change), 요율 시간 변경(tariff time change) 등의 이벤트 발생시 불완전(partial) CDR이 생성되므로 이를 하나의 CDR로 집성하는 과정이 필요하다.In case of G-CDR and S-CDR, the occurrence of events such as data volume, duration time limit, QoS change, rate time change, etc. Since partial CDRs are generated, a process of aggregating them into one CDR is required.

Aggregator(225)은 수신된 불완전 CDR을 하나의 CDR로 통합하는 기능을 수행하며, 당해 세션에 관련된 마지막 CDR이 수신되면 이를 해제(release)한다.Aggregator 225 performs a function of integrating the received incomplete CDR into one CDR, and releases when the last CDR related to the session is received.

통합된 CDR은 임의의 BS(145)로 전송될 수 있다. 그러나, 복수의 BS들이 존재하는 경우에는 각각의 BS(145)에서 필요로 하는 과금 정보가 서로 다를 수 있다.The integrated CDR can be sent to any BS 145. However, when there are a plurality of BSs, the charging information required by each BS 145 may be different.

Collector(230)는 이러한 요구를 충족하기 위하여 필요한 데이터를 필터링(filtering)하는 기능을 수행하며, 필터링된 과금 정보는 분산 모듈을 통해 각 BS(145)로 분배된다.Collector 230 performs a function of filtering the data necessary to meet this demand, the filtered charging information is distributed to each BS 145 through a distribution module.

그리고, 분산 모듈의 Regulator(235)는 이벤트 단위로 처리된 CDR을 파일링(filing)하는 기능을 수행할 수 있다.In addition, the regulator 235 of the distribution module may perform a function of filing a CDR processed in an event unit.

도 3은 종래의 중개 모듈에서의 데이터 처리 과정을 나타낸 도면이다.3 is a diagram illustrating a data processing process in a conventional mediation module.

도 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)로 직접 전송된다.As shown in FIG. 3, the adapter 220 collects the MX BUS 240 when there is an incomplete CDR among the G-CDR and S-CDR collected by the Ga receiver 215 and recorded in the MX BUS 240. The defective CDR is routed to the Aggregator 225. Incomplete CDRs are not present or other types of CDRs are not sent directly to Collector 230 via MX BUS 240 because no integration process is required.

Collector(230)에서 필터링된 CDR 중 긴급(hot-bill) CDR은 즉시 BS(145)로 전송되어져야 하므로 레코드(record) 단위로 처리하는 프로세스인 제1 regulator(310)로 라우팅하고, 일반(normal) CDR은 여러 레코드들을 묶어 하나의 파일로 처리하는 제2 regulator(320)로 라우팅한다.Since the hot-bill CDRs among the CDRs filtered by the collector 230 should be immediately transmitted to the BS 145, the hot-bill CDRs are routed to the first regulator 310, which is a process of processing in record units, and is normal. ) CDR routes to the second regulator 320, which bundles several records and processes them into a single file.

이와 같이, 종래의 과금 게이트웨이의 어플리케이션 레이어 내의 구성 요소들은 UMTS PS-CN에서 생성된 과금 정보를 처리하기 위하여 데이터들을 읽어들여 고유한 처리 과정을 거친 후 후처리 절차(post procedure)를 위해 처리한 데이터를 MX BUS(240)에 저장한다. As such, the components in the application layer of the conventional charging gateway read data to process the charging information generated in the UMTS PS-CN, undergo unique processing, and then process the data for a post procedure. To the MX BUS 240.

그러나, 이러한 종래의 과금 데이터 처리 방법은 대량의 데이터를 처리하여야 하는 경우, 처리 과정상에 오류가 발생한 경우 등에 처리중인 트랜잭션(transaction)을 보장할 수 없는 문제점이 있었다.However, such a conventional billing data processing method has a problem in that it is not possible to guarantee a transaction in process when a large amount of data is to be processed, or an error occurs in the process.

따라서, 상술한 문제점을 해결하기 위한 본 발명의 목적은 범용 이동통신 시스템(UMTS) 패킷 교환 핵심망(PS-CN)에서 생성되는 과금 정보를 처리하는 다중 프로세스 환경에서 각 CDR의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.Accordingly, an object of the present invention for solving the above problems is to provide data according to the type and characteristics of each CDR in a multi-process environment for processing charging information generated in a Universal Mobile Telecommunications System (UMTS) packet switched core network (PS-CN). To provide a method and system for processing WCDMA packet charging data that provides a universal function of routing a to an appropriate process.

본 발명의 다른 목적은 과금 게이트웨이에 포함된 구성 요소들이 동일한 데이터 라우팅 방식을 채택함으로써 시스템 개발을 용이하게 하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다. It is another object of the present invention to provide a method and system for processing WCDMA packet charging data in which components included in the charging gateway adopt the same data routing scheme to facilitate system development.                         

본 발명의 또 다른 목적은 과금 CDR 추가 등의 경우 제어 정보의 갱신만으로 과금 정보의 라우팅 경로의 변경을 용이하게 할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.It is still another object of the present invention to provide a WCDMA packet charging data processing method and system that can easily change the routing path of charging information only by updating control information in the case of adding a charging CDR.

본 발명의 또 다른 목적은 과금 데이터 중개 또는 통합시 제어 정보만을 라우팅하고 실제 과금 데이터는 공유 메모리에 저장되도록 하여 대용량의 데이터 처리시에도 향상된 성능을 유지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.It is still another object of the present invention to provide a method and system for processing WCDMA packet charging data, which can route only control information when charging data is mediated or integrated, and actual charging data is stored in a shared memory to maintain improved performance even when processing a large amount of data. It is.

본 발명의 또 다른 목적은 CDR 처리에 적합한 공유 메모리 구조를 채택하여 가변 길이의 데이터 처리가 가능하고, 공유 메모리 자원의 할당 및 해제를 용이하게 하는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.It is still another object of the present invention to provide a method and system for processing WCDMA packet charging data, which adopts a shared memory structure suitable for CDR processing, enables data processing of variable length, and facilitates allocation and release of shared memory resources.

본 발명의 또 다른 목적은 과금 게이트웨이의 각 구성 요소의 동작 중 종료(정상 종료 또는 비정상 종료) 후의 재기동시 데이터 처리에 대한 연속성을 유지할 수 있어 과금 정보의 중복 또는 유실을 방지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.It is still another object of the present invention to maintain continuity with respect to data processing upon restarting after termination (normal termination or abnormal termination) of each component of the billing gateway, thereby preventing duplication or loss of charging information. It is to provide a data processing method and system.

본 발명의 또 다른 목적은 논블록킹(non-blocking) 모드를 지원하여 부하 분담(load sharing) 및 분산 처리가 가능하도록 하여 부하 집중시에도 병목 현상을 방지할 수 있는 WCDMA 패킷 과금 데이터 처리 방법 및 시스템을 제공하는 것이다.
Another object of the present invention is a method and system for processing WCDMA packet charging data that can support a non-blocking mode to enable load sharing and distributed processing, thereby preventing bottlenecks even under load concentration. To provide.

상기 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 패킷 과금 데 이터를 처리하는 장치에 있어서, 과금 데이터를 저장하는 공유 메모리-여기서, 상기 과금 데이터는 원시 과금 데이터, 불완전(partial) 과금 데이터 및 완전 과금 데이터를 포함함-; 하나 이상의 과금 데이터 생성 장치로부터 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하고, 상기 원시 과금 데이터를 이용하여 상기 완전 과금 데이터를 생성하며, 상기 완전 과금 데이터를 상기 공유 메모리에 저장하고, 상기 공유 메모리에 저장한 과금 데이터에 상응하는 제어 정보를 생성하며, 상기 완전 과금 데이터를 과금 시스템(Billing System)으로 전달하는 어플리케이션 레이어-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 및 상기 제어 정보를 수신하여 임시로 저장하고, 상기 수신된 제어 정보를 상기 어플리케이션 레이어에 포함된 임의의 어플리케이션 프로세스로 전달하는 엠엑스 버스(MX BUS)를 포함하되, 상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치가 제공된다.In order to achieve the above objects, according to an aspect of the present invention, in the apparatus for processing packet billing data, a shared memory for storing billing data, wherein the billing data is raw billing data, partial billing data And full charging data; Receive raw billing data from at least one billing data generating device and store it in the shared memory, generate the full billing data using the raw billing data, store the full billing data in the shared memory, the shared memory An application layer for generating control information corresponding to the charging data stored in the mobile terminal, and transferring the complete charging data to a billing system, wherein the control information includes a MID for verifying the control information; Storage location information, including routing destination information; And an MX bus for receiving and temporarily storing the control information and transferring the received control information to any application process included in the application layer, wherein the charging data is stored in the shared memory. An area to be stored is provided at the time of startup of the MX bus, and the designated shared memory area is individually allocated to a plurality of application processes included in the application layer.

상기 어플리케이션 레이어는, 복수의 어플리케이션 프로세스; 상기 어플리케이션 프로세스가 상기 엠엑스 버스와 연동하기 위한 메쏘드(method)를 제공하는 엠엑스 어플리케이션 프로세스 인터페이스(MX API)-여기서, 상기 메쏘드는 상기 어플리케이션 레이어와 상기 엠엑스 버스간의 컨넥션 연결을 위한 Open(), 컨넥션 해제를 위한 Close(), 데이터 읽기를 위한 Read(), 데이터 쓰기를 위한 Write() 중 적어도 어느 하나를 포함함-; 상기 어플리케이션 프로세스 각각에 상응하여 할당된 개별 공유 메모리 영역을 관리하고, 임의의 어플리케이션 프로세스에 의한 상기 과금 데이터를 상기 개별 공유 메모리 영역에 저장하는 메모리 관리부(DP Handler Class); 및 상기 개별 공유 메모리 영역에 상기 과금 데이터를 저장한 임의의 어플리케이션 프로세스에 의해 생성된 상기 제어 정보를 상기 엠엑스 버스로 전달하고, 상기 엠엑스 버스로부터 상기 제어 정보를 수신하여 상응하는 어플리케이션 프로세스로 전달하는 메시지 큐 클래스(Message Queue Class)를 포함할 수 있다. 또한, 상기 복수의 어플리케이션 프로세스는, 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하는 과금 데이터 수신부(Ga Receiver); 상기 원시 과금 데이터를 디코딩하여 상기 공유 메모리에 저장하는 디코딩부(Adapter); 상기 디코딩된 원시 과금 데이터 중 불완전 과금 데이터가 존재하는 경우 하나의 완전 과금 데이터로 통합하고, 통합된 완전 과금 데이터를 상기 공유 메모리에 저장하는 통합부(Aggregator); 상기 완전 과금 데이터를 상기 과금 시스템에서 처리하기 위해 미리 지정된 형태로 변환하는 수집부(Collector); 및 상기 수집부에 의해 변환된 과금 데이터를 상기 과금 시스템으로 전달하는 전달부(Regulator) 중 어느 하나와 각각 대응되는 것을 특징으로 한다. The application layer includes a plurality of application processes; MX Application Process Interface (MX API), which provides a method for the application process to interact with the MX bus, wherein the method is Open () for connection connection between the application layer and the MX bus. , At least one of Close () for disconnection, Read () for reading data, and Write () for writing data; A memory manager (DP Handler Class) for managing an individual shared memory area allocated corresponding to each of the application processes, and storing the charging data by an arbitrary application process in the individual shared memory area; And transfer the control information generated by any application process storing the charging data in the respective shared memory area to the MX bus, receive the control information from the MX bus, and transfer the control information to a corresponding application process. It can include a Message Queue Class. The plurality of application processes may include: a billing data receiver configured to receive the raw billing data from the billing data generating device and store the raw billing data in the shared memory; A decoder for decoding the raw billing data and storing it in the shared memory; An aggregator for integrating incomplete charging data into one full charging data when incomplete charging data is present among the decoded raw charging data, and storing the integrated complete charging data in the shared memory; A collector for converting the complete billing data into a predetermined form for processing in the billing system; And a transfer unit for transferring the charging data converted by the collection unit to the charging system.

상기 엠엑스 버스는 상기 디코딩부로부터 수신된 제어 정보에 포함된 라우팅 목적지 정보를 이용하여 상기 통합부 또는 상기 수집부로 후속 처리 요청을 전달하고, 각각의 어플리케이션 프로세스는 엠엑스 버스로부터 수신되는 제어 정보에 상응하여 상기 공유 메모리에 저장된 과금 데이터를 이용하여 미리 지정된 데이터 처 리를 수행하는 것을 특징으로 한다.The MX bus transmits a subsequent processing request to the integrating unit or the collecting unit by using routing destination information included in the control information received from the decoding unit, and each application process is connected to the control information received from the MX bus. Correspondingly, the predetermined data processing is performed using the charging data stored in the shared memory.

상기 엠엑스 어플리케이션 프로세스 인터페이스로부터 컨넥션 연결 요청이 수신되면, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성한 후, 상기 엠엑스 어플리케이션 프로세스 인터페이스를 통해 각 어플리케이션 프로세스로 컨넥션 연결 응답을 전송하여 컨넥션 연결을 수행하되, 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 한다.When a connection connection request is received from the MX application process interface, the MX bus temporarily stores charging data being processed by the plurality of application processes and control information corresponding to the charging data, and the application processes After generating a message queue for transmitting and receiving control information, and designating the shared memory area, and generating a message I / O for routing any control information, the M-X application The connection connection response is performed by transmitting a connection connection response to each application process through the process interface, wherein the connection connection response includes an individual shared memory area address and a message queue ID allocated to the application process.

상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고, 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1 개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 한다. The shared memory is allocated in units of pages of a predetermined size, at least one data page header block, at least one data page start block dependent on one data page header block. And one or more Data Page Continuous Blocks subordinate to one data page start block, wherein the data page header blocks are allocated one for each application process and stored corresponding to the data page header blocks. The data page start block indicates the first page where each application process can record charging data, and the data page continuous block has one page having a length of the charging data. Variable-length if greater than or equal to Characterized in that the dynamically allocated to process the data.

상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 한다. When the use information of the data page header block indicates unused information, the storage area corresponding to the data page header block is dynamically allocated to another application process.

상기 데이터 페이지 시작 블록 및 상기 데이터 페이지 연속 블록에 저장된 과금 데이터는 상응하는 후속 어플리케이션 프로세스가 상기 과금 데이터를 읽어들여 처리하면 삭제되고, 사용 여부 정보가 미사용으로 설정되는 것을 특징으로 한다.The billing data stored in the data page start block and the data page contiguous block are deleted when a corresponding subsequent application process reads and processes the billing data, and usage information is set to unused.

상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 한다.The MID may include packet charging data processing device identification information, application process identification information, and sequence information corresponding to a processing order of an application process corresponding to the application process identification information.

상기 과금 데이터 수신부는 최종적으로 처리한 제어 정보의 MID를 임시로 저장하고, 상기 과금 데이터 수신부가 비정상 종료 후 재기동되면, 상기 과금 데이터 수신부는 상기 MID를 상기 엠엑스 버스로 전송하며, 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 임시로 저장된 처리 완료 MID와 불일치하는 경우 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 것을 특징으로 한다.The billing data receiver temporarily stores the MID of the finally processed control information, and if the billing data receiver is restarted after abnormal termination, the billing data receiver sends the MID to the Mx bus and the Mx bus If the MID received from the billing data receiving unit is inconsistent with the temporarily stored processing completed MID, characterized in that for transmitting the billing data processing request corresponding to the MID to the billing data receiving unit.

상기 엠엑스 버스는 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 원시 과금 데이터에 대한 제어 정보를 상기 디 코딩부로 전송하고, 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하며, 상기 디코딩부가 비정상 종료 후 재기동되면, 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 것을 특징으로 한다.When the MX bus receives a read request for arbitrary raw charging data from the decoding unit, the MX bus transmits control information about the raw charging data to the decoding unit, and MID corresponding to the transmitted control information. And temporarily restart the decoding unit after abnormal termination, and retransmit control information corresponding to the stored MID to the decoding unit.

상기 전달부는 비정상 종료 후 재기동되면, 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하고, 상기 엠엑스 버스는 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 삭제하고, 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 것을 특징으로 한다.When the transfer unit is restarted after abnormal termination, the transfer unit transmits the MID of control information corresponding to the final charging data transmitted to the charging system to the MX bus, and the MX bus is temporarily received from the one or more stored MIDs. The MID matching the MID is deleted, and control information corresponding to the remaining MID is transmitted to the transfer unit.

본 발명의 다른 측면에 따르면, 어플리케이션 레이어, 엠엑스 버스 및 공유 메모리를 포함하는 패킷 과금 처리 장치에서 패킷 과금 데이터를 처리하는 방법에 있어서-여기서, 상기 어플리케이션 레이어는 과금 데이터 수신부(Ga Receiver), 디코딩부(Adapter), 통합부(Aggregator), 수집부(Collector) 및 전달부(Regulator)에 상응하는 복수의 어플리케이션 프로세스를 포함함-, 상기 과금 데이터 수신부가 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장한 후, 상기 저장된 원시 과금 데이터에 상응하는 제1 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 상기 엠엑스 버스는 상기 원시 과금 데이터의 후속 처리를 위해 상기 제1 제어 정보를 상기 디코딩부로 전달하는 단계; 상기 디코딩부는 상기 제1 제어 정보에 상응하는 원시 과금 데이터를 읽어들여 디코딩하여 상기 공유 메모리에 저 장한 후, 상기 저장된 디코딩된 원시 과금 데이터에 상응하는 제2 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계; 상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 완전 과금 데이터인 경우 상기 제2 제어 정보를 상기 수집부로 전달하는 단계; 상기 수집부는 상기 제2 제어 정보에 상응하는 상기 완전 과금 데이터를 읽어들여 과금 시스템(Billing System)에서 처리할 수 있는 형태로 변환하여 상기 공유 메모리에 저장한 후, 상응하는 제3 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계; 상기 엠엑스 버스가 상기 제3 제어 정보를 상기 전달부로 전달하는 단계; 및 상기 전달부는 상기 제3 제어 정보에 상응하는 변환된 과금 데이터를 상기 공유 메모리에서 읽어들여 상기 과금 시스템으로 전달하는 단계를 포함하되, 상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법이 제공된다.According to another aspect of the present invention, a method for processing packet charging data in a packet charging processing apparatus including an application layer, an MX bus and a shared memory, wherein the application layer is a billing data receiver (Ga Receiver), decoding. And a plurality of application processes corresponding to an adapter, an aggregator, a collector, and a regulator, wherein the charging data receiver is configured to receive the raw charging data from the charging data generating device. After receiving and storing in the shared memory, generating the first control information corresponding to the stored raw billing data to pass to the M-bus, where the control information is MID for verifying the control information, the Storage location information of charging data, routing destination information; The MX bus transferring the first control information to the decoding unit for subsequent processing of the raw charging data; The decoding unit reads, decodes and stores the raw charging data corresponding to the first control information in the shared memory, generates second control information corresponding to the stored decoded raw charging data, and transfers the generated control data to the MX bus. Doing; Transmitting, by the MX bus, the second control information to the collection unit when the decoded raw charging data is full charging data; The collection unit reads the complete billing data corresponding to the second control information, converts it into a form that can be processed by a billing system, stores it in the shared memory, and generates corresponding third control information. Transferring to the MX bus; Transmitting, by the MX bus, the third control information to the transfer unit; And the transfer unit reading the converted charging data corresponding to the third control information from the shared memory and delivering the converted charging data to the charging system, wherein the region where the charging data is stored in the shared memory is the MX bus. Is designated at start-up time, and the designated shared memory area is individually allocated to a plurality of application processes included in the application layer.

상기 패킷 과금 데이터 처리 방법은 상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터 중 불완전(partial) 과금 데이터가 존재하는 경우 상기 제4 제어 정보를 상기 통합부로 전달하는 단계; 및 상기 통합부가 복수의 불완전 과금 데이터를 통합하여 통합된 완전 과금 데이터를 상기 공유 메모리에 저장한 후, 상기 완전 과금 데이터에 상응하는 제4 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계를 더 포함할 수 있다.The packet charging data processing method may further include: transmitting, by the MX bus, the fourth control information to the integrating unit when partial charging data exists among the decoded raw charging data; And integrating, by the integrator, a plurality of incomplete charging data to store integrated complete charging data in the shared memory, and then generating fourth control information corresponding to the complete charging data and transmitting the fourth control information to the MX bus. It may include.

상기 패킷 과금 데이터 처리 방법은 상기 엠엑스 버스가 상기 어플리케이션 레이어로부터 컨넥션 연결 요청을 수신하는 단계; 상기 엠엑스 버스가 컨넥션 연결을 수행하는 단계; 및 상기 어플리케이션 레이어로 컨넥션 연결 응답을 전송하는 단계를 더 포함할 수 있다. 이때, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성하여 컨넥션 연결을 수행하고, 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함할 수 있다.The packet charging data processing method may further include: receiving, by the MX bus, a connection connection request from the application layer; The MX bus performing a connection connection; And transmitting a connection connection response to the application layer. In this case, the MX bus temporarily stores charging data being processed by the plurality of application processes and control information corresponding to the charging data, and a message queue for transmitting and receiving control information with the application processes. Generate a message, specify a shared memory area, and generate a message input / output unit (Message I / O) for routing arbitrary control information to perform a connection connection, and the connection connection response is allocated to the application process. It can include individual shared memory area addresses and message queue IDs.

상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고, 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 한다.The shared memory is allocated in units of pages of a predetermined size, at least one data page header block, at least one data page start block dependent on one data page header block. And one or more Data Page Continuous Blocks subordinate to one data page start block, wherein the data page header blocks are allocated one for each application process and stored corresponding to the data page header blocks. The data page start block indicates the first page on which each application process can record charging data, and the data page continuous block has one page having a length of the charging data. Variable-length if greater than or equal to Characterized in that the dynamically allocated to process the data.

상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당될 수 있다. When information on whether the data page header block is used indicates unused information, a storage area corresponding to the data page header block may be dynamically allocated to another application process.

상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함할 수 있다.The MID may include packet charging data processing device identification information, application process identification information, and sequence information corresponding to a processing order of an application process corresponding to the application process identification information.

상기 패킷 과금 데이터 처리 방법은 상기 과금 데이터 수신부가 최종적으로 처리한 제어 정보의 MID를 임시로 저장하는 단계; 상기 과금 데이터 수신부가 비정상 종료 후 재기동된 경우, 상기 과금 데이터 수신부가 상기 MID를 상기 엠엑스 버스로 전송하는 단계; 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 상기 엠엑스 버스 내에 임시로 저장된 처리 완료 MID와 일치하는지 여부를 판단하는 단계; 및 불일치하는 경우, 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 단계를 더 포함할 수 있다.The packet charging data processing method includes temporarily storing a MID of control information finally processed by the charging data receiving unit; Transmitting, by the charging data receiver, the MID to the MBUS when the charging data receiver is restarted after abnormally terminating; Determining, by the MX bus, whether the MID received from the charging data receiver matches the processed MID temporarily stored in the MX bus; And in case of inconsistency, transmitting a processing request for charging data corresponding to the MID to the charging data receiver.

상기 패킷 과금 데이터 처리 방법은 상기 엠엑스 버스가 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 제1 제어 정보를 상기 디코딩부로 전송하는 단계; 상기 엠엑스 버스는 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하는 단계; 상기 엠엑스 버스는 상기 디코딩부가 비정상 종료 후 재기동되었는지 여부를 판단하는 단계; 및 비정상 종료 후 재기동된 경우, 상기 엠엑스 버스는 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 단계를 더 포함할 수 있다.The packet charging data processing method may include: transmitting, by the MX bus, the first control information to the decoding unit when a read request for any raw charging data is received from the decoding unit; The MX bus temporarily storing a MID corresponding to the transmitted control information; Determining, by the MX bus, whether the decoding unit has been restarted after abnormal termination; And re-transmitting control information corresponding to the stored MID to the decoding unit when restarted after abnormal termination.

상기 패킷 과금 데이터 처리 방법은 상기 전달부가 비정상 종료 후 재기동된 경우, 상기 전달부는 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하는 단계; 상기 엠엑스 버스는 상기 엠엑스 버스 내에 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 검출하는 단계; 및 일치하는 MID가 존재하는 경우, 일치하지 않는 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 단계를 더 포함할 수 있다.The packet charging data processing method may include: when the transmission unit is restarted after abnormal termination, transmitting the MID of control information corresponding to the complete charging data finally transmitted to the charging system to the MX bus; Detecting an MID that matches the received MID from one or more MIDs temporarily stored in the MX bus; And if there is a matching MID, transmitting control information corresponding to the remaining non-matching MID to the transfer unit.

이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, the same reference numerals will be used for the same means regardless of the reference numerals in order to facilitate the overall understanding.

도 4는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 블록 구성도이고, 도 5는 본 발명의 바람직한 일 실시예에 따른 메시지 ID 포맷을 예시한 도면이며, 도 6은 본 발명의 바람직한 일 실시예에 따른 공유 메모리 구조를 나타낸 도면이다.4 is a block diagram of an MX BUS according to a preferred embodiment of the present invention, FIG. 5 is a diagram illustrating a message ID format according to a preferred embodiment of the present invention, and FIG. 6 is a preferred embodiment of the present invention. A diagram illustrating a shared memory structure according to an example.

도 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'라 칭함)를 포함한다.4, the MX BUS 400 of the Charging Gateway (CG) according to the present invention is a message queue class (Message Queue Class, 430b-hereinafter referred to as 'Msg Queue Class'), the message input and output unit ( Message Input / Output, 440-below, referred to as' Msg I / O ', Class Queue (Class Queue, 445-below, referred to as' Class Queue'), Message Router, 450-below, 'Msg Router "Connection Manager", Connection Manager (455-hereinafter referred to as "Connection Mgr"), Monitoring (Statistics monitor, 460-referred to as "Statistics monitor"), MID Location Manager (MID Location Manager, 465) Hereinafter referred to as 'MID Location Mgr', a MID manager (MID Manager, 470 hereinafter, referred to as 'MID Mgr') and a settlement unit (Audit, 475-hereinafter referred to as '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 Queue Class (430b) is after each application process (AP: Access Process, 410) of the application layer of the CG 140, using the shared memory operating unit (DP Handler Class, 420) to record the charge CDR in the shared memory In the case of writing to the Message Queue 435 through the Msg Queue class 430a, control information recorded in the Message Queue 435 is received.

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'(여러 개의 데이터를 하나의 트랜잭션으로 묶어서 처리) 등이 있다.The Msg I / O 440 is created in the form of a thread when each application process requests a session connection. The Msg I / O 440 reads control information from the Msg Queue class 430b and processes it. The processing type of Msg I / O 440 includes 'Write' (the destination is determined using the corresponding control information, and then the control information is temporarily stored in the destination class queue), and 'Read' (Msg Queue Class ( 430b) retrieves the control information (pop) and writes it to the Message Queue (435) so that the application process can read the corresponding data), 'Read Write' (Read and Write as a transaction) Bundle processing), 'TrStart, TrWrite, TrStop' (bundling multiple data into a single transaction).

Class Queue(445)는 각 어플리케이션 프로세스(410)들로 제어 정보를 제공하 기 위한 저장소로서, 임의의 어플리케이션 프로세스가 데이터 처리 과정을 종료하고 새로운 데이터 읽기를 요청하였을 때, MX BUS(400)는 Class queue(445)에서 상응하는 제어 정보를 불러들여(pop) 해당 어플리케이션 프로세스로 전달한다.The class queue 445 is a repository for providing control information to each application process 410. When an arbitrary application process terminates the data processing process and requests reading of new data, the MX BUS 400 class. The corresponding control information is retrieved from the queue 445 and popped to the corresponding application process.

Msg Router(450)는 읽어들인 제어 정보 내의 소스 어플리케이션 아이디(source application ID)와 분기 조건 정보를 이용하여 목적지를 결정한다.The Msg Router 450 determines the destination using the source application ID and the branch condition information in the read control information.

Connection Mgr(455)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, UDP 소켓(socket)을 통해 어플리케이션 레이어의 세션 연결 요청 및 세션 종료 요청을 처리한다. 어플리케이션 레이어로부터 세션 연결 요청이 수신된 경우, Connection Mgr(455)는 중복 요청인지 여부를 검사하고, 기존에 완료(commit)되지 않은 데이터에 대한 복구 기능을 수행하며, 각종 자원(예를 들어, 공유 메모리, Message Queue, Class Queue 등) 을 생성한다.The Connection Mgr 455 is created in the form of a thread when the MX BUS 400 is initialized and processes a session connection request and a session termination request of an application layer through a UDP socket. When a session connection request is received from the application layer, the Connection Mgr 455 checks whether the request is a duplicate request, performs a recovery function on previously incomplete data, and executes various resources (for example, sharing). Create memory, Message Queue, Class Queue, etc.)

Statistics monitor(460)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, 각 Class Queue에 큐잉(Queuing)되어 있는 데이터 수량을 모니터링하여 현재 처리 상태 및 병목 지점의 확인이 가능하도록 한다.The statistics monitor 460 is created in the form of a thread when the MX BUS 400 is initialized. The statistics monitor 460 monitors the quantity of data queued in each class queue to identify the current processing state and the bottleneck.

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)는 특정 어플리케이션 프로세스 내에서 처리하는 메시지에 순차적으로 부여되는 정보이다.The MID Location Mgr 465 stores the location of the data stored in the shared memory 425 in the form of a map, and manages the storage location of the corresponding message using MID (Message ID) as a key. The MID is assigned by the DP Handler Class 420. That is, the DP Handler Class 420 is a class that manages shared memory. The DP handler class 420 allocates a shared memory area to be used by each application process, and records the data processed by each application process in a free block of the shared memory. Each application process assigns a MID to the data to be processed. Hereinafter, a message ID (MID) for proving a corresponding transaction when the MX BUS 400 exchanges data with each application process will be described with reference to FIG. 5. The CG 140 according to the present invention stores the actual data processed by each application process in the shared memory 425 in order to improve data routing efficiency, and does not route separately. Therefore, only control information related to the MX BUS 400 needs to be routed. The control information includes a MID for identifying the message, an address of the shared memory 425 in which the data is stored, a data length, a source application process ID which generated the data, and a path define flag for determining a routing destination. ), And the like. Among these, the MID is a package ID field 510, a process ID field 520, and a message so that multiple application processes that play the same role for load sharing are not duplicated when they are simultaneously started. A message sequence field 530 is included. The package ID field 510 is for specifying one CG 140 when there are a plurality of charging gateways in the same home network. The process ID field 520 is for specifying one application process among a plurality of application processes existing in the application layer of the CG 140. The message number field 530 is information sequentially assigned to a message processed in a specific application process.

MID Mgr(470)는 각 어플리케이션 프로세스가 트랜잭션을 진행하고 있는 데이터의 MID를 임시로 저장하여 각 어플리케이션 프로세스의 비정상 종료 후 재기동시 해당 데이터가 복구될 수 있도록 한다.The MID Mgr 470 temporarily stores the MID of the data in which each application process is performing a transaction, so that the corresponding data may be recovered when restarting after abnormal termination of each application process.

Audit(475)는 MX BUS(400)가 비정상 종료 후 재 기동되었을 때 복구를 위해 사용된다. 즉, 현재 트랜잭션이 진행중인 모든 데이터를 Audit File(480)에 저장하여 MX BUS(400)가 비정상 종료 후 재기동되면 해당 Audit File(480)로부터 데이터를 읽어들여 복구를 위해 사용한다.Audit 475 is used for recovery when MX BUS 400 is restarted after abnormal termination. That is, all data in progress of the current transaction are stored in the audit file 480. When the MX BUS 400 is restarted after abnormal termination, the data is read from the corresponding audit file 480 and used for recovery.

이외에, 도 4에 도시된 외부 구성 요소를 더 설명하면, MX API(415)는 각 어플리케이션 프로세스들이 MX BUS(400)와 연동하기 위한 메쏘드(Method)를 제공한다. MX API(415)가 제공하는 메쏘드로는 'MxOpen'(MX BUS(400)와 컨넥션 연결 설정시 사용), 'MxClose'(MX BUS(400)와 컨넥션 연결 해제시 사용), 'MxRead'(MX BUS(400)로부터 데이터를 읽어들일 때 사용) 등이 있다.In addition, further describing the external components shown in FIG. 4, the MX API 415 provides a method for each application process to interact with the MX BUS 400. The methods provided by the MX API (415) include 'MxOpen' (used to establish a connection with MX BUS (400)), 'MxClose' (used to disconnect from MX BUS (400)), and 'MxRead' (MX Used to read data from the BUS 400).

DB 테이블(485)은 소스 어플리케이션 ID 및 분기 조건에 따른 목적지를 등록한 라우팅 정보 테이블과 클래스 큐 정보를 등록한 클래스 정보 테이블을 포함할 수 있다.The DB table 485 may include a routing information table that registers a destination according to a source application ID and a branch condition and a class information table that registers class queue information.

구성 정보 파일(Configuration File, 490)은 MX BUS(400)가 동작을 위해 필요한 구성 정보가 등록된 파일을 나타낸다.The configuration file 490 represents a file in which configuration information necessary for the MX BUS 400 to operate is registered.

이하, 도 6을 참조하여 효율적 제어가 가능한 공유 메모리(425)의 기능 및 구조를 설명한다.Hereinafter, the function and structure of the shared memory 425 capable of efficient control will be described with reference to FIG. 6.

공유 메모리(425)는 어플리케이션 프로세스들에 의해 처리된 데이터를 저장하는 수단으로, 데이터의 효율적 관리를 위해 일정한 크기의 페이지(page) 단위로 관리된다. MX BUS(400)는 최초 기동시 자신이 사용할 공유 메모리 영역을 생성하 고, 각 어플리케이션 프로세스들은 세션 연결 요청시 자신이 사용할 용량을 MX BUS(400)에 전달한다. MX BUS(400)는 어플리케이션 프로세스들의 요청에 따라 사용 가능한 범위 내에서 DP Handler Class(420)를 이용하여 각 어플리케이션 프로세스들에 용량을 할당한다.The shared memory 425 is a means for storing data processed by application processes. The shared memory 425 is managed in units of pages of a constant size for efficient management of data. The MX BUS 400 creates a shared memory area for its own use at initial startup, and each application process delivers its capacity to the MX BUS 400 when it requests a session connection. The MX BUS 400 allocates capacity to each of the application processes using the DP Handler Class 420 within the available range at the request of the application processes.

이후, 임의의 어플리케이션 프로세스가 데이터 읽기를 요청하면, MX BUS(400)는 상응하는 데이터의 공유 메모리내의 위치 정보를 MX API(415)로 전달한다. MX API(415)는 위치 정보를 DP Handler Class(420)로 전달하여 공유 메모리에서 해당 데이터를 읽어들이며, 읽어들인 데이터를 해당 어플리케이션 프로세스로 전달한다.Then, if any application process requests reading data, MX BUS 400 passes the location information in shared memory of the corresponding data to MX API 415. The MX API 415 transfers the location information to the DP Handler Class 420 to read the corresponding data from the shared memory, and delivers the read data to the corresponding application process.

반대로, 임의의 어플리케이션 프로세스가 데이터 쓰기를 요청하면, MX API(415)는 해당 데이터를 DP Handler Class(420)를 이용하여 공유 메모리(425)에 저장하고, 이에 관한 제어 정보를 MX BUS(400)에 기록(write)한다.On the contrary, when any application process requests to write data, the MX API 415 stores the data in the shared memory 425 using the DP Handler Class 420 and stores control information about the MX BUS 400. Write to

공유 메모리(425)에서 데이터가 저장되는 데이터 블록(Data Block)은 그 역할에 따라 데이터 페이지 헤더 블록(Data Page Header Block, 610a, 610b, 610n - 이하 'DPH'라 칭함), 데이터 페이지 시작 블록(Data Page Start Block, 620a, 620b - 이하 'DPS'라 칭함), 데이터 페이지 연속 블록(Data Page Continuous Block, 630a - 이하 'DPC'라 칭함)으로 구분될 수 있다.The data block in which data is stored in the shared memory 425 may be a data page header block (610a, 610b, 610n-hereinafter referred to as 'DPH') and a data page start block (depending on its role). Data Page Start Blocks 620a and 620b (hereinafter referred to as 'DPS') and Data Page Continuous Blocks (630a-referred to as 'DPC' below).

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)한다.The DPHs 610a, 610b, and 610n are allocated to the first page of data blocks allocated to each application process, and management information is inserted rather than actual data. That is, the DPHs 610A, 610B, and 610N are headers indicating information on the shared memory area that can be used by each application process. The DPHs 610A, 610B, and 610N include an enable flag, a page count, and a connective DPH address (previous DPH address and next DPH address). The enable flag indicates whether the application process is using the entire area before the next DPH address. The connection is set to free so that other application processes can use this area. The page count represents the total number of pages available to the application process. The number of pages required between each application process may be different. For example, the Ga receiver 215 does not require a large number of page counts because it immediately processes the received data. On the other hand, the Aggregator 225 needs to store a large number of incomplete CDRs at the same time and therefore requires a large number of page counts. That is, it is dynamically allocated according to the operation characteristics of the corresponding application process. A linked DPH address is an address value that forms a bidirectional linked list structure with DPH used by other application processes. When the connection connection request is received, the DP Handler Class 420 sequentially searches for the next DPH address and allocates the next DPH address if the use flag of the corresponding address is set to free. In addition, when a connection release request is received, the DP Handler Class 420 sets the corresponding DPH to free and simultaneously searches for a connection DPH address and concatenates the corresponding area if the corresponding area is also free.

DPS(620a, 620b)는 각 어플리케이션 프로세스가 공유 메모리(425)에 기록할 데이터의 최초 페이지를 나타내며, 각 어플리케이션 프로세스가 공유 메모리(425) 에 저장할 데이터에 대해 하나씩 할당된다. DPS(620a, 620b)는 사용 여부 플래그, 페이지 카운트, 데이터 길이(data length)를 포함한다. 사용 여부 플래그는 해당 페이지가 현재 사용 중인지의 여부를 나타낸다. 데이터를 기록한 시점에 "used"로 설정되고 후속 처리를 수행하는 어플리케이션 프로세스가 이를 읽어 들여 처리를 완료하면 재사용이 가능하도록 프리(free)로 설정된다. 페이지 카운트는 데이터 저장에 필요한 페이지의 카운트 수를 나타낸다. 페이지 카운트는 저장할 데이터의 길이(length)에 따라 동적으로 설정된다. 데이터 길이는 실제 데이터의 바이트 단위 크기를 나타낸다. DPS(620a, 620b)의 나머지 부분은 실제 데이터로 채워진다.The DPSs 620a and 620b represent the first page of data that each application process will write to the shared memory 425, one for each data stored in the shared memory 425. The DPSs 620a and 620b include a availability flag, a page count, and a data length. The use flag indicates whether the page is currently in use. It is set to "used" at the time the data is written and set to free so that it can be reused when the application process that performs subsequent processing reads it in and finishes processing. The page count represents the number of counts of pages required for data storage. The page count is dynamically set according to the length of data to be stored. The data length represents the size in bytes of the actual data. The remainder of the DPS 620a, 620b is filled with actual data.

DPC(630a)는 가변 길이의 데이터를 처리하기 위하여 데이터 길이(data length)가 1개의 페이지 크기(page size)보다 클 경우 동적으로 페이지 수를 할당하기 위해 사용된다. 만약 데이터 길이가 페이지 크기보다 작을 경우 할당되지 않는다.The DPC 630a is used to dynamically allocate the number of pages when the data length is larger than one page size to process variable length data. If the data length is smaller than the page size, it is not allocated.

본 발명은 상술한 바와 같이 데이터 저장에 필요한 공유 메모리를 구조화함으로써 각 어플리케이션 프로세스들의 기동/종료시 해당 어플리케이션 프로세스가 사용하는 공유 메모리(425) 영역의 할당 및/또는 해제를 용이하게 할 수 있다. 또한, 가변 길이의 데이터 처리도 용이하게 할 수 있다.The present invention can facilitate the allocation and / or release of the shared memory 425 area used by the corresponding application process at the start / end of each application process by structuring the shared memory required for data storage as described above. In addition, data processing of variable length can be facilitated.

도 7은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 설정 과정을 나타낸 데이터 흐름도이다. 7 is a data flow diagram illustrating a connection establishment process between application processes and MX BUS according to an embodiment of the present invention.

어플리케이션 프로세스는 MX BUS(400)와 제어 정보를 송/수신하기 위해 먼저 MX BUS(400)와 컨넥션을 설정하여야 한다. 도 7에 어플리케이션 프로세스와 MX BUS(400)간의 컨넥션 설정 과정이 도시되어 있다.The application process must first establish a connection with the MX BUS 400 in order to transmit / receive control information with the MX BUS 400. 7 shows a process of establishing a connection between the application process and the MX BUS 400.

도 7을 참조하면, 단계 710에서 MX API(415)는 어플리케이션 프로세스의 요청에 의해 UDP를 통해 Open Request를 MX BUS(400)로 전송한다.Referring to FIG. 7, in step 710, the MX API 415 transmits an Open Request to the MX BUS 400 through UDP by a request of an application process.

앞서 설명한 바와 같이, 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)를 통해 각 어플리케이션 프로세스로 전달된다.As described above, there is a Connection Mgr 455 in the MX BUS 400 that performs connection establishment and release. When the Open Mgr 455 receives an Open Request from the MX API 415, the Connection Mgr 455 generates an Audit class 475 for data recovery in step 715. The Connection Mgr 455 creates a Message Queue 435 used to send and receive control information (step 720) and allocates a shared memory 425 area for the session (step 725). Connection Mgr 455 also creates a Message I / O thread 440 for data routing (step 730). Thereafter, the Connection Mgr 455 transmits an Open Response including the address of the allocated shared memory 425 and the ID of the Message Queue 435 to the MX API 415. The transmitted Open Response is delivered to each application process through the MX API 415.

이하, 어플리케이션 프로세스들과 MX BUS(400)간에 컨넥션 설정된 이루어진 상태에서 각 어플리케이션 프로세스가 MX BUS(400)를 이용하여 공유 메모리(425)에 저장된 데이터를 읽거나 쓰는 과정에 대해 간략히 설명한다.Hereinafter, a process in which each application process reads or writes data stored in the shared memory 425 using the MX BUS 400 while the connection is established between the application processes and the MX BUS 400 will be described.

먼저, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 데이터를 기록하는 과정을 설명한다.First, a process in which an application process writes data to the shared memory 425 will be described.

임의의 어플리케이션 프로세스는 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를 생성하여 상응하는 어플리케이션 프로세스로 전송한다. Any application process writes data to the shared memory 425 using the MX API 415 and the DP Handler Class 420 and then queues a Write Request to the Message Queue 435. The Message I / O thread 440 reads a Write Request from the Message Queue 435 in a waiting state. The audit class 475 writes data to the audit file 480 for transaction guarantee, and the MID mgr 470 stores control information for transaction guarantee. In addition, the MID Location Manager 470 stores address information in a map so that an application process requiring further processing can find the corresponding data in the shared memory 425, and the Message router 450 sets a destination route. The control information is then inserted into the class queue 445 so that subsequent application processes can read the data. The Message I / O thread 440 then generates a Write Response and sends it to the corresponding application process.

다음으로, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 기록된 데이터를 읽는 과정을 설명한다.Next, a process in which any application process reads data written in the shared memory 425 will be described.

임의의 어플리케이션 프로세스가 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를 생성한다. If any application process queues a Read Request to the Message Queue 435 using the MX API 415, the Message I / O thread 440 reads it out of the waiting state. If control information corresponding to the class queue 445 of the session to be read exists, the MID mgr 470 stores the MID corresponding to the read data in a map and the Message I / O thread 440 Create response using control information. When the Message I / O thread 440 writes the generated response to the Message Queue 435, the MX API 415 reads data from the shared memory 425 in which the data exists using the control information. This is then passed on to the application process. However, if there is no information to read in the Class Queue 445, a response to the time-out is created after waiting for a certain time.

도 8은 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세스들과 MX BUS간의 컨넥션 해제 과정을 나타낸 데이터 흐름도이다.8 is a data flow diagram illustrating a connection release process between the application processes and the MX BUS according to an embodiment of the present invention.

도 8을 참조하면, 단계 810에서 MX API(415)는 어플리케이션 프로세스의 요청에 의해 MX BUS(400)로 Close Request를 전송한다.Referring to FIG. 8, in step 810, the MX API 415 transmits a close request to the MX BUS 400 by a request of an application process.

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)로 전송한다.When the MX BUS 400 receives a Close Request, the Connection Mgr thread 455 of the MX BUS 400 releases the shared memory 425 allocated to the session (815) and deletes the Message Queue 435. In step 820, the Message I / O thread 440 for data routing is terminated (step 825). In addition, the Connection Mgr thread 455 transmits a close response to the MX API 415 through UDP.

도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 쓰기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.9 is a diagram illustrating a process of recovering an error generated in a data writing process according to an exemplary embodiment of the present invention.

MX BUS(400)에 데이터를 쓰기(write)만 하는 어플리케이션 프로세스(예를 들어, Ga receiver(215))가 종료 후 재기동 되는 경우 오류 복구가 필요할 수 있다. 예를 들어, Ga(GPRS Tunneling Protocol Prime)가 비정상 종료 후 재기동되면 MX BUS(400)에 데이터를 기록하는 어플리케이션 프로세스는 마지막으로 MX BUS(400)에 기록하였으나 응답(Response)을 수신하지 못한 데이터에 대해서는 MX BUS(400)가 해당 데이터 처리를 완료했는지 여부를 확인할 수 없어 데이터의 중복 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 9를 참조하여 설명한다.If an application process (for example, the Ga receiver 215) that only writes data to the MX BUS 400 is restarted after termination, error recovery may be necessary. For example, if Ga (GPRS Tunneling Protocol Prime) is restarted after abnormal termination, the application process that writes data to MX BUS 400 lastly writes data to MX BUS 400 but fails to receive a response. In this regard, whether or not the MX BUS 400 has completed the corresponding data processing cannot be confirmed and there is a possibility of data duplication. A method for preventing this problem will be described with reference to FIG. 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)으로써 데이터 중복을 방지한다.Referring to FIG. 9. In the case of the Ga receiver 215, data is received from the GGSN or SGSN through the GPRS Tunneling Protocol Prime (Ga) interface and recorded in the MX BUS 400, and there is no read process from the MX BUS 400. . If the Ga receiver 215 records control information on the MX BUS 400 and terminates without receiving a response, it is necessary to check whether the MX BUS 400 processes the information that has already been transmitted upon restart. To this end, the Ga receiver 215 temporarily stores the last MID processed by each moment, and the MX BUS 400 also temporarily stores the MID that has been processed after receiving from the Ga receiver 215. When the Ga receiver 215 is restarted and requests a connection connection, the Ga receiver 215 attaches and transmits the last MID transmitted, and the MX BUS 400 compares it with the last MID that it processed. Discard prevents data duplication.

도 10은 본 발명의 바람직한 일 실시예에 따른 데이터 읽고 쓰는 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.FIG. 10 is a diagram illustrating a process of recovering an error generated in a process of reading and writing data according to an exemplary embodiment of the present invention.

MX BUS(400)로부터 데이터를 읽고(read) 처리 결과를 기록(write)하는 어플리케이션 프로세스(예를 들어, Adapter(220))가 종료 후 재기동 되는 경우 오류 복구가 필요할 수 있다. 예를 들어, 데이터 처리 과정 중에 비정상 종료가 발생한 후 재기동 되면 지난번 처리 과정에서 읽어들였으나 처리를 완료하지 못하고 비정상 종료된 해당 데이터의 처리가 누락될 수 있다. 이러한 문제점을 방지하기 위한 방법을 도 10을 참조하여 설명한다. Error recovery may be required when an application process (for example, the adapter 220) that reads data from the MX BUS 400 and writes a processing result is restarted after termination. For example, if an abnormal termination occurs during a data processing process and restarted, processing of the corresponding data that was read in the last processing process but failed to complete the processing may be omitted. A method for preventing such a problem will be described with reference to FIG. 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)에 삽입하여 누락을 방지한다.Referring to FIG. 10, in the case of the adapter 220, after the Ga receiver 215 reads control information written to the MX BUS 400, the processing result is written to the MX BUS 400. )do. At this time, if the read data is not processed normally and restarted after being terminated, the MX BUS 400 must transmit the corresponding control information to the Class Queue 445 to be read by the Adapter 220 again. For this purpose, the MX BUS 400 temporarily stores the MID being processed by each application process in the MID Manager class 470 and deletes it when the processing is completed. When the application process is restarted after termination, control information about the MID existing in the MID Manager 470 is inserted into the Class Queue 445 to prevent omission.

도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 읽기 과정에서 발생된 오류를 복구하는 과정을 나타낸 도면이다.11 is a diagram illustrating a process of recovering an error generated in a data reading process according to an exemplary embodiment of the present invention.

MX BUS(400)로부터 데이터를 읽어(read) 처리 결과를 BS(145)로 전달하는 Regulator(235)가 비정상 종료된 경우 MX BUS(400)는 마지막으로 제공한 데이터를 Regulator(235)가 정상적으로 처리하였는지 확인할 수 없어 데이터의 중복 및/또는 누락 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 11을 참조하여 설명한다. When the regulator 235 which reads data from the MX BUS 400 and delivers the processing result to the BS 145 is abnormally terminated, the MX BUS 400 normally processes the last data provided by the regulator 235. There is a possibility of duplication and / or omission of data as it cannot be verified. A method for preventing this problem will be described with reference to FIG.

도 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)에 삽입하여 데이터의 누락을 방지한다.Referring to FIG. 11, the regulator 235 transmits the processing result to the BS 145 without writing the processing result to the MX BUS 400. Therefore, when restarting after abnormal termination, the MX BUS 400 must retransmit if the last MID transmitted was not normally processed by the regulator 235. For this purpose, the regulator 235 temporarily stores the last MID processed by each moment and transmits it to the MX BUS 400 when a connection connection request is requested after restarting. The MX BUS 400 prevents data duplication by deleting a corresponding MID when it exists in the MID mgr 470 and inserts control information corresponding to the remaining MIDs into the Class Queue 445 to prevent data loss.

도 12는 본 발명의 바람직한 일 실시예에 따른 MX BUS의 종료 후 재기동시 오류 복구 과정을 나타낸 도면이다.12 is a diagram illustrating an error recovery process when restarting after the termination of the MX BUS according to an embodiment of the present invention.

MX BUS(400)가 종료 후 재기동 되면 공유 메모리(425) 내에 존재하던 데이터들이 모두 유실되므로 데이터의 중복 가능성이 존재한다. 이러한 문제점을 방지하기 위한 방법을 도 12를 참조하여 설명한다. When the MX BUS 400 is restarted after termination, all data existing in the shared memory 425 are lost, and thus there is a possibility of data duplication. A method for preventing this problem will be described with reference to FIG. 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)가 실제 데이터를 읽어 들일 수 있도록 한다. Referring to FIG. 12, since the control information in the MX BUS 400 and the data existing in the shared memory 425 are lost when restarted after the termination, the MX BUS 400 may perform a transaction in order to recover the problem. All data (ie, not completed) and control information thereof are stored in the audit file 480. That is, when the application process calls the write request, the control information and data thereof are stored in the audit file 480, and the processing is deleted when the application process is completed. When the MX BUS 400 is restarted after termination, the control information is read from the audit file 480 to determine the destination and inserted into the corresponding Class Queue 445. In this case, the storage location of the data is indicated by the audit file 480 so that the MX API 415 can read the actual data later.

상술한 방법들을 통해 본 발명은 각 어플리케이션 프로세스 및/또는 MX BUS(250)가 정상 혹은 비정상 종료 후 재 기동 되었을 때 중복 및/또는 누락을 방지할 수 있도록 한다.Through the above-described methods, the present invention can prevent duplication and / or omission when each application process and / or MX BUS 250 is restarted after a normal or abnormal termination.

도 13은 본 발명의 바람직한 일 실시예에 따른 로드 분산(Load Sharing) 처리 과정을 나타낸 도면이다.FIG. 13 is a diagram illustrating a load sharing process according to an exemplary embodiment of the present invention. FIG.

본 발명은 Ga receiver(215)에서 Regulator(235)에 이르는 일련의 처리과정 중 특정 단계에서 병목 현상(bottleneck)이 발생되면 해당 과정을 처리하는 어플리케이션 프로세스를 추가로 기동시켜 로드 분산(load sharing)을 할 수 있다. 예를 들어 통화량이 갑자기 증가하여 Ga receiver(215)에 단위 시간동안 많은 데이터가 수신되면 신속한 처리를 위해 Adapter(220)를 추가로 기동할 수 있다. 즉, 본 발명은 로드 분산 처리를 효과적으로 수행하기 위해 데이터 송/수신시 논블록킹 모드(non-blocking mode)를 지원할 수 있고, 동일한 역할을 하는 여러 개의 어플리케이션 프로세스가 동시에 접근하였을 경우 데이터 처리에 대한 분리(isolation) 및 연속성을 보장한다. 본 발명의 로드 분산 처리 과정을 도 13을 참조하여 설명한다.According to the present invention, when a bottleneck occurs in a specific step of a series of processes from the Ga receiver 215 to the regulator 235, load sharing may be started by additionally starting an application process that processes the process. can do. For example, if a sudden increase in the call volume and a large amount of data is received in the Ga receiver 215 for a unit time, the adapter 220 may be additionally activated for rapid processing. That is, the present invention can support a non-blocking mode during data transmission / reception in order to effectively perform the load distribution processing, and when multiple application processes having the same role access at the same time, separation for data processing to ensure isolation and continuity. The load balancing process of the present invention will be described with reference to FIG.

도 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)에서 실제 데이터를 읽어들여 해당 어플리케이션 프로세스가 처리할 수 있도록 한다.Referring to FIG. 13, in the MX BUS 400, a storage capable of queuing control information (that is, control information on generated and processed data) is provided for each input node on a routing path. There is a Class Queue 445. For example, the Ga receiver 215 stores the received data in the shared memory 425 and then records control information about the received data in the MX BUS 400. The MX BUS 400 reads it, determines the destination, and inserts it into the Class Queue 445 of the corresponding Adapter 220. When the control information is inserted into the Class Queue 445, the plurality of Ga receivers 215 can be inserted into the Class Queue 445 corresponding to the Adapter 220 at the same time, so separation of data processing can be eliminated. To ensure that a locking method is applied. In addition, in order to support the non-blocking mode (non-blocking mode) by using a broadcasting method (broadcasting method) to notify a plurality of adapters 220 that the control information has been inserted. Among the adapters 220 that are waiting in the non-blocking mode, the adapter 220 that receives the notification reads the control information from the class queue 445. However, at this time, since several adapters 220 can read control information from the class queue 445 at the same time, a locking method is applied. The read control information is transmitted to the corresponding application process through the MX API 415. The MX API 415 reads the actual data from the shared memory 425 using address information in the control information so that the corresponding application process can process it.

상술한 바와 같이, 본 발명은 Class Queue(445) 자원을 할당하고 브로드캐스팅(broadcasting)과 논블록킹(non-blocking) 상태에서 대기(waiting)하는 기능을 이용하여 분산 처리 환경에서 처리 효율을 향상시키고 데이터 처리의 정합성을 보 장한다.As described above, the present invention improves processing efficiency in a distributed processing environment by using a function of allocating class 445 resource and waiting in broadcasting and non-blocking state. Ensure consistency of data processing.

상술한 바와 같이 본 발명에 따른 WCDMA 패킷 과금 데이터 처리 방법 및 시스템은 범용 이동통신 시스템(UMTS) 패킷 교환 핵심망(PS-CN)에서 생성되는 과금 정보를 처리하는 다중 프로세스 환경에서 각 CDR의 유형과 특성에 따라 데이터를 적절한 프로세스로 라우팅하는 범용적 기능을 제공한다.As described above, the WCDMA packet charging data processing method and system according to the present invention is a type and characteristic of each CDR in a multi-process environment for processing charging information generated in a universal mobile telecommunication system (UMTS) packet switched core network (PS-CN). Provides a universal function for routing data to the appropriate process.

또한, 본 발명은 과금 게이트웨이에 포함된 구성 요소들이 동일한 데이터 라우팅 방식을 채택함으로써 시스템 개발을 용이하게 한다.In addition, the present invention facilitates system development by the components included in the charging gateway adopt the same data routing scheme.

또한, 본 발명은 과금 CDR 추가 등의 경우 제어 정보의 갱신만으로 과금 정보의 라우팅 경로의 변경을 용이하게 할 수 있다.In addition, the present invention can easily change the routing path of the charging information only by updating the control information in the case of adding the charging CDR.

또한, 본 발명은 과금 데이터 중개 또는 통합시 제어 정보만을 라우팅하고 실제 과금 데이터는 공유 메모리에 저장되도록 하여 대용량의 데이터 처리시에도 향상된 성능을 유지할 수 있다.In addition, the present invention can route only the control information when charging data brokering or integration, and the actual charging data is stored in the shared memory to maintain improved performance even when processing a large amount of data.

또한, 본 발명은 CDR 처리에 적합한 공유 메모리 구조를 채택하여 가변 길이의 데이터 처리가 가능하고, 공유 메모리 자원의 할당 및 해제를 용이하게 한다.In addition, the present invention adopts a shared memory structure suitable for CDR processing to enable data processing of variable length, and facilitate the allocation and release of shared memory resources.

또한, 본 발명은 과금 게이트웨이의 각 구성 요소의 동작 중 종료(정상 종료 또는 비정상 종료) 후의 재기동시 데이터 처리에 대한 연속성을 유지할 수 있어 과금 정보의 중복 또는 유실을 방지할 수 있다.In addition, the present invention can maintain continuity with respect to data processing upon restarting after termination (normal termination or abnormal termination) of each component of the charging gateway, thereby preventing duplication or loss of charging information.

또한, 본 발명은 논블록킹(non-blocking) 모드를 지원하여 부하 분담(load sharing) 및 분산 처리가 가능하도록 하여 부하 집중시에도 병목 현상을 방지할 수 있다.In addition, the present invention supports a non-blocking mode to enable load sharing and distributed processing, thereby preventing bottlenecks during load concentration.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

Claims (20)

패킷 과금 데이터를 처리하는 장치에 있어서,An apparatus for processing packet charging data, 과금 데이터를 저장하는 공유 메모리-여기서, 상기 과금 데이터는 원시 과금 데이터, 불완전(partial) 과금 데이터 및 완전 과금 데이터를 포함함-;Shared memory for storing charging data, wherein the charging data includes raw charging data, partial charging data and complete charging data; 하나 이상의 과금 데이터 생성 장치로부터 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하고, 상기 원시 과금 데이터를 이용하여 상기 완전 과금 데이터를 생성하며, 상기 완전 과금 데이터를 상기 공유 메모리에 저장하고, 상기 공유 메모리에 저장한 과금 데이터에 상응하는 제어 정보를 생성하며, 상기 완전 과금 데이터를 과금 시스템(Billing System)으로 전달하는 어플리케이션 레이어-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-; 및Receive raw billing data from at least one billing data generating device and store it in the shared memory, generate the full billing data using the raw billing data, store the full billing data in the shared memory, the shared memory An application layer for generating control information corresponding to the charging data stored in the mobile terminal, and transferring the complete charging data to a billing system, wherein the control information includes a MID for verifying the control information; Storage location information, including routing destination information; And 상기 제어 정보를 수신하여 임시로 저장하고, 상기 수신된 제어 정보를 상기 어플리케이션 레이어에 포함된 임의의 어플리케이션 프로세스로 전달하는 엠엑스 버스(MX BUS)를 포함하되,Receiving and temporarily storing the control information, including the Mx bus (MX BUS) for transmitting the received control information to any application process included in the application layer, 상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.The region in which the charging data is stored in the shared memory is designated at the time of startup of the MX bus, and the designated shared memory region is individually allocated to a plurality of application processes included in the application layer. Billing data processing unit. 제1항에 있어서,The method of claim 1, 상기 어플리케이션 레이어는,The application layer, 복수의 어플리케이션 프로세스;A plurality of application processes; 상기 어플리케이션 프로세스가 상기 엠엑스 버스와 연동하기 위한 메쏘드(method)를 제공하는 엠엑스 어플리케이션 프로세스 인터페이스(MX API)-여기서, 상기 메쏘드는 상기 어플리케이션 레이어와 상기 엠엑스 버스간의 컨넥션 연결을 위한 Open(), 컨넥션 해제를 위한 Close(), 데이터 읽기를 위한 Read(), 데이터 쓰기를 위한 Write() 중 적어도 어느 하나를 포함함-;MX Application Process Interface (MX API), which provides a method for the application process to interact with the MX bus, wherein the method is Open () for connection connection between the application layer and the MX bus. , At least one of Close () for disconnection, Read () for reading data, and Write () for writing data; 상기 어플리케이션 프로세스 각각에 상응하여 할당된 개별 공유 메모리 영역을 관리하고, 임의의 어플리케이션 프로세스에 의한 상기 과금 데이터를 상기 개별 공유 메모리 영역에 저장하는 메모리 관리부(DP Handler Class); 및A memory manager (DP Handler Class) for managing an individual shared memory area allocated corresponding to each of the application processes, and storing the charging data by an arbitrary application process in the individual shared memory area; And 상기 개별 공유 메모리 영역에 상기 과금 데이터를 저장한 임의의 어플리케이션 프로세스에 의해 생성된 상기 제어 정보를 상기 엠엑스 버스로 전달하고, 상기 엠엑스 버스로부터 상기 제어 정보를 수신하여 상응하는 어플리케이션 프로세스로 전달하는 메시지 큐 클래스(Message Queue Class)를 포함하되,Transferring the control information generated by any application process storing the charging data in the respective shared memory area to the MX bus, receiving the control information from the MX bus, and transferring the control information to a corresponding application process. Include a Message Queue Class, 상기 복수의 어플리케이션 프로세스는, The plurality of application processes, 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장하는 과금 데이터 수신부(Ga Receiver);A billing data receiver configured to receive the raw billing data from the billing data generator and store it in the shared memory; 상기 원시 과금 데이터를 디코딩하여 상기 공유 메모리에 저장하는 디코딩부(Adapter);A decoder for decoding the raw billing data and storing it in the shared memory; 상기 디코딩된 원시 과금 데이터 중 불완전 과금 데이터가 존재하는 경우 하나의 완전 과금 데이터로 통합하고, 통합된 완전 과금 데이터를 상기 공유 메모리에 저장하는 통합부(Aggregator);An aggregator for integrating incomplete charging data into one full charging data when incomplete charging data is present among the decoded raw charging data, and storing the integrated complete charging data in the shared memory; 상기 완전 과금 데이터를 상기 과금 시스템에서 처리하기 위해 미리 지정된 형태로 변환하는 수집부(Collector); 및A collector for converting the complete billing data into a predetermined form for processing in the billing system; And 상기 수집부에 의해 변환된 과금 데이터를 상기 과금 시스템으로 전달하는 전달부(Regulator) 중 어느 하나와 각각 대응되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.Packet charging data processing device, characterized in that each corresponding to any one of the regulator (regulator) for transferring the charging data converted by the collecting unit to the charging system. 제2항에 있어서,The method of claim 2, 상기 엠엑스 버스는 상기 디코딩부로부터 수신된 제어 정보에 포함된 라우팅 목적지 정보를 이용하여 상기 통합부 또는 상기 수집부로 후속 처리 요청을 전달하고,The MX bus transmits a subsequent processing request to the integration unit or the collection unit by using routing destination information included in the control information received from the decoding unit, 각각의 어플리케이션 프로세스는 엠엑스 버스로부터 수신되는 제어 정보에 상응하여 상기 공유 메모리에 저장된 과금 데이터를 이용하여 미리 지정된 데이터 처리를 수행하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.Each application process performs a predetermined data processing using the charging data stored in the shared memory corresponding to the control information received from the MX bus. 제2항에 있어서,The method of claim 2, 상기 엠엑스 어플리케이션 프로세스 인터페이스로부터 컨넥션 연결 요청이 수신되면, 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성한 후, 상기 엠엑스 어플리케이션 프로세스 인터페이스를 통해 각 어플리케이션 프로세스로 컨넥션 연결 응답을 전송하여 컨넥션 연결을 수행하되,When a connection connection request is received from the MX application process interface, the MX bus temporarily stores charging data being processed by the plurality of application processes and control information corresponding to the charging data, and the application processes After generating a message queue for transmitting and receiving control information, and designating the shared memory area, and generating a message I / O for routing any control information, the M-X application The connection is made by sending a connection connection response to each application process through the process interface. 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.And the connection connection response includes an individual shared memory area address and a message queue ID assigned to the application process. 제1항에 있어서,The method of claim 1, 상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, The shared memory is allocated in units of pages of a predetermined size, at least one data page header block, at least one data page start block dependent on one data page header block. And one or more Data Page Continuous Blocks dependent on one Data Page Start Block, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고,The data page header block is allocated one for each application process, and includes information on whether to use a storage area corresponding to the data page header block. 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며,The data page start block indicates the first page where each application process can write charging data, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.And the data page contiguous block is dynamically allocated to process charging data of variable length when the length of the charging data is greater than one page size. 제5항에 있어서,The method of claim 5, 상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.And when information on whether the data page header block is used indicates unused information, a storage area corresponding to the data page header block is dynamically allocated to another application process. 제5항에 있어서,The method of claim 5, 상기 데이터 페이지 시작 블록 및 상기 데이터 페이지 연속 블록에 저장된 과금 데이터는 상응하는 후속 어플리케이션 프로세스가 상기 과금 데이터를 읽어들 여 처리하면 삭제되고, 사용 여부 정보가 미사용으로 설정되는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.The charging data stored in the data page start block and the data page consecutive block is deleted when a corresponding subsequent application process reads and processes the charging data, and the usage information is set to not used. Device. 제1항에 있어서,The method of claim 1, 상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.And the MID includes packet charging data processing device identification information, application process identification information, and sequence information corresponding to a processing order of an application process corresponding to the application process identification information. 제2항에 있어서,The method of claim 2, 상기 과금 데이터 수신부는 최종적으로 처리한 제어 정보의 MID를 임시로 저장하고, 상기 과금 데이터 수신부가 비정상 종료 후 재기동되면, 상기 과금 데이터 수신부는 상기 MID를 상기 엠엑스 버스로 전송하며,The billing data receiver temporarily stores the MID of the finally processed control information, and if the billing data receiver is restarted after abnormal termination, the billing data receiver sends the MID to the MX bus, 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 임시로 저장된 처리 완료 MID와 불일치하는 경우 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.The MX bus transmits a request for processing the billing data corresponding to the MID to the billing data receiver when the MID received from the billing data receiver is inconsistent with a temporarily stored process completed MID. Device. 제2항에 있어서,The method of claim 2, 상기 엠엑스 버스는 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 원시 과금 데이터에 대한 제어 정보를 상기 디코딩부로 전송하고, 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하며,When the MX bus receives a read request for any raw billing data from the decoding unit, the MX bus transmits control information on the raw billing data to the decoding unit, and transmits a MID corresponding to the transmitted control information. Temporary storage, 상기 디코딩부가 비정상 종료 후 재기동되면, 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.And if the decoding unit is restarted after abnormal termination, retransmitting control information corresponding to the stored MID to the decoding unit. 제2항에 있어서,The method of claim 2, 상기 전달부는 비정상 종료 후 재기동되면, 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하고, When the transfer unit is restarted after abnormal termination, the transfer unit transmits the MID of control information corresponding to the complete charging data finally transmitted to the charging system to the MX bus. 상기 엠엑스 버스는 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 삭제하고, 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 것을 특징으로 하는 패킷 과금 데이터 처리 장치.The M-X bus deletes the MID matching the received MID from one or more temporarily stored MID, and transmits the control information corresponding to the remaining MID to the transfer unit. 어플리케이션 레이어, 엠엑스 버스 및 공유 메모리를 포함하는 패킷 과금 처리 장치에서 패킷 과금 데이터를 처리하는 방법에 있어서-여기서, 상기 어플리케이 션 레이어는 과금 데이터 수신부(Ga Receiver), 디코딩부(Adapter), 통합부(Aggregator), 수집부(Collector) 및 전달부(Regulator)에 상응하는 복수의 어플리케이션 프로세스를 포함함-,A method for processing packet charging data in a packet charging processing apparatus including an application layer, an MX bus, and a shared memory, wherein the application layer includes a billing data receiver, an decoder, an integrated device. Includes a plurality of application processes corresponding to an aggregator, a collector, and a regulator; 상기 과금 데이터 수신부가 상기 과금 데이터 생성 장치로부터 상기 원시 과금 데이터를 수신하여 상기 공유 메모리에 저장한 후, 상기 저장된 원시 과금 데이터에 상응하는 제1 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계-여기서, 상기 제어 정보는 당해 제어 정보를 증명하기 위한 MID, 상기 과금 데이터의 저장 위치 정보, 라우팅 목적지 정보를 포함함-;Receiving, by the charging data receiving unit, the raw charging data from the charging data generating device and storing the raw charging data in the shared memory, and generating first control information corresponding to the stored raw charging data and transferring the generated charging data to the M-bus; Wherein the control information includes a MID for verifying the control information, storage location information of the charging data, and routing destination information; 상기 엠엑스 버스는 상기 원시 과금 데이터의 후속 처리를 위해 상기 제1 제어 정보를 상기 디코딩부로 전달하는 단계;The MX bus transferring the first control information to the decoding unit for subsequent processing of the raw charging data; 상기 디코딩부는 상기 제1 제어 정보에 상응하는 원시 과금 데이터를 읽어들여 디코딩하여 상기 공유 메모리에 저장한 후, 상기 저장된 디코딩된 원시 과금 데이터에 상응하는 제2 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계;The decoding unit reads, decodes and stores the raw charging data corresponding to the first control information in the shared memory, and then generates and transmits the second control information corresponding to the stored decoded raw charging data to the MX bus. Doing; 상기 엠엑스 버스가 상기 디코딩된 원시 과금 데이터가 완전 과금 데이터인 경우 상기 제2 제어 정보를 상기 수집부로 전달하는 단계;Transmitting, by the MX bus, the second control information to the collection unit when the decoded raw charging data is full charging data; 상기 수집부는 상기 제2 제어 정보에 상응하는 상기 완전 과금 데이터를 읽어들여 과금 시스템(Billing System)에서 처리할 수 있는 형태로 변환하여 상기 공유 메모리에 저장한 후, 상응하는 제3 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계;The collection unit reads the complete billing data corresponding to the second control information, converts it into a form that can be processed by a billing system, stores it in the shared memory, and generates corresponding third control information. Transferring to the MX bus; 상기 엠엑스 버스가 상기 제3 제어 정보를 상기 전달부로 전달하는 단계; 및Transmitting, by the MX bus, the third control information to the transfer unit; And 상기 전달부는 상기 제3 제어 정보에 상응하는 변환된 과금 데이터를 상기 공유 메모리에서 읽어들여 상기 과금 시스템으로 전달하는 단계를 포함하되,Wherein the transfer unit comprises the step of reading the converted charging data corresponding to the third control information from the shared memory to the charging system, 상기 공유 메모리에서 상기 과금 데이터가 저장되는 영역은 상기 엠엑스 버스가 기동 시점에 지정되며, 상기 지정된 공유 메모리 영역은 상기 어플리케이션 레이어에 포함된 복수의 어플리케이션 프로세스들에 개별적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.The region in which the charging data is stored in the shared memory is designated at the time of startup of the MX bus, and the designated shared memory region is individually allocated to a plurality of application processes included in the application layer. How billing data is processed. 제12항에 있어서,The method of claim 12, 상기 엠엑스 버스는 상기 디코딩된 원시 과금 데이터 중 불완전(partial) 과금 데이터가 존재하는 경우 상기 제4 제어 정보를 상기 통합부로 전달하는 단계; 및Transmitting, by the MX bus, the fourth control information to the integration unit when partial charging data exists among the decoded raw charging data; And 상기 통합부는 복수의 불완전 과금 데이터를 통합하여 통합된 완전 과금 데이터를 상기 공유 메모리에 저장한 후, 상기 완전 과금 데이터에 상응하는 제4 제어 정보를 생성하여 상기 엠엑스 버스로 전달하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.The integrating unit may further include: integrating a plurality of incomplete charging data, storing integrated complete charging data in the shared memory, and generating fourth control information corresponding to the complete charging data, and transmitting the fourth control information to the MX bus. Packet charging data processing method characterized in that. 제12항에 있어서,The method of claim 12, 상기 엠엑스 버스가 상기 어플리케이션 레이어로부터 컨넥션 연결 요청을 수 신하는 단계;The MX bus receiving a connection connection request from the application layer; 상기 엠엑스 버스가 컨넥션 연결을 수행하는 단계; 및The MX bus performing a connection connection; And 상기 어플리케이션 레이어로 컨넥션 연결 응답을 전송하는 단계를 더 포함하되.And sending a connection connection response to the application layer. 상기 엠엑스 버스는 상기 복수의 어플리케이션 프로세스들에 의해 처리중인 과금 데이터 및 상기 과금 데이터에 상응하는 제어 정보를 임시로 저장하고, 상기 어플리케이션 프로세스들과 제어 정보 송수신을 위한 메시지 큐(Message Queue)를 생성하며, 상기 공유 메모리 영역을 지정하고, 임의의 제어 정보를 라우팅하기 위한 메시지 입출력부(Message I/O)를 생성하여 컨넥션 연결을 수행하고,The MX bus temporarily stores charging data being processed by the plurality of application processes and control information corresponding to the charging data, and generates a message queue for transmitting and receiving control information with the application processes. Specify a shared memory area, generate a message input / output unit (Message I / O) for routing arbitrary control information, and perform a connection connection; 상기 컨넥션 연결 응답은 상기 어플리케이션 프로세스에 대해 할당된 개별 공유 메모리 영역 주소 및 메시지 큐 ID를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.And the connection connection response includes an individual shared memory area address and a message queue ID assigned to the application process. 제12항에 있어서,The method of claim 12, 상기 공유 메모리는 일정한 크기의 페이지(page) 단위로 할당되고, 하나 이상의 데이터 페이지 헤더 블록(Data Page Header Block), 하나의 데이터 페이지 헤더 블록에 종속되는 하나 이상의 데이터 페이지 시작 블록(Data Page Start Block) 및 하나의 데이터 페이지 시작 블록에 종속되는 하나 이상의 데이터 페이지 연속 블록(Data Page Continuous Block)으로 분할되며, The shared memory is allocated in units of pages of a predetermined size, at least one data page header block, at least one data page start block dependent on one data page header block. And one or more Data Page Continuous Blocks dependent on one Data Page Start Block, 상기 데이터 페이지 헤더 블록은 어플리케이션 프로세스 각각에 대해 하나씩 할당되며, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역의 사용 여부 정보를 포함하고,The data page header block is allocated one for each application process, and includes information on whether to use a storage area corresponding to the data page header block. 상기 데이터 페이지 시작 블록은 각 어플리케이션 프로세스가 과금 데이터를 기록할 수 있는 최초 페이지를 표시하며,The data page start block indicates the first page where each application process can write charging data, 상기 데이터 페이지 연속 블록은 상기 과금 데이터의 길이(length)가 1개의 페이지 크기 이상인 경우 가변 길이의 과금 데이터를 처리하기 위해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.And the data page contiguous block is dynamically allocated to process variable length billing data when the length of the billing data is greater than one page size. 제15항에 있어서,The method of claim 15, 상기 데이터 페이지 헤더 블록의 사용 여부 정보가 미사용 정보를 나타내는 경우, 상기 데이터 페이지 헤더 블록에 상응하는 저장 영역은 다른 어플리케이션 프로세스에 대해 동적으로 할당되는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.And when information on whether the data page header block is used indicates unused information, a storage area corresponding to the data page header block is dynamically allocated to another application process. 제12항에 있어서,The method of claim 12, 상기 MID는 패킷 과금 데이터 처리 장치 식별 정보, 어플리케이션 프로세스 식별 정보 및 상기 어플리케이션 프로세스 식별 정보에 상응하는 어플리케이션 프 로세스의 처리 순서에 상응하는 시퀀스 정보를 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.And the MID includes packet charging data processing device identification information, application process identification information, and sequence information corresponding to a processing order of an application process corresponding to the application process identification information. 제12항에 있어서,The method of claim 12, 상기 과금 데이터 수신부가 최종적으로 처리한 제어 정보의 MID를 임시로 저장하는 단계;Temporarily storing the MID of the control information finally processed by the charging data receiver; 상기 과금 데이터 수신부가 비정상 종료 후 재기동된 경우, 상기 과금 데이터 수신부가 상기 MID를 상기 엠엑스 버스로 전송하는 단계;Transmitting, by the charging data receiver, the MID to the MBUS when the charging data receiver is restarted after abnormally terminating; 상기 엠엑스 버스는 상기 과금 데이터 수신부로부터 수신된 MID가 상기 엠엑스 버스 내에 임시로 저장된 처리 완료 MID와 일치하는지 여부를 판단하는 단계; 및Determining, by the MX bus, whether the MID received from the charging data receiver matches the processed MID temporarily stored in the MX bus; And 불일치하는 경우, 상기 과금 데이터 수신부로 상기 MID에 상응하는 과금 데이터의 처리 요청을 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.And in case of inconsistency, transmitting the request for processing the billing data corresponding to the MID to the billing data receiver. 제12항에 있어서,The method of claim 12, 상기 엠엑스 버스가 상기 디코딩부로부터 임의의 원시 과금 데이터에 대한 읽기(Read) 요청이 수신되면, 상기 제1 제어 정보를 상기 디코딩부로 전송하는 단 계;Transmitting, by the MX bus, the first control information to the decoding unit when a read request for any raw charging data is received from the decoding unit; 상기 엠엑스 버스는 상기 전송한 제어 정보에 상응하는 MID를 임시 저장하는 단계;The MX bus temporarily storing a MID corresponding to the transmitted control information; 상기 엠엑스 버스는 상기 디코딩부가 비정상 종료 후 재기동되었는지 여부를 판단하는 단계; 및Determining, by the MX bus, whether the decoding unit has been restarted after abnormal termination; And 비정상 종료 후 재기동된 경우, 상기 엠엑스 버스는 상기 저장된 MID에 상응하는 제어 정보를 상기 디코딩부로 재전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.Re-starting after abnormal termination, the MX bus further comprises the step of retransmitting control information corresponding to the stored MID to the decoding unit. 제12항에 있어서,The method of claim 12, 상기 전달부가 비정상 종료 후 재기동된 경우, 상기 전달부는 상기 과금 시스템으로 최종 전송한 완전 과금 데이터에 상응하는 제어 정보의 MID를 상기 엠엑스 버스로 전송하는 단계; When the transmission unit is restarted after abnormal termination, transmitting the MID of control information corresponding to the complete charging data finally transmitted to the charging system to the MX bus; 상기 엠엑스 버스는 상기 엠엑스 버스 내에 임시로 저장된 하나 이상의 MID 중에서 상기 수신한 MID와 일치하는 MID는 검출하는 단계; 및Detecting an MID that matches the received MID from one or more MIDs temporarily stored in the MX bus; And 일치하는 MID가 존재하는 경우, 일치하지 않는 나머지 MID에 상응하는 제어 정보를 상기 전달부로 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 과금 데이터 처리 방법.If there is a matching MID, transmitting the control information corresponding to the remaining mismatched MID to the delivery unit.
KR1020040055023A 2004-07-15 2004-07-15 Method and system for handling WCDMA packet CDR KR100605117B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040055023A KR100605117B1 (en) 2004-07-15 2004-07-15 Method and system for handling WCDMA packet CDR

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040055023A KR100605117B1 (en) 2004-07-15 2004-07-15 Method and system for handling WCDMA packet CDR

Publications (2)

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

Family

ID=37117888

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040055023A KR100605117B1 (en) 2004-07-15 2004-07-15 Method and system for handling WCDMA packet CDR

Country Status (1)

Country Link
KR (1) KR100605117B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791784B1 (en) * 2006-03-21 2008-01-03 에스케이 텔레콤주식회사 System and method for billing process
KR100833296B1 (en) * 2006-02-06 2008-05-28 에스케이 텔레콤주식회사 A graded billing system of using the content for a limit charge service of WCDMA and method thereof
WO2010060317A1 (en) * 2008-11-28 2010-06-03 中兴通讯股份有限公司 Method and apparatus for generating phone bill
US9004972B2 (en) 2006-01-20 2015-04-14 Samsung Display Co., Ltd. Organic light-emitting display device with frit seal and reinforcing structure
KR20220030762A (en) * 2020-09-03 2022-03-11 주식회사 오윈 Data loss protection method and apparatus for payment information

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010053768A (en) * 1999-12-01 2001-07-02 이계철 Loading device with reduced memory consumption of row account data from packet network and method thereof
KR100464918B1 (en) * 2001-10-12 2005-01-05 엘지전자 주식회사 System and Method of Transferring Dispersion Billing
KR100427699B1 (en) * 2002-04-03 2004-04-28 주식회사 애버커스 Processing method of packet data in imt-2000 system
KR100489528B1 (en) * 2002-09-23 2005-05-16 주식회사 케이티프리텔 Apparatus and Method for Billing Data Distribution for Rater Systems of Mobile Communication Systems

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9004972B2 (en) 2006-01-20 2015-04-14 Samsung Display Co., Ltd. Organic light-emitting display device with frit seal and reinforcing structure
KR100833296B1 (en) * 2006-02-06 2008-05-28 에스케이 텔레콤주식회사 A graded billing system of using the content for a limit charge service of WCDMA and method thereof
KR100791784B1 (en) * 2006-03-21 2008-01-03 에스케이 텔레콤주식회사 System and method for billing process
WO2010060317A1 (en) * 2008-11-28 2010-06-03 中兴通讯股份有限公司 Method and apparatus for generating phone bill
US8462924B2 (en) 2008-11-28 2013-06-11 Zte Corporation Method and device for generating phone bill
KR20220030762A (en) * 2020-09-03 2022-03-11 주식회사 오윈 Data loss protection method and apparatus for payment information

Also Published As

Publication number Publication date
KR100605117B1 (en) 2006-07-31

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
US8184575B2 (en) Packet communication network and subscriber-associated-information delivery controller
US8682288B2 (en) Call list transmission processing method and system of charging system
CA2383925A1 (en) Network packet aggregation
CN107294869A (en) A kind of method and system of Microsoft Loopback Adapter message crawl
KR20040072859A (en) System and method for subdividing data service charge in mobile communication network
KR20130046540A (en) Data transmitting apparatus and method
JP2003143250A (en) Substitute response method
US6904276B1 (en) Apparatus and method for managing call billing records
CN110944039B (en) Micro-service discovery method, system and device for 5G access network
WO2013067975A1 (en) Method and system for data record packet processing
CN114616858A (en) Method for performing QOS monitoring by UPF node comprising a plurality of UPF instances and UPF node for performing the method
KR100605117B1 (en) Method and system for handling WCDMA packet CDR
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
KR100583177B1 (en) Method of processing charging message to prevent double charging, and server therefor
WO2020103420A1 (en) Data transmission method and receiving method, devices and system
KR100369369B1 (en) A Virtual Channel Merge Apparatus MutiProtocol Label Switch System
KR100491819B1 (en) Method for operating radius accounting client in wireless lan accounting system
KR100605118B1 (en) Method and system for collecting WCDMA packet CDR
WO2021259026A1 (en) Charging notification function entity, charging function entity, call detail record processing method and apparatus, and storage medium

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