KR20060006148A - Method and system for handling wcdma packet cdr - Google Patents
Method and system for handling wcdma packet cdr Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details 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/69—Spread spectrum techniques
- H04B1/707—Spread spectrum techniques using direct sequence modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/24—Accounting 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
도 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
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)는 수신된 과금 정보에 관한 버퍼링(buffering), BER(Basic Encoding Rule)에 의한 디코딩, 불완전 CDR(partial CDR)에 대한 통합(aggregation), BS(145)가 요청하는 포맷으로의 포맷 변환(reformatting) 기능 등을 수행한다.
도 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
어플리케이션 레이어(205)는 수집 모듈(collection module), 중개 모듈(mediation module), 분배 모듈(distribution module) 등의 세 개의 주요한 모듈들을 포함한다. 수집 모듈은 과금 데이터(charging data)를 수집하고, 중개 모듈은 수집된 과금 데이터를 처리하며, 분배 모듈은 처리된 과금 데이터를 타겟 시스템(target system)으로 분배한다.The
인프라스트럭처 레이어(210)는 어플리케이션 레이어 및 O&M(Operation & Management) 레이어(도시되지 않음)를 구성하는 모듈들을 위한 기본 기능들(basic functions)을 제공한다.
어플리케이션 레이어(205)와 인프라스트럭처 레이어(210)에 포함된 구성 요 소들의 상호 동작을 구체적으로 설명하면 다음과 같다.The interaction of the components included in the
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
중개 모듈의 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
상술한 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)한다.
통합된 CDR은 임의의 BS(145)로 전송될 수 있다. 그러나, 복수의 BS들이 존재하는 경우에는 각각의 BS(145)에서 필요로 하는 과금 정보가 서로 다를 수 있다.The integrated CDR can be sent to any
Collector(230)는 이러한 요구를 충족하기 위하여 필요한 데이터를 필터링(filtering)하는 기능을 수행하며, 필터링된 과금 정보는 분산 모듈을 통해 각 BS(145)로 분배된다.
그리고, 분산 모듈의 Regulator(235)는 이벤트 단위로 처리된 CDR을 파일링(filing)하는 기능을 수행할 수 있다.In addition, the
도 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
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
이와 같이, 종래의 과금 게이트웨이의 어플리케이션 레이어 내의 구성 요소들은 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
그러나, 이러한 종래의 과금 데이터 처리 방법은 대량의 데이터를 처리하여야 하는 경우, 처리 과정상에 오류가 발생한 경우 등에 처리중인 트랜잭션(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
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
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 /
Class Queue(445)는 각 어플리케이션 프로세스(410)들로 제어 정보를 제공하 기 위한 저장소로서, 임의의 어플리케이션 프로세스가 데이터 처리 과정을 종료하고 새로운 데이터 읽기를 요청하였을 때, MX BUS(400)는 Class queue(445)에서 상응하는 제어 정보를 불러들여(pop) 해당 어플리케이션 프로세스로 전달한다.The
Msg Router(450)는 읽어들인 제어 정보 내의 소스 어플리케이션 아이디(source application ID)와 분기 조건 정보를 이용하여 목적지를 결정한다.The
Connection Mgr(455)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, UDP 소켓(socket)을 통해 어플리케이션 레이어의 세션 연결 요청 및 세션 종료 요청을 처리한다. 어플리케이션 레이어로부터 세션 연결 요청이 수신된 경우, Connection Mgr(455)는 중복 요청인지 여부를 검사하고, 기존에 완료(commit)되지 않은 데이터에 대한 복구 기능을 수행하며, 각종 자원(예를 들어, 공유 메모리, Message Queue, Class Queue 등) 을 생성한다.The
Statistics monitor(460)는 MX BUS(400)가 초기화될 때 쓰레드 형태로 생성되고, 각 Class Queue에 큐잉(Queuing)되어 있는 데이터 수량을 모니터링하여 현재 처리 상태 및 병목 지점의 확인이 가능하도록 한다.The statistics monitor 460 is created in the form of a thread when the
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 Mgr(470)는 각 어플리케이션 프로세스가 트랜잭션을 진행하고 있는 데이터의 MID를 임시로 저장하여 각 어플리케이션 프로세스의 비정상 종료 후 재기동시 해당 데이터가 복구될 수 있도록 한다.The
Audit(475)는 MX BUS(400)가 비정상 종료 후 재 기동되었을 때 복구를 위해 사용된다. 즉, 현재 트랜잭션이 진행중인 모든 데이터를 Audit File(480)에 저장하여 MX BUS(400)가 비정상 종료 후 재기동되면 해당 Audit File(480)로부터 데이터를 읽어들여 복구를 위해 사용한다.
이외에, 도 4에 도시된 외부 구성 요소를 더 설명하면, MX API(415)는 각 어플리케이션 프로세스들이 MX BUS(400)와 연동하기 위한 메쏘드(Method)를 제공한다. MX API(415)가 제공하는 메쏘드로는 'MxOpen'(MX BUS(400)와 컨넥션 연결 설정시 사용), 'MxClose'(MX BUS(400)와 컨넥션 연결 해제시 사용), 'MxRead'(MX BUS(400)로부터 데이터를 읽어들일 때 사용) 등이 있다.In addition, further describing the external components shown in FIG. 4, the
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
이하, 도 6을 참조하여 효율적 제어가 가능한 공유 메모리(425)의 기능 및 구조를 설명한다.Hereinafter, the function and structure of the shared
공유 메모리(425)는 어플리케이션 프로세스들에 의해 처리된 데이터를 저장하는 수단으로, 데이터의 효율적 관리를 위해 일정한 크기의 페이지(page) 단위로 관리된다. MX BUS(400)는 최초 기동시 자신이 사용할 공유 메모리 영역을 생성하 고, 각 어플리케이션 프로세스들은 세션 연결 요청시 자신이 사용할 용량을 MX BUS(400)에 전달한다. MX BUS(400)는 어플리케이션 프로세스들의 요청에 따라 사용 가능한 범위 내에서 DP Handler Class(420)를 이용하여 각 어플리케이션 프로세스들에 용량을 할당한다.The shared
이후, 임의의 어플리케이션 프로세스가 데이터 읽기를 요청하면, MX BUS(400)는 상응하는 데이터의 공유 메모리내의 위치 정보를 MX API(415)로 전달한다. MX API(415)는 위치 정보를 DP Handler Class(420)로 전달하여 공유 메모리에서 해당 데이터를 읽어들이며, 읽어들인 데이터를 해당 어플리케이션 프로세스로 전달한다.Then, if any application process requests reading data,
반대로, 임의의 어플리케이션 프로세스가 데이터 쓰기를 요청하면, MX API(415)는 해당 데이터를 DP Handler Class(420)를 이용하여 공유 메모리(425)에 저장하고, 이에 관한 제어 정보를 MX BUS(400)에 기록(write)한다.On the contrary, when any application process requests to write data, the
공유 메모리(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
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
DPS(620a, 620b)는 각 어플리케이션 프로세스가 공유 메모리(425)에 기록할 데이터의 최초 페이지를 나타내며, 각 어플리케이션 프로세스가 공유 메모리(425) 에 저장할 데이터에 대해 하나씩 할당된다. DPS(620a, 620b)는 사용 여부 플래그, 페이지 카운트, 데이터 길이(data length)를 포함한다. 사용 여부 플래그는 해당 페이지가 현재 사용 중인지의 여부를 나타낸다. 데이터를 기록한 시점에 "used"로 설정되고 후속 처리를 수행하는 어플리케이션 프로세스가 이를 읽어 들여 처리를 완료하면 재사용이 가능하도록 프리(free)로 설정된다. 페이지 카운트는 데이터 저장에 필요한 페이지의 카운트 수를 나타낸다. 페이지 카운트는 저장할 데이터의 길이(length)에 따라 동적으로 설정된다. 데이터 길이는 실제 데이터의 바이트 단위 크기를 나타낸다. DPS(620a, 620b)의 나머지 부분은 실제 데이터로 채워진다.The
DPC(630a)는 가변 길이의 데이터를 처리하기 위하여 데이터 길이(data length)가 1개의 페이지 크기(page size)보다 클 경우 동적으로 페이지 수를 할당하기 위해 사용된다. 만약 데이터 길이가 페이지 크기보다 작을 경우 할당되지 않는다.The
본 발명은 상술한 바와 같이 데이터 저장에 필요한 공유 메모리를 구조화함으로써 각 어플리케이션 프로세스들의 기동/종료시 해당 어플리케이션 프로세스가 사용하는 공유 메모리(425) 영역의 할당 및/또는 해제를 용이하게 할 수 있다. 또한, 가변 길이의 데이터 처리도 용이하게 할 수 있다.The present invention can facilitate the allocation and / or release of the shared
도 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
도 7을 참조하면, 단계 710에서 MX API(415)는 어플리케이션 프로세스의 요청에 의해 UDP를 통해 Open Request를 MX BUS(400)로 전송한다.Referring to FIG. 7, in
앞서 설명한 바와 같이, 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
이하, 어플리케이션 프로세스들과 MX BUS(400)간에 컨넥션 설정된 이루어진 상태에서 각 어플리케이션 프로세스가 MX BUS(400)를 이용하여 공유 메모리(425)에 저장된 데이터를 읽거나 쓰는 과정에 대해 간략히 설명한다.Hereinafter, a process in which each application process reads or writes data stored in the shared
먼저, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 데이터를 기록하는 과정을 설명한다.First, a process in which an application process writes data to the shared
임의의 어플리케이션 프로세스는 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
다음으로, 임의의 어플리케이션 프로세스가 공유 메모리(425)에 기록된 데이터를 읽는 과정을 설명한다.Next, a process in which any application process reads data written in the shared
임의의 어플리케이션 프로세스가 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
도 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
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
도 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
도 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
도 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
도 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
도 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
도 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
도 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
도 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(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
도 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
상술한 바와 같이, 본 발명은 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
상술한 바와 같이 본 발명에 따른 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)
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)
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)
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 |
-
2004
- 2004-07-15 KR KR1020040055023A patent/KR100605117B1/en not_active IP Right Cessation
Cited By (6)
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 |