KR100902478B1 - Agent platform - Google Patents

Agent platform Download PDF

Info

Publication number
KR100902478B1
KR100902478B1 KR1020070057709A KR20070057709A KR100902478B1 KR 100902478 B1 KR100902478 B1 KR 100902478B1 KR 1020070057709 A KR1020070057709 A KR 1020070057709A KR 20070057709 A KR20070057709 A KR 20070057709A KR 100902478 B1 KR100902478 B1 KR 100902478B1
Authority
KR
South Korea
Prior art keywords
message
agent
module
agent platform
http
Prior art date
Application number
KR1020070057709A
Other languages
Korean (ko)
Other versions
KR20090003486A (en
Inventor
윤희용
황성욱
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020070057709A priority Critical patent/KR100902478B1/en
Publication of KR20090003486A publication Critical patent/KR20090003486A/en
Application granted granted Critical
Publication of KR100902478B1 publication Critical patent/KR100902478B1/en

Links

Images

Classifications

    • G06Q50/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

본 발명은 다수의 에이전트를 관리하는 에이전트 플랫폼에 관한 것으로서, 일단의 레이어로 형성되고, 상기 다수의 에이전트로부터 전송되는 HTTP 기반의 메시지를 수신하는 HTTP 서버와 상기 HTTP 서버의 타단 레이어로 형성되고, 상기 HTTP 서버에서 수신된 메시지를 상기 에이전트 플랫폼에서 메시지를 관리하는 에이전트 플랫폼 코어로 전송하는 메시지 매니저를 포함하는 것을 특징으로 한다.The present invention relates to an agent platform for managing a plurality of agents, and is formed in one layer, and is formed of an HTTP server for receiving an HTTP-based message transmitted from the plurality of agents and another layer of the HTTP server. And a message manager for transmitting the message received from the HTTP server to the agent platform core managing the message in the agent platform.

따라서, 본 발명은 일단의 레이어에 HTTP 서버가 형성되고, 타단의 레이어에 메시지 매니저가 형성되는 것으로서, 상기 HTTP 서버에 다수의 에이전트 각각의 운영체제와 호환이 가능한 호환모듈이 형성되어 상기 다수의 에이전트에서 각각으로 사용하는 운영체제에 관여없이 동작이 가능한 효과가 있다.Accordingly, in the present invention, an HTTP server is formed at one layer, and a message manager is formed at the other layer, and a compatible module compatible with each OS of the plurality of agents is formed at the HTTP server. There is an effect that can be operated without regard to each operating system used.

에이전트, 플랫폼, HTTP, 운영체제, ACL, XML, FIPA Agent, platform, HTTP, operating system, ACL, XML, FIPA

Description

에이전트 플랫폼. {Agent platform}Agent platform. {Agent platform}

도 1은 본 발명의 일실시예에 따른 에이전트 플랫폼의 구성도.1 is a block diagram of an agent platform according to an embodiment of the present invention.

도 2는 본 발명의 도 1에 따른 HTTP 서버의 구성을 나타낸 상세도.Figure 2 is a detailed diagram showing the configuration of the HTTP server according to Figure 1 of the present invention.

도 3은 본 발명의 도 1에 따른 메시지 매니저의 구성을 나타낸 상세도.3 is a detailed view showing the configuration of a message manager according to FIG. 1 of the present invention;

도 4는 본 발명의 일실시예에 따른 에이전트 플랫폼을 나타낸 구조도.4 is a structural diagram showing an agent platform according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 메시지 서비스 시스템의 구조도.5 is a structural diagram of a message service system according to an embodiment of the present invention;

도 6은 본 발명의 일실시예에 따른 메시지 전송 서비스의 순서도.6 is a flowchart of a message transmission service according to an embodiment of the present invention.

도 7은 본 발명의 일실시예에 따른 테스트 베드의 구조도.7 is a structural diagram of a test bed according to an embodiment of the present invention.

도 8은 본 발명의 일실시예에 따른 소켓 개수에 따른 처리시간 비교 분석 그래프를 나타낸 도면.8 is a graph illustrating processing time comparison analysis according to the number of sockets according to an embodiment of the present invention.

도 9는 본 발명의 일실시예에 따른 연속적인 메시지 전송에 따른 처리사간 비교 분석 그래프를 나타낸 도면.9 is a graph illustrating a comparative analysis between processors according to continuous message transmission according to an embodiment of the present invention.

도 10은 본 발명의 일실시예에 따른 메시지 크기에 따른 처리시간 비교 분석 그래프를 나타낸 도면.10 is a graph illustrating processing time comparison analysis according to message size according to an embodiment of the present invention.

* 주요 도면부호에 대한 설명 ** Description of the main drawing codes *

10, 10a~10n : 에이전트10, 10a ~ 10n: agent

100, 200, 300 : 에이전트 플랫폼100, 200, 300: agent platform

110, 320 : HTTP 서버 111 : 통신모듈110, 320: HTTP server 111: communication module

112 : 호환모듈 120 : 메시지 매니저112: compatible module 120: message manager

121 : 메시지큐모듈 122 : ACL모듈121: Message queue module 122: ACL module

123 : XML모듈 124 : HTTP 클라이언트123: XML module 124: HTTP client

130, 310 : 에이전트 플랫폼 코어130, 310: Agent platform core

201 : AMS 202 : DF201: AMS 202: DF

203 : ACC 311 : 메인 컨테이너203: ACC 311: main container

311-1 : 플랫폼 매니저 모듈 311-2 : 서비스 매니저 모듈311-1: Platform Manager Module 311-2: Service Manager Module

312 : 에이전트 컨테이너 312-1 : 활동관리 모듈312: agent container 312-1: activity management module

312-2 : 정보관리 모듈 313 : 해쉬테이블312-2: Information Management Module 313: Hash Table

본 발명은 에이전트 플랫폼에 관한 것으로서, 보다 상세하게는, HTTP 기반으로 다수의 에이전트로부터 전송되는 메시지를 수신하는 HTTP 서버와 상기 HTTP 서버에서 수신된 메시지를 관리하는 메시지 매니저가 각각의 레이어로 이루어져 메시지를 처리하는 에이전트 플랫폼에 관한 것이다.The present invention relates to an agent platform, and more particularly, an HTTP server for receiving a message transmitted from a plurality of agents on an HTTP basis, and a message manager for managing a message received from the HTTP server. It is about an agent platform for processing.

종래의 복수개의 클라이언트 프로세스와 복수개의 서버프로세스간 TCP/IP 소켓 통신처리방법에 관한 기술로서, 등록특허공보 제10-0566238은 컴퓨터통신 네트워크상에 분산된 시스템에 수용되어 있는 프로세스간 통신에 사용되는 TCP/IP 소켓통신에 있어 복수개의 클라이언트 프로세스와 동일한 기능을 수행하는 복수개의 서버 프로세스간의 통신을 효율적으로 처리하기 위한 방법에 관한 것으로, 클라이언트 프로세스가 서버 프로세스로 직접 소켓 연결설정을 하여 통신하는 방법 대신에 클라이언트 프로세스와 서버 프로세스 사이에 메시지 라우팅 프로세스를 두어 클라이언트 프로세스와 서버 프로세스가 메시지 라우팅 프로세스로 소켓 연결설정을 하고 메시지 라우팅 프로세스가 클라이언트 프로세스와 서버 프로세스간 통신을 중계하도록 하는 복수개의 클라이언트 프로세스와 복수개의 서버 프로세스간 TCP/IP 소켓 통신처리 방법에 관한 기술이었다.As a technique related to a conventional TCP / IP socket communication processing method between a plurality of client processes and a plurality of server processes, Patent Publication No. 10-0566238 is used for interprocess communication accommodated in a system distributed on a computer communication network. The present invention relates to a method for efficiently handling communication between a plurality of server processes that perform the same function as a plurality of client processes in TCP / IP socket communication. Instead of a method in which a client process directly establishes a socket connection with a server process, A message routing process between the client process and the server process so that the client process and the server process establish a socket connection to the message routing process, and allow the message routing process to relay communications between the client process and the server process. Between the client process and the server process was a description of a plurality of TCP / IP socket communication method.

그러나, 상기 종래의 기술은 다수의 에이전트 각각의 운영체제와 호환성을 고려하지 않고 사용중인 운영체제에 초점을 맞추어 독자적인 모델로 구현되기 때문에 다수의 에이전트를 중계할 때 다수의 에이전트 상호간의 통신이 어려운 문제가 있었다.However, the conventional technology has a problem that communication between a plurality of agents is difficult when relaying a plurality of agents because the conventional technology is implemented in an independent model focusing on the operating system in use without considering compatibility with each operating system of the plurality of agents. .

따라서, 본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 일단의 레이어에 HTTP 서버가 형성되고, 타단의 레이어에 메시지 매니저가 형성되는 것으로서, 상기 HTTP 서버에 다수의 에이전트 각각의 운영체제와 호 환이 가능한 호환모듈이 형성되어 상기 다수의 에이전트에서 각각으로 사용하는 운영체제에 관여없이 동작이 가능한 에이전트 플랫폼을 제공하는 효과가 있다.Accordingly, the present invention has been made to solve the above problems, an object of the present invention is to form an HTTP server in one layer, the message manager is formed in the other layer, the plurality of agents in each of the HTTP server A compatible module that is compatible with an operating system is formed to provide an agent platform capable of operating without regard to the operating system used by each of the plurality of agents.

상기 목적을 달성하기 위하여 본 발명의 일실시예에 따른 에이전트 플랫폼에 관한 것으로서, 다수의 에이전트를 관리하는 에이전트 플랫폼에 있어서, 일단의 레이어로 형성되고 상기 다수의 에이전트로부터 전송되는 HTTP 기반의 메시지를 수신하는 HTTP 서버와 상기 HTTP 서버의 타단 레이어로 형성되고 상기 HTTP 서버에서 수신된 메시지를 상기 에이전트 플랫폼에서 메시지를 상기 에이전트 플랫폼에서 메시지를 관리하는 에이전트 플랫폼 코어로 전송하는 에이전트 플랫폼 코어로 전송하는 메시지 매니저를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to an agent platform. In an agent platform for managing a plurality of agents, an HTTP-based message formed from a plurality of layers and transmitted from the plurality of agents is received. A message manager configured to form an HTTP server and another layer of the HTTP server, and transmit a message received from the HTTP server to an agent platform core that transmits a message from the agent platform to an agent platform core managing a message on the agent platform. It is characterized by including.

본 발명의 일실시예에 따르면 상기 HTTP 서버는 상기 다수의 에이전트로부터 메시지를 수신하는 통신모듈과 상기 다수의 에이전트에서 사용되는 각각의 운영체제와 호환되는 호환모듈을 포함하는 것을 특징으로 한다.According to one embodiment of the invention, the HTTP server is characterized in that it comprises a communication module for receiving messages from the plurality of agents and compatible modules compatible with each operating system used in the plurality of agents.

본 발명의 일실시예에 따르면 상기 메시지 매니저는 상기 HTTP 서버로부터 전송되는 메시지의 대기 행렬을 처리하는 메시지큐모듈과 상기 메시지큐모듈에서 처리된 메시지를 에이전트 표준 메시지로 변환하는 ACL모듈과 상기 ACL모듈에서 변환된 메시지를 상기 에이전트 플랫폼에서 메시지를 관리하는 에이전트 플랫폼 코어로 전송하는 HTTP 클라이언트를 포함하는 것을 특징으로 한다.According to an embodiment of the present invention, the message manager includes a message queue module for processing a queue of messages transmitted from the HTTP server, an ACL module for converting a message processed by the message queue module into an agent standard message, and the ACL module. It characterized in that it comprises an HTTP client for transmitting the message converted in the agent platform to the agent platform core for managing messages in the agent platform.

본 발명의 일실시예에 따르면 상기 HTTP 클라이언트에서 상기 에이전트 플랫 폼 코어로 전송하는 메시지의 확장자를 XML로 변환하는 XML모듈을 더 포함하는 것을 특징으로 한다.According to an embodiment of the present invention, the HTTP client may further include an XML module for converting the extension of the message transmitted from the HTTP to the agent platform core.

본 발명의 일실시예에 따르면 상기 HTTP 서버는 상기 에이전트 플랫폼의 운영체제에 의존하여 HTTP 기반의 멀티 태스킹을 수행하는 것을 특징으로 한다.According to an embodiment of the present invention, the HTTP server may perform HTTP-based multitasking depending on an operating system of the agent platform.

본 발명의 일실시예에 따르면 상기 호환모듈은 윈도우, 리눅스, 솔라리스 및 BSD 중 어느 하나와 호환되는 것을 특징으로 한다.According to an embodiment of the present invention, the compatible module is compatible with any one of Windows, Linux, Solaris, and BSD.

유비쿼터스 환경에서 지능적인 서비스는 오토노믹 기능을 가진 에이전트의 협업에 의하여 제공될 수 있다. 현존하는 에이전트 플랫폼에서는 메시징 스피드와 연결 가능한 에이전트수가 제한된다. 그래서 본 발명에서는 두 개의 레이어로 나누어져 메시지를 전송하는 에이전트 플랫폼을 제시하고자 한다.In a ubiquitous environment, intelligent services can be provided by the collaboration of agents with autonomic capabilities. Existing agent platforms have limited messaging speeds and the number of agents that can be connected. Therefore, the present invention intends to propose an agent platform that transmits a message divided into two layers.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예들을 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 에이전트 플랫폼의 구성도로서, 다수의 에이전트(10a ~ 10n)를 관리하는 에이전트 플랫폼(100)에 있어서, 일단의 레이어로 형성되고, 상기 다수의 에이전트(10a ~ 10n)로부터 전송되는 HTTP 기반의 메시지를 수신하는 HTTP 서버(110)와 상기 HTTP 서버(110)의 타단 레이어로 형성되고, 상기 HTTP 서버(110)에서 수신된 메시지를 상기 에이전트 플랫폼(100)에서 메시지를 관리하는 에이전트 플랫폼 코어(130)로 전송하는 메시지 매니저(120)로 이루어진다.1 is a configuration diagram of an agent platform according to an embodiment of the present invention, in the agent platform 100 for managing a plurality of agents 10a to 10n, which is formed as a single layer, and the plurality of agents 10a. ~ 10n) is formed of the HTTP server 110 and the other layer of the HTTP server 110 to receive the HTTP-based message transmitted from, and the agent platform 100 receives the message received from the HTTP server 110 The message manager 120 transmits the message to the agent platform core 130.

보다 상세하게는, 상기 HTTP 서버(100)는 상기 다수의 에이전트(10a ~ 10n)에서 각각으로 사용되는 운영체제에 의존하여 동작되는 것으로써, 일단의 레이어를 형성하게 된다.More specifically, the HTTP server 100 is operated depending on the operating system used by each of the plurality of agents 10a to 10n, thereby forming a layer.

또한, 상기 HTTP 서버(110)는 도 2에 도시된 바와 같이 다수의 에이전트로(10a ~ 10n)부터 메시지를 수신하는 통신모듈(111)과 상기 다수의 에이전트(10a ~ 10n)에서 사용되는 각각의 운영체제와 호환되는 호환모듈(112)로 이루어진다.In addition, the HTTP server 110 is a communication module 111 for receiving a message from a plurality of agents (10a ~ 10n) and the respective agents used in the plurality of agents (10a ~ 10n) as shown in FIG. It is composed of a compatible module 112 compatible with the operating system.

상기 통신모듈(111)은 상기 다수의 에이전트로부터 메시지를 수신하는 수신부(도시되지않음)와, 상기 다수의 에이전트(10a ~ 10n)에 메시지를 송신하는 송신부(도시되지않음)로 이루어진다.The communication module 111 includes a receiver (not shown) for receiving messages from the plurality of agents and a transmitter (not shown) for transmitting messages to the plurality of agents 10a to 10n.

상기 호환모듈(112)은 상기 다수의 에이전트(10a ~ 10n)에서 사용되는 각각의 운영체제와 호환이 가능하도록 형성되는 것으로써, 상기 호환모듈(112)은 윈도우, 리눅스, 솔라리스 및 BSD 중 어느 하나의 운영체제와 호환되어 최종적으로 상기 다수의 에이전트(10a ~ 10n)에서 각각으로 사용하는 운영체제에 상관없이 동작이 가능하다.The compatibility module 112 is formed to be compatible with each operating system used in the plurality of agents 10a to 10n, and the compatibility module 112 may be any one of Windows, Linux, Solaris, and BSD. It is compatible with the operating system and finally can operate regardless of the operating system used by each of the plurality of agents 10a to 10n.

또한, 상기 호환모듈(112)은 상기 에이전트 플랫폼(100)의 운영체제에 의존하여 HTTP 기반의 멀티 태스킹을 수행한다.In addition, the compatibility module 112 performs HTTP-based multitasking depending on the operating system of the agent platform 100.

상기 멀티 태스킹 모델은 select, poll, /dve/poll, epoll/ kqueue, IOCP 모델이 사용된다.The multitasking model is a select, poll, / dve / poll, epoll / kqueue, IOCP model is used.

상기 poll 모델은 운영체제인 유닉스와 윈도우에서 사용이 가능하며 많은 소켓이 연결되어도 소켓 핸들에 대한 개수에 제약이 없는 장점이 있다.The poll model can be used in operating systems Unix and Windows, and there is an advantage that there are no restrictions on the number of socket handles even when many sockets are connected.

상기 /dve/poll 모델은 운영체제인 솔라리스에서 사용이 가능하며 메시지가 도착할 때 poll 함수를 호출하는 기능이 있다.The / dve / poll model is available on Solaris, the operating system, and has a function that calls the poll function when a message arrives.

상기 epoll 모델은 운영체제인 유닉스에서 사용이 가능하여 ET(edge-triggered)와 LT(lever-triggered)를 제공한다.The epoll model can be used in Unix, an operating system, to provide edge-triggered (ET) and lever-triggered (LT).

상기 kqueue 는 운영체제인 비에스디(BSD)에 적용이 가능하는 것으로써, 상기 epoll과 마찬가지로 ET와 LT를 제공한다.The kqueue is applicable to the operating system BS (BSD), and provides ET and LT like the epoll.

상기 IOCP(I/O completion port)는 운영체제인 윈도우에서 사용이 가능한 것으로써 CPU하나당 하나의 활성화된 쓰레드를 유지하고, I/O 콜을 비동기로 오버랩 시켜서 처리속도를 빠르게 하는 장점이 있다.The IOCP (I / O completion port) can be used in Windows, which is an operating system, and maintains one active thread per CPU, and asynchronously overlaps I / O calls to speed up processing.

상기 메시지 매니저(120)는 도 3에 도시된 바와 같이 HTTP 서버(110)로부터 전송되는 메시지의 대기 행렬을 처리하는 메시지큐모듈(121)과 상기 메시지큐모듈(121)에서 처리된 메시지를 에이전트 표준 메시지로 변환하는 ACL모듈(122)과 상기 ACL모듈(122)에서 변환된 메시지를 상기 에이전트 플랫폼(100)에서 메시지를 관리하는 에이전트 플랫폼 코어(130)로 전송하는 HTTP 클라이언트(124)로 형성되고, 상기 HTTP 클라이언트(124)에서 상기 에이전트 플랫폼 코어(130)로 전송하는 메시지의 확장자를 XML로 변환하여 상기 HTTP 클라이언트(124)의 전송기능을 확장하는 XML모듈(123)을 더 포함하여 이루어진다.As illustrated in FIG. 3, the message manager 120 processes the message queue module 121 that processes the queue of messages transmitted from the HTTP server 110 and the message processed by the message queue module 121 as an agent standard. ACL module 122 for converting the message and the HTTP client 124 for transmitting the message converted in the ACL module 122 to the agent platform core 130 for managing the message in the agent platform 100, It further comprises an XML module 123 for extending the transmission function of the HTTP client 124 by converting the extension of the message transmitted from the HTTP client 124 to the agent platform core 130 to XML.

상기 메시지큐모듈(121)은 상기 다수의 에이전트로(10a ~ 10n)부터 전송되는 메시지가 상기 HTTP 서버(110)의 통신모듈(111)을 통하여 수신된 이후, 상기 수신된 메시지를 큐(que)방식으로 처리하는 것으로써, 상기 다수의 에이전트(10a ~ 10n)로부터 전송되는 메시지의 대기 행렬을 처리하여 상기 메시지의 우선순위를 정 하게 된다.The message queue module 121 queues the received message after the messages transmitted from the plurality of agents 10a to 10n are received through the communication module 111 of the HTTP server 110. In this way, the queues of messages transmitted from the plurality of agents 10a to 10n are processed to prioritize the messages.

상기 ACL모듈(122)은 상기 메시지큐모듈(121)에서 처리된 메시지를 HTTP 표준을 따르는 에이전트 표준 메시지(ACL : agent communication language)로 변환하여 FIPA(foundation for intelligent physical agent)의 표준을 따르고 있기 때문에 JADE(java agent development environment)와 같은 다른 종류의 에이전트 플랫폼과 상호 운용성을 지원한다.Since the ACL module 122 converts a message processed by the message queue module 121 into an agent communication message (ACL) complying with the HTTP standard, and follows the standard of FIPA (foundation for intelligent physical agent). It supports interoperability with other types of agent platforms such as JADE (java agent development environment).

상기 JADE는 멀티 에이전트 시스템을 구현하기 위해 사용되는 프레임워크로서 FIPA의 표준을 따르고 있다.JADE follows the standard of FIPA as a framework used to implement a multi-agent system.

상기 HTTP 클라이언트(124)는 상기 ACL모듈(122)에서 변환된 메시지를 상기 에이전트 플랫폼(100)에서 메시지를 관리하는 에이전트 플랫폼 코어(130)로 전송하여 일련의 메시지 처리과정을 최종적으로 마무리하는 것을 나타낸다.The HTTP client 124 transmits the message converted by the ACL module 122 to the agent platform core 130 that manages the message on the agent platform 100 to finally complete a series of message processing. .

또한, 상기 HTTP 클라이언트(124)의 메시지 전송기능을 확장하기 위해서 XML모듈(123)이 형성되고, 상기 XML모듈(123)은 상기 HTTP 클라이언트(124)가 상기 에이전트 플랫폼 코어(130)로 메시지를 전송할 때 상기 에이전트 플랫폼 코어(130)로 전송되는 메시지의 확장자를 XML로 변환하여 상기 HTTP 클라이언트(124)의 메시지 전송기능을 확장시킬 수 있다.In addition, an XML module 123 is formed to extend the message transmission function of the HTTP client 124, and the XML module 123 transmits a message to the agent platform core 130 by the HTTP client 124. In this case, the message transmission function of the HTTP client 124 may be extended by converting the extension of the message transmitted to the agent platform core 130 into XML.

상기 다수의 에이전트로(10a ~ 10n)부터 수신되는 메시지를 상기 에이전트플랫폼 코어(130)로 전송하는 일련의 과정을 설명하였고, 상기 에이전트 플랫폼 코어(130)에서 상기 다수의 에이전트(10a ~ 10n)에 메시지를 송신하는 방법은 상기 다수의 에이전트(10a ~ 10n)로부터 수신되는 메시지를 상기 에이전트 플랫폼 코 어(130)로 전송하는 과정의 역순으로, 당업자라면 누구나 알 수 있는 자명한 것이다.The process of transmitting the message received from the plurality of agents 10a to 10n to the agent platform core 130 has been described, and the agent platform core 130 to the plurality of agents 10a to 10n. The method of transmitting a message is a reverse order of the process of transmitting a message received from the plurality of agents 10a to 10n to the agent platform core 130, which will be apparent to those skilled in the art.

도 4는 본 발명의 일실시예에 따른 에이전트 플랫폼을 나타낸 구조도로서, 다수의 에이전트(10) 상호간의 통신은 에이전트 표준 언어인 ACL(Agent Communication Language)에서 통신이 이루어지고, DF(Directory Facilitator : 202)는 옐로우 페이지 서비스를 제공하는 에이전트이며, AMS(Agent Management Service : 201)는 화이트 페이지 서비스를 제공하고, 등록된 에이전트들의 로그를 관리해주는 에이전트이다.4 is a structural diagram illustrating an agent platform according to an embodiment of the present invention, in which communication between a plurality of agents 10 is performed in an agent communication language (ACL), which is an agent standard language, and a directory facilitator (DF). ) Is an agent that provides a yellow page service, and AMS (Agent Management Service: 201) is an agent that provides a white page service and manages a log of registered agents.

ACC(Agent Communication Channel : 203)는 인트라 플랫폼과 인터널 플랫폼 사이의 메시지 전송에서 소프트웨어 컴포넌트를 조절하는 것으로써, 에이전트 플랫폼은 다양한 에이전트의 요구와 다양한 클라이언트 환경에서의 HTTP 메시지에 대한 처리를 한다. The Agent Communication Channel (ACC) 203 controls software components in the message transmission between the intra platform and the internal platform. The agent platform handles the needs of various agents and HTTP messages in various client environments.

도 5는 본 발명의 일실시예에 따른 메시지 서비스 시스템의 구조도로서, HTTP 서버(320)는 운영체제와 의존적인 계층으로 볼 수 있다. 에이전트 플랫폼(300)은 에이전트 플랫폼 코어(310)와 메시지 전송 모듈(320)로 나누어진다. 상기 메시지 전송 모듈(320)은 HTTP 서버(321)와 메시지 매니저(322)로 형성되고, 상기 메시지 매니저(322)는 ACL 인코더/디코더, HTTP 서버, HTTP 클라이언트, 그리고 XML모듈을 포함한다.5 is a structural diagram of a message service system according to an embodiment of the present invention, the HTTP server 320 can be seen as a layer dependent on the operating system. The agent platform 300 is divided into an agent platform core 310 and a message transmission module 320. The message transmission module 320 is formed of an HTTP server 321 and a message manager 322, and the message manager 322 includes an ACL encoder / decoder, an HTTP server, an HTTP client, and an XML module.

상기 에이전트 플랫폼(300)이 다수의 에이전트(10)와 통신을 할 때, HTTP 표준을 따르는 에이전트 표준 언어인 ACL 메시지를 사용한다. 이를 이용해 JADE와 같 은 다른 종류의 에이전트 플랫폼과의 상호 운용성을 지원한다.When the agent platform 300 communicates with multiple agents 10, it uses ACL messages, which are agent standard languages that conform to the HTTP standard. This allows for interoperability with other types of agent platforms such as JADE.

상기 메시지 전송 모듈(320)은 에이전트(10)와 에이전트 플랫폼(300) 사이의 통신을 지원하는 것으로써, 상기 에이전트 플랫폼(300)의 초기화와 메시지 전송, 메시지 수신 같은 기본적인 모듈들의 순차적인 관계를 보여준다.The message transmission module 320 supports communication between the agent 10 and the agent platform 300, and shows the sequential relationship between basic modules such as initialization, message transmission, and message reception of the agent platform 300. .

상기 에이전트 플랫폼 코어(310)는 메인 컨테이너(311)와 에이전트 컨테이너(312) 및 해쉬테이블(313)로 형성된다.The agent platform core 310 is formed of a main container 311, an agent container 312, and a hash table 313.

상기 메인 컨테이너(311)는 에이전트 플랫폼(300)을 관리하는 메인 모듈이고, 상기 메인 컨테이너(311)는 에이전트 플랫폼(300)의 초기화와 메시지 전송 모듈(320)로부터 메시지 전송을 관리하는 플랫폼 매니저 모듈(311-1)과, 리플렉티브 모듈과 같은 추가적인 서비스를 등록하고 관리하는 서비스 매니저 모듈(311-2)로 이루어진다.The main container 311 is a main module for managing the agent platform 300, the main container 311 is a platform manager module for managing the initialization of the agent platform 300 and the message transmission from the message transmission module 320 ( 311-1) and a service manager module 311-2 that registers and manages additional services such as a reflective module.

상기 에이전트 컨테이너(300)는 에이전트(10)가 갖는 기능과 역할에 따라 계층적인 그룹을 형성하고 관리 하는 것으로써, 쓰레드를 이용해서 에이전트의 행동을 관리하고 모니터링 하는 활동관리 모듈과 아이디, 주소, 역할 등 에이전트 관리 정보를 관리하는 정보관리 모듈(312-2)로 이루어진다.The agent container 300 forms and manages a hierarchical group according to functions and roles of the agent 10, and manages and monitors the agent's behavior using threads, ID, address, and role. And an information management module 312-2 for managing agent management information.

상기 해쉬테이블(313)은 에이전트(10)의 아이디를 해쉬키를 사용하여 에이전트 각각의 정보의 참조 정보로 관리해준다.The hash table 313 manages the ID of the agent 10 as reference information of each agent information using a hash key.

도 6은 본 발명의 일실시예에 따른 메시지 전송 서비스의 순서도로서, 에이전트 플랫폼(300)의 초기화와 메시지 전송, 메시지 수신 같은 기본적인 모듈들의 순차적인 관계를 보여준다. 6 is a flowchart of a message transmission service according to an embodiment of the present invention, and shows a sequential relationship between basic modules such as initialization, message transmission, and message reception of the agent platform 300.

다수의 에이전트는 표준 에이전트 메시지인 ACL 메시지를 에이전트 플랫폼(300)에 보낸다. 그때, 에이전트 플랫폼 코어(310)는 메시지 전송 모듈(MTP : 320)로부터 콜백 메시지를 받는다. HTTP 헤더의 내용을 체크한 다음 만약 적절한 메시지라면 ACK 응답 메시지를 송신자에게 보낸다. MTS(320)는 ACL 라이브러리를 내장하고 있으며, ACL 라이브러리는 ACL 인코더와 ACL 디코더 라이브러리로 나누어진다.Many agents send an ACL message to agent platform 300 which is a standard agent message. At that time, the agent platform core 310 receives a callback message from the message transfer module (MTP) 320. Check the contents of the HTTP header, and if so, send an ACK response message to the sender. The MTS 320 has a built-in ACL library, which is divided into an ACL encoder and an ACL decoder library.

HTTP 서버 클래스가 시작될 때, HTTP 서버 소켓은 초기화 된다. 그때 RegisterMethod()가 호출된다. HTTP 클라이언트 메시지가 도착할 때, HTTP 서버는 HTTP 헤더 메시지를 HTTP 헤더 구조체에 따라 디코딩한다. 이러한 처리 후에 HTTP 헤더의 내용이 옳은 메시지인지 확인하고, 옳으면 사용자 콜백 함수를 호출한다.When the HTTP server class starts, the HTTP server socket is initialized. Then RegisterMethod () is called. When an HTTP client message arrives, the HTTP server decodes the HTTP header message according to the HTTP header structure. After this processing, the contents of the HTTP header are checked for correct messages, and if they are correct, the user callback function is called.

상기 에이전트 플랫폼 코어(310)는 하나의 메인 컨테이너(311)와 다수의 에이전트 컨테이너로 구성되어있다. 에이전트 컨테이너(312)가 에이전트 정보 그룹을 관리할 때 에이전트 정보는 연결 정보와 에이전트 관리 정보 그리고 에이전트 라이프 사이클 생명주기를 포함하고 있다. 에이전트 플랫폼(300)은 쓰레드로 동작하는 에이전트를 모니터하고 관리한다. 쓰레드는 에이전트의 현재 상태에 따라 동적으로 시작, 종료, 보류, 실행이라는 행동을 취하는 것을 알 수 있다.The agent platform core 310 is composed of one main container 311 and a plurality of agent containers. When the agent container 312 manages an agent information group, the agent information includes connection information, agent management information, and agent life cycle life cycle. The agent platform 300 monitors and manages an agent operating as a thread. You can see that a thread takes on a dynamic start, stop, hold, and run behavior based on the agent's current state.

도 7은 본 발명의 일실시예에 따른 테스트 베드의 구조도로서, 제안된 방법에 대한 성능평가의 테스트 플랫폼은 윈도우 기반 PC를 클라이언트로 그리고 하나의 PC를 Linux를 위해 select, poll, epoll 그리고 FreeBSD를 위하여 kqueue로 두어 성능을 비교 평가한 것을 나타낸다.7 is a structural diagram of a test bed according to an embodiment of the present invention, in which a test platform for evaluating performance of the proposed method includes select, poll, epoll, and FreeBSD for a Windows-based PC as a client and one PC for Linux. For comparison, the results are compared and evaluated in kqueue.

도 8은 본 발명의 일실시예에 따른 소켓 개수에 따른 처리시간 비교 분석 그래프를 나타낸 도면으로서, JADE에서 사용되는 poll, select 모델과 두 개의 레이어로 나누어지고 epoll과 kqueue를 사용하는 본 발명을 비교한 것이다.FIG. 8 is a graph illustrating processing time comparison and analysis graphs according to the number of sockets according to an embodiment of the present invention, and compares the present invention using poll and select models used in JADE and two layers and using epoll and kqueue. FIG. It is.

보다 상세하게는, 도 8에 도시된 바와 같이 두 개의 레이어로 이루어진 본 발명의 처리속도가 종래의 JADE 보다 빠르고, 연결되는 다수의 에이전트 수가 증가하면 처리속도의 차이는 더욱 커지게 되는 것을 그래프에서와 같이 알 수 있다.More specifically, as shown in FIG. 8, the processing speed of the present invention, which is composed of two layers, is faster than that of the conventional JADE, and the difference in processing speed becomes larger when the number of connected agents increases. You can see that together.

도 9는 본 발명의 일실시예에 따른 연속적인 메시지 전송에 따른 처리시간 비교 분석 그래프를 나타낸 도면으로서, 100개의 연결이 지속되는 상태에서 1000개의 새로운 커넥션이 메시지를 전송하거나 받을 때 걸리는 실행시간을 나타내는 것이다.FIG. 9 is a graph illustrating processing time comparison analysis for continuous message transmission according to an embodiment of the present invention. FIG. 9 illustrates execution time taken when 1000 new connections transmit or receive a message while 100 connections are maintained. To indicate.

보다 상세하게, 상기 도 8의 결과와 같이 두 개의 레이어로 이루어진 본 발명의 처리속도가 종래의 JADE 보다 빠르고, 연결되는 다수의 에이전트 수가 증가하면 처리속도의 차이는 더욱 커지게 되는 것을 그래프에서와 같이 알 수 있다.In more detail, as shown in the graph of FIG. 8, the processing speed of the present invention, which is composed of two layers, is faster than that of the conventional JADE, and when the number of connected agents increases, the difference in processing speed becomes larger. Able to know.

도 10은 본 발명의 일실시예에 따른 메시지 크기에 따른 처리시간 비교 분석 그래프를 나타낸 도면으로서, 패킷 크기가 512K로 증가했을 때 평균적인 전송시간을 보여준다.FIG. 10 is a graph illustrating processing time comparison analysis according to message size according to an embodiment of the present invention, and shows an average transmission time when the packet size is increased to 512K.

보다 상세하게, 상기 도 8 및 도 9의 성능 분석과 유사한 결과를 볼 수 있다. 많은 커넥션과 큰 크기의 패킷 사이즈를 가질 때 성능평가는, 두 개의 레이어로 나누어 처리하는 메시지 전송 모듈(320)이 에이전트 플랫폼(300)에서 메시지를 전송할 때 전송 성능을 향상되었다는 것을 결과를 알 수 있다.In more detail, results similar to the performance analysis of FIGS. 8 and 9 can be seen. Performance evaluation with large number of connections and large packet size shows that the message transmission module 320, which is divided into two layers, improves the transmission performance when the message is transmitted from the agent platform 300. .

지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐이며, 한정적인 것이 아님을 분명히 하고, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다. The present invention has been described in detail so far, but the embodiments mentioned in the process are only illustrative and are not intended to be limiting, and the present invention is provided by the following claims and the technical spirit and field of the present invention. Within the scope not departing from the scope of the present invention, changes in the components that can be coped evenly will fall within the scope of the present invention.

이상에서 설명한 바와 같이 본 발명은 일단의 레이어에 HTTP 서버가 형성되고, 타단의 레이어에 메시지 매니저가 형성되는 것으로서, 상기 HTTP 서버에 다수의 에이전트 각각의 운영체제와 호환이 가능한 호환모듈이 형성되어 상기 다수의 에이전트에서 각각으로 사용하는 운영체제에 관여없이 동작이 가능한 효과가 있다.As described above, in the present invention, an HTTP server is formed at one layer and a message manager is formed at the other layer. A compatible module compatible with operating systems of each of a plurality of agents is formed at the HTTP server. It is possible to operate without involving the operating system used by each agent of.

Claims (6)

다수의 에이전트를 관리하는 에이전트 플랫폼에 있어서,In an agent platform that manages multiple agents, 일단의 레이어로 형성되고, 상기 다수의 에이전트로부터 전송되는 HTTP 기반의 메시지를 수신하는 HTTP 서버와;An HTTP server formed of a layer and receiving an HTTP-based message transmitted from the plurality of agents; 상기 HTTP 서버의 타단 레이어로 형성되고, 상기 HTTP 서버에서 수신된 메시지를 상기 에이전트 플랫폼에서 메시지를 관리하는 에이전트 플랫폼 코어로 전송하는 메시지 매니저를 포함하는 것을 특징으로 하는 에이전트 플랫폼.And a message manager formed at the other end layer of the HTTP server and transmitting a message received from the HTTP server to an agent platform core managing a message in the agent platform. 제 1 항에 있어서,The method of claim 1, 상기 HTTP 서버는 상기 다수의 에이전트로부터 메시지를 수신하는 통신모듈과 상기 다수의 에이전트에서 사용되는 각각의 운영체제와 호환되는 호환모듈을 포함하는 것을 특징으로 하는 에이전트 플랫폼.The HTTP server comprises a communication module for receiving messages from the plurality of agents and a compatible module compatible with each operating system used in the plurality of agents. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 메시지 매니저는 상기 HTTP 서버로부터 전송되는 메시지의 대기 행렬을 처리하는 메시지큐모듈과;The message manager includes a message queue module for processing a queue of messages transmitted from the HTTP server; 상기 메시지큐모듈에서 처리된 메시지를 에이전트 표준 메시지로 변환하는 ACL모듈과;An ACL module for converting the message processed by the message queue module into an agent standard message; 상기 ACL모듈에서 변환된 메시지를 상기 에이전트 플랫폼에서 메시지를 관리하는 에이전트 플랫폼 코어로 전송하는 HTTP 클라이언트를 포함하는 것을 특징으로 하는 에이전트 플랫폼.And an HTTP client for transmitting the message converted by the ACL module to an agent platform core that manages the message in the agent platform. 제 3 항에 있어서,The method of claim 3, wherein 상기 HTTP 클라이언트에서 상기 에이전트 플랫폼 코어로 전송하는 메시지의 확장자를 XML로 변환하는 XML모듈을 더 포함하는 것을 특징으로 하는 에이전트 플랫폼.And an XML module for converting the extension of the message transmitted from the HTTP client to the agent platform core into XML. 제 4 항에 있어서,The method of claim 4, wherein 상기 HTTP 서버는 상기 에이전트 플랫폼의 운영체제에 의존하여 HTTP 기반의 멀티 태스킹을 수행하는 것을 특징으로 하는 에이전트 플랫폼.The HTTP server is an agent platform, characterized in that for performing HTTP-based multi-tasking depending on the operating system of the agent platform. 제 4 항에 있어서,The method of claim 4, wherein 상기 호환모듈은 윈도우, 리눅스, 솔라리스 및 BSD 중 어느 하나와 호환되는 것을 특징으로 하는 에이전트 플랫폼.The compatible module is an agent platform, characterized in that compatible with any one of Windows, Linux, Solaris and BSD.
KR1020070057709A 2007-06-13 2007-06-13 Agent platform KR100902478B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070057709A KR100902478B1 (en) 2007-06-13 2007-06-13 Agent platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070057709A KR100902478B1 (en) 2007-06-13 2007-06-13 Agent platform

Publications (2)

Publication Number Publication Date
KR20090003486A KR20090003486A (en) 2009-01-12
KR100902478B1 true KR100902478B1 (en) 2009-06-11

Family

ID=40486103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070057709A KR100902478B1 (en) 2007-06-13 2007-06-13 Agent platform

Country Status (1)

Country Link
KR (1) KR100902478B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0271A (en) * 1987-11-03 1990-01-05 Ausimont Spa Photoabrasion of film using as base polymer having perfluoalkyl polyether structure by eximer laser light beam
KR20040080264A (en) * 2003-03-11 2004-09-18 김일곤 Web Based Multi-Agent Platform System and Method for Providing Agent Service Using the Same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0271A (en) * 1987-11-03 1990-01-05 Ausimont Spa Photoabrasion of film using as base polymer having perfluoalkyl polyether structure by eximer laser light beam
KR20040080264A (en) * 2003-03-11 2004-09-18 김일곤 Web Based Multi-Agent Platform System and Method for Providing Agent Service Using the Same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2007년1월)*

Also Published As

Publication number Publication date
KR20090003486A (en) 2009-01-12

Similar Documents

Publication Publication Date Title
EP2622484B1 (en) Debugger launch and attach on compute clusters
US8200764B2 (en) System and method for achieving highly scalable real-time collaboration applications using HTTP
US20070263650A1 (en) Method for prioritizing web service requests
US20040250253A1 (en) Method and apparatus for providing multi-client support in a sip-enabled terminal
WO2020063086A1 (en) Data transmission method based on internet of things, and communication apparatus
CN111580995A (en) Synchronous communication method and system of distributed cloud platform and Internet of things intelligent terminal based on MQTT asynchronous communication scene
EP1401169A1 (en) Method and system using a Meta service selector for deploying services over a plurality of networks
US20190173960A1 (en) Method, device and computer program product for protocol selection
JP4527144B2 (en) Network robot system and communication method in network robot system
CN110224972A (en) One kind is towards multi-protocols polymorphic type equipment access system, method and device
CN103782278B (en) The dynamic used for offer in middleware or other environment transfers the system and method with service interface
KR20160000542A (en) Method and apparatus for gernerating data distribution service application
CN102662778A (en) Callback response method of inter-application communication on online application platform, application and online application platform
CN104463670A (en) Websocket-based bank preposition transaction system construction method
Vinoski RPC under fire
US20090307712A1 (en) Actor virtual machine
CN110557321B (en) Information transmission method, network equipment and terminal
KR100902478B1 (en) Agent platform
CN115361348B (en) Method for communicating with web browser performed by data acquisition device
CN110290139B (en) Message transmission method and device
Buzeto et al. up: A lightweight protocol for services in smart spaces
You et al. Context-based dynamic channel management for efficient event service in pervasive computing
Grace et al. Interoperating with services in a mobile environment
Yu et al. Ubiquitous service interoperation through polyarchical middleware
CN110348203A (en) A kind of queue-type sandbox document handling method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120425

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130409

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee