[go: up one dir, main page]

KR20240176104A - Cloud computing system and method of processing api using the same - Google Patents

Cloud computing system and method of processing api using the same Download PDF

Info

Publication number
KR20240176104A
KR20240176104A KR1020230076080A KR20230076080A KR20240176104A KR 20240176104 A KR20240176104 A KR 20240176104A KR 1020230076080 A KR1020230076080 A KR 1020230076080A KR 20230076080 A KR20230076080 A KR 20230076080A KR 20240176104 A KR20240176104 A KR 20240176104A
Authority
KR
South Korea
Prior art keywords
api
rest
rest api
transaction code
server
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020230076080A
Other languages
Korean (ko)
Inventor
양영주
Original Assignee
에릭슨엘지엔터프라이즈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에릭슨엘지엔터프라이즈 주식회사 filed Critical 에릭슨엘지엔터프라이즈 주식회사
Priority to KR1020230076080A priority Critical patent/KR20240176104A/en
Publication of KR20240176104A publication Critical patent/KR20240176104A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라우드 통신 플랫폼 및 이를 이용한 REST API(Representational State Transfer Application Programming Interface) 처리 방법이 개시될 수 있다. 일 실시예에 따른 클라우드 통신 플랫폼은, 음성 서비스 및 비디오 통신 서비스를 고객에게 제공하는 특징 서버; 특징 서버를 통합적으로 프로비저닝할 수 있는 통합 관리 포털을 고객에게 제공하며, 특징 서버와 프로비저닝을 위한 REST API의 트랜잭션 코드(Transaction code)를 생성하고, 트랜잭션 코드를 포함하는 REST API의 요청을 전송하는 통합 관리 포털 서버(Element Management System, EMS); 및 특징 서버 및 EMS에 연결되고, EMS로부터 REST API의 요청을 수신하고, REST API의 재라우팅(rerouting) 처리를 수행하여 상기 특징 서버로 전송하고, 트랜잭션 코드에 기초하여 REST API의 전송 실패 여부를 판단하여 REST API의 요청에 대한 응답을 EMS로 전송하는 API 릴레이 서버를 포함할 수 있다.A cloud communication platform and a method for processing a REST API (Representational State Transfer Application Programming Interface) using the same may be disclosed. According to one embodiment, the cloud communication platform may include: a feature server that provides a voice service and a video communication service to a customer; an element management system (EMS) that provides a customer with an integrated management portal capable of integrally provisioning feature servers, generates a transaction code of a REST API for provisioning with the feature server, and transmits a request of a REST API including the transaction code; and an API relay server that is connected to the feature server and the EMS, receives a request of a REST API from the EMS, performs rerouting processing of the REST API and transmits it to the feature server, and determines whether transmission of the REST API has failed based on the transaction code and transmits a response to the request of the REST API to the EMS.

Description

클라우드 컴퓨팅 시스템 및 이를 이용한 API 처리 방법{CLOUD COMPUTING SYSTEM AND METHOD OF PROCESSING API USING THE SAME}Cloud computing system and API processing method using the same {CLOUD COMPUTING SYSTEM AND METHOD OF PROCESSING API USING THE SAME}

본 개시는 클라우드 컴퓨팅 시스템 및 이를 이용한 API(Application Programming Interface) 처리 방법에 관한 것이다.The present disclosure relates to a cloud computing system and an API (Application Programming Interface) processing method using the same.

클라우드(Cloud) 통신 플랫폼은 음성 및 비디오 통신 서비스를 제공하고 있으며, 이러한 서비스를 제공하기 위해 범용 콜 서버(Unified Communications Manager, UCM)를 비롯한 복수의 특징 서버(Feature Server)를 포함한다. 또한, 클라우드 통신 플랫폼은 복수의 특징 서버를 프로비저닝(provisioning)하는 통합 관리 포털 서버(Element Management System, EMS)를 포함한다.The cloud communication platform provides voice and video communication services and includes multiple feature servers including a Unified Communications Manager (UCM) to provide these services. In addition, the cloud communication platform includes an integrated management portal server (Element Management System (EMS)) that provisions multiple feature servers.

특징 서버들은 클라우드 환경에서 고객을 수용하기 위하여 각 서버들을 통합적으로 프로비저닝할 수 있는 통합 관리 포탈을 고객들에게 제공하고 있는데, 이러한 기능을 수행하는 EMS는 통신 서비스 플랫폼을 구성하는 여러 특징 서버들과 마이크로 서비스에서 널리 쓰이고 있는 REST(Representational State Transfer) API 인터페이스를 사용하여 프로비저닝을 위한 요청을 전송하고 그에 대한 응답을 받도록 구현되어 있다.Feature servers provide customers with an integrated management portal that can provision each server in an integrated manner to accommodate customers in a cloud environment. The EMS that performs this function is implemented to send requests for provisioning and receive responses using the REST (Representational State Transfer) API interface that is widely used in various feature servers and microservices that make up the communication service platform.

종래 기술에 따르면, 클라우드 통합 관리 포탈 서버(EMS)를 통해 사용자나 클라이언트 장치는 물론 여러 통신 서비스의 추가, 변경, 삭제와 같은 고객의 요청을 처리하는 프로비저닝 블록(웹 어플리케이션의 비지니스 로직)은, 데이터베이스에 접근하는 로직과, 일련의 API 요청과 응답 처리하는 로직과, 일련의 API 중에 실패(fail)가 발생한 경우 이에 대한 롤백(rollback) 처리를 하는 로직이 혼재되어 있는데, 이는 클라우드 통신 서비스의 유지 보수를 어렵게 할 뿐만 아니라, 통합 관리 포탈 서버와 특징 서버 간의 통신 장애 발생시 REST API의 요청 실패에 따른 프로비저닝의 롤백 처리의 복잡도가 증가하여 롤백이 정상적으로 수행이 되지 않을 수 있으며, 최악의 경우에는 전문적인 서버 운영자가 수동으로 데이터베이스의 복구를 진행해야 하는 문제가 발생할 수 있다.According to the conventional art, the provisioning block (business logic of web application) that processes customer requests such as addition, change, and deletion of various communication services as well as users or client devices through the cloud integrated management portal server (EMS) consists of logic for accessing a database, logic for processing a series of API requests and responses, and logic for processing rollback in the event of a failure during a series of APIs. This not only makes the maintenance of cloud communication services difficult, but also increases the complexity of the rollback processing of provisioning due to a failure of a REST API request in the event of a communication failure between the integrated management portal server and the feature server, so that the rollback may not be performed normally. In the worst case, a problem may arise where a professional server operator must manually perform database recovery.

본 개시에 따르면, REST API(Representational State Transfer Application Programming Interface)의 트랜잭션 코드(transaction code)에 기초하여 REST API의 롤백 처리를 수행하는 클라우드 컴퓨팅 시스템 및 이를 이용한 API 처리 방법을 제공할 수 있다.According to the present disclosure, a cloud computing system that performs rollback processing of a REST API (Representational State Transfer Application Programming Interface) based on a transaction code of the REST API and an API processing method using the same can be provided.

본 개시의 일 실시예에 따르면, 클라우드 컴퓨팅 시스템이 개시될 수 있다. 일 실시예에 따른 클라우드 컴퓨팅 시스템은 음성 서비스 및 비디오 통신 서비스를 고객에게 제공하는 특징 서버; 상기 특징 서버를 통합적으로 프로비저닝할 수 있는 통합 관리 포털을 상기 고객에게 제공하며, 상기 특징 서버와 프로비저닝을 위한 REST API(Representational State Transfer Application Programming Interface)의 트랜잭션 코드(Transaction code)를 생성하고, 상기 트랜잭션 코드를 포함하는 상기 REST API의 요청을 전송하는 통합 관리 포털 서버(EMS); 및 상기 특징 서버 및 상기 EMS에 연결되고, 상기 EMS로부터 상기 REST API의 요청을 수신하고, 상기 REST API의 재라우팅(rerouting) 처리를 수행하여 상기 특징 서버로 전송하고, 상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 API 릴레이 서버를 포함할 수 있다.According to one embodiment of the present disclosure, a cloud computing system may be disclosed. The cloud computing system according to one embodiment may include: a feature server that provides a voice service and a video communication service to a customer; an integrated management portal server (EMS) that provides the customer with an integrated management portal capable of integrally provisioning the feature server, generates a transaction code of a REST API (Representational State Transfer Application Programming Interface) for provisioning with the feature server, and transmits a request of the REST API including the transaction code; and an API relay server that is connected to the feature server and the EMS, receives a request of the REST API from the EMS, performs a rerouting process of the REST API and transmits it to the feature server, and determines whether transmission of the REST API has failed based on the transaction code and transmits a response to the request of the REST API to the EMS.

일 실시예에 있어서, 상기 EMS는 하나의 트랜잭션 단위를 구성하는 일련의 REST API가 상기 API 릴레이 서버에서 동일한 트랜잭션으로 감지되도록, 상기 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여할 수 있다.In one embodiment, the EMS may assign the same transaction code to a series of REST APIs constituting a single transaction unit so that the series of REST APIs constituting a single transaction unit are detected as the same transaction by the API relay server.

일 실시예에 있어서, 상기 EMS는 타임 스탬프 정보(timestamp)와 랜덤하게 생성되는 코드를 조합하여 상기 트랜잭션 코드를 생성할 수 있다.In one embodiment, the EMS may generate the transaction code by combining timestamp information and a randomly generated code.

일 실시예에 있어서, 상기 EMS는 타임 스템프 정보와 API 시퀀스 번호(sequence number)를 조합하여 상기 트랜잭션 코드를 생성할 수 있다.In one embodiment, the EMS may generate the transaction code by combining timestamp information and an API sequence number.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 특징 서버에 관한 특징 서버 정보를 저장하는 데이터베이스를 포함하고, 상기 API 릴레이 서버는 상기 특징 서버 정보에 기초하여 상기 REST API에 대해 상기 재라우팅 처리를 수행할 수 있다.In one embodiment, the API relay server includes a database storing feature server information about the feature server, and the API relay server can perform the rerouting processing for the REST API based on the feature server information.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 특징 서버가 상기 REST API를 수신하도록 상기 REST API의 요청의 URL을 상기 특징 서버의 URL로 변환하는 URL 변환 처리를 수행하고, 상기 URL 변환 처리된 REST API를 상기 특징 서버로 전송할 수 있다.In one embodiment, the API relay server may perform URL conversion processing to convert a URL of a request for the REST API into a URL of the feature server so that the feature server receives the REST API, and transmit the URL-converted REST API to the feature server.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 트랜잭션 코드를 포함하는 API 정보를 저장하는 데이터베이스를 포함하고, 상기 API 릴레이 서버는 사전 설정된 주기마다 상기 데이터베이스를 검색하여, API 실패가 발생한 REST API의 트랜잭션 코드를 검출하고, 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행할 수 있다.In one embodiment, the API relay server includes a database storing API information including the transaction code, and the API relay server can search the database at preset intervals to detect a transaction code of a REST API in which an API failure has occurred, and perform rollback processing of the REST API based on the detected transaction code.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 데이터베이스에서 상기 검출된 트랜잭션 코드와 동일한 트랜잭션 코드가 부여된 REST API를 검출하고, 상기 검출된 REST API에서 성공한 REST API를 검출하고, 상기 성공한 REST API에 대해 시간의 역순으로 상기 REST API의 롤백 처리를 수행할 수 있다.In one embodiment, the API relay server can detect a REST API assigned a transaction code identical to the detected transaction code from the database, detect a successful REST API from the detected REST API, and perform rollback processing of the REST API in reverse chronological order for the successful REST API.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 REST API의 롤백 처리를 수행한 결과, API 실패가 발생한 경우 EMS 프로비저닝 API의 목록을 조회할 수 있는 EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 실패를 표시하고, 상기 REST API의 롤백 처리를 위한 롤백 버튼을 활성화시킬 수 있다.In one embodiment, when an API failure occurs as a result of performing rollback processing of the REST API, the API relay server can display a failure in a rollback result column on an EMS provisioning API list query screen that can query a list of EMS provisioning APIs, and activate a rollback button for rollback processing of the REST API.

본 개시의 일 실시예에 따르면, 클라우드 컴퓨팅 시스템을 이용한 API(Application Programming Interface) 처리 방법이 개시될 수 있다. 일 실시예에 따른 API 처리 방법은 상기 클라우드 컴퓨팅 시스템의 EMS에서, 음성 서비스 및 비디오 통신 서비스를 고객에게 제공하는 특징 서버와 프로비저닝을 위한 REST(Representational State Transfer) API의 트랜잭션 코드를 생성하는 단계; 상기 EMS에서, 상기 트랜잭션 코드를 포함하는 REST API를 전송하는 단계; 상기 클라우드 컴퓨팅 시스템의 API 릴레이 서버에서, 상기 REST API의 요청을 수신하는 단계; 상기 API 릴레이 서버에서, 상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계; 및 상기 API 릴레이 서버에서, 상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 단계를 포함할 수 있다.According to one embodiment of the present disclosure, an API (Application Programming Interface) processing method using a cloud computing system may be disclosed. The API processing method according to one embodiment may include: a step of generating a transaction code of a REST (Representational State Transfer) API for provisioning and a feature server providing a voice service and a video communication service to a customer in an EMS of the cloud computing system; a step of transmitting, in the EMS, a REST API including the transaction code; a step of receiving, in an API relay server of the cloud computing system, a request of the REST API; a step of performing rerouting processing of the REST API in the API relay server and transmitting the rerouting processing to the feature server; and a step of determining, in the API relay server, whether transmission of the REST API has failed based on the transaction code and transmitting, to the EMS, a response to the request of the REST API.

일 실시예에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는 하나의 트랜잭션 단위를 구성하는 일련의 REST API가 상기 API 릴레이 서버에서 동일한 트랜잭션으로 감지되도록, 상기 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여하는 단계를 포함할 수 있다.In one embodiment, the step of generating a transaction code of the REST API may include the step of assigning the same transaction code to a series of REST APIs constituting one transaction unit so that the series of REST APIs constituting one transaction unit are detected as the same transaction by the API relay server.

일 실시예에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는 타임 스탬프 정보와 랜덤하게 생성되는 코드를 조합하여 상기 트랜잭션 코드를 생성하는 단계를 포함할 수 있다.In one embodiment, the step of generating a transaction code of the REST API may include a step of generating the transaction code by combining timestamp information and a randomly generated code.

일 실시예에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는 타임 스템프 정보와 API 시퀀스 번호를 조합하여 상기 트랜잭션 코드를 생성하는 단계를 포함할 수 있다.In one embodiment, the step of generating a transaction code of the REST API may include the step of generating the transaction code by combining timestamp information and an API sequence number.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 특징 서버에 관한 특징 서버 정보를 저장하는 데이터베이스를 포함하고, 상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계는 상기 특징 서버 정보에 기초하여 상기 REST API에 대해 상기 재라우팅 처리를 수행하는 단계를 포함할 수 있다.In one embodiment, the API relay server includes a database storing feature server information about the feature server, and the step of performing rerouting processing of the REST API and transmitting it to the feature server may include a step of performing the rerouting processing for the REST API based on the feature server information.

일 실시예에 있어서, 상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계는 상기 특징 서버가 상기 REST API를 수신하도록 상기 REST API의 요청의 URL을 상기 특징 서버의 URL로 변환하는 URL 변환 처리를 수행하는 단계; 및 상기 URL 변환 처리된 REST API를 상기 특징 서버로 전송하는 단계를 포함할 수 있다.In one embodiment, the step of performing rerouting processing of the REST API and transmitting it to the feature server may include the step of performing URL conversion processing to convert a URL of a request of the REST API into a URL of the feature server so that the feature server receives the REST API; and the step of transmitting the REST API, which has been subject to URL conversion processing, to the feature server.

일 실시예에 있어서, 상기 API 릴레이 서버는 상기 트랜잭션 코드를 포함하는 API 정보를 저장하는 데이터베이스를 포함하고, 상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 단계는 사전 설정된 주기마다 상기 데이터베이스를 검색하여, API 실패가 발생한 REST API의 트랜잭션 코드를 검출하는 단계; 및 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계를 포함할 수 있다.In one embodiment, the API relay server includes a database storing API information including the transaction code, and the step of determining whether transmission of the REST API has failed based on the transaction code and transmitting a response to a request of the REST API to the EMS may include the step of searching the database at preset intervals to detect a transaction code of a REST API in which an API failure has occurred; and the step of performing rollback processing of the REST API based on the detected transaction code.

일 실시예에 있어서, 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계는 상기 데이터베이스에서 상기 검출된 트랜잭션 코드와 동일한 트랜잭션 코드가 부여된 REST API를 검출하는 단계; 상기 검출된 REST API에서 성공한 REST API를 검출하는 단계; 및 상기 성공한 REST API에 대해 시간의 역순으로 상기 REST API의 롤백 처리를 수행하는 단계를 포함할 수 있다.In one embodiment, the step of performing rollback processing of the REST API based on the detected transaction code may include the steps of: detecting a REST API to which a transaction code identical to the detected transaction code is assigned from the database; detecting a successful REST API from the detected REST API; and performing rollback processing of the REST API in reverse chronological order for the successful REST API.

일 실시예에 있어서, 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계는 상기 API 릴레이 서버는 상기 REST API의 롤백 처리를 수행한 결과, API 실패가 발생한 경우 EMS 프로비저닝 API의 목록을 조회할 수 있는 EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 실패를 표시하는 단계; 및 상기 REST API의 롤백 처리를 위한 롤백 버튼을 활성화시키는 단계를 포함할 수 있다.In one embodiment, the step of performing rollback processing of the REST API based on the detected transaction code may include the step of the API relay server, when an API failure occurs as a result of performing the rollback processing of the REST API, displaying a failure in a rollback result column on an EMS provisioning API list query screen capable of querying a list of EMS provisioning APIs; and the step of activating a rollback button for the rollback processing of the REST API.

본 개시의 다양한 실시예에 따르면, 네트워크 오류나 기타 원인으로 인해 하나의 트랜잭션(Transaction)을 구성하는 일련의 API 요청 중에 일부 실패(Fail)가 발생되었을 때, 기 실행된 API 요청의 롤백이 실시간으로 처리될 수 있다.According to various embodiments of the present disclosure, when a failure occurs among a series of API requests constituting one transaction due to a network error or other causes, a rollback of the previously executed API requests can be processed in real time.

또한, 실행된 API 요청의 롤백이 실시간으로 처리될 수 없는 경우에는 데이터베이스에 API 정보가 저장되어 API 요청의 롤백을 백그라운드로 처리할 수 있는 비동기 스케줄러를 사용하여 안정적인 API의 롤백 처리가 수행될 수 있으며, 이를 통해 EMS와 Feature 서버간의 데이터 무결성(data integrity)이 보장될 수 있다.In addition, in cases where the rollback of an executed API request cannot be processed in real time, a stable rollback processing of the API can be performed using an asynchronous scheduler that stores API information in a database and can process the rollback of the API request in the background, thereby ensuring data integrity between the EMS and the Feature server.

도 1은 일반적인 클라우드 통신 플랫폼에서 통합 관리 포털 서버(Element Management System, EMS)와 특징 서버 간의 인터페이스 구성도이다.
도 2는 일반적인 클라우드 통신 플랫폼의 EMS에서의 API 처리 루틴을 나타낸 도면이다.
도 3은 본 개시의 일 실시예에 따른 클라우드 컴퓨팅 시스템을 나타낸 블록도이다.
도 4는 본 개시의 일 실시예에 따른 API 릴레이 서버의 데이터베이스의 API 롤백 테이블에 저장되는 API 정보를 나타낸 예시도이다.
도 5는 본 개시의 일 실시예에 따른 EMS 프로비저닝(Provisioning) API 목록 조회 화면을 나타낸 도면이다.
도 6은 본 개시의 일 실시예에 따른 REST API의 재라우팅(rerouting)을 나타낸 예시도이다.
도 7은 본 개시의 일 실시예에 따른 EMS에서의 API 처리 루틴을 나타낸 도면이다.
도 8은 본 개시의 일 실시예에 따른 API 릴레이 서버의 동작을 나타낸 흐름도이다.
Figure 1 is an interface configuration diagram between an integrated management portal server (Element Management System, EMS) and a feature server in a general cloud communication platform.
Figure 2 is a diagram showing an API processing routine in EMS of a general cloud communication platform.
FIG. 3 is a block diagram illustrating a cloud computing system according to one embodiment of the present disclosure.
FIG. 4 is an exemplary diagram showing API information stored in an API rollback table of a database of an API relay server according to one embodiment of the present disclosure.
FIG. 5 is a diagram illustrating an EMS provisioning API list query screen according to one embodiment of the present disclosure.
FIG. 6 is an example diagram illustrating rerouting of a REST API according to one embodiment of the present disclosure.
FIG. 7 is a diagram illustrating an API processing routine in an EMS according to one embodiment of the present disclosure.
FIG. 8 is a flowchart illustrating the operation of an API relay server according to one embodiment of the present disclosure.

본 개시의 실시예들은 본 개시의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 개시에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다.The embodiments of the present disclosure are provided for the purpose of explaining the technical idea of the present disclosure. The scope of rights according to the present disclosure is not limited to the embodiments presented below or the specific description of these embodiments.

본 개시에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 개시에 사용되는 모든 용어들은 본 개시를 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 개시에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.All technical and scientific terms used in this disclosure, unless otherwise defined, have the meaning commonly understood by one of ordinary skill in the art to which this disclosure belongs. All terms used in this disclosure have been selected for the purpose of more clearly describing this disclosure and are not selected to limit the scope of rights under this disclosure.

본 개시에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.The expressions “including,” “comprising,” “having,” and the like, used in this disclosure, should be understood as open-ended terms implying the possibility of including other embodiments, unless otherwise stated in the phrase or sentence in which the expression is included.

본 개시에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.The singular forms described in this disclosure may include plural meanings unless otherwise stated, and the same applies to the singular forms recited in the claims.

본 개시에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다.The expressions “first,” “second,” etc. used in this disclosure are used to distinguish between multiple components, and do not limit the order or importance of the components.

본 개시에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.The expression "based on" as used in this disclosure is used to describe one or more factors affecting an act or action of making a decision, judgment, or action described in a phrase or sentence containing the expression, and this expression does not exclude additional factors affecting the act or action of making a decision, judgment, or action.

본 개시에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 어떤 구성요소가 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.In this disclosure, when a component is referred to as being "connected" or "connected" to another component, it should be understood that the component can be directly connected or connected to the other component, or can be connected or connected via a new other component.

이하, 첨부된 도면들을 참조하여 본 개시의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.Hereinafter, embodiments of the present disclosure will be described with reference to the attached drawings. In the attached drawings, identical or corresponding components are given the same reference numerals. In addition, in the description of the embodiments below, redundant description of identical or corresponding components may be omitted. However, even if the description of a component is omitted, it is not intended that such a component is not included in any embodiment.

도 1은 일반적인 클라우드 통신 플랫폼에서 통합 관리 포털 서버와 특징 서버 간의 인터페이스 구성도를 나타낸다. 도 1을 참조하면, 클라우드 통신 플랫폼은 특징 서버(Feature Server)(110) 및 EMS(120)를 포함한다. 특징 서버(110)는 UCM 서버(111), 톤(Tone) 서버(112), 콜 레코딩(Call Recording) 서버(113), 보이스 메일(Voice Mail) 서버(114) 및 웹 팩스(Web FAX) 서버(115)를 포함할 수 있다. 특징 서버(110)간에는 TCP(Transmission Control Protocol) 소켓(socket)을 이용하여 데이터의 송수신이 수행될 수 있다. 즉, UCM(111), 톤 서버(112), 콜 레코딩 서버(113), 보이스 메일 서버(114) 및 웹 팩스 서버(115) 간에는 TCP 소켓을 통해 데이터가 송수신된다.Fig. 1 shows an interface configuration diagram between an integrated management portal server and a feature server in a general cloud communication platform. Referring to Fig. 1, the cloud communication platform includes a feature server (110) and an EMS (120). The feature server (110) may include a UCM server (111), a tone server (112), a call recording server (113), a voice mail server (114), and a web fax server (115). TCP (Transmission Control Protocol) is used between the feature servers (110). Data can be transmitted and received using a socket. That is, data is transmitted and received between the UCM (111), tone server (112), call recording server (113), voice mail server (114), and web fax server (115) through a TCP socket.

EMS(120)는 특징 서버(110)가 클라우드 환경에서 고객을 수용할 수 있도록 특징 서버(110)를 통합적으로 프로비저닝할 수 있는 통합 관리 포털을 고객에게 제공하는 기능을 수행한다. EMS(120)은 통신 서비스 플랫폼을 구성하는 마이크로 서비스에서 널리 사용되고 있는 REST API 인터페이스를 이용하여, 특징 서버(110)와 프로비저닝을 위한 요청을 전송하고 그에 대한 응답을 수신한다. 즉, EMS(120)은 REST API 인터페이스를 이용하여, 특징 서버(110)의 UCM(111), 톤 서버(112), 콜 레코딩 서버(113), 보이스 메일 서버(114) 및 웹 팩스(Web FAX) 서버(115)와 데이터의 송수신을 수행한다.EMS (120) performs a function of providing a customer with an integrated management portal that can comprehensively provision the feature server (110) so that the feature server (110) can accommodate customers in a cloud environment. EMS (120) transmits a request for provisioning to the feature server (110) and receives a response thereto using a REST API interface that is widely used in microservices that constitute a communication service platform. That is, EMS (120) performs data transmission and reception with the UCM (111), tone server (112), call recording server (113), voice mail server (114), and web fax server (115) of the feature server (110) using the REST API interface.

EMS(120)는 사용자와 클라이언트 장치뿐만 아니라, 고객의 요청(예를 들어, 복수의 통신 서비스의 추가, 변경 또는 삭제)을 처리하는 프로비저닝 블록(웹 어플리케이션의 비지니스 로직)을 포함한다. 또한, 프로비저닝 블록은 데이터베이스에 접근하는 로직, 일련의 API 요청과 응답을 처리하는 로직, 일련의 API 중에 실패가 발생한 경우 이에 대한 롤백 처리를 수행하는 로직이 혼재되어 있다. 예를 들면, EMS(120)는 도 2에 도시된 바와 같이, 롤백 처리를 위한 데이터를 저장하고, 일련의 API 중에 실패가 발생한 경우에 이전에 성공한 API의 롤백 처리를 수행한다. 이로 인해, 클라우드 통신 서비스의 유지 보수가 어렵게 될 뿐만 아니라, EMS(120)와 특징 서버(110) 서버 간에 통신 실패가 발생한 경우, REST API의 전송 실패에 따른 프로비저닝의 롤백 처리의 복잡도가 증가하여 롤백이 정상적으로 수행이 되지 않을 수 있다. 따라서, 일련의 API 요청 중에 일부의 실패가 발생하더라도, API의 안정적인 롤백을 수행할 수 있는 방안이 절실히 요구된다.EMS (120) includes a provisioning block (business logic of a web application) that processes not only users and client devices but also customer requests (e.g., adding, changing, or deleting multiple communication services). In addition, the provisioning block is mixed with logic for accessing a database, logic for processing a series of API requests and responses, and logic for performing rollback processing when a failure occurs during a series of APIs. For example, as shown in FIG. 2, EMS (120) stores data for rollback processing and performs rollback processing of previously successful APIs when a failure occurs during a series of APIs. This makes it difficult to maintain the cloud communication service, and in addition, when a communication failure occurs between EMS (120) and the feature server (110), the complexity of the rollback processing of provisioning due to the transmission failure of the REST API increases, so that the rollback may not be performed normally. Therefore, a method for performing stable rollback of the API is urgently required even when some failures occur during a series of API requests.

도 3은 본 개시의 일 실시예에 따른 클라우드 컴퓨팅 시스템을 나타낸 블록도이다. 본 개시에 따른 클라우드 컴퓨팅 시스템의 통신 플랫폼(Cloud Unified Communications(UC) Platform)은, 특징 서버(feature server)(310), 통합 관리 포털 서버(Element Management System, EMS)(320) 및 API(Application Programming Interface) 릴레이 서버(330)를 포함할 수 있다.FIG. 3 is a block diagram illustrating a cloud computing system according to one embodiment of the present disclosure. The communication platform (Cloud Unified Communications (UC) Platform) of the cloud computing system according to the present disclosure may include a feature server (310), an Element Management System (EMS) (320), and an Application Programming Interface (API) relay server (330).

특징 서버(310)는 음성 서비스 및 비디오 통신 서비스를 고객에게 제공할 수 있다. 일 실시예에 있어서, 특징 서버(310)는 음성 서비스 및 비디오 통신 서비스를 제공하기 위한 복수의 서버를 포함할 수 있다. 예를 들면, 특징 서버(310)는 도 3에 도시된 바와 같이, UCM(Unified Communications Manager) 서버(311), 톤(Tone) 서버(312), 콜 레코딩(Call Recording) 서버(313), 보이스 메일(Voice Mail) 서버(314) 및 웹 팩스(Web FAX) 서버(315)를 포함할 수 있다.The feature server (310) can provide voice services and video communication services to customers. In one embodiment, the feature server (310) can include a plurality of servers for providing voice services and video communication services. For example, the feature server (310) can include a UCM (Unified Communications Manager) server (311), a Tone server (312), a Call Recording server (313), a Voice Mail server (314), and a Web FAX server (315), as illustrated in FIG. 3.

일 실시예에 있어서, 특징 서버(310)는 TCP 소켓(socket)을 이용하여 데이터를 송수신할 수 있다. 예를 들면, UCM 서버(311), 톤 서버(312), 콜 레코딩 서버(313), 보이스 메일 서버(314) 및 웹 팩스 서버(315) 간에는 TCP 소켓을 통해 데이터를 송수신할 수 있다.In one embodiment, the feature server (310) can send and receive data using a TCP socket. For example, data can be sent and received between the UCM server (311), the tone server (312), the call recording server (313), the voice mail server (314), and the web fax server (315) through the TCP socket.

EMS(320)는 특징 서버(310)가 클라우드 환경에서 고객을 수용할 수 있도록 특징 서버(310)를 통합적으로 프로비저닝할 수 있는 통합 관리 포털을 고객에게 제공하는 기능을 수행할 수 있다. 일 실시예에 있어서, EMS(320)는 통신 서비스 플랫폼을 구성하는 마이크로 서비스에서 널리 사용되고 있는 REST API(Representational State Transfer Application Programming Interface)를 이용하여, 특징 서버(310)와 프로비저닝을 위한 요청을 전송하고 그에 대한 응답을 수신할 수 있다.The EMS (320) may perform a function of providing a customer with an integrated management portal that can comprehensively provision the feature server (310) so that the feature server (310) can accommodate the customer in a cloud environment. In one embodiment, the EMS (320) may transmit a request for provisioning to the feature server (310) and receive a response thereto using a REST API (Representational State Transfer Application Programming Interface) that is widely used in microservices that constitute a communication service platform.

다양한 실시예에 따르면, EMS(320)는 REST API를 전송하기 위한 트랜잭션 코드(transaction code)를 생성할 수 있다. 일 실시예에 있어서, EMS(320)는 REST API를 API 릴레이 서버(330)로 전송하기 위한 트랜잭션 코드를 생성하고, 생성된 트랜잭션 코드를 포함하는 REST API의 요청을 API 릴레이 서버(330)로 전송할 수 있다.According to various embodiments, the EMS (320) may generate a transaction code for transmitting a REST API. In one embodiment, the EMS (320) may generate a transaction code for transmitting a REST API to an API relay server (330), and transmit a request for a REST API including the generated transaction code to the API relay server (330).

다양한 실시예에 따르면, EMS(320)는 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여할 수 있다. 일 실시예에 있어서, EMS(320)는 하나의 트랜잭션 단위를 구성하는 일련의 REST API가 API 릴레이 서버(330)에서 동일한 트랜잭션으로 감지되도록, 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여할 수 있다.According to various embodiments, the EMS (320) may assign the same transaction code to a series of REST APIs constituting one transaction unit. In one embodiment, the EMS (320) may assign the same transaction code to a series of REST APIs constituting one transaction unit so that the series of REST APIs constituting one transaction unit are detected as the same transaction by the API relay server (330).

다양한 실시예에 따르면, EMS(320)는 타임 스템프(time stamp) 정보와 API 시퀀스 번호(sequence number)를 조합하여 트랜잭션 코드를 생성할 수 있다. 일 실시예에 있어서, EMS(320)는 API 릴레이 서버(330)의 백그라운드 롤백 스케줄러(background rollback scheduler)(도시하지 않음)가 하나의 트랜잭션 단위를 구성하는 REST API를 조회할 수 있도록 타임 스템프 정보와 API 시퀀스 번호를 조합하여 트랜잭션 코드를 생성할 수 있다.According to various embodiments, the EMS (320) may generate a transaction code by combining time stamp information and an API sequence number. In one embodiment, the EMS (320) may generate a transaction code by combining time stamp information and an API sequence number so that a background rollback scheduler (not shown) of the API relay server (330) can query a REST API constituting one transaction unit.

예를 들면, 3개의 REST API가 하나의 트랜잭션 단위를 구성하는 경우, EMS(320)는 아래와 같이 타임 스템프 정보와 API 시퀀스 번호를 조합하여 트랜잭션 코드를 생성할 수 있다.For example, if three REST APIs constitute one transaction unit, EMS (320) can generate a transaction code by combining timestamp information and API sequence numbers as shown below.

(1) 제1 REST API의 트랜잭션 코드: 2022-10-18 17:33:30.975 000(1) Transaction code of the 1st REST API: 2022-10-18 17:33:30.975 000

(2) 제2 REST API의 트랜잭션 코드: 2022-10-18 17:33:30.975 001(2) Transaction code of the 2nd REST API: 2022-10-18 17:33:30.975 001

(3) 제3 REST API의 트랜잭션 코드: 2022-10-18 17:33:30.975 002(3) Transaction code of the 3rd REST API: 2022-10-18 17:33:30.975 002

여기서, "2022-10-18 17:33:30.975"는 타임 스탬프 정보를 나타낸다. 또한, "000", "001", "002"는 API 시퀀스 번호로서, 데이터베이스(도시하지 않음)에 REST API 정보를 저장하는 경우에 인덱스 키(index key)로 사용되는 트랜잭션 코드가 중복되지 않기 위한 정보이다.Here, "2022-10-18 17:33:30.975" represents timestamp information. In addition, "000", "001", and "002" are API sequence numbers, which are information to prevent duplication of transaction codes used as index keys when storing REST API information in a database (not shown).

전술한 예에서는 타임 스탬프 정보와 API 시퀀스 번호를 조합하여 트랜잭션 코드가 생성되는 것으로 설명되었지만, 반드시 이에 한정되지 않고, 데이터베이스(도시하지 않음)에 REST API 정보를 저장하는 경우에 트랜잭션 코드가 중복되지 않도록 랜덤하게 생성되는 코드를 조합하여 트랜잭션 코드가 생성될 수도 있다.In the above example, it has been described that the transaction code is generated by combining the timestamp information and the API sequence number, but it is not necessarily limited to this, and when storing REST API information in a database (not shown), the transaction code may be generated by combining a randomly generated code to prevent duplication of the transaction code.

API 릴레이 서버(330)는 특징 서버(310) 및 EMS(320)에 연결될 수 있다. API 릴레이 서버(330)는 EMS(320)로부터 제공되는 REST API의 요청에 기초하여 롤백과 관련된 작업을 처리할 수 있다. 또한, API 릴레이 서버(330)는 EMS(320)로부터 제공되는 REST API의 요청에 기초하여, REST API를 특징 서버(310)로 재라우팅(rerouting)하기 위한 동작을 수행할 수 있다.The API relay server (330) may be connected to the feature server (310) and the EMS (320). The API relay server (330) may process a task related to rollback based on a request for a REST API provided from the EMS (320). In addition, the API relay server (330) may perform an operation for rerouting a REST API to the feature server (310) based on a request for a REST API provided from the EMS (320).

다양한 실시예에 따르면, API 릴레이 서버(330)는 REST API와 관련된 정보(이하, "API 정보"라 함) 및 특징 서버(310)에 관한 정보(이하, "특징 서버 정보"라 함)를 저장하기 위한 데이터베이스(도시하지 않음)를 포함할 수 있다.According to various embodiments, the API relay server (330) may include a database (not shown) for storing information related to the REST API (hereinafter, “API information”) and information related to the feature server (310) (hereinafter, “feature server information”).

다양한 실시예에 따르면, API 릴레이 서버(330)는 EMS(320)로부터 제공되는 REST API에 기초하여, 롤백 처리를 위한 API 정보를 데이터베이스에 저장할 수 있다. 일 실시예에 있어서, API 정보는 트랜잭션 코드, API 타입, API 릴레이 서버(330)의 수신 API URL, API 릴레이 서버(330)의 송신 API URL, 특징 서버 이름, "Request Body", "Request Time", "Request Result", "Rollback Request", "Rollback Try Count"를 포함할 수 있다.According to various embodiments, the API relay server (330) may store API information for rollback processing in a database based on the REST API provided from the EMS (320). In one embodiment, the API information may include a transaction code, an API type, a receiving API URL of the API relay server (330), a transmitting API URL of the API relay server (330), a feature server name, "Request Body", "Request Time", "Request Result", "Rollback Request", and "Rollback Try Count".

다양한 실시예에 따르면, API 릴레이 서버(330)는 백그라운드 롤백 스케줄러(도시하지 않음)를 포함할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 EMS(320)로부터 제공되는 REST API에 기초하여, 도 4에 도시된 바와 같이, 데이터베이스의 API 롤백 테이블(rollback table)에 API 정보를 저장할 수 있다.According to various embodiments, the API relay server (330) may include a background rollback scheduler (not shown). In one embodiment, the background rollback scheduler of the API relay server (330) may store API information in an API rollback table of a database, as shown in FIG. 4, based on a REST API provided from the EMS (320).

다양한 실시예에 따르면, API 릴레이 서버(330)는 EMS(320)로부터 REST API의 요청을 수신하고, 수신된 REST API의 요청에 응답하여 롤백과 관련된 일련의 작업을 처리할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 REST API에 부여된 트랜잭션 코드를 이용하여 롤백과 관련된 일련의 작업을 처리할 수 있다. 예를 들면, API 릴레이 서버(330)는 REST API의 http 메시지 바디(message body)에 부여된 트랜잭션 코드를 이용하여 롤백과 관련된 일련의 작업을 일괄적으로 처리할 수 있다.According to various embodiments, the API relay server (330) may receive a request for a REST API from the EMS (320) and process a series of tasks related to a rollback in response to the received request for the REST API. In one embodiment, the background rollback scheduler of the API relay server (330) may process a series of tasks related to a rollback by using a transaction code assigned to the REST API. For example, the API relay server (330) may process a series of tasks related to a rollback in batches by using a transaction code assigned to an http message body of the REST API.

다양한 실시예에 따르면, API 릴레이 서버(330)는 롤백 처리를 위해 트랜잭션 코드를 포함하는 API 정보를 데이터베이스에 저장하고, 특징 서버(310)로 URL 변환되어 전송되는 REST API 응답 결과를 이전에 추가된 API 정보 레코드의 요청 결과(Request Result) 컬럼에 저장할 수 있다. 일 실시예에 있어서, 요청 결과 컬럼은 API 릴레이 서버(330)의 백그라운드 롤백 스케줄러가 데이터베이스의 API 롤백 테이블을 조회할 때 검색 조건으로 사용될 수 있으며, "API Fail"이 발생한 경우에 실패(Fail)가 발생한 API의 트랜잭션 코드를 사용하여 이전에 성공한 API 목록을 조회하여 각 API에 맞는 롤백 API를 해당 특징 서버로 전송할 수 있도록 한다.According to various embodiments, the API relay server (330) may store API information including a transaction code in a database for rollback processing, and store a REST API response result, which is converted into a URL and transmitted to the feature server (310), in a Request Result column of a previously added API information record. In one embodiment, the Request Result column may be used as a search condition when the background rollback scheduler of the API relay server (330) searches the API rollback table of the database, and when an "API Fail" occurs, the transaction code of the API where the failure occurred may be used to search a list of previously successful APIs so that a rollback API suitable for each API can be transmitted to the corresponding feature server.

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 API 릴레이 서버(330)로부터 특징 서버(310)로 전송되는 REST API를 확인하여, API 전송의 실패("API Fail")가 발생하였는지 여부를 판단하고, REST API의 롤백 처리를 수행할 수 있다.According to various embodiments, the background rollback scheduler of the API relay server (330) can check the REST API transmitted from the API relay server (330) to the feature server (310), determine whether a failure in API transmission (“API Fail”) has occurred, and perform rollback processing of the REST API.

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 사전 설정된 주기마다 데이터베이스의 API 롤백 테이블을 검색하여, API 실패(Fail)가 발생한 REST API의 트랜잭션 코드를 검출하고, 검출된 트랜잭션 코드에 기초하여 롤백 처리를 수행할 수 있다. 일 실시예에 있어서, 백그라운드 롤백 스케줄러는 상기 데이터베이스의 API 롤백 테이블로부터, API 실패(Fail)가 발생한 REST API의 트랜잭션 코드와 동일한 트랜잭션 코드가 부여된 REST API를 검출하고, 검출된 REST API에서 성공한 REST API(즉, API 실패가 발생하지 않은 REST API)를 검출하고, 상기 성공한 REST API에 대해 시간의 역순으로 롤백 처리를 수행할 수 있다.According to various embodiments, the background rollback scheduler of the API relay server (330) may search the API rollback table of the database at preset intervals to detect a transaction code of a REST API in which an API failure has occurred, and perform rollback processing based on the detected transaction code. In one embodiment, the background rollback scheduler may detect, from the API rollback table of the database, a REST API to which a transaction code identical to the transaction code of a REST API in which an API failure has occurred, detect a successful REST API (i.e., a REST API in which an API failure has not occurred) from the detected REST APIs, and perform rollback processing in reverse chronological order for the successful REST APIs.

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 REST API의 롤백 처리를 수행한 결과, "API Fail"이 발생한 경우, EMS 프로비저닝 API의 목록을 조회할 수 있는 화면(이하, "EMS 프로비저닝 API 목록 조회 화면"이라 함)을 제공할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 도 5에 도시된 바와 같이, EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 "실패(Fail)"로 표시하고, 오퍼레이션(Operation) 컬럼 아래의 롤백 버튼을 활성화시킬 수 있다. 따라서, EMS 웹 관리자는 EMS 프로비저닝 API 목록 조회 화면을 통해 수동으로 롤백 처리를 수행할 수 있다.According to various embodiments, the background rollback scheduler of the API relay server (330) may provide a screen (hereinafter, referred to as “EMS provisioning API list query screen”) for querying a list of EMS provisioning APIs when “API Fail” occurs as a result of performing rollback processing of a REST API. In one embodiment, the background rollback scheduler of the API relay server (330) may display “Fail” in the rollback result column on the EMS provisioning API list query screen, as illustrated in FIG. 5, and activate the rollback button under the Operation column. Accordingly, the EMS web administrator may manually perform rollback processing through the EMS provisioning API list query screen.

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러의 검색 주기와 API의 롤백 트라이 카운트(Rollback Try Count)의 설정값은 사용자에 의해 설정 가능하다. 일 실시예에 있어서, 백그라운드 롤백 스케줄러의 검색 주기와 API의 롤백 트라이 카운트(Rollback Try Count)의 설정값은 API 릴레이 서버(330)의 로컬에 저장되는 구성 파일(Configuration File)이나 데이터베이스에서 설정 가능하다.According to various embodiments, the search cycle of the background rollback scheduler of the API relay server (330) and the setting value of the rollback try count of the API can be set by the user. In one embodiment, the search cycle of the background rollback scheduler and the setting value of the rollback try count of the API can be set in a configuration file or database stored locally in the API relay server (330).

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 API의 롤백 트라이 수만큼 롤백 API를 전송하여도 롤백이 성공하지 못한 경우, EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 "실패(Fail)"로 표시하고, 롤백 버튼을 활성화시킬 수 있다. 따라서, EMS 웹 관리자는 EMS 프로비저닝 API 목록 조회 화면을 통해 API 목록을 조회할 수 있고, API의 실패가 발생한 원인을 제거한 후에 해당 API의 전송 버튼을 클릭하여 롤백 API가 전송되도록 처리할 수 있다. 이때, 롤백 대기 중인 동일한 리소스에 대한 신규 API는 롤백이 성공될 때까지 금지될 수 있다.According to various embodiments, if the background rollback scheduler of the API relay server (330) transmits a rollback API as many times as the number of rollback attempts of the API and the rollback is not successful, the rollback result column may be displayed as "Fail" on the EMS provisioning API list query screen and the rollback button may be activated. Accordingly, the EMS web administrator can view the API list through the EMS provisioning API list query screen, and after eliminating the cause of the failure of the API, click the transmission button of the corresponding API to process the rollback API to be transmitted. At this time, a new API for the same resource waiting for the rollback may be prohibited until the rollback is successful.

다양한 실시예에 따르면, API 릴레이 서버(330)의 백그라운드 롤백 스케줄러는 단건의 API 전송에 실패가 발생하거나 롤백이 성공한 API에 대해 오퍼레이션 컬럼에서 해당 API를 재전송할 수 있는 API 재전송(Resend) 버튼을 활성화시킬 수 있다. 따라서, EMS 웹 관리자는 활성화된 API 재전송(Resend) 버튼을 입력하여 실패가 발생한 API를 실행시킬 수 있다.According to various embodiments, the background rollback scheduler of the API relay server (330) can activate an API Resend button in the operation column for retransmitting an API in which a single API transmission has failed or a rollback has succeeded. Accordingly, the EMS web administrator can execute an API in which a failure has occurred by inputting an activated API Resend button.

다양한 실시예에 따르면, API 릴레이 서버(330)는 특징 서버(310)에 관한 특징 서버 정보를 데이터베이스에 저장할 수 있다. 예를 들면, 특징 서버 정보는 특징 서버(310)의 이름, 아이피 주소, URL(Uniform Resource Locator) 등을 포함할 수 있다.According to various embodiments, the API relay server (330) may store feature server information regarding the feature server (310) in a database. For example, the feature server information may include the name, IP address, Uniform Resource Locator (URL), etc. of the feature server (310).

다양한 실시예에 따르면, API 릴레이 서버(330)는 EMS(320)로부터 특징 서버(310)와 프로비저닝을 위한 REST API의 요청을 수신하고, 수신된 REST API의 재라우팅 처리를 수행하여 특징 서버(310)로 전송할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)는 REST API를 특징 서버(310) 중 적어도 하나의 서버로 전송하기 위한 재라우팅 처리를 수행하여, 적어도 하나의 서버에 전송할 수 있다.According to various embodiments, the API relay server (330) may receive a request for a REST API for provisioning from the feature server (310) and the EMS (320), perform rerouting processing on the received REST API, and transmit it to the feature server (310). In one embodiment, the API relay server (330) may perform rerouting processing to transmit the REST API to at least one of the feature servers (310), and transmit it to at least one server.

예를 들면, API 릴레이 서버(330)는 도 6에 도시된 바와 같이, EMS(320)로부터 REST API의 요청이 수신되면, 해당 특정 서버가 REST API를 수신할 수 있도록, REST API 요청의 URL을 해당 특징 서버의 URL로 변환(translation)하는 URL 변환 처리를 수행하고, URL 변환 처리된 REST API를 해당 특징 서버로 전송할 수 있다.For example, as illustrated in FIG. 6, when a request for a REST API is received from an EMS (320), the API relay server (330) may perform URL conversion processing to convert (translate) the URL of the REST API request into the URL of the corresponding feature server so that the corresponding specific server can receive the REST API, and transmit the URL-converted REST API to the corresponding feature server.

도 7은 본 개시의 일 실시예에 따른 EMS에서의 API 처리 루틴을 나타낸 도면이다. 도 7에서는 도 2에 도시된 REST API의 송수신 전에 처리한 롤백과 관련된 처리가 제거되고, 롤백과 관련된 처리는 API 릴레이 서버(330)에서 수행될 수 있다. 이를 통해, 클라우드 통신 서비스의 유지 보수가 용이할 뿐만 아니라, EMS(320)와 특징 서버(310) 서버 간에 통신 장애가 발생한 경우 REST API의 요청 실패에 따른 프로비저닝의 롤백 처리의 복잡도가 간소화될 수 있다.FIG. 7 is a diagram showing an API processing routine in an EMS according to one embodiment of the present disclosure. In FIG. 7, processing related to rollback processed before transmission and reception of the REST API illustrated in FIG. 2 is eliminated, and processing related to rollback can be performed in the API relay server (330). Through this, not only is maintenance of the cloud communication service easy, but also the complexity of the rollback processing of provisioning due to a request failure of the REST API can be simplified when a communication failure occurs between the EMS (320) and the feature server (310).

이와 같이, 전술한 실시예에 따르면, 네트워크 오류나 기타 원인으로 인해 하나의 트랜잭션(Transaction)을 구성하는 일련의 API 요청 중에 일부의 실패(Fail)가 발생되었을 때, 기 실행된 API 요청의 롤백이 실시간으로 처리될 수 있다. 한편, 기 실행된 API 요청의 롤백이 실시간으로 처리될 수 없는 경우에는 데이터베이스에 API 정보가 저장되어 API 요청의 롤백을 백그라운드로 처리할 수 있는 비동기 스케줄러를 사용하여 안정적인 API의 롤백 처리가 수행될 수 있다. 따라서, EMS(320)와 특징 서버(310)간의 데이터 무결성(data integrity)이 보장될 수 있다.In this way, according to the above-described embodiment, when some of the failures occur among a series of API requests constituting one transaction due to a network error or other causes, the rollback of the previously executed API requests can be processed in real time. Meanwhile, when the rollback of the previously executed API requests cannot be processed in real time, the API information is stored in the database, and an asynchronous scheduler that can process the rollback of the API requests in the background can be used to perform stable rollback processing of the API. Accordingly, data integrity between the EMS (320) and the feature server (310) can be guaranteed.

본 개시에 도시된 흐름도에서 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 설명되었지만, 그러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 작동되도록 구성될 수 있다. 다시 말하면, 본 개시의 다양한 실시예들에서 설명되는 프로세스들, 방법들 및 알고리즘들의 단계들이 본 개시에서 기술된 순서로 수행될 필요는 없다. 또한, 일부 단계들이 비동시적으로 수행되는 것으로서 설명되더라도, 다른 실시예에서는 이러한 일부 단계들이 동시에 수행될 수 있다. 또한, 도면에서의 묘사에 의한 프로세스의 예시는 예시된 프로세스가 그에 대한 다른 변화들 및 수정들을 제외하는 것을 의미하지 않으며, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 개시의 다양한 실시예들 중 하나 이상에 필수적임을 의미하지 않으며, 예시된 프로세스가 바람직하다는 것을 의미하지 않는다.Although the process steps, method steps, algorithms, etc., are described in a sequential order in the flowcharts illustrated in the present disclosure, such processes, methods, and algorithms may be configured to operate in any suitable order. In other words, the steps of the processes, methods, and algorithms described in various embodiments of the present disclosure need not be performed in the order described in the present disclosure. Furthermore, even if some steps are described as being performed asynchronously, in other embodiments such some steps may be performed concurrently. Furthermore, the illustration of a process by depiction in the drawings does not imply that the illustrated process is exclusive of other changes and modifications thereto, nor does it imply that the illustrated process or any of its steps is essential to one or more of the various embodiments of the present disclosure, nor does it imply that the illustrated process is preferred.

도 8은 본 개시의 일 실시예에 따른 API 릴레이 서버의 동작을 나타낸 흐름도이다. 도 8을 참조하면, API 릴레이 서버(330)는 EMS(320)로부터 REST API의 요청을 수신하여 데이터베이스에 저장할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)는 EMS(320)로부터 REST API의 요청이 수신되면, REST API를 확인할 수 있다(단계 S802). 예를 들면, API 릴레이 서버(330)는 REST API의 인증 정보를 확인할 수 있다. API 릴레이 서버(330)는 확인된 인증 정보에 기초하여, REST API가 접근 가능한 API인지 여부를 판단할 수 있다(단계 S804)). API 릴레이 서버(330)는 단계 S804에서 REST API가 접근 가능한 API인 것으로 판단되면, REST API의 트랜잭션 코드를 확인할 수 있다(단계 S806). API 릴레이 서버(330)는 확인된 트랜잭션 코드를 포함하는 API 정보를 데이터베이스에 저장할 수 있다(단계 S808).FIG. 8 is a flowchart illustrating an operation of an API relay server according to an embodiment of the present disclosure. Referring to FIG. 8, the API relay server (330) may receive a request for a REST API from an EMS (320) and store the request in a database. In one embodiment, when a request for a REST API is received from the EMS (320), the API relay server (330) may verify the REST API (step S802). For example, the API relay server (330) may verify authentication information of the REST API. The API relay server (330) may determine whether the REST API is an accessible API based on the verified authentication information (step S804). If the API relay server (330) determines that the REST API is an accessible API in step S804, the API relay server (330) may verify a transaction code of the REST API (step S806). The API relay server (330) may store API information including the verified transaction code in a database (step S808).

한편, 단계 S804에서 REST API가 접근 불가능한 API인 것으로 판단되면, API 릴레이 서버(330)는 REST API의 요청에 응답으로서 REST API의 실패를 나타내는 실패 응답을 EMS(320)로 전송할 수 있다(단계 S820).Meanwhile, if it is determined in step S804 that the REST API is an inaccessible API, the API relay server (330) can transmit a failure response indicating a failure of the REST API to the EMS (320) as a response to the request of the REST API (step S820).

API 릴레이 서버(330)는 REST API의 요청에 응답하여 REST API를 해당 특징 서버(310)로 전송할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)는 데이터베이스에 저장된 특징 서버 정보에 기초하여, REST API의 재라우팅 처리를 수행하여 특징 서버(310)로 전송할 수 있다(단계 S810). 예를 들면, API 릴레이 서버(330)는 REST API 요청의 URL을 해당 특징 서버의 URL로 변환(translation)하는 URL 변환 처리를 수행하고, URL 변환 처리된 REST API를 해당 특징 서버로 전송할 수 있다.The API relay server (330) may transmit the REST API to the corresponding feature server (310) in response to a request for the REST API. In one embodiment, the API relay server (330) may perform rerouting processing of the REST API based on the feature server information stored in the database and transmit it to the feature server (310) (step S810). For example, the API relay server (330) may perform URL conversion processing that translates the URL of the REST API request into the URL of the corresponding feature server and transmit the URL-converted REST API to the corresponding feature server.

API 릴레이 서버(330)는 API 실패(Fail)가 발생하였는지 여부를 판단하여 REST API의 요청에 대한 응답을 EMS(320)로 전송할 수 있다. 일 실시예에 있어서, API 릴레이 서버(330)는 API 실패(Fail)가 발생하였는지 여부를 판단할 수 있다(단계 S812). API 릴레이 서버(330)는 단계 812에서 API 실패(Fail)가 발생하지 않은 것으로 판단(즉, REST API가 성공적으로 해당 특징 서버로 전송된 것으로 판단)되면, 데이터베이스에 저장된 해당 REST API의 요청 결과(Request Result) 컬럼에 대해 컬럼값을 성공(Success)로 설정할 수 있다(S814). API 릴레이 서버(330)는 REST API의 요청에 응답으로서 REST API의 성공을 나타내는 성공 응답을 EMS(320)로 전송할 수 있다(단계 S816).The API relay server (330) can determine whether an API failure has occurred and transmit a response to a request of the REST API to the EMS (320). In one embodiment, the API relay server (330) can determine whether an API failure has occurred (step S812). If the API relay server (330) determines in step 812 that an API failure has not occurred (i.e., that the REST API has been successfully transmitted to the corresponding feature server), the API relay server (330) can set the column value for the Request Result column of the corresponding REST API stored in the database to Success (S814). The API relay server (330) can transmit a success response indicating the success of the REST API to the EMS (320) as a response to the request of the REST API (step S816).

한편, 단계 812에서 API 실패(Fail)가 발생한 것으로 판단(즉, REST API가 성공적으로 해당 특징 서버로 전송되지 않은 것으로 판단)되면, API 릴레이 서버(330)는 데이터베이스에 저장된 해당 REST API의 요청 결과(Request Result) 컬럼에 대해 컬럼값을 실패(Fail)로 설정할 수 있다(S818). API 릴레이 서버(330)는 REST API의 요청에 응답으로서 REST API의 실패를 나타내는 실패 응답을 EMS(320)로 전송할 수 있다(단계 S820).Meanwhile, if it is determined that an API failure has occurred in step 812 (i.e., it is determined that the REST API has not been successfully transmitted to the corresponding feature server), the API relay server (330) may set the column value of the Request Result column of the corresponding REST API stored in the database to Fail (S818). The API relay server (330) may transmit a failure response indicating the failure of the REST API to the EMS (320) as a response to the request of the REST API (step S820).

위 방법은 특정 실시예들을 통하여 설명되었지만, 위 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 위 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 개시가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.While the above method has been described through specific embodiments, the above method can also be implemented as computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, etc. In addition, the computer-readable recording medium can be distributed over network-connected computer systems, so that the computer-readable code can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the above embodiments can be easily inferred by programmers in the technical field to which the present disclosure belongs.

이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 개시의 기술적 사상이 설명되었지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 개시의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.Although the technical idea of the present disclosure has been described by the above-described embodiments and examples illustrated in the accompanying drawings, it should be understood that various substitutions, modifications, and changes may be made therein without departing from the technical idea and scope of the present disclosure as understood by those skilled in the art to which the present disclosure pertains. In addition, such substitutions, modifications, and changes should be considered to fall within the scope of the appended claims.

310: 특징 서버, 311: UCM 서버(311), 312: 톤 서버, 313: 콜 레코딩 서버, 314: 보이스 메일 서버, 315: 웹 팩스 서버, 320: EMS, 330: API 릴레이 서버310: Feature Server, 311: UCM Server (311), 312: Tone Server, 313: Call Recording Server, 314: Voice Mail Server, 315: Web Fax Server, 320: EMS, 330: API Relay Server

Claims (18)

클라우드 컴퓨팅 시스템으로서,
음성 서비스 및 비디오 통신 서비스를 고객에게 제공하는 특징 서버;
상기 특징 서버를 통합적으로 프로비저닝할 수 있는 통합 관리 포털을 상기 고객에게 제공하며, 상기 특징 서버와 프로비저닝을 위한 REST API(Representational State Transfer Application Programming Interface)의 트랜잭션 코드(Transaction code)를 생성하고, 상기 트랜잭션 코드를 포함하는 상기 REST API의 요청을 전송하는 통합 관리 포털 서버(EMS); 및
상기 특징 서버 및 상기 EMS에 연결되고, 상기 EMS로부터 상기 REST API의 요청을 수신하고, 상기 REST API의 재라우팅(rerouting) 처리를 수행하여 상기 특징 서버로 전송하고, 상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 API 릴레이 서버
를 포함하는 클라우드 컴퓨팅 시스템.
As a cloud computing system,
Feature server that provides voice services and video communication services to customers;
An integrated management portal server (EMS) that provides the customer with an integrated management portal capable of provisioning the above-mentioned feature server in an integrated manner, generates a transaction code of a REST API (Representational State Transfer Application Programming Interface) for provisioning with the above-mentioned feature server, and transmits a request of the REST API including the transaction code; and
An API relay server connected to the above feature server and the EMS, receiving a request for the REST API from the EMS, performing rerouting processing of the REST API and transmitting it to the feature server, and determining whether transmission of the REST API has failed based on the transaction code and transmitting a response to the request for the REST API to the EMS
A cloud computing system comprising:
제1항에 있어서, 상기 EMS는 하나의 트랜잭션 단위를 구성하는 일련의 REST API가 상기 API 릴레이 서버에서 동일한 트랜잭션으로 감지되도록, 상기 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여하는, 클라우드 컴퓨팅 시스템.A cloud computing system in claim 1, wherein the EMS assigns the same transaction code to a series of REST APIs constituting a single transaction unit so that the series of REST APIs constituting a single transaction unit are detected as the same transaction by the API relay server. 제2항에 있어서, 상기 EMS는 타임 스탬프 정보(timestamp)와 랜덤하게 생성되는 코드를 조합하여 상기 트랜잭션 코드를 생성하는, 클라우드 컴퓨팅 시스템.A cloud computing system in the second paragraph, wherein the EMS generates the transaction code by combining timestamp information and a randomly generated code. 제2항에 있어서, 상기 EMS는 타임 스템프 정보와 API 시퀀스 번호(sequence number)를 조합하여 상기 트랜잭션 코드를 생성하는, 클라우드 컴퓨팅 시스템.A cloud computing system in the second paragraph, wherein the EMS generates the transaction code by combining time stamp information and an API sequence number. 제1항에 있어서, 상기 API 릴레이 서버는 상기 특징 서버에 관한 특징 서버 정보를 저장하는 데이터베이스를 포함하고,
상기 API 릴레이 서버는 상기 특징 서버 정보에 기초하여 상기 REST API에 대해 상기 재라우팅 처리를 수행하는, 클라우드 컴퓨팅 시스템.
In the first paragraph, the API relay server includes a database storing feature server information about the feature server,
A cloud computing system, wherein the API relay server performs rerouting processing for the REST API based on the feature server information.
제5항에 있어서, 상기 API 릴레이 서버는
상기 특징 서버가 상기 REST API를 수신하도록 상기 REST API의 요청의 URL을 상기 특징 서버의 URL로 변환하는 URL 변환 처리를 수행하고,
상기 URL 변환 처리된 REST API를 상기 특징 서버로 전송하는, 클라우드 컴퓨팅 시스템.
In the fifth paragraph, the API relay server
The above feature server performs URL conversion processing to convert the URL of the request of the above REST API into the URL of the above feature server so that the above feature server receives the above REST API,
A cloud computing system that transmits the above URL converted REST API to the above feature server.
제1항에 있어서, 상기 API 릴레이 서버는 상기 트랜잭션 코드를 포함하는 API 정보를 저장하는 데이터베이스를 포함하고,
상기 API 릴레이 서버는 사전 설정된 주기마다 상기 데이터베이스를 검색하여, API 실패가 발생한 REST API의 트랜잭션 코드를 검출하고,
상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 클라우드 컴퓨팅 시스템.
In the first paragraph, the API relay server includes a database storing API information including the transaction code,
The above API relay server searches the database at preset intervals to detect the transaction code of the REST API where the API failure occurred.
A cloud computing system that performs rollback processing of the REST API based on the detected transaction code.
제7항에 있어서, 상기 API 릴레이 서버는
상기 데이터베이스에서 상기 검출된 트랜잭션 코드와 동일한 트랜잭션 코드가 부여된 REST API를 검출하고,
상기 검출된 REST API에서 성공한 REST API를 검출하고,
상기 성공한 REST API에 대해 시간의 역순으로 상기 REST API의 롤백 처리를 수행하는 클라우드 컴퓨팅 시스템.
In the 7th paragraph, the API relay server
Detect a REST API that is assigned the same transaction code as the transaction code detected in the above database,
Detect successful REST APIs from the above detected REST APIs,
A cloud computing system that performs rollback processing of the above REST API in reverse chronological order for the above successful REST API.
제8항에 있어서, 상기 API 릴레이 서버는 상기 REST API의 롤백 처리를 수행한 결과, API 실패가 발생한 경우 EMS 프로비저닝 API의 목록을 조회할 수 있는 EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 실패를 표시하고, 상기 REST API의 롤백 처리를 위한 롤백 버튼을 활성화시키는 클라우드 컴퓨팅 시스템.In the 8th paragraph, the API relay server is a cloud computing system that, when an API failure occurs as a result of performing rollback processing of the REST API, displays a failure in the rollback result column on an EMS provisioning API list query screen capable of querying a list of EMS provisioning APIs, and activates a rollback button for rollback processing of the REST API. 클라우드 컴퓨팅 시스템을 이용한 API(Application Programming Interface) 처리 방법으로서,
상기 클라우드 컴퓨팅 시스템의 EMS에서, 음성 서비스 및 비디오 통신 서비스를 고객에게 제공하는 특징 서버와 프로비저닝을 위한 REST(Representational State Transfer) API의 트랜잭션 코드를 생성하는 단계;
상기 EMS에서, 상기 트랜잭션 코드를 포함하는 REST API를 전송하는 단계;
상기 클라우드 컴퓨팅 시스템의 API 릴레이 서버에서, 상기 REST API의 요청을 수신하는 단계;
상기 API 릴레이 서버에서, 상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계; 및
상기 API 릴레이 서버에서, 상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 단계
를 포함하는 API 처리 방법.
As a method of processing API (Application Programming Interface) using a cloud computing system,
In the EMS of the above cloud computing system, a step of generating a transaction code of a REST (Representational State Transfer) API for provisioning and a feature server that provides voice service and video communication service to a customer;
In the above EMS, a step of transmitting a REST API including the transaction code;
A step of receiving a request of the REST API in the API relay server of the cloud computing system;
In the above API relay server, a step of performing rerouting processing of the REST API and transmitting it to the feature server; and
In the above API relay server, a step of determining whether transmission of the REST API has failed based on the transaction code and transmitting a response to the request of the REST API to the EMS
API processing method including .
제10항에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는
하나의 트랜잭션 단위를 구성하는 일련의 REST API가 상기 API 릴레이 서버에서 동일한 트랜잭션으로 감지되도록, 상기 하나의 트랜잭션 단위를 구성하는 일련의 REST API에 동일한 트랜잭션 코드를 부여하는 단계
를 포함하는 API 처리 방법.
In the 10th paragraph, the step of generating the transaction code of the REST API
A step of assigning the same transaction code to a series of REST APIs constituting a single transaction unit so that the series of REST APIs constituting a single transaction unit are detected as the same transaction by the API relay server.
API processing method including .
제11항에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는
타임 스탬프 정보와 랜덤하게 생성되는 코드를 조합하여 상기 트랜잭션 코드를 생성하는 단계
를 포함하는 API 처리 방법.
In the 11th paragraph, the step of generating the transaction code of the REST API
A step for generating the above transaction code by combining timestamp information and a randomly generated code.
API processing method including .
제11항에 있어서, 상기 REST API의 트랜잭션 코드를 생성하는 단계는
타임 스템프 정보와 API 시퀀스 번호를 조합하여 상기 트랜잭션 코드를 생성하는 단계
를 포함하는 API 처리 방법.
In the 11th paragraph, the step of generating the transaction code of the REST API
Step of generating the above transaction code by combining timestamp information and API sequence number
API processing method including .
제10항에 있어서, 상기 API 릴레이 서버는 상기 특징 서버에 관한 특징 서버 정보를 저장하는 데이터베이스를 포함하고,
상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계는
상기 특징 서버 정보에 기초하여 상기 REST API에 대해 상기 재라우팅 처리를 수행하는 단계
를 포함하는 API 처리 방법.
In the 10th paragraph, the API relay server includes a database storing feature server information about the feature server,
The step of performing rerouting processing of the above REST API and transmitting it to the feature server is
A step of performing the rerouting process for the REST API based on the above feature server information.
API processing method including .
제14항에 있어서, 상기 REST API의 재라우팅 처리를 수행하여 상기 특징 서버로 전송하는 단계는
상기 특징 서버가 상기 REST API를 수신하도록 상기 REST API의 요청의 URL을 상기 특징 서버의 URL로 변환하는 URL 변환 처리를 수행하는 단계; 및
상기 URL 변환 처리된 REST API를 상기 특징 서버로 전송하는 단계
를 포함하는 API 처리 방법.
In the 14th paragraph, the step of performing rerouting processing of the REST API and transmitting it to the feature server is
A step of performing URL conversion processing to convert the URL of the request of the REST API into the URL of the feature server so that the feature server receives the REST API; and
Step of transmitting the above URL converted REST API to the above feature server
API processing method including .
제10항에 있어서, 상기 API 릴레이 서버는 상기 트랜잭션 코드를 포함하는 API 정보를 저장하는 데이터베이스를 포함하고,
상기 트랜잭션 코드에 기초하여 상기 REST API의 전송 실패 여부를 판단하여 상기 REST API의 요청에 대한 응답을 상기 EMS로 전송하는 단계는
사전 설정된 주기마다 상기 데이터베이스를 검색하여, API 실패가 발생한 REST API의 트랜잭션 코드를 검출하는 단계; 및
상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계
를 포함하는 API 처리 방법.
In the 10th paragraph, the API relay server includes a database storing API information including the transaction code,
The step of determining whether transmission of the REST API has failed based on the transaction code and transmitting a response to the request of the REST API to the EMS
A step of searching the database at preset intervals to detect the transaction code of the REST API in which an API failure occurred; and
A step for performing rollback processing of the REST API based on the detected transaction code.
API processing method including .
제16항에 있어서, 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계는
상기 데이터베이스에서 상기 검출된 트랜잭션 코드와 동일한 트랜잭션 코드가 부여된 REST API를 검출하는 단계;
상기 검출된 REST API에서 성공한 REST API를 검출하는 단계; 및
상기 성공한 REST API에 대해 시간의 역순으로 상기 REST API의 롤백 처리를 수행하는 단계
를 포함하는 API 처리 방법.
In the 16th paragraph, the step of performing rollback processing of the REST API based on the detected transaction code
A step of detecting a REST API assigned a transaction code identical to the transaction code detected in the above database;
A step of detecting a successful REST API from the above detected REST API; and
Step for performing rollback processing of the above REST API in reverse chronological order for the above successful REST API.
API processing method including .
제17항에 있어서, 상기 검출된 트랜잭션 코드에 기초하여 상기 REST API의 롤백 처리를 수행하는 단계는
상기 API 릴레이 서버는 상기 REST API의 롤백 처리를 수행한 결과, API 실패가 발생한 경우 EMS 프로비저닝 API의 목록을 조회할 수 있는 EMS 프로비저닝 API 목록 조회 화면에서 롤백 결과 컬럼에 실패를 표시하는 단계; 및
상기 REST API의 롤백 처리를 위한 롤백 버튼을 활성화시키는 단계
를 더 포함하는 API 처리 방법.
In the 17th paragraph, the step of performing rollback processing of the REST API based on the detected transaction code
The above API relay server performs rollback processing of the above REST API, and, if an API failure occurs, displays a failure in the rollback result column on the EMS provisioning API list query screen that can query the list of EMS provisioning APIs; and
Steps to activate the rollback button for rollback processing of the above REST API
API processing method that includes more.
KR1020230076080A 2023-06-14 2023-06-14 Cloud computing system and method of processing api using the same Pending KR20240176104A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230076080A KR20240176104A (en) 2023-06-14 2023-06-14 Cloud computing system and method of processing api using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230076080A KR20240176104A (en) 2023-06-14 2023-06-14 Cloud computing system and method of processing api using the same

Publications (1)

Publication Number Publication Date
KR20240176104A true KR20240176104A (en) 2024-12-24

Family

ID=94082798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230076080A Pending KR20240176104A (en) 2023-06-14 2023-06-14 Cloud computing system and method of processing api using the same

Country Status (1)

Country Link
KR (1) KR20240176104A (en)

Similar Documents

Publication Publication Date Title
US11088903B2 (en) Hybrid cloud network configuration management
US10447560B2 (en) Data leakage protection in cloud applications
US6799147B1 (en) Enterprise integrated testing and performance monitoring software
US6874099B1 (en) Method and software for testing and performance monitoring
KR950010833B1 (en) Automated enrollement of a computer system into a service network of computer systems
US8185550B1 (en) Systems and methods for event-based provisioning of elevated system privileges
CN111026635A (en) Software project testing system, method, device and storage medium
JP2022525548A (en) Dynamic translation
KR102407334B1 (en) Gateway apparatus and operating method thereof
JP2002108728A (en) How to post trouble information and provider equipment
US20050038888A1 (en) Method of and apparatus for monitoring event logs
US10775751B2 (en) Automatic generation of regular expression based on log line data
US8326913B2 (en) Method and system for service contract discovery
KR20090027861A (en) Method and system for monitoring events occurring in computer network and event management device
CN112800410A (en) Multi-product login management method, device, equipment and storage medium
JP2004310371A (en) File sharing system and method, file sharing server, file sharing service client terminal, file sharing program, recording medium recording file sharing program
CN101371230A (en) Report information to the network
US8978104B1 (en) Access control center workflow and approval
KR102093764B1 (en) Managment server for managing the server and storage
US7707585B2 (en) Method, system, and program product for monitoring message flow in a message queuing system
US20060265492A1 (en) On-demand test environment using automated chat clients
KR20240176104A (en) Cloud computing system and method of processing api using the same
US20170223136A1 (en) Any Web Page Reporting and Capture
US11811894B2 (en) Reduction of data transmissions based on end-user context
US20090287781A1 (en) Grouping messages using patterns in a messaging system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230614

PG1501 Laying open of application