KR100902478B1 - Agent platform - Google Patents
Agent platform Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 15
- 230000000694 effects Effects 0.000 abstract description 2
- 208000006047 familial isolated pituitary adenoma Diseases 0.000 abstract 1
- 208000036974 gastrointestinal defects and immunodeficiency syndrome 1 Diseases 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 18
- 239000010410 layer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002567 autonomic effect Effects 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G06Q50/50—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols 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
도 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
보다 상세하게는, 상기 HTTP 서버(100)는 상기 다수의 에이전트(10a ~ 10n)에서 각각으로 사용되는 운영체제에 의존하여 동작되는 것으로써, 일단의 레이어를 형성하게 된다.More specifically, the HTTP
또한, 상기 HTTP 서버(110)는 도 2에 도시된 바와 같이 다수의 에이전트로(10a ~ 10n)부터 메시지를 수신하는 통신모듈(111)과 상기 다수의 에이전트(10a ~ 10n)에서 사용되는 각각의 운영체제와 호환되는 호환모듈(112)로 이루어진다.In addition, the
상기 통신모듈(111)은 상기 다수의 에이전트로부터 메시지를 수신하는 수신부(도시되지않음)와, 상기 다수의 에이전트(10a ~ 10n)에 메시지를 송신하는 송신부(도시되지않음)로 이루어진다.The
상기 호환모듈(112)은 상기 다수의 에이전트(10a ~ 10n)에서 사용되는 각각의 운영체제와 호환이 가능하도록 형성되는 것으로써, 상기 호환모듈(112)은 윈도우, 리눅스, 솔라리스 및 BSD 중 어느 하나의 운영체제와 호환되어 최종적으로 상기 다수의 에이전트(10a ~ 10n)에서 각각으로 사용하는 운영체제에 상관없이 동작이 가능하다.The
또한, 상기 호환모듈(112)은 상기 에이전트 플랫폼(100)의 운영체제에 의존하여 HTTP 기반의 멀티 태스킹을 수행한다.In addition, the
상기 멀티 태스킹 모델은 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
상기 메시지큐모듈(121)은 상기 다수의 에이전트로(10a ~ 10n)부터 전송되는 메시지가 상기 HTTP 서버(110)의 통신모듈(111)을 통하여 수신된 이후, 상기 수신된 메시지를 큐(que)방식으로 처리하는 것으로써, 상기 다수의 에이전트(10a ~ 10n)로부터 전송되는 메시지의 대기 행렬을 처리하여 상기 메시지의 우선순위를 정 하게 된다.The
상기 ACL모듈(122)은 상기 메시지큐모듈(121)에서 처리된 메시지를 HTTP 표준을 따르는 에이전트 표준 메시지(ACL : agent communication language)로 변환하여 FIPA(foundation for intelligent physical agent)의 표준을 따르고 있기 때문에 JADE(java agent development environment)와 같은 다른 종류의 에이전트 플랫폼과 상호 운용성을 지원한다.Since the
상기 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 클라이언트(124)의 메시지 전송기능을 확장하기 위해서 XML모듈(123)이 형성되고, 상기 XML모듈(123)은 상기 HTTP 클라이언트(124)가 상기 에이전트 플랫폼 코어(130)로 메시지를 전송할 때 상기 에이전트 플랫폼 코어(130)로 전송되는 메시지의 확장자를 XML로 변환하여 상기 HTTP 클라이언트(124)의 메시지 전송기능을 확장시킬 수 있다.In addition, an
상기 다수의 에이전트로(10a ~ 10n)부터 수신되는 메시지를 상기 에이전트플랫폼 코어(130)로 전송하는 일련의 과정을 설명하였고, 상기 에이전트 플랫폼 코어(130)에서 상기 다수의 에이전트(10a ~ 10n)에 메시지를 송신하는 방법은 상기 다수의 에이전트(10a ~ 10n)로부터 수신되는 메시지를 상기 에이전트 플랫폼 코 어(130)로 전송하는 과정의 역순으로, 당업자라면 누구나 알 수 있는 자명한 것이다.The process of transmitting the message received from the plurality of
도 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
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
상기 에이전트 플랫폼(300)이 다수의 에이전트(10)와 통신을 할 때, HTTP 표준을 따르는 에이전트 표준 언어인 ACL 메시지를 사용한다. 이를 이용해 JADE와 같 은 다른 종류의 에이전트 플랫폼과의 상호 운용성을 지원한다.When the agent platform 300 communicates with
상기 메시지 전송 모듈(320)은 에이전트(10)와 에이전트 플랫폼(300) 사이의 통신을 지원하는 것으로써, 상기 에이전트 플랫폼(300)의 초기화와 메시지 전송, 메시지 수신 같은 기본적인 모듈들의 순차적인 관계를 보여준다.The
상기 에이전트 플랫폼 코어(310)는 메인 컨테이너(311)와 에이전트 컨테이너(312) 및 해쉬테이블(313)로 형성된다.The
상기 메인 컨테이너(311)는 에이전트 플랫폼(300)을 관리하는 메인 모듈이고, 상기 메인 컨테이너(311)는 에이전트 플랫폼(300)의 초기화와 메시지 전송 모듈(320)로부터 메시지 전송을 관리하는 플랫폼 매니저 모듈(311-1)과, 리플렉티브 모듈과 같은 추가적인 서비스를 등록하고 관리하는 서비스 매니저 모듈(311-2)로 이루어진다.The
상기 에이전트 컨테이너(300)는 에이전트(10)가 갖는 기능과 역할에 따라 계층적인 그룹을 형성하고 관리 하는 것으로써, 쓰레드를 이용해서 에이전트의 행동을 관리하고 모니터링 하는 활동관리 모듈과 아이디, 주소, 역할 등 에이전트 관리 정보를 관리하는 정보관리 모듈(312-2)로 이루어진다.The agent container 300 forms and manages a hierarchical group according to functions and roles of the
상기 해쉬테이블(313)은 에이전트(10)의 아이디를 해쉬키를 사용하여 에이전트 각각의 정보의 참조 정보로 관리해준다.The hash table 313 manages the ID of the
도 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
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
도 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
지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐이며, 한정적인 것이 아님을 분명히 하고, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다. 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)
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)
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 |
-
2007
- 2007-06-13 KR KR1020070057709A patent/KR100902478B1/en not_active IP Right Cessation
Patent Citations (2)
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)
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 |