KR100659172B1 - Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof - Google Patents

Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof Download PDF

Info

Publication number
KR100659172B1
KR100659172B1 KR1020050119007A KR20050119007A KR100659172B1 KR 100659172 B1 KR100659172 B1 KR 100659172B1 KR 1020050119007 A KR1020050119007 A KR 1020050119007A KR 20050119007 A KR20050119007 A KR 20050119007A KR 100659172 B1 KR100659172 B1 KR 100659172B1
Authority
KR
South Korea
Prior art keywords
agent
agent platform
event
information bus
message
Prior art date
Application number
KR1020050119007A
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 KR1020050119007A priority Critical patent/KR100659172B1/en
Application granted granted Critical
Publication of KR100659172B1 publication Critical patent/KR100659172B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • 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

Abstract

A system and a method for interoperating an agent platform which is under the standard of FIPA(Foundation for Intelligent Physical Agents) spec and a non-agent platform, and a recording medium storing the same are provided to guarantee intercommunication between heterogeneous platforms, and construct the stable system by frequently checking and distributing message communication overhead with monitoring and a scheduler. An information bus adaptor(300) is the non-agent platform based on CORBA(Common Object Request Broker Architecture) event service and generates an event. A JADE(Java Agent DEvelopment framework) agent platform(400) registers multiple agents processing the event generated from the information bus adaptor. A server computer(500) is equipped with an EMTI(Effective Message Transport Interface) functioning as a bridge between the information bus adaptor and the JADE agent platform. The EMTI schedules an event task according to a context type/content of a received event message and monitors task performance. The information bus adaptor includes ORB units(501a,501b) functioning as a broker until the event transmitted to the server is completely processed.

Description

에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체{INTEROPERABLE SYSTEM BETWEEN AGENT PLATFORM AND NON-AGENT PLATFORM AND METHOD THEREOF, AND RECORDING MEDIUM THEREOF}Interoperable system between agent platform and non-agent platform and its operation method and recording medium recording it {INTEROPERABLE SYSTEM BETWEEN AGENT PLATFORM AND NON-AGENT PLATFORM AND METHOD THEREOF, AND RECORDING MEDIUM THEREOF}

도 1은 본 발명에 따른 JADE 에이전트 플랫폼의 구성을 도시한 도면, 1 is a view showing the configuration of a JADE agent platform according to the present invention,

도 2는 본 발명에 따른 CORBA 이벤트 서비스의 동작을 설명하는 도면,2 is a diagram illustrating the operation of a CORBA event service according to the present invention;

도 3은 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템의 구성을 도시한 구성도,3 is a block diagram showing a configuration of an interoperability system between an agent platform and a NON-agent platform according to the present invention;

도 4는 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법을 설명하는 흐름도,4 is a flowchart illustrating a method of interoperation between an agent platform and a NON-agent platform according to the present invention;

도 5는 본 발명에 따른 클라이언트에서 서버로 접근하기 위한 인터페이스를 IDL로 나타낸 도면,5 is a diagram illustrating an interface for accessing a server from a client according to the present invention in IDL;

도 6은 본 발명의 효율성을 평가하기 위한 시뮬레이션을 나타내는 도면.6 shows a simulation for evaluating the efficiency of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

300: 인포메이션 버스 어댑터 301: 전용 채널300: information bus adapter 301: dedicated channel

400: JADE 에이전트 플랫폼 401: 에이전트수단400: JADE agent platform 401: agent means

402: 컨테이너수단 403: 메인 컨테이너수단402: container means 403: main container means

404: AM수단 405: DF수단404: AM means 405: DF means

500: 서버컴퓨터(500) 501a, 501b: ORB수단500: server computer 500 501a, 501b: ORB means

502: II수단 503: MQ수단502: II means 503: MQ means

504: MS수단 505: IFM수단504: MS means 505: IFM means

506: 로컬 에이전트 507: ML수단506: local agent 507: ML means

본 발명은 플랫폼(Platform) 간의 상호 운용에 관한 것으로, 특히 다양한 플랫폼이 존재하는 유비쿼터스(Ubiquitous) 컴퓨팅 환경에서 기존 시스템을 변경하지 않고도 표준 FIPA(Foundation for Intelligent Physical Agents) 스펙(Specification)을 준수하는 에이전트 프레임워크(Agent Framework)와 NON-에이전트 플랫폼(Non-Agent Platform) 간의 효율적인 상호 통신을 가능하게 하는 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체에 관한 것이다.The present invention relates to interoperability between platforms, and in particular, agents that comply with standard FIPA (Foundation for Intelligent Physical Agents) specifications without changing existing systems in a ubiquitous computing environment in which various platforms exist. The present invention relates to an interoperable system that enables efficient intercommunication between an agent framework and a non-agent platform, an operation method thereof, and a recording medium recording the same.

최근 유비쿼터스 컴퓨팅 환경에 대한 관심과 요구 사항이 증대됨에 따라 상황에 적응적이고 자가성장이 가능한 에이전트 플랫폼의 연구가 활발히 진행되고 있다. 유비쿼터스(Ubiquitous)는 '언제, 어디서나 존재하는'을 뜻으로 사용자가 시간과 장소에 제약 없이 자유롭게 네트워크에 접속할 수 있는 환경을 말한다. 이러한 유비쿼터스 환경을 구축하기 위해서는 소형화ㆍ경량화ㆍ내장화ㆍ분산화 기술 등의 발전이 필수적이다. 또한, 사용자의 표정ㆍ행동ㆍ음성ㆍ신체변화 인식 등 다양한 형태의 사용자 중심 인터페이스(Interface)가 구현되어야 한다. 사용자가 필요로 하는 서비스를 제공하기 위해서는 곳곳에 편재된 센서 및 컴퓨터들이 각종 정보를 수집하여 사용자 및 주변 환경의 상황을 알아내는 에이전트의 역할이 요구된다. Recently, as interests and requirements for ubiquitous computing environment have increased, researches on agent platforms that can adapt to the situation and enable self-growth are being actively conducted. Ubiquitous refers to an environment where users can access the network freely regardless of time and place. In order to build such a ubiquitous environment, development of miniaturization, light weight, internalization, and dispersion technologies is essential. In addition, various types of user-centered interfaces such as facial expressions, behaviors, voices, and body changes should be implemented. In order to provide a service that a user needs, the role of an agent that detects the situation of the user and the surrounding environment by collecting various information from sensors and computers ubiquitous is required.

에이전트(Agent)는 동적이고 오픈(Open)된 환경에서 오퍼레이션(Operation)을 효율적으로 수행하고, 어떤 문제에 대해 스스로 해결하는 능력을 갖는다. 소프트웨어 에이전트 기술은 인공지능 연구자들에 의해 초기에는 추론 및 판단 기능을 수행할 수 있는 독립적인 동작 형태의 에이전트 기술로 시작하였다. 그러나, 그 이후 분산 환경(Distributed Environment)에서 멀티 에이전트(Multi Agent) 간의 협동을 통해 인간의 특정 임무를 대신 수행함으로써, 효과적으로 임무를 해결하는 중요한 수단으로 발전하고 있다. 소프트웨어 에이전트의 국제 표준화 단체인 FIPA의 에이전트 프레임워크는 기본적으로 에이전트 통신 언어인 ACL(Agent Communication Language)을 이용하여 멀티 에이전트 간의 메시지를 교환한다. 이탈리아 통신 업체의 TI LAB에서 개발한 대표적인 에이전트 프레임워크인 JADE(Java Agent DEvelopment Framework, 제이드) 에이전트 플랫폼은 FIPA 스펙을 준수하고, 개발자와 사용자를 위한 GUI(Graphical User Interface, 그래픽 유저 인터페이스) 환경을 제공하여 에이전트의 관리를 도와준다. 또한, 스니퍼(Sniffer)와 인트로스펙터(Introspector) 등의 툴을 이용하여 에이전트 간 통신 메시지를 추적할 수 있다. 이렇게 에이전트 프레임워크에서 사용되는 통신 언어인 ACL은 에이전트들 사이의 자율적인 문제 해결 방법으로 이용되는 것으로 기존의 통신 프로토콜과는 상당한 차이가 있다. 충분한 표현력은 물론이고, 각 에이전트 간의 정보 교환에 필요한 적절한 의미 구조를 가지며, 무엇보다 에이전트의 가장 큰 특성 중의 하나인 자율성(autonomy)을 보장한다.Agents have the ability to efficiently perform operations in a dynamic and open environment and to solve any problems themselves. Software agent technology was initially started by AI researchers as an independent motion agent technology capable of performing inference and judgment functions. However, since then, it has developed into an important means for effectively solving missions by performing specific tasks of human beings through cooperation between multi-agents in a distributed environment. FIPA's agent framework, an international standardization organization for software agents, basically exchanges messages between multiple agents using the Agent Communication Language (ACL). Java Agent Development Framework (JADE) agent platform, a representative agent framework developed by Italian telecommunications company TI LAB, conforms to the FIPA specification and provides a graphical user interface (GUI) environment for developers and users. To help manage agents. In addition, tools such as Sniffer and Introspector can be used to track agent-to-agent communication messages. ACL, which is a communication language used in the agent framework, is used as an autonomous problem solving method between agents, which is quite different from the existing communication protocol. Sufficient expressive power, as well as a proper semantic structure necessary for information exchange between each agent, guarantees autonomy, which is one of the biggest characteristics of the agent.

이와 같이 멀티 에이전트 플랫폼 시스템에 관한 기술의 일례가 대한민국 특허 등록공보 10-512015호(2005.08.25 등록: 웹 기반 멀티 에이전트 플랫폼 시스템 및 이를 이용한 에이전트 서비스 제공 방법)에 개시되어 있다.One example of the technology related to the multi-agent platform system is disclosed in Korean Patent Registration Publication No. 10-512015 (registered on Aug. 25, 2005: Web-based multi-agent platform system and method for providing agent service using the same).

상기 공보에 개시된 기술은 각 에이전트의 기능을 WSDL(Web Services Description Language) 파일로 저장하여 두고, 웹을 통해 접속되는 다수의 컴퓨터에 탑재되는 외부 소프트웨어가 에이전트의 기능을 이용하기 위하여 웹 기반의 함수 호출 요구 메시지를 전송하면, 함수 호출 요구 메시지를 에이전트 통신 언어로 변환하여 해당 에이전트가 해당 함수를 실행하도록 하고, 에이전트 통신 언어로 작성된 에이전트의 함수 실행 결과를 웹 기반의 메시지로 변환하여 해당 소프트웨어로 전달하는 웹 기반 멀티 에이전트 플랫폼 시스템 및 이를 이용한 에이전트 서비스 제공 방법에 대해 개시되어 있다.The technique disclosed in the above publication stores a function of each agent as a Web Services Description Language (WSDL) file, and external software mounted on a plurality of computers connected through the web calls a web-based function to use the function of the agent. When the request message is sent, the function call request message is converted into the agent communication language so that the agent executes the function, and the result of executing the function of the agent written in the agent communication language is converted into a web-based message and delivered to the corresponding software. Disclosed are a web-based multi-agent platform system and an agent service providing method using the same.

또, 에이전트에 관한 기술의 일례가 대한민국 특허 등록공보 10-0516794호(에이전트 시스템)에 개시되어 있다.In addition, an example of a technique related to an agent is disclosed in Korean Patent Registration Publication No. 10-0516794 (Agent System).

상기 공보에 개시된 기술은 정보 네트워크에 접속된 복수의 노드를 이동하면서 소정의 처리를 실행하는 복수의 에이전트를 구비하고, 상기 복수의 노드는 각각 에이전트를 수용하여 실행하는 복수의 에이전트 플랫폼을 구비하고, 상기 에이전트 플랫폼 또는 상기 노드 중 어느 한쪽은 동기 수단을 구비하며, 동일한 노드 내에서 동작하고 있는 복수의 에이전트가 동기를 취하여 작업을 진행시키고자 할 때에, 상기 동기 수단에 대하여 동기를 취하는 의뢰 메시지를 보냄으로써, 동일 노드 내의 복수의 에이전트가 동기를 취하여 처리를 진행시키는 에이전트 시스템에 대해 개시되어 있다.The technique disclosed in the above publication includes a plurality of agents for executing a predetermined process while moving a plurality of nodes connected to an information network, the plurality of nodes each having a plurality of agent platforms for receiving and executing agents, Either the agent platform or the node has a synchronization means, and when a plurality of agents operating in the same node want to synchronize and proceed with work, a request message for synchronizing with the synchronization means is sent. Thus, an agent system is disclosed in which a plurality of agents in the same node synchronize and proceed with processing.

그러나 상기 공보에 개시된 기술을 비롯하여 ACL을 이용한 기술에 있어서는 에이전트의 활용성을 극대화시키기는 하였으나, 기존의 플랫폼과 연동하는 것에 상당한 제약이 따르며, ACL을 기본으로 이용하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 통신을 위해서는 매개체가 필요한 문제가 있었다. However, the technique using the ACL, including the technique disclosed in the above publication, maximizes the utility of the agent, but there are significant limitations in interworking with the existing platform, and the interaction between the agent platform and the NON-agent platform using the ACL as a base There is a problem that requires a medium for communication.

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으로서, 이기종 플랫폼 간의 상호 통신을 보장하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체를 제공하는 것이다.An object of the present invention is to solve the problems described above, and to provide an interoperability system between the agent platform and the NON-agent platform to ensure mutual communication between heterogeneous platforms, its operation method and a recording medium recording the same.

본 발명의 다른 목적은 모니터링(Monitoring)과 스케줄러(Scheduler)를 이용하여 메시지 통신 오버헤드(Overhead)를 수시로 체크(Check)하고 분산시켜 안정된 시스템을 구축하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체를 제공하는 것이다.Another object of the present invention is an interoperation system between an agent platform and a NON-agent platform that builds a stable system by checking and distributing message communication overhead from time to time by using a monitoring and a scheduler. And a method of operating the same and a recording medium recording the same.

상기 목적을 달성하기 위해 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템은 네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 시스템에 있어서, CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 구비하는 서버컴퓨터를 포함하고, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 한다.In order to achieve the above object, the interoperability system between the agent platform and the NON-agent platform according to the present invention is a system that enables inter-communication between heterogeneous platforms in a networked distributed environment, and a CORBA event service-based NON-agent platform. A server computer having an information bus adapter that generates an event, a JADE agent platform that registers a plurality of agents that process events generated by the information bus adapter, and an EMTI serving as a bridge between the information bus adapter and the JADE agent platform. Wherein the EMTI schedules an event processing task according to the context type and content of the received event message and monitors the task performance.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템에 있어서, 제 1항에 있어서, 상기 인포메이션 버스 어댑터는, 상기 서버컴퓨터로 전송하는 이벤트의 처리가 완료될 때까지 중개인 역할을 하는 ORB수단을 포함하고, 발생하는 이벤트를 전송할 전용 채널을 이벤트의 수에 따라 동적으로 증감하여 생성하고, 이벤트 서비스의 푸쉬 모델과 풀 모델을 모두 지원하는 것을 특징으로 한다.Further, in the interoperability system between the agent platform and the NON-agent platform according to the present invention, the information bus adapter according to claim 1, which acts as an intermediary until the processing of the event transmitted to the server computer is completed. It includes an ORB means, and generates a dedicated channel for transmitting the generated event by dynamically increasing or decreasing according to the number of events, and supports both the push model and the pull model of the event service.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템에 있어서, 제 1항에 있어서, 상기 서버컴퓨터시스템은, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트의 처리가 완료될 때까지 중개인 역할을 하는 ORB수단, 상기 EMTI를 초기화하는 II(인터페이스 초기화)수단, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지를 임시로 저장하는 MQ(메시지 큐)수단, 상기 인 포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 처리 작업을 다중 스레드를 이용하여 스케줄링하는 MS(메시지 스케줄링)수단, 상기 EMTI를 모니터링하는 IFM(인터페이스 모니터링)수단, 상기 JADE 에이전트 플랫폼의 원격 에이전트와 통신하기 위한 로컬 에이전트, 상기 JADE 에이전트 플랫폼으로부터 수신된 이벤트 처리 결과를 저장하는 ML(메시지 리스트)수단을 포함하는 것을 특징으로 한다.Further, in the interoperation system between the agent platform and the NON-agent platform according to the present invention, the server computer system according to claim 1, acts as an intermediary until the processing of the event received from the information bus adapter is completed. An ORB means, an II (interface initialization) means for initializing the EMTI, a message queue (MQ) means for temporarily storing an event message received from the information bus adapter, a processing operation for an event message received from the information bus adapter. Message scheduling (MS) means for scheduling multiple threads using multiple threads, an interface monitoring (IFM) means for monitoring the EMTI, a local agent for communicating with a remote agent of the JADE agent platform, event processing received from the JADE agent platform ML to store the result (message lease T) means.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템에 있어서, 제 3항에 있어서, 상기 MS수단은, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 컨텍스트 타입 및 내용을 체크하고 상기 JADE 에이전트 플랫폼의 활성화된 에이전트의 실행여부를 판별하여 스케줄링하고, 스케줄에 따라 상기 MQ수단에 쌓인 메시지를 랜덤으로 추출하여 처리하는 것을 특징으로 한다.Further, in the interoperability system between the agent platform and the NON-agent platform according to the present invention, the MS means checks the context type and content of the event message received from the information bus adapter and performs the JADE. Determine and schedule the execution of an activated agent of the agent platform, and randomly extract and process the messages accumulated in the MQ means according to the schedule.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템에 있어서, 제 3항에 있어서, 상기 IFM수단은 인터페이스 자체 메시지 처리에 따른 오버헤드를 측정하고, 누적된 결과 데이터를 이용하여 향후 발생할 수 있는 오버헤드의 발생을 예측하고 모니터링하는 것을 특징으로 한다.Further, in the interoperation system between the agent platform and the NON-agent platform according to the present invention, the IFM means according to claim 3 measures the overhead according to the interface itself message processing, and using the accumulated result data in the future It is characterized by predicting and monitoring the occurrence of overhead that may occur.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템에 있어서, 제 1항에 있어서, 상기 JADE 에이전트 플랫폼은, 분산 환경에서 상호 협력을 통해 작업을 수행하는 다수의 에이전트, 하나 이상의 에이전트가 실행하기 위한 환경을 제공하는 컨테이너수단, 네트워크를 통해 원격의 에이전트와 통신을 수행하는 메인 컨테이너수단, 상기 에이전트를 생성하고 제거하며 네이밍 서 비스를 지원하는 AM(에이전트 관리)수단, 옐로우 서비스를 지원하여 상기 에이전트가 네트워크상에 존재하는 다른 에이전트를 찾기 위한 방법을 제공하는 DF(디렉터리 조정)수단을 포함하고, 하나의 독립적인 JADE 에이전트 플랫폼은 하나의 메인 컨테이너수단을 가지는 것을 특징으로 한다.In addition, in the interoperability system between the agent platform and the NON-agent platform according to the present invention, the JADE agent platform according to claim 1, a plurality of agents, one or more agents to perform work through mutual cooperation in a distributed environment Container means to provide an environment for the user to run, main container means for communicating with a remote agent through a network, agent (AM) means for creating and removing the agent and supporting naming services, and supporting yellow services. Thus, the agent includes a DF (Directory Coordination) means for providing a method for finding another agent existing on the network, and one independent JADE agent platform has one main container means.

또, 상기 목적을 달성하기 위해 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법은 네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 하기 위해 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 포함하는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 포함하는 서버컴퓨터를 구비하는 플랫폼 간의 상호 운용 방법에 있어서, 상기 서버컴퓨터가, (a) 상기 인포메이션 버스 어댑터로부터 발생된 이벤트 메시지를 수신하는 단계, (b) 상기 수신된 이벤트 메시지를 가변적인 큐에 임시 저장한 후 추출하는 단계, (c) 상기 추출된 이벤트 메시지의 처리 작업을 스케줄링하는 단계, (d) 메시지 통신 오버헤드를 측정하는 단계, (e) 상기 측정된 오버헤드가 상대적으로 적은 스레드를 이용하여 상기 JADE 에이전트 플랫폼으로 이벤트 메시지를 전송하여 활성화된 에이전트가 처리하게 하는 단계, (f) 상기 JADE 에이전트 플랫폼에서 처리된 처리 결과를 수신하여 저장하는 단계, (g) 상기 수신된 처리 결과를 상기 인포메이션 버스 어댑터에게 반환하는 단계를 실행하고, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 한다.In addition, the interoperability method between the agent platform and the NON-agent platform according to the present invention to achieve the above object is a CORBA event service-based NON agent platform to enable mutual communication between heterogeneous platforms in a networked distributed environment A server computer including an information bus adapter for generating an event, a JADE agent platform including a plurality of agents for processing events generated by the information bus adapter, and an EMTI serving as a bridge between the information bus adapter and the JADE agent platform. A method of interoperability between platforms, the server computer comprising: (a) receiving an event message generated from the information bus adapter, (b) temporarily storing the received event message in a variable queue and then extracting it doing (C) scheduling processing of the extracted event message, (d) measuring message communication overhead, and (e) using the JED agent platform using a relatively low thread. Sending an event message to an activated agent for processing, (f) receiving and storing the processing result processed by the JADE agent platform, and (g) returning the received processing result to the information bus adapter. And executing the step, wherein the EMTI schedules an event processing task according to the context type and content of the received event message and monitors the task performance.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법에 있어서, 제 7항에 있어서, 상기 단계 (b)는 임시 저장된 메시지를 랜덤으로 추출하는 것을 특징으로 한다.In the interoperation method between the agent platform and the NON-agent platform according to the present invention, the method according to claim 7, wherein step (b) is characterized in that the temporarily stored message is extracted at random.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법에 있어서, 제 7항에 있어서, 상기 단계 (c)는 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 컨텍스트 타입 및 내용을 체크하여 상기 JADE 에이전트 플랫폼의 활성화된 에이전트의 실행 여부를 판별하며, 다중 스레드를 이용하여 스케줄링하는 것을 특징으로 한다.In the interoperation method between the agent platform and the NON-agent platform according to the present invention, the method according to claim 7, wherein step (c) checks the context type and content of the event message received from the information bus adapter. JADE agent platform determines whether the active agent is running, characterized in that the scheduling using multiple threads.

또, 상기 목적을 달성하기 위해 본 발명에 따른 컴퓨터로 읽을 수 있는 기록매체는 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 구비하는 서버컴퓨터를 기능시키기 위한 프로그램을 기록하고, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 한다.In addition, in order to achieve the above object, a computer-readable recording medium according to the present invention is a non-agent platform based on a CORBA event service, an information bus adapter for generating an event, and a plurality of events for processing events generated by the information bus adapter. Records a program for functioning a server computer having a JADE agent platform registering an agent, an EMTI serving as a bridge between the information bus adapter and the JADE agent platform, wherein the EMTI is the context type and content of the received event message; In accordance with the present invention, the event processing task is scheduled and the task performance is monitored.

또, 상기 목적을 달성하기 위해 본 발명에 따른 컴퓨터로 읽을 수 있는 기록매체는 네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 하기 위해 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 포함하는 서버컴퓨터를 구비하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 단계를 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 서버컴퓨터가, 상기 인포메이션 버스 어댑터로부터 발생된 이벤트 메시지를 수신하는 단계, 상기 수신된 이벤트 메시지를 가변적인 큐에 임시 저장한 후 추출하는 단계, 상기 추출된 이벤트 메시지의 처리 작업을 스케줄링하는 단계, 메시지 통신 오버헤드를 측정하는 단계, 상기 측정된 오버헤드가 상대적으로 적은 스레드를 이용하여 상기 JADE 에이전트 플랫폼으로 이벤트 메시지를 전송하여 활성화된 에이전트가 처리하게 하는 단계, 상기 JADE 에이전트 플랫폼에서 처리된 처리 결과를 수신하여 저장하는 단계, 상기 수신된 처리 결과를 상기 인포메이션 버스 어댑터에게 반환하는 단계를 실행시키기 위한 프로그램을 기록하고, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 한다.In addition, in order to achieve the above object, a computer-readable recording medium according to the present invention generates an event to a CORBA event service-based NON-agent platform to enable mutual communication between heterogeneous platforms in a networked distributed environment. An agent having a server computer including an information bus adapter, a JADE agent platform that registers a plurality of agents for processing events generated by the information bus adapter, and an EMTI serving as a bridge between the information bus adapter and the JADE agent platform. A computer-readable recording medium for interoperating between a platform and a NON-agent platform, the server computer receiving an event message generated from the information bus adapter, and receiving the received event message. Storing the extracted temporary message in a variable queue, scheduling a processing operation of the extracted event message, measuring message communication overhead, and using the JADE agent using a relatively small thread. Sending an event message to a platform for processing by an activated agent, receiving and storing the processing result processed by the JADE agent platform, and returning the received processing result to the information bus adapter. The program may be recorded, and the EMTI may schedule an event processing task according to the context type and content of the received event message, and monitor the performance of the task.

본 발명에서는 이기종 플랫폼 간의 상호 통신을 보장하는 방법으로 EMTI(Efficient Message Transport Interface, 효과적인 메시지 전송 인터페이스)를 정의하여, CORBA(Common Object Request Broker Architecture, 코바) 이벤트 서비스를 기반으로 자체 개발한 인포메이션 버스 어댑터(Information Bus Adaptor)와 JADE 에이전트 프레임워크를 이용하여 이기종 플랫폼이 효과적으로 상호 적응할 수 있도록 한다. In the present invention, by defining an EMTI (Efficient Message Transport Interface) as a method of ensuring mutual communication between heterogeneous platforms, an information bus adapter developed by itself based on the Common Object Request Broker Architecture (COBA) event service Use the Information Bus Adapter and the JADE agent framework to help heterogeneous platforms effectively adapt to each other.

본 발명에 대한 설명에 앞서 JADE와 CORBA 이벤트 서비스에 대해 도 1 내지 도 2에 따라 간략히 설명한다. Prior to the description of the present invention, the JADE and CORBA event services will be briefly described with reference to FIGS.

도 1은 본 발명에 따른 JADE 에이전트 플랫폼의 구성을 도시한 도면이고, 도 2는 본 발명에 따른 CORBA 이벤트 서비스의 동작을 설명하는 도면이다.1 is a diagram illustrating the configuration of a JADE agent platform according to the present invention, Figure 2 is a diagram illustrating the operation of the CORBA event service according to the present invention.

- JADE 에이전트 플랫폼-JADE agent platform

멀티 에이전트 시스템에서 에이전트란 분산 환경에서 상호 협력을 통해 작업을 수행하는 컴퓨터 프로그램을 말한다. 독립적인 응용 프로그램으로는 해결할 수 없는 복잡한 서비스를 다른 에이전트와 상호 협력하여 제공할 수 있다. 또한, 사용자는 컴퓨터에는 존재하는 많은 에이전트의 사용법을 모두 모르더라도 주로 이용하는 에이전트를 통해 자신도 모르게 다른 에이전트를 사용할 수 있다. 즉, 멀티 에이전트 시스템에서는 서로 협력하는 에이전트가 존재하므로 사용자 자신도 모르게 많은 에이전트를 사용하게 되는 것이다. 에이전트의 기능에 대한 요구사항이 증대되면 새로운 기능을 가진 에이전트를 추가함으로써 기능을 쉽게 확장시킬 수 있다. JADE 에이전트 시스템은 이러한 멀티 에이전트의 개발을 쉽고 빠르게 해주는 하나의 미들웨어 프레임워크(Middleware Framework)로서 FIPA 스펙을 준수한다. 다음은 JADE 에이전트 플랫폼의 구성 요소이다.In a multi-agent system, an agent refers to a computer program that performs work in a distributed environment through mutual cooperation. You can provide complex services that work with other agents that cannot be solved by independent applications. In addition, a user may use another agent without knowing himself or herself through the agent that he or she is using even though he does not know all the usage of many agents existing in the computer. In other words, in a multi-agent system, there are agents that cooperate with each other, so many agents are used without the user's knowledge. As the requirements for an agent's capabilities increase, the functionality can be easily extended by adding agents with new capabilities. The JADE agent system complies with the FIPA specification as a middleware framework that makes development of these multi-agents easy and fast. The following are the components of the JADE agent platform.

AMS(Agent Management System, 에이전트 관리 시스템): 에이전트의 생성 및 제거를 담당하고, 네이밍 서비스(Naming Service)를 지원한다.AMS (Agent Management System): It is in charge of creating and removing agents and supports naming service.

DF(Directory Facilitator, 디렉토리 조정자): 옐로우 서비스(Yellow Service)를 지원함으로써 에이전트가 네트워크상에 존재하는 다른 에이전트를 찾기 위한 방법을 제공한다.Directory Facilitator (DF): Provides a way for an agent to find other agents on the network by supporting the Yellow Service.

도 1에서 도시하는 바와 같이, 컨테이너(Container)(101)는 하나 이상의 에이전트(103)가 실행하기 위한 환경을 제공해 준다. 원격에서 생성된 에이전트(10c)는 메인 컨테이너(101a)에 등록한 후, 네트워크를 통해 원격의 에이전트(10a)와 통신을 수행한다. 하나의 독립적인 JADE 에이전트 플랫폼(10a, 10b)에서는 반드시 하나의 메인 컨테이너만(101a, 101b)을 가질 수 있다.As shown in FIG. 1, a container 101 provides an environment for one or more agents 103 to execute. The remotely generated agent 10c registers with the main container 101a and then communicates with the remote agent 10a via the network. In one independent JADE agent platform (10a, 10b) can have only one main container (101a, 101b).

- CORBA 이벤트 서비스CORBA Event Service

이벤트 서비스는 CORBA 호출 모델의 제한적인 사항들을 개선시키기 위해 설계된 비동기적 메시지 전송을 지원하며, 하나 이상의 공급자가 하나 이상의 소비자에게 메시지를 전송하는 것을 가능하게 한다. CORBA 이벤트 서비스는 도 2에서 도시하는 바와 같이 소비자(Consumer)(201), 이벤트 채널(Event Channel)(202), 그리고 공급자(Supplier)(203)로 구성되는데, 소비자(201)와 공급자(203)는 이벤트 채널(202)에 연결되며 각각 이벤트를 생성시키고 그 이벤트를 사용한다. 이벤트 채널(202)은 소비자(201) 측에서 공급자(203)의 어떠한 정보 요구도 없이 이벤트를 전송할 수 있고, 이벤트 서비스의 중개자로서 소비자(201)와 공급자(203)의 등록, 삭 제, 신뢰적인 데이터 전송 및 에러 컨트롤(Error Control)과 관련된 일을 수행한다. 이벤트 서비스는 크게 푸쉬 모델(Push Model)과 풀 모델(Pull Model)을 제공한다. 푸쉬 모델은 공급자(203)로부터 이벤트가 발생되면 이벤트 채널(202)에 이벤트를 푸쉬하고, 이벤트 채널(202)에서 이벤트가 도착했다고 소비자(201)에게 알려주는 형식이다. 또, 풀 모델은 소비자(201)가 필요로 하는 이벤트를 이벤트 채널(202)에게 요구하고, 이벤트 채널(202)은 그 사항을 공급자(203)에게 알려 메시지를 전달받는 형식이다. The event service supports asynchronous message transfers designed to improve the limitations of the CORBA invocation model, allowing one or more providers to send messages to one or more consumers. The CORBA event service is composed of a consumer 201, an event channel 202, and a supplier 203, as shown in FIG. 2, with a consumer 201 and a supplier 203. Are connected to the event channel 202 and each generates an event and uses that event. The event channel 202 can send events on the consumer 201 side without any information request from the provider 203, and registers, deletes, and trusts the consumer 201 and the provider 203 as mediators of the event service. Performs tasks related to data transfer and error control. The event service largely provides a push model and a pull model. The push model is a form that pushes an event to the event channel 202 when the event occurs from the provider 203, and informs the consumer 201 that the event has arrived in the event channel 202. In addition, the pull model requires the event channel 202 to request an event that the consumer 201 needs, and the event channel 202 informs the provider 203 of the matter and receives a message.

도 2a에 도시된 푸쉬 모델에서는 공급자(203)가 이벤트 채널(202)에 이벤트를 푸쉬하고, 이벤트 채널(202)은 받은 이벤트를 소비자(201)에게 넘겨준다. 반면, 도 2b에 도시된 풀 모델에서는 푸쉬 모델과는 반대로 소비자(201)가 이벤트 채널 중개자인 이벤트 채널(202)에게 이벤트를 요구하고, 이벤트 채널(202)은 공급자(203)에게 어떤 이벤트를 달라고 요청한다. CORBA 이벤트 서비스를 이용하여 애플리케이션(Application)을 개발할 때 푸쉬 모델과 풀 모델의 조합을 통해 4가지 모델인 '푸쉬/푸쉬', '푸쉬/풀', '풀/풀', '풀/푸쉬'를 사용할 수 있다. 이는 개발하고자 하는 애플리케이션의 특성과 디자인을 고려하여 선택해야 한다.In the push model shown in FIG. 2A, the provider 203 pushes an event to the event channel 202, and the event channel 202 passes the received event to the consumer 201. In contrast, in the pull model shown in FIG. 2B, in contrast to the push model, the consumer 201 requests an event from the event channel 202, which is an event channel mediator, and the event channel 202 asks the provider 203 for an event. request. When developing an application using the CORBA event service, a combination of the push model and the pull model is used to select four models: 'push / push', 'push / pull', 'pull / pull', and 'pull / push'. Can be used. This should be chosen in consideration of the characteristics and design of the application to be developed.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다. 또한, 본 발명의 설명에 있어서는 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.Hereinafter, the most preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily practice the present invention. . In addition, in description of this invention, the same code | symbol is attached | subjected to the same part and the repeated description is abbreviate | omitted.

도 3은 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템의 구성을 도시한 구성도이다.3 is a block diagram illustrating a configuration of an interoperability system between an agent platform and a NON-agent platform according to the present invention.

도 3에서 도시하는 바와 같이, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템은 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터(300), 인포메이션 버스 어댑터(300)에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼(400), 인포메이션 버스 어댑터(300)와 JADE 에이전트 플랫폼(400) 간의 브리지(Bridge) 역할을 하는 EMTI를 구비하는 서버컴퓨터(500)를 구비한다. As shown in FIG. 3, the interoperability system between the agent platform and the NON-agent platform according to the present invention includes an information bus adapter 300 and an information bus adapter 300 in which events are generated in a NBA agent platform based on CORBA event service. Server computer 500 having an EMTI acting as a bridge between the JADE agent platform 400 and the information bus adapter 300 and the JADE agent platform 400 that register a plurality of agents handling events occurring in ).

각각의 역할에 대한 설명은 다음과 같다.Each role is described as follows.

도 3에 도시된 클라이언트 사이드(Client Side)의 인포메이션 버스 어댑터(300)는 서버컴퓨터(500)로 전송하는 이벤트의 처리가 완료될 때까지 이벤트 메시지를 서버컴퓨터(500)로 전달하고, 이벤트 메시지의 처리 결과를 서버컴퓨터(500)로부터 반환받는 중개인 역할을 하는 ORB수단(501a)을 구비한다.The information bus adapter 300 of the client side illustrated in FIG. 3 delivers an event message to the server computer 500 until the processing of the event transmitted to the server computer 500 is completed, and the event message ORB means 501a serving as a broker for receiving the processing result from server computer 500 is provided.

인포메이션 버스 어댑터(300)에서는 특정 이벤트가 발생하면 이벤트를 전송할 전용 채널(Channel)(301)이 생성된다. 채널은 이벤트의 종류와 내용에 따라 자동으로 분리되어 생성된다. 또한, 채널은 이벤트의 수에 따라 동적으로 증가하거나 감소하여 최적의 채널 개수를 유지함으로써 채널 관리에 따른 오버헤드를 줄인다. 발생한 이벤트는 네이밍 서비스를 이용하여 어느 객체에게 메시지를 전달할 것인가를 찾고, 그 후 ORB(Object Request Broker, 객체 요청 브로커)수단(501)을 통해 서버 구현 객체인 서버컴퓨터(500)에게 전달된다. 인포메이션 버스 어댑터(300)는 기본적으로 푸쉬 및 풀 모델을 지원한다.In the information bus adapter 300, when a specific event occurs, a dedicated channel 301 for transmitting the event is generated. Channels are automatically created according to the type and content of the event. In addition, the channel dynamically increases or decreases according to the number of events to maintain an optimal number of channels, thereby reducing the overhead of channel management. The generated event finds which object to send a message to using a naming service, and then delivers the event to the server computer 500 which is a server implementation object through an ORB (Object Request Broker) means 501. Information bus adapter 300 basically supports push and pull models.

서버 사이드(Server Side)의 서버컴퓨터(500)는 인포메이션 버스 어댑터(300)로부터 수신된 이벤트의 처리가 완료될 때까지 중개인 역할을 하는 ORB수단(501b), EMTI를 초기화하는 II(Initializing Interface, 인터페이스 초기화)수단(502), 인포메이션 버스 어댑터(300)로부터 수신된 이벤트 메시지를 임시로 저장하는 MQ(Message Queue, 메시지 큐)수단(503), 인포메이션 버스 어댑터(300)로부터 수신된 이벤트 메시지의 처리 작업을 스케줄링하는 MS(Message Scheduling, 메시지 스케줄링)수단(504), EMTI를 모니터링하는 IFM(Interface Monitoring, 인터페이스 모니터링)수단(505), JADE 에이전트 플랫폼(400)의 원격 에이전트와 통신하기 위한 로컬 에이전트(506), JADE 에이전트 플랫폼(400)으로부터 수신된 이벤트 처리 결과를 저장하는 ML(Message List, 메시지 리스트)수단(507)을 구비한다.The server computer 500 of the server side includes an ORB means 501b that acts as a broker until the processing of events received from the information bus adapter 300 is completed, and an II (Initializing Interface, interface) for initializing the EMTI. Initialization) means 502, MQ (Message Queue, message queue) means 503 for temporarily storing the event message received from the information bus adapter 300, processing operation of the event message received from the information bus adapter 300 Message Scheduling (MS) means 504 for scheduling the message, Interface Monitoring (IFM) means 505 for monitoring the EMTI, Local Agent 506 for communicating with a remote agent of the JADE agent platform 400 And a message list (ML) means 507 for storing an event processing result received from the JADE agent platform 400.

각각에 대한 더욱 구체적인 설명은 다음과 같다.A more detailed description of each is as follows.

II수단(502)은 이기종 플랫폼 간의 통신을 위해 인터페이스를 초기화한다. 메시지를 임시 저장하기 위한 arrayList 및 MQ수단을 제어하고, MS수단(504)을 활성화시킨다.II means 502 initializes the interface for communication between heterogeneous platforms. It controls the arrayList and MQ means for temporarily storing the message and activates the MS means 504.

IFM수단(505)은 EMTI의 모니터링을 담당한다. 메시지 전달 스레드(Thread)의 오버헤드를 체크하고, 작업 수행을 모니터링한다.IFM means 505 is responsible for monitoring the EMTI. Check the overhead of the message delivery thread and monitor performance.

ML수단(507)은 JADE 에이전트 플랫폼(400)에서 에이전트 간의 협업에 의해 처리된 결과 데이터를 EMTI를 통해 다시 전달받아, 전달받은 데이터를 arrayList에 의해 생성된 버퍼(Buffer)에 저장하여 데이터 손실에 따른 문제점을 해결하고 안정성을 향상시킨다.The ML means 507 receives the result data processed by the collaboration between the agents in the JADE agent platform 400 through EMTI, and stores the received data in a buffer created by the arrayList according to data loss. Solve problems and improve stability.

MS수단(504)은 다중 스레드를 이용하여 작업들을 스케줄링한다. MS수단(504)이 시작될 때 getEventMessage()가 실행되고, getEventMessage()는 MQ수단(503)에서부터 작업의 내용을 가져오는 디스패처(Dispatcher)의 역할을 수행한다. 또한 이벤트 메시지의 컨텍스트 타입(Context Type) 및 내용을 체크한 후 MQ수단(503)에 쌓인 메시지를 랜덤(Random)하게 추출하여 처리한다.MS means 504 schedules tasks using multiple threads. GetEventMessage () is executed when MS means 504 starts, and getEventMessage () acts as a dispatcher to get the content of the job from MQ means 503. After checking the context type and content of the event message, the message accumulated in the MQ means 503 is randomly extracted and processed.

MQ수단(503)은 EMTI 내에 메시지를 임시 저장하는 가변적인 큐(Queue)를 두었고, 큐에 담긴 메시지의 종류와 속성을 파악하여 해당 메시지를 추출하여 통신한다.MQ means 503 has a variable queue for temporarily storing messages in the EMTI, grasp the types and attributes of the messages contained in the queue to extract and communicate with the message.

서버컴퓨터(500)에서는 EMTIServant 클래스의 인스턴스(Instance)를 생성하여 ORB수단(501) 및 EMTI를 초기화하고, 네이밍 서비스에 네이밍 컨텍스트(Naming Context)를 등록한다. 또한, JADE 에이전트 플랫폼(400)에서 이벤트에 대한 결과를 저장할 ML(메시지 리스트)수단(507)을 생성한다. 서버컴퓨터(500)가 초기화된 후, EMTI에서는 JADE 에이전트 플랫폼(400)의 원격 에이전트(Remote Agent)와 통신하기 위한 로컬 에이전트(Local Agent)(506)를 생성한다. 원격 에이전트 플랫폼의 AM수단(404)에게 쿼리(Query)를 보내 현재 등록되어 있는 에이전트의 리스트를 받아온 후 활성화된 해당 에이전트와 통신하게 된다. 에이전트는 기본적으로 활성화(activated)와 비활성화(suspend)의 상태를 가진다.The server computer 500 initializes the ORB means 501 and the EMTI by creating an instance of the EMTIServant class, and registers a naming context with the naming service. In addition, the JADE agent platform 400 generates an ML (message list) means 507 to store the result of the event. After the server computer 500 is initialized, EMTI creates a local agent 506 for communicating with a remote agent of the JADE agent platform 400. It sends a query to the AM means 404 of the remote agent platform, receives a list of currently registered agents, and communicates with the activated agent. Agents have a status of activated and suspended by default.

에이전트 플랫폼인 JADE 에이전트 플랫폼(400)은 분산 환경에서 상호 협력을 통해 작업을 수행하는 다수의 에이전트수단(401), 하나 이상의 에이전트(401)가 실행하기 위한 환경을 제공하는 컨테이너수단(Container)(402), 네트워크를 통해 원격의 에이전트와 통신을 수행하는 메인 컨테이너수단(Main Container)(403), 에이전트(401)를 생성하고 제거하며 네이밍 서비스를 지원하는 AMS의 역할을 하는 AM(Agent Management, 에이전트 관리)수단(404), 옐로우 서비스를 지원하여 에이전트(401)가 네트워크상에 존재하는 다른 에이전트를 찾기 위한 방법을 제공하는 DF(디렉토리 조정)수단(405)을 구비한다. 멀티 에이전트 시스템에서는 에이전트 사이의 정보 교환이 매우 빈번하게 일어나며, 이 과정은 AM관리수단(404)에 의하여 제어된다. 서버컴퓨터(500)에서 수신된 이벤트 데이터는 컨텍스트의 종류에 따라 각기 다른 성격의 에이전트(401)가 수행된다. JADE 에이전트 플랫폼(400)에서는 해당 동작을 수행한 후, 결과값을 요청한 인포메이션 버스 어댑터(300)로 리턴하기 위해 서버컴퓨터(500) 내의 ML수단(507)으로 값을 송출하여 저장한다.JADE agent platform 400, which is an agent platform, includes a plurality of agent means 401 for performing tasks through mutual cooperation in a distributed environment, and container means 402 for providing an environment for one or more agents 401 to execute. Main Container 403, which communicates with a remote Agent through a network, creates and removes Agent 401, and acts as an AMS that supports the naming service. Means 404, DF (directory coordination) means 405, which supports the yellow service and provides a method for the agent 401 to find other agents present on the network. In a multi-agent system, information exchange between agents occurs very frequently, and this process is controlled by the AM management means 404. The event data received from the server computer 500 is performed by the agent 401 having different characteristics according to the type of context. After performing the operation, the JADE agent platform 400 transmits and stores the value to the ML means 507 in the server computer 500 to return the result value to the requested information bus adapter 300.

본 발명의 실시예에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법에 대해 도 4에 따라 설명한다.A method of interoperation between an agent platform and a NON-agent platform according to an embodiment of the present invention will be described with reference to FIG. 4.

도 4는 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of interoperation between an agent platform and a NON-agent platform according to the present invention.

우선, 인포메이션 버스 어댑터(300)에서 이벤트가 생성되면(ST 4110), 이벤 트를 전송할 전용 채널을 생성한다. 발생한 이벤트는 네이밍 서비스인 omniNames를 이용하여 메시지를 전달할 객체를 찾고, 인포메이션 버스 어댑터(300)의 ORB수단(501a)을 통해 서버컴퓨터(500)로 이벤트 메시지를 전달한다(ST 4120). 서버컴퓨터(500)의 ORB수단(501b)에서는 인포메이션 버스 어댑터(300)의 ORB수단(501a)로부터 이벤트 메시지를 수신하고(ST 4210), 이를 MQ수단(503)의 가변적인 큐에 임시 저장한 후 랜덤으로 추출한다(ST 4220). 다음으로, MS수단(504)이 MQ수단(503)에 저장된 이벤트 메시지의 처리 작업을 다중 스레드를 이용하여 스케줄링한다(ST 4230). 스케줄링은 인포메이션 버스 어댑터(300)로부터 수신된 이벤트 메시지의 컨텍스트 타입 및 내용을 체크하고, JADE 에이전트 플랫폼(400)의 활성화된 에이전트의 실행 여부를 판별하여 이루어진다. 다음으로, IFM수단(505)이 메시지 전달 스레드의 오버헤드를 측정한다(ST 4240). 메시지 통신 오버헤드(Overhead)는 수시로 체크하여 메시지 전달 스레드의 작업 스케줄을 분산시키고, 향후 발생할 수 있는 오버헤드를 예측한다. 단계 ST 4220에서 추출된 메시지는 측정된 로컬 에이전트(506)를 통해 오버헤드가 상대적으로 적은 스레드를 이용하여 JADE 에이전트 플랫폼(400)의 AM수단(404)으로 전송하여(ST 4250) 활성화된 에이전트가 처리하게 한다. 이벤트 메시지를 수신한(ST 4310) JADE 에이전트 플랫폼(400)의 해당 에이전트(401)는 이벤트를 처리하여(ST 4320) 다시 서버컴퓨터(500)로 처리 결과를 반환한다(ST 4330). 서버컴퓨터(500)는 JADE 에이전트 플랫폼(400)에서 처리된 처리 결과를 로컬 에이전트(506)를 통해 수신하여 ML수단(507)에 저장한다(ST 4260). ML수단(507)에 저장된 처리 결과는 인포메이션 버스 어댑터(300)에게 다시 반환한다(ST 4270). 인포메이 션 버스 어댑터(300)는 이를 수신한다(ST 4130).First, when an event is generated in the information bus adapter 300 (ST 4110), a dedicated channel for transmitting an event is generated. The generated event finds an object to which the message is delivered using omniNames, which is a naming service, and delivers the event message to the server computer 500 through the ORB means 501a of the information bus adapter 300 (ST 4120). The ORB means 501b of the server computer 500 receives the event message from the ORB means 501a of the information bus adapter 300 (ST 4210), and temporarily stores it in a variable queue of the MQ means 503. Extract at random (ST 4220). Next, the MS means 504 schedules the processing of the event message stored in the MQ means 503 using multiple threads (ST 4230). The scheduling is performed by checking the context type and content of the event message received from the information bus adapter 300 and determining whether the activated agent of the JADE agent platform 400 is executed. Next, the IFM means 505 measures the overhead of the message delivery thread (ST 4240). Message communication overhead is checked from time to time to distribute the work schedule of message delivery threads and to predict future overhead. The message extracted in step ST 4220 is transmitted through the measured local agent 506 to the AM means 404 of the JADE agent platform 400 by using a thread having a relatively low overhead (ST 4250). Let's do it. The agent 401 of the JADE agent platform 400 having received the event message (ST 4310) processes the event (ST 4320) and returns the processing result back to the server computer 500 (ST 4330). The server computer 500 receives the processing result processed by the JADE agent platform 400 through the local agent 506 and stores it in the ML means 507 (ST 4260). The processing result stored in the ML means 507 is returned back to the information bus adapter 300 (ST 4270). The information bus adapter 300 receives this (ST 4130).

도 5는 본 발명에 따른 클라이언트에서 서버로 접근하기 위한 인터페이스를 IDL(Interface Definition Language, 인터페이스 정의 언어)로 나타낸 도면이다.5 is a diagram illustrating an interface for accessing a server from a client according to the present invention in an interface definition language (IDL).

도 5에서 도시하는 바와 같이, IDL내에는 이벤트 인터페이스가 정의되어 있으며, 이를 통해 외부에서의 접근을 가능하게 한다. passing_message(in EventData data) 메소드(Method)는 어댑터에서 발생한 이벤트 데이터를 수신하여 에이전트 플랫폼으로 메시지를 전달하는 역할을 한다. 그 외 에이전트를 찾거나 에이전트 리스트를 파악하는 등의 보조적 역할을 하는 메소드가 있다. IDL은 프리컴파일러(Precompiler)에 의해서 컴파일되어 서버 클래스의 구현을 위한 skeleton 및 stub코드를 생성한다. 생성된 코드를 기반으로 서버의 구현객체를 정의한다. IDL로 인터페이스를 통일하는 기법으로, Java, C++, python 등의 언어에 상관없이 클라이언트가 구현 확장되어 ORB를 통해 서버와 연결할 수 있는 장점을 가진다.As shown in FIG. 5, an event interface is defined in IDL, thereby enabling external access. The passing_message (in EventData data) method receives event data generated by the adapter and delivers a message to the agent platform. There are other methods to assist you in finding an agent or getting a list of agents. IDL is compiled by the precompiler to generate skeleton and stub code for the implementation of the server class. Defines server implementation object based on generated code. This is a method of unifying the interface with IDL. It has the advantage of connecting to the server through ORB by extending the client regardless of languages such as Java, C ++, and python.

도 6은 본 발명의 효율성을 평가하기 위한 시뮬레이션을 나타내는 도면이다.6 shows a simulation for evaluating the efficiency of the present invention.

도 6에서 도시하는 바와 같이, 본 발명에 따른 인포메이션 버스 어댑터 및 EMTI를 통해 송수신되는 다량의 메시지를 가지고 인터페이스의 효율성에 대해 평가한다. 본 시뮬레이션에서는 도 6a에 도시된 이벤트 메시지를 발생시키는 공급자 역할을 하는 인포메이션 버스 어댑터용 PC 한 대, 메시지를 받아 처리하는 소비자 역할을 하는 다수의 PC, 그리고 이벤트 채널을 담당하는 SUN 서버를 사용하였다. 또 한, 더미(Dummy) 데이터를 256 바이트(bytes)부터 2 메가 바이트(M bytes)까지 크기를 점차 증가시키면서 전송 속도를 측정하였다. 어댑터에서 생성한 더미 이벤트 메시지는 에이전트 플랫폼에서 수신한 후 바로 피드백(Feedback)해 주는 방식으로 수행하였고, 결과값에 대한 신뢰성을 높이기 위해 각 더미 데이터에 대해 1000번을 반복 수행하였다.As shown in Fig. 6, the efficiency of the interface is evaluated with a large amount of messages transmitted and received via the information bus adapter and EMTI according to the present invention. In this simulation, a PC for an information bus adapter serving as a provider for generating an event message shown in FIG. 6A, a plurality of PCs serving as a consumer for receiving a message, and a SUN server for an event channel are used. In addition, the transfer speed was measured while gradually increasing the size of the dummy data from 256 bytes to 2 megabytes (M bytes). The dummy event message generated by the adapter was fed back as soon as it was received by the agent platform, and repeated 1000 times for each dummy data to increase the reliability of the result value.

실험 결과는 도 6b와 같다. 이벤트 메시지의 수는 10개에서 1000개까지 증가시키면서 평균 처리시간을 나타낸다. 어댑터는 신뢰성을 높이기 위해 일정량의 이벤트 메시지를 수신 한 후 각각의 메시지마다 ACK(Acknowledge, 확인)신호를 전송하는 신뢰성 로직(Logic)을 추가하였다. 이로 인하여 어댑터의 성능이 기존의 신뢰성을 지원한 omniEvents의 성능보다 앞선 결과를 보여준다. 또한, 초기 10개에서의 평균 처리 시간은 20개 또는 30개의 이벤트 메시지 처리 시간보다 높은 것을 볼 수 있다. 이는 초기 메시지를 전송하는 과정에서 에이전트 플랫폼의 AMS 에이전트에게 쿼리를 보내 해당 에이전트를 찾고 연결하는 과정에서 약간의 딜레이(Delay)가 발생하기 때문이다.Experimental results are shown in FIG. 6b. The number of event messages increases from 10 to 1000, representing the average processing time. To increase reliability, the adapter adds a reliability logic that sends an acknowledgment signal after receiving a certain amount of event messages. As a result, the performance of the adapter outperforms that of omniEvents, which supports the existing reliability. In addition, it can be seen that the average processing time in the initial 10 is higher than the processing time of 20 or 30 event messages. This is because some delay occurs when sending a message to the AMS agent of the agent platform during the initial message transmission and finding and connecting to the agent.

이상, 본 발명자에 의해서 이루어진 발명은 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.As mentioned above, although the invention made by this inventor was demonstrated concretely according to the said Example, this invention is not limited to the said Example and can be variously changed in the range which does not deviate from the summary.

상술한 바와 같이, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체에 의하면, 이기종 플랫폼 간의 상호 통신을 보장할 수 있다는 효과가 얻어진다.As described above, according to the interoperability system between the agent platform and the NON-agent platform according to the present invention, its operation method and a recording medium recording the same, an effect of ensuring mutual communication between heterogeneous platforms can be obtained.

또, 본 발명에 따른 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템과 그 운용 방법 및 이를 기록한 기록매체에 의하면, 메시지 통신 오버헤드를 수시로 체크하고 분산시켜 안정된 시스템을 구축할 수 있다는 효과도 얻어진다.In addition, according to the interoperability system between the agent platform and the NON-agent platform according to the present invention, the operation method thereof, and the recording medium recording the same, an effect of establishing a stable system by checking and distributing the message communication overhead from time to time is also obtained. .

Claims (11)

네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 시스템에 있어서,In a system that enables mutual communication between heterogeneous platforms in a networked distributed environment, CORBA(코바) 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터,Information bus adapters that generate events with a NON-Agent platform based on CORBA event service, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE(제이드) 에이전트 플랫폼,JADE agent platform that registers a plurality of agents for processing events generated by the information bus adapter, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI(효과적인 메시지 전송 인터페이스)를 구비하는 서버컴퓨터를 포함하고,A server computer having an EMTI (Effective Message Transfer Interface) serving as a bridge between the information bus adapter and the JADE agent platform, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.The EMTI schedules an event processing task according to the context type and content of the received event message, and monitors the performance of the agent platform. 제 1항에 있어서,The method of claim 1, 상기 인포메이션 버스 어댑터는,The information bus adapter, 상기 서버컴퓨터로 전송하는 이벤트의 처리가 완료될 때까지 중개인 역할을 하는 ORB수단을 포함하고,An ORB means serving as an intermediary until the processing of the event transmitted to the server computer is completed; 발생하는 이벤트를 전송할 전용 채널을 이벤트의 수에 따라 동적으로 증감하 여 생성하고,Dedicated channel for sending event is created by dynamically increasing or decreasing according to the number of events. 이벤트 서비스의 푸쉬(Push) 모델과 풀(Pull) 모델을 모두 지원하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.An interoperability system between an agent platform and a NON-agent platform, which supports both a push model and a pull model of the event service. 제 1항에 있어서,The method of claim 1, 상기 서버컴퓨터시스템은,The server computer system, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트의 처리가 완료될 때까지 중개인 역할을 하는 ORB수단,ORB means acting as an intermediary until processing of the event received from the information bus adapter is completed; 상기 EMTI를 초기화하는 II(인터페이스 초기화)수단,II (interface initialization) means for initializing the EMTI, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지를 임시로 저장하는 MQ(메시지 큐)수단,MQ (message queue) means for temporarily storing an event message received from the information bus adapter, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 처리 작업을 다중 스레드를 이용하여 스케줄링하는 MS(메시지 스케줄링)수단,Message scheduling (MS) means for scheduling processing of event messages received from the information bus adapter using multiple threads; 상기 EMTI를 모니터링하는 IFM(인터페이스 모니터링)수단,IFM (Interface Monitoring) means for monitoring the EMTI, 상기 JADE 에이전트 플랫폼의 원격 에이전트와 통신하기 위한 로컬 에이전트,A local agent for communicating with a remote agent of the JADE agent platform, 상기 JADE 에이전트 플랫폼으로부터 수신된 이벤트 처리 결과를 저장하는 ML(메시지 리스트)수단을 포함하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.And a message list (ML) means for storing an event processing result received from the JADE agent platform. 제 3항에 있어서,The method of claim 3, wherein 상기 MS수단은,The MS means, 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 컨텍스트 타입 및 내용을 체크하고 상기 JADE 에이전트 플랫폼의 활성화된 에이전트의 실행여부를 판별하여 스케줄링하고, Check the context type and content of the event message received from the information bus adapter, determine whether the activated agent of the JADE agent platform is running, and schedule 스케줄에 따라 상기 MQ수단에 쌓인 메시지를 랜덤으로 추출하여 처리하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.An interoperability system between an agent platform and a non-agent platform, characterized in that for randomly extracting and processing messages accumulated in the MQ means according to the schedule. 제 3항에 있어서,The method of claim 3, wherein 상기 IFM수단은 인터페이스 자체 메시지 처리에 따른 오버헤드를 측정하고, 누적된 결과 데이터를 이용하여 향후 발생할 수 있는 오버헤드의 발생을 예측하고 모니터링하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.The IFM means measures the overhead according to the interface itself message processing, and using the cumulative result data to predict and monitor the occurrence of overhead that may occur in the future interoperation between the agent platform and the NON-agent platform system. 제 1항에 있어서,The method of claim 1, 상기 JADE 에이전트 플랫폼은,The JADE agent platform, 분산 환경에서 상호 협력을 통해 작업을 수행하는 다수의 에이전트,A number of agents working together in a distributed environment, 하나 이상의 에이전트가 실행하기 위한 환경을 제공하는 컨테이너수단,Container means for providing an environment for one or more agents to run, 네트워크를 통해 원격의 에이전트와 통신을 수행하는 메인 컨테이너수단,Main container means for communicating with a remote agent via a network; 상기 에이전트를 생성하고 제거하며 네이밍 서비스를 지원하는 AM(에이전트 관리)수단,AM (agent management) means for creating and removing the agent and supporting a naming service; 옐로우 서비스를 지원하여 상기 에이전트가 네트워크상에 존재하는 다른 에이전트를 찾기 위한 방법을 제공하는 DF(디렉터리 조정)수단을 포함하고,A DF (directory coordination) means for supporting a yellow service and providing a method for the agent to find another agent on the network; 하나의 독립적인 JADE 에이전트 플랫폼은 하나의 메인 컨테이너수단을 가지는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 시스템.An independent JADE agent platform is an interoperability system between an agent platform and a NON-agent platform, characterized in that it has one main container means. 네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 하기 위해 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 포함하는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 포함하는 서버컴퓨터를 구비하는 플랫폼 간의 상호 운용 방법에 있어서,Information bus adapter that generates events to a non-agent platform based on CORBA event service to enable mutual communication between heterogeneous platforms in a networked distributed environment, and includes a plurality of agents that process events generated by the information bus adapter. In the interoperation method between the platform comprising a server computer comprising a JADE agent platform, EMTI serving as a bridge between the information bus adapter and the JADE agent platform, 상기 서버컴퓨터가,The server computer, (a) 상기 인포메이션 버스 어댑터로부터 발생된 이벤트 메시지를 수신하는 단계,(a) receiving an event message generated from the information bus adapter, (b) 상기 수신된 이벤트 메시지를 가변적인 큐에 임시 저장한 후 추출하는 단계,(b) temporarily storing the received event message in a variable queue and extracting the received event message; (c) 상기 추출된 이벤트 메시지의 처리 작업을 스케줄링하는 단계,(c) scheduling a processing task of the extracted event message, (d) 메시지 통신 오버헤드를 측정하는 단계,(d) measuring the message communication overhead, (e) 상기 측정된 오버헤드가 상대적으로 적은 스레드를 이용하여 상기 JADE 에이전트 플랫폼으로 이벤트 메시지를 전송하여 활성화된 에이전트가 처리하게 하는 단계,(e) transmitting an event message to the JADE agent platform using a thread having a relatively low measured overhead to be processed by an activated agent; (f) 상기 JADE 에이전트 플랫폼에서 처리된 처리 결과를 수신하여 저장하는 단계,(f) receiving and storing the processing result processed by the JADE agent platform, (g) 상기 수신된 처리 결과를 상기 인포메이션 버스 어댑터에게 반환하는 단계를 실행하고,(g) returning the received processing result to the information bus adapter, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법.The EMTI schedules an event processing task according to the context type and content of a received event message, and monitors the performance of the agent platform. 제 7항에 있어서,The method of claim 7, wherein 상기 단계 (b)는 임시 저장된 메시지를 랜덤으로 추출하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법.Step (b) is a method for interoperation between the agent platform and the NON-agent platform, characterized in that for randomly extracting the temporarily stored message. 제 7항에 있어서,The method of claim 7, wherein 상기 단계 (c)는 상기 인포메이션 버스 어댑터로부터 수신된 이벤트 메시지의 컨텍스트 타입 및 내용을 체크하여 상기 JADE 에이전트 플랫폼의 활성화된 에이전트의 실행 여부를 판별하며, 다중 스레드를 이용하여 스케줄링하는 것을 특징으로 하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 방법.In step (c), the context type and contents of the event message received from the information bus adapter are checked to determine whether the activated agent of the JADE agent platform is executed, and the agent is scheduled using multiple threads. Interoperability between the platform and the NON-Agent platform. CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터,Information bus adapters that generate events to the NON-Agent platform based on CORBA Event Service, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼,JADE agent platform that registers a plurality of agents for processing events generated by the information bus adapter, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 구비하는 서버컴퓨터를 기능시키기 위한 프로그램을 기록하고,Record a program for functioning a server computer having an EMTI serving as a bridge between the information bus adapter and the JADE agent platform, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록매체.The EMTI schedules an event processing task according to the context type and content of the received event message, and monitors the performance of the task. 네트워크로 연결된 분산 환경에서 이기종 플랫폼 간의 상호 통신을 가능하게 하는 하기 위해 CORBA 이벤트 서비스 기반의 NON-에이전트 플랫폼으로 이벤트가 발생되는 인포메이션 버스 어댑터, 상기 인포메이션 버스 어댑터에서 발생한 이벤트를 처리하는 다수의 에이전트를 등록하고 있는 JADE 에이전트 플랫폼, 상기 인포메이션 버스 어댑터와 상기 JADE 에이전트 플랫폼 간의 브리지 역할을 하는 EMTI를 포함하는 서버컴퓨터를 구비하는 에이전트 플랫폼과 NON-에이전트 플랫폼 간의 상호 운용 단계를 컴퓨터로 읽을 수 있는 기록매체에 있어서,In order to enable mutual communication between heterogeneous platforms in a networked distributed environment, information bus adapters that generate events are registered with a CORBA event service-based NON-agent platform, and a plurality of agents that process events generated by the information bus adapters are registered. A computer-readable recording medium for interoperating between an agent platform having a JADE agent platform, a server computer including an EMTI serving as a bridge between the information bus adapter and the JADE agent platform, and a NON-agent platform. , 상기 서버컴퓨터가,The server computer, 상기 인포메이션 버스 어댑터로부터 발생된 이벤트 메시지를 수신하는 단계,Receiving an event message generated from the information bus adapter, 상기 수신된 이벤트 메시지를 가변적인 큐에 임시 저장한 후 추출하는 단계,Temporarily storing the received event message in a variable queue and extracting the received event message; 상기 추출된 이벤트 메시지의 처리 작업을 스케줄링하는 단계,Scheduling a processing task of the extracted event message; 메시지 통신 오버헤드를 측정하는 단계,Measuring message communication overhead, 상기 측정된 오버헤드가 상대적으로 적은 스레드를 이용하여 상기 JADE 에이전트 플랫폼으로 이벤트 메시지를 전송하여 활성화된 에이전트가 처리하게 하는 단계,Transmitting an event message to the JADE agent platform using a thread having a relatively low measured overhead so that an activated agent is processed; 상기 JADE 에이전트 플랫폼에서 처리된 처리 결과를 수신하여 저장하는 단계,Receiving and storing the processing result processed by the JADE agent platform, 상기 수신된 처리 결과를 상기 인포메이션 버스 어댑터에게 반환하는 단계를 실행시키기 위한 프로그램을 기록하고,Record a program for executing the step of returning the received processing result to the information bus adapter, 상기 EMTI는 수신된 이벤트 메시지의 컨텍스트 타입과 내용에 따라 이벤트 처리 작업을 스케줄링하고, 작업 수행을 모니터링하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록매체.The EMTI schedules an event processing task according to the context type and content of the received event message, and monitors the performance of the task.
KR1020050119007A 2005-12-07 2005-12-07 Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof KR100659172B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050119007A KR100659172B1 (en) 2005-12-07 2005-12-07 Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050119007A KR100659172B1 (en) 2005-12-07 2005-12-07 Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof

Publications (1)

Publication Number Publication Date
KR100659172B1 true KR100659172B1 (en) 2006-12-19

Family

ID=37814828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050119007A KR100659172B1 (en) 2005-12-07 2005-12-07 Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof

Country Status (1)

Country Link
KR (1) KR100659172B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282786B1 (en) 2011-12-20 2013-07-05 성균관대학교산학협력단 A multi-agent system and a method for managing of an agent in multi-agent system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282786B1 (en) 2011-12-20 2013-07-05 성균관대학교산학협력단 A multi-agent system and a method for managing of an agent in multi-agent system

Similar Documents

Publication Publication Date Title
US7467389B2 (en) System and methodology providing service invocation for occasionally connected computing devices
JP4690437B2 (en) Communication method, communication apparatus and program for network application
Volter et al. Remoting patterns
JP4528742B2 (en) Wait method call method in distributed component application
JP3251800B2 (en) Communication system for exchanging data between computers in a network
US7607128B2 (en) Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls
US8065690B2 (en) Method and system for event-based remote procedure call implementation in a distributed computing system
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
CN103365713A (en) Resource dispatch and management method and device
CN110658794B (en) Manufacturing execution system
JP2003141068A (en) Session management device, and session management method, program and storage medium
KR100880536B1 (en) Open framework system for heterogeneous computing and service integration
US20100125624A1 (en) Coupling state aware systems
Gomaa et al. Performance engineering of component-based distributed software systems
US20060023688A1 (en) Mobile exchange infrastructure
KR20020021237A (en) Realtime Middleware apparatus providing an integrated software development frameworks of embedded system and its service method
KR100659172B1 (en) Interoperable system between agent platform and non-agent platform and method thereof, and recording medium thereof
Lee et al. Itinerary-based mobile agent as a basis for distributed OSGi services
KR101081932B1 (en) Apparatus and method of load dispersion in multi-agent system
EP1122644A1 (en) A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment
Esfahani et al. Utilizing architectural styles to enhance the adaptation support of middleware platforms
Campos et al. The chance for Ada to support distribution and real-time in embedded systems
Schmidt et al. Applying patterns to develop a pluggable protocols framework for orb middleware
Anke et al. Seamless integration of distributed OSGi bundles into enterprise processes using BPEL
Frei et al. Eventizing applications in an adaptive middleware platform

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee