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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Abstract
Description
도 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:
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
또, 본 발명에 따른 에이전트 플랫폼과 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
또, 본 발명에 따른 에이전트 플랫폼과 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
또, 상기 목적을 달성하기 위해 본 발명에 따른 에이전트 플랫폼과 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
- 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
도 2a에 도시된 푸쉬 모델에서는 공급자(203)가 이벤트 채널(202)에 이벤트를 푸쉬하고, 이벤트 채널(202)은 받은 이벤트를 소비자(201)에게 넘겨준다. 반면, 도 2b에 도시된 풀 모델에서는 푸쉬 모델과는 반대로 소비자(201)가 이벤트 채널 중개자인 이벤트 채널(202)에게 이벤트를 요구하고, 이벤트 채널(202)은 공급자(203)에게 어떤 이벤트를 달라고 요청한다. CORBA 이벤트 서비스를 이용하여 애플리케이션(Application)을 개발할 때 푸쉬 모델과 풀 모델의 조합을 통해 4가지 모델인 '푸쉬/푸쉬', '푸쉬/풀', '풀/풀', '풀/푸쉬'를 사용할 수 있다. 이는 개발하고자 하는 애플리케이션의 특성과 디자인을 고려하여 선택해야 한다.In the push model shown in FIG. 2A, the
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다. 또한, 본 발명의 설명에 있어서는 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.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
각각의 역할에 대한 설명은 다음과 같다.Each role is described as follows.
도 3에 도시된 클라이언트 사이드(Client Side)의 인포메이션 버스 어댑터(300)는 서버컴퓨터(500)로 전송하는 이벤트의 처리가 완료될 때까지 이벤트 메시지를 서버컴퓨터(500)로 전달하고, 이벤트 메시지의 처리 결과를 서버컴퓨터(500)로부터 반환받는 중개인 역할을 하는 ORB수단(501a)을 구비한다.The
인포메이션 버스 어댑터(300)에서는 특정 이벤트가 발생하면 이벤트를 전송할 전용 채널(Channel)(301)이 생성된다. 채널은 이벤트의 종류와 내용에 따라 자동으로 분리되어 생성된다. 또한, 채널은 이벤트의 수에 따라 동적으로 증가하거나 감소하여 최적의 채널 개수를 유지함으로써 채널 관리에 따른 오버헤드를 줄인다. 발생한 이벤트는 네이밍 서비스를 이용하여 어느 객체에게 메시지를 전달할 것인가를 찾고, 그 후 ORB(Object Request Broker, 객체 요청 브로커)수단(501)을 통해 서버 구현 객체인 서버컴퓨터(500)에게 전달된다. 인포메이션 버스 어댑터(300)는 기본적으로 푸쉬 및 풀 모델을 지원한다.In the
서버 사이드(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
각각에 대한 더욱 구체적인 설명은 다음과 같다.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
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
에이전트 플랫폼인 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)으로 값을 송출하여 저장한다.
본 발명의 실시예에 따른 에이전트 플랫폼과 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
도 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)
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)
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 |
-
2005
- 2005-12-07 KR KR1020050119007A patent/KR100659172B1/en not_active IP Right Cessation
Cited By (1)
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 |