KR102445391B1 - Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent - Google Patents

Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent Download PDF

Info

Publication number
KR102445391B1
KR102445391B1 KR1020210066196A KR20210066196A KR102445391B1 KR 102445391 B1 KR102445391 B1 KR 102445391B1 KR 1020210066196 A KR1020210066196 A KR 1020210066196A KR 20210066196 A KR20210066196 A KR 20210066196A KR 102445391 B1 KR102445391 B1 KR 102445391B1
Authority
KR
South Korea
Prior art keywords
manager
world
message
request message
business logic
Prior art date
Application number
KR1020210066196A
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 KR1020210066196A priority Critical patent/KR102445391B1/en
Application granted granted Critical
Publication of KR102445391B1 publication Critical patent/KR102445391B1/en

Links

Images

Classifications

    • 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
    • G06Q50/30
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Disclosed are a method and device for constructing a communication interface for interacting with an intelligent agent. According to an embodiment of the present invention, provided is a method for constructing a communication interface for interacting with an intelligent agent performed by a computer system, comprising the steps of: receiving a request message from a third party by an intermediary through an asynchronous communication unit for communicating data with an external program in an asynchronous manner; processing, by the intermediary, the request message by mediating the request message to a world manager or an entity manager; and transmitting, by the intermediary, a response message received from the world manager or entity manager to the third party through the asynchronous communication unit. Therefore, it is possible to construct the interface capable of interacting with the intelligent agent with minimal modification of a client in which business logic is implemented.

Description

지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치{Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent}Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent

아래의 실시예들은 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치에 관한 것으로, 더욱 상세하게는 비즈니스 로직이 구현된 클라이언트의 최소 수정으로 지능형 에이전트와 상호작용 가능한 인터페이스를 구축하는 방법 및 장치에 관한 것이다. The following embodiments relate to a method and apparatus for building a communication interface for interacting with an intelligent agent, and more particularly, to a method and apparatus for building an interface capable of interacting with an intelligent agent with minimal modification of a client in which business logic is implemented. it's about

지능형 에이전트(Intelligent Agent)란 주어진 환경에서 정해진 목표 달성을 위해 관측한 정보를 바탕으로 최적의 행동을 자율적으로 수행하는 개체를 의미한다. 이러한 지능형 에이전트는 다양한 방법으로 구현될 수 있는데, 전통적으로는 미리 정의된 규칙에 따라 행동하도록 에이전트를 설계하여 활용하였다.An intelligent agent refers to an entity that autonomously performs optimal actions based on observed information to achieve a set goal in a given environment. Such an intelligent agent can be implemented in various ways. Traditionally, the agent was designed and utilized to act according to a predefined rule.

한편, 최근 기계 학습(Machine Learning)의 발전으로 지능형 에이전트 또한 기계 학습을 바탕으로 구현하려는 시도가 활발히 진행되어 왔다. 대표적으로, 전문가의 행동을 데이터 형태로 수집하여, 현재 상황을 입력했을 때 최적의 행동을 출력하는 분류 모델을 학습시키는 방식의 행동 모방(Behavioral Cloning) 기술이 있다. 그러나, 해당 방법은 다량의 전문가 행동 데이터 수집이 필요하여, 전문가 인력 확보가 어려운 분야에서는 데이터 수집에 매우 많은 비용이 소요된다는 단점이 있다.Meanwhile, with the recent development of machine learning, attempts to implement intelligent agents based on machine learning have been actively conducted. Representatively, there is a behavioral cloning technology that collects the behavior of an expert in the form of data and learns a classification model that outputs the optimal behavior when the current situation is input. However, the method has a disadvantage in that a large amount of expert behavior data needs to be collected, and in a field where it is difficult to secure expert manpower, data collection is very costly.

이와 같은 이유로, 최근 지능형 에이전트 연구는 강화 학습을 바탕으로 진행되고 있다. 강화 학습(Reinforcement Learning)이란 지능형 에이전트가 획득할 수 있는 보상을 최대화하기 위해 행동을 선택하는 방법에 대한 기계 학습 분야이다. 즉, 지능형 에이전트의 행동을 평가할 수 있는 보상 함수가 정의되어 있을 때, 강화 학습은 지능형 에이전트의 관측 정보를 바탕으로 최대 보상이 획득 가능한 행동을 선택하도록 에이전트의 학습을 진행한다.For this reason, recent intelligent agent research is being conducted based on reinforcement learning. Reinforcement learning is the field of machine learning about how intelligent agents choose actions to maximize the rewards they can obtain. That is, when a reward function that can evaluate the behavior of the intelligent agent is defined, reinforcement learning proceeds to learn the agent to select the behavior that can obtain the maximum reward based on the observation information of the intelligent agent.

지능형 에이전트를 강화 학습하기 위해선 에이전트가 상호작용할 수 있는 환경의 정의가 필요하다. 예를 들어, 특정 지역을 점령하는 군사 작전 지능형 에이전트를 학습하기 위해서는 에이전트와 상호작용 가능한 군사 시뮬레이션 환경 구축이 필요하다.For reinforcement learning of an intelligent agent, it is necessary to define an environment in which the agent can interact. For example, in order to learn an intelligent agent for military operations occupying a specific area, it is necessary to build a military simulation environment that can interact with the agent.

한편, 이미 개발이 진행 중이거나 완료된 게임 또는 시뮬레이터에 지능형 에이전트를 새롭게 도입하는 경우, 이러한 환경에 대한 비즈니스 로직(Business Logic)은 외부 클라이언트에 이미 개발 완료된 경우가 많다. 따라서, 지능형 에이전트를 학습하기 위해서는 해당 클라이언트 내 로직과 상호작용 가능한 인터페이스 구축이 필요하다. On the other hand, when an intelligent agent is newly introduced to a game or simulator that has already been developed or completed, the business logic for this environment is often already developed by an external client. Therefore, in order to learn the intelligent agent, it is necessary to build an interface that can interact with the logic in the client.

한국공개특허 10-1021-0016815호는 이러한 복수의 지능형 에이전트를 관리하는 전자 장치 및 그의 동작 방법에 관한 것으로, 식별한 기기를 제어할 수 있는 지능형 에이전트로 사용자의 음성 데이터를 전송하여 기기를 제어하는 장치에 관한 기술을 기재하고 있다.Korean Patent Application Laid-Open No. 10-1021-0016815 relates to an electronic device for managing such a plurality of intelligent agents and an operation method thereof, wherein the device is controlled by transmitting the user's voice data to an intelligent agent capable of controlling the identified device. A description of the device is described.

한국공개특허 10-1021-0016815호Korean Patent Publication No. 10-1021-0016815

실시예들은 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치에 관하여 기술하며, 보다 구체적으로 외부 클라이언트 내 비즈니스 로직과 상호작용하기 위한 비동기 통신 구조를 설계하고, 해당 구조를 활용하기 위한 메시지 중개 인터페이스를 설계하는 기술을 제공한다. The embodiments describe a method and apparatus for building a communication interface for interacting with an intelligent agent, and more specifically designing an asynchronous communication structure for interacting with business logic in an external client, and a message mediation interface for utilizing the structure technology to design

실시예들은 세계 수준 비즈니스 로직과 개체 수준 비즈니스 로직을 분리하여 관리함으로써, 비즈니스 로직이 구현된 클라이언트의 최소 수정으로 지능형 에이전트와 상호작용 가능한 인터페이스를 구축이 가능하며 이에 따른 개발 비용도 최소화할 수 있는 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치를 제공하는데 있다. The embodiments separate and manage world-level business logic and object-level business logic, so that an interface capable of interacting with an intelligent agent can be built with minimal modification of the client in which the business logic is implemented, and the resulting development cost can also be minimized. An object of the present invention is to provide a method and apparatus for establishing a communication interface for interacting with an agent.

일 실시예에 따른 컴퓨터 시스템에 의해 수행되는 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법은, 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부를 통해 중개자가 제3자로부터 요청 메시지를 수신하는 단계; 상기 중개자는 상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계; 및 상기 중개자는 상기 세계 관리자 또는 개체 관리자로부터 전달 받은 응답 메시지를 비동기 통신부를 통해 상기 제3자에게 송신하는 단계를 포함하여 이루어질 수 있다. In a communication interface construction method for interacting with an intelligent agent performed by a computer system according to an embodiment, the intermediary receives a request message from a third party through an asynchronous communication unit for communicating data in an asynchronous manner with an external program. step; the intermediary processing the request message by intermediarying the request message to a world manager or an entity manager; and the intermediary transmitting the response message received from the world manager or the object manager to the third party through an asynchronous communication unit.

상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는, 상기 세계 관리자 및 상기 개체 관리자를 통해 클라이언트 내 전반적인 정보 전달과 개체 관리를 관할하는 세계 수준 비즈니스 로직과, 클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직을 분리하여 관리할 수 있다. The step of processing the request message by intermediarying the world manager or the object manager includes: world-level business logic that governs overall information delivery and object management within the client through the world manager and the object manager; and delivery of detailed information of the object in the client and object-level business logic that governs the manipulation of objects can be managed separately.

상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는, 상기 세계 관리자는 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하는 단계; 상기 세계 관리자는 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하는 단계; 명령 처리가 완료된 결과 메시지를 상기 세계 관리자가 비동기 수신하는 단계; 및 상기 세계 관리자는 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 단계를 포함할 수 있다. The processing of the request message by intermediarying the world manager or the object manager may include: extracting, by the world manager, a command message from the request message transmitted as an input; asynchronously transmitting, by the world manager, the extracted command message to business logic in an external client; asynchronously receiving, by the world manager, a message as a result of command processing; and the world manager generating and returning a response message from the result message.

상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는, 상기 개체 관리자는 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하는 단계; 상기 요청 메시지에 기재된 피호출자 정보로부터 상기 요청 메시지의 목적지를 확인하고, 상기 요청 메시지의 처리를 담당하는 개체를 반환하여, 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당하도록 하는 단계; 상기 개체 관리자는 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하는 단계; 명령 처리가 완료된 결과 메시지를 상기 개체 관리자가 비동기 수신하는 단계; 및 상기 개체 관리자는 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 단계를 포함할 수 있다. The processing of the request message by intermediarying the world manager or the object manager may include: extracting, by the object manager, a command message from the request message transmitted as an input; confirming the destination of the request message from the callee information described in the request message, and returning an entity in charge of processing the request message so that the asynchronous communication unit managed by the returned entity is responsible for the asynchronous communication; asynchronously transmitting, by the entity manager, the extracted command message to business logic in an external client; asynchronously receiving, by the object manager, a result message on which command processing is completed; and the object manager generating and returning a response message from the result message.

상기 중개자는, 상기 제3자와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행할 수 있다. The mediator may mediate messages so that the third party and the business logic in the client can interact with each other through a single communication interface.

다른 실시예에 따른 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치는, 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부; 클라이언트 내 전반적인 정보 전달과 개체 관리를 관할하는 세계 수준 비즈니스 로직과 상호작용을 담당하기 위한 세계 관리자; 클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직과 상호작용을 담당하기 위한 개체 관리자; 및 상기 비동기 통신부를 통해 제3자로부터 요청 메시지를 수신하고, 상기 요청 메시지를 상기 세계 관리자 또는 개체 관리자에게 중개하여 처리한 후, 전달 받은 응답 메시지를 비동기 통신부를 통해 상기 제3자에게 송신하는 중개자를 포함하여 이루어질 수 있다. An apparatus for constructing a communication interface for interacting with an intelligent agent according to another embodiment includes: an asynchronous communication unit for communicating data in an asynchronous manner with an external program; World Manager, responsible for interacting with world-class business logic that governs overall information delivery and entity management within the client; an object manager for interacting with the object-level business logic that governs the communication of details and manipulation of objects within the client; and an intermediary that receives a request message from a third party through the asynchronous communication unit, processes the request message by mediating the request message to the world manager or entity manager, and then transmits the received response message to the third party through the asynchronous communication unit may be included.

상기 세계 관리자 및 상기 개체 관리자를 통해 세계 수준 비즈니스 로직과 개체 수준 비즈니스 로직을 분리하여 관리할 수 있다. The world manager and the object manager may separate and manage world-level business logic and object-level business logic.

상기 세계 관리자는, 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하고, 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하며, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환할 수 있다. The world manager extracts a command message from the request message transmitted as an input, asynchronously transmits the extracted command message to the business logic in the external client, and asynchronously receives the result message on which the command processing is completed, and then the result message You can return a response message after generating from it.

상기 개체 관리자는, 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하고, 상기 요청 메시지에 기재된 피호출자 정보로부터 상기 요청 메시지의 목적지를 확인하고, 상기 요청 메시지의 처리를 담당하는 개체를 반환하여, 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당하도록 하며, 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하고, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환할 수 있다. The entity manager extracts a command message from the request message transmitted as an input, identifies a destination of the request message from callee information described in the request message, and returns an entity responsible for processing the request message, The asynchronous communication is handled by the asynchronous communication unit managed by the returned object, asynchronously transmits the extracted command message to the business logic within the external client, asynchronously receives the command processing completion result message, and then responds from the result message You can create a message and return it.

상기 중개자는, 상기 제3자와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행할 수 있다. The mediator may mediate messages so that the third party and the business logic in the client can interact with each other through a single communication interface.

실시예들에 따르면 외부 클라이언트 내 비즈니스 로직과 상호작용하기 위한 비동기 통신 구조를 설계하고, 해당 구조를 활용하기 위한 메시지 중개 인터페이스를 설계하는 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치를 제공할 수 있다.According to embodiments, to provide a communication interface construction method and apparatus for designing an asynchronous communication structure to interact with business logic in an external client, and interacting with an intelligent agent that designs a message mediation interface to utilize the structure. can

실시예들에 따르면 세계 수준 비즈니스 로직과 개체 수준 비즈니스 로직을 분리하여 관리함으로써, 비즈니스 로직이 구현된 클라이언트의 최소 수정으로 지능형 에이전트와 상호작용 가능한 인터페이스를 구축이 가능하며 이에 따른 개발 비용도 최소화할 수 있는 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치를 제공할 수 있다. According to embodiments, by separating and managing world-level business logic and object-level business logic, it is possible to build an interface that can interact with an intelligent agent with minimal modification of the client in which the business logic is implemented, and thus the development cost can be minimized. It is possible to provide a method and apparatus for building a communication interface for interacting with an intelligent agent.

도 1은 일 실시예에 따른 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치를 나타내는 블록도이다.
도 3은 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법을 나타내는 흐름도이다.
도 4는 일 실시예에 따른 제3자와의 통신에 사용하는 요청 메시지 자료 구조를 나타낸다.
도 5는 일 실시예에 따른 제3자와의 통신에 사용하는 응답 메시지 자료 구조를 나타낸다.
도 6은 일 실시예에 따른 세계 관리자의 구조를 나타내는 도면이다.
도 7은 일 실시예에 따른 개체 관리자의 구조를 나타내는 도면이다.
도 8은 일 실시예에 따른 중개자의 구조를 나타내는 도면이다.
1 is a block diagram illustrating an example of an internal configuration of a computer system according to an embodiment.
2 is a block diagram illustrating an apparatus for establishing a communication interface for interacting with a hostile intelligent agent according to an embodiment.
3 is a flowchart illustrating a method of establishing a communication interface for interacting with an adversarial intelligent agent according to an embodiment.
4 illustrates a request message data structure used for communication with a third party according to an embodiment.
5 illustrates a response message data structure used for communication with a third party according to an embodiment.
6 is a diagram illustrating a structure of a world manager according to an embodiment.
7 is a diagram illustrating a structure of an object manager according to an exemplary embodiment.
8 is a diagram illustrating a structure of an intermediary according to an embodiment.

이하, 첨부된 도면을 참조하여 실시예들을 설명한다. 그러나, 기술되는 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시예들에 의하여 한정되는 것은 아니다. 또한, 여러 실시예들은 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Hereinafter, embodiments will be described with reference to the accompanying drawings. However, the described embodiments may be modified in various other forms, and the scope of the present invention is not limited by the embodiments described below. In addition, various embodiments are provided in order to more completely explain the present invention to those of ordinary skill in the art. The shapes and sizes of elements in the drawings may be exaggerated for clearer description.

도 1은 일 실시예에 따른 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다. 예를 들어, 본 발명의 실시예들에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치가 도 1의 컴퓨터 시스템(장치)(1)을 통해 구현될 수 있다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(1)은 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법을 실행하기 위한 구성요소로서 프로세서(10), 메모리(20), 영구 저장 장치(30), 버스(40), 입출력 인터페이스(50) 및 네트워크 인터페이스(60)를 포함할 수 있다.1 is a block diagram illustrating an example of an internal configuration of a computer system according to an embodiment. For example, an apparatus for establishing a communication interface for interacting with a hostile intelligent agent according to embodiments of the present invention may be implemented through the computer system (device) 1 of FIG. 1 . As shown in Fig. 1, the computer system 1 includes a processor 10, a memory 20, a persistent storage device 30, It may include a bus 40 , an input/output interface 50 , and a network interface 60 .

프로세서(10)는 명령어들의 임의의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(10)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(10)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스, 미디어 플레이어 등에 포함될 수 있다. 프로세서(10)는 버스(40)를 통해 메모리(20)에 접속될 수 있다.Processor 10 may include or be part of any apparatus capable of processing any sequence of instructions. Processor 10 may include, for example, a computer processor, a processor in a mobile device, or other electronic device and/or a digital processor. The processor 10 may be included in, for example, a server computing device, a server computer, a set of server computers, a server farm, a cloud computer, a content platform, a mobile computing device, a smartphone, a tablet, a set-top box, a media player, and the like. The processor 10 may be connected to the memory 20 via a bus 40 .

메모리(20)는 컴퓨터 시스템(1)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 메모리(20)는 예를 들어 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(20)는 컴퓨터 시스템(1)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(20)는 예를 들어 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축을 위한 명령어들을 포함하는 컴퓨터 시스템(1)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(1)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(10)를 포함할 수 있다.Memory 20 may include volatile memory, permanent, virtual or other memory for storing information used by or output by computer system 1 . The memory 20 may include, for example, random access memory (RAM) and/or dynamic RAM (DRAM). Memory 20 may be used to store any information, such as state information of computer system 1 . The memory 20 may also be used to store instructions of the computer system 1 including, for example, instructions for establishing a communication interface for interacting with an adversarial intelligent agent. Computer system 1 may include one or more processors 10 as needed or appropriate.

버스(40)는 컴퓨터 시스템(1)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(40)는 예를 들어 컴퓨터 시스템(1)의 컴포넌트들 사이에, 예를 들어 프로세서(10)와 메모리(20) 사이에 데이터를 운반할 수 있다. 버스(40)는 컴퓨터 시스템(1)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.The bus 40 may include a communication infrastructure that enables interaction between the various components of the computer system 1 . Bus 40 may carry data, for example, between components of computer system 1 , for example between processor 10 and memory 20 . Bus 40 may contain wireless and/or wired communication media between the components of computer system 1 , and may include parallel, serial or other topological arrangements.

영구 저장 장치(30)는 (예를 들어, 메모리(20)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(1)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(30)는 컴퓨터 시스템(1) 내의 프로세서(10)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 영구 저장 장치(30)는 예를 들어 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.Persistent storage device 30 is a component such as a memory or other persistent storage device as used by computer system 1 to store data for an extended period of time (eg, compared to memory 20 ). may include Persistent storage 30 may include non-volatile main memory as used by processor 10 in computer system 1 . Persistent storage device 30 may include, for example, flash memory, a hard disk, an optical disk, or other computer readable medium.

입출력 인터페이스(50)는 키보드, 마우스, 음성 명령 입력, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축을 위한 정보가 입출력 인터페이스(50)를 통해 수신될 수 있다.The input/output interface 50 may include interfaces to a keyboard, mouse, voice command input, display, or other input or output device. Configuration commands and/or information for establishing a communication interface for interacting with the adversarial intelligent agent may be received via the input/output interface 50 .

네트워크 인터페이스(60)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(60)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축을 위한 정보는 네트워크 인터페이스(60)를 통해 수신될 수 있다.Network interface 60 may include one or more interfaces to networks such as a local area network or the Internet. Network interface 60 may include interfaces for wired or wireless connections. Configuration commands and/or information for establishing a communication interface for interacting with the adversarial intelligent agent may be received via the network interface 60 .

또한, 다른 실시예들에서 컴퓨터 시스템(1)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. Also, in other embodiments the computer system 1 may include more components than those of FIG. 1 . However, there is no need to clearly show most of the prior art components.

도 2는 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치를 나타내는 블록도이다.2 is a block diagram illustrating an apparatus for establishing a communication interface for interacting with a hostile intelligent agent according to an embodiment.

도 2는 도 1의 일 실시예에 따른 컴퓨터 시스템(1)의 프로세서(10)가 포함할 수 있는 구성요소의 예를 도시한 도면이다. 여기서, 컴퓨터 시스템(1)의 프로세서(10)는 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치를 포함할 수 있다. 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치(10)는 비동기 통신부(100), 세계 관리자(200), 개체 관리자(300) 및 중개자(400)를 포함할 수 있다. 보다 구체적으로, 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치(10)의 구조는 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부(100), 클라이언트 내 세계 수준 비즈니스 로직과 상호작용을 담당하기 위한 세계 관리자(200), 클라이언트 내 개체 수준 비즈니스 로직과 상호작용을 담당하기 위한 개체 관리자(300), 제3자와 단일 통신 인터페이스로 메시지 통신을 중개하기 위한 중개자(400)를 포함할 수 있다.FIG. 2 is a diagram illustrating an example of components that the processor 10 of the computer system 1 according to the embodiment of FIG. 1 may include. Here, the processor 10 of the computer system 1 may include a communication interface building device for interacting with the hostile intelligent agent according to an embodiment. The communication interface building apparatus 10 for interacting with the hostile intelligent agent according to an embodiment may include an asynchronous communication unit 100 , a world manager 200 , an object manager 300 , and an intermediary 400 . More specifically, the structure of the communication interface building apparatus 10 for interacting with the hostile intelligent agent according to an embodiment is an asynchronous communication unit 100 for communicating data in an asynchronous manner with an external program, world-level business logic within the client The world manager 200 for interacting with the client, the object manager 300 for interacting with object-level business logic in the client, and the intermediary 400 for mediating message communication with a single communication interface with a third party may include.

프로세서(10) 및 프로세서(10)의 구성요소들은 도 3의 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법이 포함하는 단계들(S110 내지 S130)을 수행할 수 있다. 예를 들어, 프로세서(10) 및 프로세서(10)의 구성요소들은 메모리(20)가 포함하는 운영체제의 코드와 상술한 적어도 하나의 프로그램 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 적어도 하나의 프로그램 코드는 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축을 처리하기 위해 구현된 프로그램의 코드에 대응될 수 있다.The processor 10 and the components of the processor 10 may perform steps S110 to S130 included in the method of constructing a communication interface for interacting with the hostile intelligent agent of FIG. 3 . For example, the processor 10 and the components of the processor 10 may be implemented to execute a code of an operating system included in the memory 20 and an instruction according to at least one program code described above. Here, the at least one program code may correspond to a code of a program implemented to handle establishing a communication interface for interacting with the hostile intelligent agent.

적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법은 도시된 순서대로 발생하지 않을 수 있으며, 단계들 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.The method of establishing a communication interface for interacting with the hostile intelligent agent may not occur in the order shown, and some of the steps may be omitted or additional processes may be further included.

도 3은 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법을 나타내는 흐름도이다.3 is a flowchart illustrating a method of establishing a communication interface for interacting with an adversarial intelligent agent according to an embodiment.

도 3을 참조하면, 일 실시예에 따른 컴퓨터 시스템(장치)에 의해 수행되는 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법은, 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부를 통해 중개자가 제3자로부터 요청 메시지를 수신하는 단계(S110), 중개자는 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계(S120), 및 중개자는 세계 관리자 또는 개체 관리자로부터 전달 받은 응답 메시지를 비동기 통신부를 통해 제3자에게 송신하는 단계(S130)를 포함하여 이루어질 수 있다. Referring to FIG. 3 , a method of constructing a communication interface for interacting with a hostile intelligent agent performed by a computer system (device) according to an embodiment includes an intermediary through an asynchronous communication unit for communicating data in an asynchronous manner with an external program. receiving a request message from a third party (S110), the intermediary processes the request message by intermediarying the request message to the world manager or object manager (S120), and the intermediary asynchronously synchronizes the response message delivered from the world manager or object manager Transmitting to a third party through the communication unit (S130) may be included.

실시예들에 따르면 외부 클라이언트 내 비즈니스 로직과 상호작용하기 위한 비동기 통신 구조를 설계하고, 해당 구조를 활용하기 위한 메시지 중개 인터페이스를 설계할 수 있다.According to embodiments, an asynchronous communication structure for interacting with business logic in an external client may be designed, and a message mediation interface may be designed to utilize the structure.

아래에서 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법을 보다 구체적으로 설명한다.A method of constructing a communication interface for interacting with a hostile intelligent agent according to an embodiment will be described in more detail below.

일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법은 도 2에서 설명한 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치를 예를 들어 보다 상세히 설명할 수 있다. The communication interface establishment method for interacting with the hostile intelligent agent according to an embodiment may be described in more detail with the example of the communication interface establishment apparatus for interacting with the hostile intelligent agent according to the embodiment described with reference to FIG. 2 .

일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치(10)는 비동기 통신부(100), 세계 관리자(200), 개체 관리자(300) 및 중개자(400)를 포함할 수 있다. 보다 구체적으로, 일 실시예에 따른 적대적 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치(10)는 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부(100), 클라이언트 내 전반적인 정보 전달과 개체 관리를 관할하는 세계 수준 비즈니스 로직과 상호작용을 담당하기 위한 세계 관리자(200), 클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직과 상호작용을 담당하기 위한 개체 관리자(300), 및 비동기 통신부를 통해 제3자로부터 요청 메시지를 수신하고, 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리한 후, 전달 받은 응답 메시지를 비동기 통신부를 통해 제3자에게 송신하는 중개자(400)를 포함하여 이루어질 수 있다. The communication interface building apparatus 10 for interacting with the hostile intelligent agent according to an embodiment may include an asynchronous communication unit 100 , a world manager 200 , an object manager 300 , and an intermediary 400 . More specifically, the apparatus 10 for constructing a communication interface for interacting with the hostile intelligent agent according to an embodiment includes the asynchronous communication unit 100 for communicating data in an asynchronous manner with an external program, and overall information delivery and object management within the client. world manager 200 for interacting with the world-level business logic governing , and an intermediary 400 that receives a request message from a third party through the asynchronous communication unit, processes the request message by mediating the world manager or object manager, and then transmits the received response message to a third party through the asynchronous communication unit 400 may be included.

단계(S110)에서, 외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부를 통해 중개자가 제3자로부터 요청 메시지를 수신할 수 있다. In step S110, an intermediary may receive a request message from a third party through an asynchronous communication unit for communicating data in an asynchronous manner with an external program.

단계(S120)에서, 중개자는 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리할 수 있다. 이 때, 세계 관리자 및 개체 관리자를 통해 클라이언트 내 전반적인 정보 전달과 개체 관리를 관할하는 세계 수준 비즈니스 로직과, 클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직을 분리하여 관리할 수 있다.In step S120 , the intermediary may process the request message by intermediarying it with the world manager or the object manager. At this time, through the world manager and object manager, the world-level business logic that governs overall information delivery and object management within the client, and the object-level business logic that governs the delivery of detailed information and manipulation of objects within the client can be managed separately. can

세계 관리자는 입력으로 전달된 요청 메시지로부터 명령 메시지를 추출하고, 추출된 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하며, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 결과 메시지로부터 응답 메시지를 생성한 뒤 반환할 수 있다. The world manager extracts a command message from the request message passed as input, asynchronously sends the extracted command message to the business logic in the external client, asynchronously receives the command processing completion result message, and then creates a response message from the result message After that, you can return it.

개체 관리자는 입력으로 전달된 요청 메시지로부터 명령 메시지를 추출하고, 요청 메시지에 기재된 피호출자 정보로부터 요청 메시지의 목적지를 확인하고, 요청 메시지의 처리를 담당하는 개체를 반환하여, 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당하도록 하며, 추출된 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하고, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 결과 메시지로부터 응답 메시지를 생성한 뒤 반환할 수 있다. The object manager extracts the command message from the request message passed as input, checks the destination of the request message from the callee information written in the request message, and returns the object responsible for processing the request message, so that the asynchronous communication is the returned object. The asynchronous communication unit managed by have.

단계(S130)에서, 중개자는 세계 관리자 또는 개체 관리자로부터 전달 받은 응답 메시지를 비동기 통신부를 통해 제3자에게 송신할 수 있다. 여기서, 중개자는 제3자와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행할 수 있다. In step S130 , the intermediary may transmit the response message received from the world manager or the object manager to a third party through the asynchronous communication unit. Here, the mediator may mediate the message so that the third party and the business logic within the client can interact with each other through a single communication interface.

도 4는 일 실시예에 따른 제3자와의 통신에 사용하는 요청 메시지 자료 구조를 나타낸다. 또한 도 5는 일 실시예에 따른 제3자와의 통신에 사용하는 응답 메시지 자료 구조를 나타낸다.4 illustrates a request message data structure used for communication with a third party according to an embodiment. 5 shows a response message data structure used for communication with a third party according to an embodiment.

도 4 및 도 5를 참조하면, 제3자와의 통신에 사용하는 메시지 자료 구조를 나타낸다. 중개자는 제3자로부터 요청 메시지(101)를 수신하고, 해당 요청 메시지(101)를 관리자에 중개하여 처리한 뒤, 그 결과를 응답 메시지(102) 형태로 송신할 수 있다. 여기서, 관리자는 세계 관리자 및/또는 개체 관리자가 될 수 있다.4 and 5, a message data structure used for communication with a third party is shown. The intermediary may receive the request message 101 from a third party, process the request message 101 by intermediarying the manager, and then transmit the result in the form of a response message 102 . Here, the administrator may be a world administrator and/or an entity administrator.

일반적으로 게임 또는 시뮬레이터의 비즈니스 로직은 세계 수준과, 해당 세계 내 등장하는 개체 수준으로 구분될 수 있다. 따라서, 본 실시예에서는 세계 수준을 담당하는 인터페이스와 개체 수준을 담당하는 인터페이스를 분리하여 관리할 수 있다. 세계 수준을 담당하는 인터페이스는 게임의 전반적인 정보 전달과 게임 및 게임 세계 내 개체 관리를 관할할 수 있다. 개체 수준을 담당하는 인터페이스는 개체의 세부 정보 전달 및 개체의 조작을 관할할 수 있다. 이러한 두 인터페이스는 모두 비동기 통신부를 바탕으로 구현되며, 외부로부터 임의의 요청 메시지를 수신할 수 있도록 한다. In general, the business logic of a game or simulator can be divided into a world level and an entity level appearing in the world. Accordingly, in this embodiment, the interface responsible for the world level and the interface responsible for the object level can be managed separately. The interface responsible for the world level can manage the overall information transfer of the game and management of the game and objects in the game world. Interfaces responsible for the object level may be responsible for passing details of objects and manipulating objects. Both of these interfaces are implemented based on the asynchronous communication unit, and allow receiving arbitrary request messages from the outside.

일반적으로 하나의 게임 클라이언트는 한 개의 세계를 생성하여 해당 세계에 여러 개의 개체를 소환할 수 있다. 따라서 세계 수준 담당 통신부는 한 번의 연결이, 개체 수준 담당 통신부는 소환된 개체 수만큼의 연결이 발생될 수 있다. 따라서, 본 실시예에서는 해당 연결을 체계적으로 관리할 수 있도록, 세계 수준 인터페이스를 담당하는 세계 관리자와 개체 수준 인터페이스를 담당하는 개체 관리자를 도입할 수 있다. 개체 관리자는 세계 내 등장하는 개체와 연결을 수행할 때마다, 담당 개체를 생성하여 해당 연결을 독립적으로 관리할 수 있다.In general, one game client can create one world and summon multiple objects to that world. Accordingly, the world-level communication unit can make one connection, and the entity-level communication unit can make as many connections as the number of summoned entities. Accordingly, in this embodiment, a world manager in charge of the world-level interface and an object manager in charge of the object-level interface may be introduced to systematically manage the corresponding connection. Whenever an object manager establishes a connection with an entity appearing in the world, he or she can create a responsible entity and manage the connection independently.

도 6은 일 실시예에 따른 세계 관리자의 구조를 나타내는 도면이다.6 is a diagram illustrating a structure of a world manager according to an embodiment.

도 6을 참조하면, 세계 관리자는 입력으로 전달된 요청 메시지(101)로부터 명령 메시지(210)를 추출할 수 있다. 그 후, 추출된 명령 메시지(210)를 외부 클라이언트 내 세계 수준 비즈니스 로직(220)으로 비동기 송신할 수 있다. 명령 처리가 완료되어 결과 메시지(230)를 비동기 수신하면, 해당 결과로부터 응답 메시지(102)를 생성한 뒤 반환할 수 있다.Referring to FIG. 6 , the world manager may extract the command message 210 from the request message 101 transmitted as an input. Thereafter, the extracted command message 210 may be asynchronously transmitted to the world-level business logic 220 in the external client. When the command processing is completed and the result message 230 is received asynchronously, a response message 102 may be generated from the result and then returned.

도 7은 일 실시예에 따른 개체 관리자의 구조를 나타내는 도면이다.7 is a diagram illustrating a structure of an object manager according to an exemplary embodiment.

도 7을 참조하면, 개체 관리자는 입력으로 전달된 요청 메시지(101)로부터 명령 메시지(310)를 추출할 수 있다. 또한, 요청 메시지(101)에 기재된 피호출자 정보로부터 해당 메시지의 목적지를 확인하고, 해당 메시지의 처리를 담당하는 개체(320)를 반환할 수 있다. 이 후, 도 7 내 모든 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당할 수 있다. 그 후, 추출된 명령 메시지(310)를 외부 클라이언트 내 개체 수준 비즈니스 로직(330)으로 비동기 송신할 수 있다. 명령 처리가 완료되어 결과 메시지(340)를 비동기 수신하면, 해당 결과로부터 응답 메시지(102)를 생성한 뒤 반환할 수 있다.Referring to FIG. 7 , the object manager may extract a command message 310 from the request message 101 transmitted as an input. In addition, the destination of the corresponding message may be confirmed from the callee information described in the request message 101 , and the entity 320 in charge of processing the corresponding message may be returned. Thereafter, all asynchronous communication in FIG. 7 may be handled by the asynchronous communication unit managed by the returned object. Thereafter, the extracted command message 310 may be asynchronously transmitted to the entity level business logic 330 in the external client. When the command processing is completed and the result message 340 is received asynchronously, a response message 102 may be generated from the result and then returned.

도 8은 일 실시예에 따른 중개자의 구조를 나타내는 도면이다.8 is a diagram illustrating a structure of an intermediary according to an embodiment.

도 8을 참조하면, 중개자는 제3자(410)와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행할 수 있다. 제3자로부터 요청 메시지(101)를 비동기 수신한 중개자는 피호출자 정보를 바탕으로 해당 메시지의 목적지를 확인할 수 있다. Referring to FIG. 8 , the mediator may mediate messages so that the third party 410 and the business logic within the client can interact through a single communication interface. An intermediary that asynchronously receives the request message 101 from a third party can check the destination of the message based on the called party information.

예컨대, 세계 수준 비즈니스 로직이 해당 메시지를 처리해야 한다면, 중개자는 세계 관리자로 메시지를 중개할 수 있다. 또한, 개체 수준 비즈니스 로직이 해당 메시지를 처리해야 한다면, 중개자는 개체 관리자로 메시지를 중개할 수 있다. 이 후, 메시지를 중개 받은 관리자가 응답 메시지(102)를 반환하면, 중개자는 비동기 송신을 통해 제3자에게 해당 응답 메시지(102)를 반환할 수 있다.For example, if world-level business logic needs to process the message, the intermediary can mediate the message as the world manager. Also, if object-level business logic needs to process the message, the intermediary can mediate the message with the object manager. Thereafter, when the manager receiving the message intermediary returns the response message 102 , the intermediary may return the corresponding response message 102 to a third party through asynchronous transmission.

지능형 에이전트를 강화 학습하기 위해서는 에이전트가 상호작용 가능한 환경의 구축이 필요하다. 만약 개발을 진행 중이거나, 이미 개발이 완료된 게임 또는 시뮬레이터에 지능형 에이전트를 도입할 경우, 지능형 에이전트의 환경과 관련된 비즈니스 로직은 이미 해당 게임 또는 시뮬레이터의 클라이언트에 구현되어 있는 상황이 대부분이다. For reinforcement learning of intelligent agents, it is necessary to establish an environment in which agents can interact. If an intelligent agent is introduced into a game or simulator that is under development or has already been developed, most of the business logic related to the environment of the intelligent agent is already implemented in the client of the game or simulator.

따라서 해당 비즈니스 로직을 최대한 활용할 수 있을 경우, 지능형 에이전트 개발과 관련된 비용을 최소화할 수 있을 것이다. 본 실시예들은 이러한 환경에서 해당 비즈니스 로직과 외부의 지능형 에이전트가 상호작용할 수 있는 환경 구축 방법에 대해 체계적으로 제시하였다.Therefore, if the corresponding business logic can be utilized to the fullest, the cost associated with the development of an intelligent agent can be minimized. The present embodiments have systematically presented a method of constructing an environment in which a corresponding business logic and an external intelligent agent can interact in such an environment.

본 실시예에서 제시한 방법을 따라 통신 인터페이스를 구축할 경우, 비즈니스 로직이 구현된 클라이언트의 최소 수정으로 지능형 에이전트와 상호작용 가능한 인터페이스를 구축이 가능하며 이에 따른 개발 비용도 최소화할 수 있다.When a communication interface is built according to the method presented in this embodiment, an interface capable of interacting with an intelligent agent can be built with minimal modification of the client in which the business logic is implemented, and thus the development cost can be minimized.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (10)

컴퓨터 시스템에 의해 수행되는 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법에 있어서,
외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부를 통해 중개자가 제3자로부터 요청 메시지를 수신하는 단계;
상기 중개자는 상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계; 및
상기 중개자는 상기 세계 관리자 또는 개체 관리자로부터 전달 받은 응답 메시지를 비동기 통신부를 통해 상기 제3자에게 송신하는 단계
를 포함하고,
상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는,
상기 세계 관리자 및 상기 개체 관리자를 통해 클라이언트 내 전반적인 정보 전달과 세계 내 개체 관리를 관할하는 세계 수준 비즈니스 로직과, 클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직을 분리하여 관리하며, 상기 세계 수준 비즈니스 로직 및 상기 개체 수준 비즈니스 로직은 비동기 통신부를 바탕으로 구현되어 외부로부터 임의의 요청 메시지를 수신하고,
하나의 상기 클라이언트는 하나의 세계에 복수 개의 개체를 소환하며, 상기 개체 관리자는 세계 내 등장하는 개체와 연결을 수행할 때마다 담당 개체를 생성하여 상기 연결을 독립적으로 관리하는 것
을 특징으로 하는, 통신 인터페이스 구축 방법.
A method of establishing a communication interface for interacting with an intelligent agent performed by a computer system, the method comprising:
receiving a request message from a third party by an intermediary through an asynchronous communication unit for communicating data in an asynchronous manner with an external program;
the intermediary processing the request message by intermediarying the request message to a world manager or an entity manager; and
transmitting, by the intermediary, a response message received from the world manager or the object manager to the third party through an asynchronous communication unit
including,
The step of processing the request message by mediating it to a world manager or an object manager,
Through the world manager and the object manager, the world-level business logic that governs overall information delivery within the client and management of objects in the world, and the object-level business logic that manages detailed information delivery and manipulation of objects within the client are separated and managed and the world-level business logic and the entity-level business logic are implemented based on an asynchronous communication unit to receive an arbitrary request message from the outside,
One of the clients summons a plurality of entities in one world, and the entity manager independently manages the connection by creating a responsible entity whenever a connection is made with an entity appearing in the world.
characterized in that, a communication interface building method.
삭제delete 제1항에 있어서,
상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는,
상기 세계 관리자는 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하는 단계;
상기 세계 관리자는 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하는 단계;
명령 처리가 완료된 결과 메시지를 상기 세계 관리자가 비동기 수신하는 단계; 및
상기 세계 관리자는 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 단계
를 포함하는, 통신 인터페이스 구축 방법.
According to claim 1,
The step of processing the request message by mediating it to a world manager or an object manager,
extracting, by the world manager, a command message from the request message transmitted as an input;
asynchronously transmitting, by the world manager, the extracted command message to business logic in an external client;
asynchronously receiving, by the world manager, a message as a result of command processing; and
The world manager generates and returns a response message from the result message
A method of establishing a communication interface, comprising:
제1항에 있어서,
상기 요청 메시지를 세계 관리자 또는 개체 관리자에게 중개하여 처리하는 단계는,
상기 개체 관리자는 입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하는 단계;
상기 요청 메시지에 기재된 피호출자 정보로부터 상기 요청 메시지의 목적지를 확인하고, 상기 요청 메시지의 처리를 담당하는 개체를 반환하여, 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당하도록 하는 단계;
상기 개체 관리자는 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하는 단계;
명령 처리가 완료된 결과 메시지를 상기 개체 관리자가 비동기 수신하는 단계; 및
상기 개체 관리자는 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 단계
를 포함하는, 통신 인터페이스 구축 방법.
According to claim 1,
The step of processing the request message by mediating it to a world manager or an object manager,
extracting, by the object manager, a command message from the request message transmitted as an input;
confirming the destination of the request message from the callee information described in the request message, and returning an entity in charge of processing the request message so that the asynchronous communication unit managed by the returned entity is responsible for the asynchronous communication;
asynchronously transmitting, by the entity manager, the extracted command message to business logic in an external client;
asynchronously receiving, by the object manager, a result message on which command processing is completed; and
The object manager generates and returns a response message from the result message
A method of establishing a communication interface, comprising:
제1항에 있어서,
상기 중개자는,
상기 제3자와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행하는 것
을 특징으로 하는, 통신 인터페이스 구축 방법.
According to claim 1,
The intermediary is
Mediation of messages so that the third party and the business logic in the client can interact with a single communication interface
characterized in that, a communication interface building method.
지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 장치에 있어서,
외부 프로그램과 비동기 방식으로 데이터를 통신하기 위한 비동기 통신부;
클라이언트 내 전반적인 정보 전달과 개체 관리를 관할하는 세계 수준 비즈니스 로직과 상호작용을 담당하기 위한 세계 관리자;
클라이언트 내 개체의 세부 정보 전달 및 개체의 조작을 관할하는 개체 수준 비즈니스 로직과 상호작용을 담당하기 위한 개체 관리자; 및
상기 비동기 통신부를 통해 제3자로부터 요청 메시지를 수신하고, 상기 요청 메시지를 상기 세계 관리자 또는 개체 관리자에게 중개하여 처리한 후, 전달 받은 응답 메시지를 비동기 통신부를 통해 상기 제3자에게 송신하는 중개자
를 포함하고,
상기 세계 관리자 및 상기 개체 관리자를 통해 상기 세계 수준 비즈니스 로직과 상기 개체 수준 비즈니스 로직을 분리하여 관리하며, 상기 세계 수준 비즈니스 로직 및 상기 개체 수준 비즈니스 로직은 비동기 통신부를 바탕으로 구현되어 외부로부터 임의의 요청 메시지를 수신하고,
하나의 상기 클라이언트는 하나의 세계에 복수 개의 개체를 소환하며, 상기 개체 관리자는 세계 내 등장하는 개체와 연결을 수행할 때마다 담당 개체를 생성하여 상기 연결을 독립적으로 관리하는 것
을 특징으로 하는, 통신 인터페이스 구축 장치.
A device for building a communication interface for interacting with an intelligent agent, comprising:
an asynchronous communication unit for communicating data in an asynchronous manner with an external program;
the world manager for interacting with the world-class business logic that governs the overall delivery of information and object management within the client;
an object manager for interacting with the object-level business logic that governs the communication of details and manipulation of objects within the client; and
An intermediary that receives a request message from a third party through the asynchronous communication unit, processes the request message by mediating the request message to the world manager or entity manager, and then transmits the received response message to the third party through the asynchronous communication unit
including,
The world-level business logic and the object-level business logic are separated and managed through the world manager and the object manager, and the world-level business logic and the object-level business logic are implemented based on an asynchronous communication unit, so that any receive a message,
One of the clients summons a plurality of entities in one world, and the entity manager independently manages the connection by creating a responsible entity whenever a connection is made with an entity appearing in the world.
characterized in that, the communication interface building device.
삭제delete 제6항에 있어서,
상기 세계 관리자는,
입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하고, 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하며, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 것
을 특징으로 하는, 통신 인터페이스 구축 장치.
7. The method of claim 6,
The world manager,
Extracts a command message from the request message delivered as an input, asynchronously transmits the extracted command message to business logic within an external client, asynchronously receives a result message on which command processing is completed, and generates a response message from the result message to return after
characterized in that, the communication interface building device.
제6항에 있어서,
상기 개체 관리자는,
입력으로 전달된 상기 요청 메시지로부터 명령 메시지를 추출하고, 상기 요청 메시지에 기재된 피호출자 정보로부터 상기 요청 메시지의 목적지를 확인하고, 상기 요청 메시지의 처리를 담당하는 개체를 반환하여, 비동기 통신은 반환된 개체가 관리하고 있는 비동기 통신부가 담당하도록 하며, 추출된 상기 명령 메시지를 외부 클라이언트 내 비즈니스 로직으로 비동기 송신하고, 명령 처리가 완료된 결과 메시지를 비동기 수신한 후, 상기 결과 메시지로부터 응답 메시지를 생성한 뒤 반환하는 것
을 특징으로 하는, 통신 인터페이스 구축 장치.
7. The method of claim 6,
The object manager,
By extracting a command message from the request message transmitted as input, confirming the destination of the request message from the callee information described in the request message, and returning an entity responsible for processing the request message, the asynchronous communication is returned Let the asynchronous communication unit managed by the entity take charge, asynchronously transmit the extracted command message to the business logic in the external client, asynchronously receive the command processing completed result message, and then generate a response message from the result message to return
characterized in that, the communication interface building device.
제6항에 있어서,
상기 중개자는,
상기 제3자와 클라이언트 내 비즈니스 로직간 단일 통신 인터페이스로 상호작용을 수행할 수 있도록 메시지의 중개를 수행하는 것
을 특징으로 하는, 통신 인터페이스 구축 장치.
7. The method of claim 6,
The intermediary is
Mediation of messages so that the third party and the business logic in the client can interact with a single communication interface
characterized in that, the communication interface building device.
KR1020210066196A 2021-05-24 2021-05-24 Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent KR102445391B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210066196A KR102445391B1 (en) 2021-05-24 2021-05-24 Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210066196A KR102445391B1 (en) 2021-05-24 2021-05-24 Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent

Publications (1)

Publication Number Publication Date
KR102445391B1 true KR102445391B1 (en) 2022-09-21

Family

ID=83452719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210066196A KR102445391B1 (en) 2021-05-24 2021-05-24 Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent

Country Status (1)

Country Link
KR (1) KR102445391B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990000779A (en) * 1997-06-10 1999-01-15 양승택 Distributed Implementation Method of Resource Service Control Unit in Intelligent Information Providing System
KR20070051145A (en) * 2005-11-14 2007-05-17 주식회사 케이티프리텔 Business logic processing method and apparatus in open mobile business supporting system
KR20210016815A (en) 2019-08-05 2021-02-17 삼성전자주식회사 Electronic device for managing a plurality of intelligent agents and method of operating thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990000779A (en) * 1997-06-10 1999-01-15 양승택 Distributed Implementation Method of Resource Service Control Unit in Intelligent Information Providing System
KR20070051145A (en) * 2005-11-14 2007-05-17 주식회사 케이티프리텔 Business logic processing method and apparatus in open mobile business supporting system
KR20210016815A (en) 2019-08-05 2021-02-17 삼성전자주식회사 Electronic device for managing a plurality of intelligent agents and method of operating thereof

Similar Documents

Publication Publication Date Title
KR20180069819A (en) Visual Content Development
CN109104467A (en) Develop environment construction method, apparatus and plateform system and storage medium
US10754869B2 (en) Managing data format of data received from devices in an internet of things network
CN109660400A (en) Flow control configuration method and system
CN109754072B (en) Processing method of network offline model, artificial intelligence processing device and related products
KR20190069655A (en) Method and apparatus of providing deep learning development platform based on cloud computing
CN105208093B (en) The structure system of resource pool is calculated in a kind of cloud operating system
JP7339335B2 (en) A method and system for efficient blockchain processing of high transaction processing volume required by DApps
CN117221324B (en) Cloud server creation task distribution method and device, electronic equipment and medium
Chakraborty et al. Virtual IoT Device in C# WPF Using Sinric Pro
CN108293047A (en) It is connected based on context and fetches security token
KR102445391B1 (en) Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent
US11650869B2 (en) Quantum computing service with local edge devices supporting multiple quantum computing technologies
CN110891660A (en) System and method for synchronizing data between computer devices
CN107404515A (en) The processing method and processing device of asynchronous http request
Nakagawa et al. Dripcast-architecture and implementation of server-less Java programming framework for billions of IoT devices
Elettreby et al. On a system of difference equations of an economic model
Ali et al. The quest for fully smart autonomous business networks in IoT platforms
US11429400B2 (en) User interface metadata from an application program interface
CN115811481A (en) Interactive service testing method and device, computer equipment and storage medium
US11477166B2 (en) Systems and methods for providing secure evolution as a service
CN108881344B (en) Service processing method and device, storage equipment and processing server
RU2632142C2 (en) Method and electronic permission management unit for objects
JP7305898B2 (en) Operation response method, operation response device, electronic device and storage medium
JP7371188B2 (en) Deep learning model tuning method and system