KR100921152B1 - 에이전트 플랫폼. - Google Patents
에이전트 플랫폼. Download PDFInfo
- Publication number
- KR100921152B1 KR100921152B1 KR1020070057708A KR20070057708A KR100921152B1 KR 100921152 B1 KR100921152 B1 KR 100921152B1 KR 1020070057708 A KR1020070057708 A KR 1020070057708A KR 20070057708 A KR20070057708 A KR 20070057708A KR 100921152 B1 KR100921152 B1 KR 100921152B1
- Authority
- KR
- South Korea
- Prior art keywords
- agent
- information
- agents
- platform
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 에이전트 플랫폼에 관한 것으로서, 다수의 에이전트를 관리하는 에이전트 플랫폼에 있어서 상기 다수의 에이전트 정보에 기초하여 상위그룹을 형성하고, 상기 상위그룹의 정보에 기초하여 하위그룹을 형성하여 상기 다수의 에이전트 정보를 관리하는 에이전트 컨테이너와 상기 다수의 에이전트 각각의 정보에 대한 개별적인 해쉬키를 생성하여 상기 다수의 에이전트 정보를 관리하는 해쉬테이블과 상기 에이전트 컨테이너와 상기 해쉬테이블을 제어하여 상기 다수의 에이전트 정보에 대한 운영정보를 관리하는 메인 컨테이너를 포함하는 것을 특징으로 한다.
따라서, 본 발명은 다수의 에이전트를 그룹화하여 관리하고 개인화하여 관리하는 방법을 동시에 제공하기 때문에 자원 관리의 효율성이 증가하고 동적인 커뮤니케이션 환경에 유연하게 적응하고 확장이 용이한 효과가 있다.
해쉬키, 에이전트, 플랫폼, 컨테이너
Description
도 1은 본 발명의 일실시예에 따른 에이전트 플랫폼을 나타낸 구성도.
도 2는 본 발명의 도 1에 따른 에이전트 컨테이너를 나타낸 구성도.
도 3은 본 발명의 도 1에 따른 메인 컨테이너를 나타낸 구성도.
도 4는 본 발명의 일실시예에 따른 에이전트 플랫폼의 전체 구성도.
도 5는 본 발명의 일실시예에 따른 에이전트 플랫폼의 동작 흐름도.
도 6은 본 발명의 일실시예에 따른 에이전트 플랫폼의 등록예시를 나타낸 도면.
도 7은 본 발명의 일실시예에 따른 에이전트 플랫폼 코어의 클래스다이어그램을 나타낸 도면.
도 8은 본 발명의 일실시예에 따른 에이전트 컨테이너 관리를 위한 클래스를 나타낸 도면.
도 9는 본 발명의 일실시예에 따른 에이전트 사이의 커뮤니케이션을 나타내는 도면.
* 주요 도면부호에 대한 설명 *
100, 300 : 에이전트 플랫폼
110, 321 : 에이전트 컨테이너 111, 321-1 : 활동 관리모듈
112, 321-2 : 정보 관리모듈 120, 322 : 해쉬테이블
130, 323 : 메인 컨테이너
131, 323-2 : 플랫폼 매니저 모듈
132, 323-1 : 서비스 매니저 모듈 310 : 메시지 전송 모듈
311 : HTTP 서버 312 : ACL 인코더/디코더
320 : 에이전트 코어
본 발명은 에이전트 플랫폼에 관한 것으로서, 보다 상세하게는 에이전트 컨테이너가 형성되어 다수의 에이전트를 그룹화하여 관리하고 동시에, 해쉬테이블이 형성되어 상기 다수의 에이전트를 개인화하여 관리하기 때문에 유비쿼터스 환경에서 동적인 운영을 효과적으로 지원할 수 있는 에이전트 플랫폼에 관한 것이다.
종래의 지능형 이동 에이전트를 실행시키기 위한 플랫폼 제공시스템에 관한 기술로서, 공개특허공보 제10-2004-0061760은 전체 시스템의 동작을 제어 관리하는 서버시스템 및 상기 서버 시스템과 네트워크를 통해 접속할 수 있으며 상기 지능형 이동 에이전트를 이동 및 실행시킬 수 있는 적어도 하나 이상의 클라이언트 시스템 을 구비하며 상기 서버 시스템은 접속된 클라이언트 시스템들에 관한 위치 정보를 관리하는 클라이언트 관리부 및 제대로 실행되지 못하거나 목적지에 이동하지 못한 지능형 이동 에이전트를 다른 클라이언트 시스템으로 이동시켜 실행시킬 수 있는 이동형 객체의 형태로 변환시키거나 지능형 이동 에이전트를 변환시킨 이동형 객체를 다른 클라이언트 시스템으로 이동시키는 에이전트 전송부, 지능형 이동 에이전트를 실행시키는 에이전트 실행부, 지능형 이동 에이전트들에 대한 정보를 관리하는 에이전트 운영부 및 지능형 이동 에이전트간 또는 서버 시스템과 클라이언트 시스템간의 데이터 또는 메시지의 송수신을 가능케하는 인터페이스부를 포함하여 이루어진 지능형 이동 에이전트를 실행시키기 위한 플랫폼 제공 시스템에 관한 기술이었다.
그러나, 상기 종래의 기술은 지능형 이동 에이전트의 실행 및 이주를 행하는 기술로서, 지능형 이동 에이전트의 실행과 이주에 대해 자원관리의 효율성이 저하되고 실행 및 이주된 지능형 에이전트의 효율적인 관리를 제공하기가 힘들다
따라서, 본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 다수의 에이전트를 그룹화하여 관리하고 개인화하여 관리하는 방법을 동시에 제공하기 때문에 자원 관리의 효율성이 증가하고 동적인 커뮤니케이션 환경에 유연하게 적응하고 확장이 용이한 에이전트 플랫폼을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명의 일실시예에 따른 에이전트 플랫폼에 관한 것으로서, 다수의 에이전트를 관리하는 에이전트 플랫폼에 있어서 상기 다수의 에이전트 정보에 기초하여 상위그룹을 형성하고, 상기 상위그룹의 정보에 기초하여 하위그룹을 형성하여 상기 다수의 에이전트 정보를 관리하는 에이전트 컨테이너와 상기 다수의 에이전트 각각의 정보에 대한 개별적인 해쉬키를 생성하여 상기 다수의 에이전트 정보를 관리하는 해쉬테이블과 상기 에이전트 컨테이너와 상기 해쉬테이블을 제어하여 상기 다수의 에이전트 정보에 대한 운영정보를 관리하는 메인 컨테이너를 포함하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 에이전트 컨테이너는 상기 다수의 에이전트 로그를 저장하고 모니터링 하는 활동관리 모듈과 상기 다수의 에이전트 개인정보를 관리하는 정보관리 모듈을 포함하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 에이전트 컨테이너는 상기 다수의 에이전트의 상태 및 연결관리를 수행하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 메인 컨테이너는 상기 에이전트 플랫폼의 초기화 및 관리를 담당하는 플랫폼 매니저 모듈과 상기 에이전트 플랫폼에 추가되는 신규 서비스를 등록 및 관리하는 서비스 매니저 모듈을 포함하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 메인 컨테이너는 상기 다수의 에이전트를 등록, 삭제 및 상기 다수의 에이전트에 메시지를 전달하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 다수의 에이전트와 HTTP를 기반으로 메시지를 전송하는 메시지 전송 모듈을 더 포함하는 것을 특징으로 한다.
본 발명의 일실시예에 따르면 상기 메시지 전송 모듈은 상기 다수의 에이전트에 메시지를 동시에 전송되도록 수신되는 메시지를 에이전트 표준 메시지로 변환하는 것을 특징으로 한다.
발명된 에이전트 플랫폼은 다수의 에이전트를 효율적으로 관리하기 위하여 그룹관리와 개인화 관리를 모두 지원한다. 그리고 동적이고 유연하기 위해 필요한 AMS(Agent Management Service), DF(Directory Facilitator)와 같은 다양한 서비스 에이전트들을 포함한다. 또한, 상기 다수의 에이전트들을 동시에 효율적으로 관리하기 위한 메커니즘을 가지며, 상기 다수의 에이전트들 사이의 전송되는 메시지를 모니터링하면서 메시지로부터 정보를 추출한다. 상기 에이전트 플랫폼은 표준 에이전트 기술을 따르며 확장성을 제공한다. 그러므로 다양한 유비쿼터스 컴퓨팅 애플리케이션을 위해 사용되어지는 에이전트들 사이에 상호작용을 효율적으로 지원할 수 있다.
상기 다수의 에이전트들이 상호 협력을 통해 목표를 수행한다. 상기 다수의 에이전트들은 상기 에이전트 플랫폼에 등록되며, 상기 에이전트 플랫폼은 상기 다수의 에이전트들의 편리를 위해 인터페이스가 제공될 뿐만 아니라 상기 다수의 에이전트 상호간에 통신을 위해서 메시지 전송모듈이 형성되는 것은 자명한 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예들을 상세 히 설명한다.
도 1은 본 발명의 일실시예에 따른 에이전트 플랫폼을 나타낸 구성도로서, 다수의 에이전트를 관리하는 에이전트 플랫폼(100)에 있어서 상기 다수의 에이전트 정보에 기초하여 상위그룹을 형성하고, 상기 상위그룹의 정보에 기초하여 하위그룹을 형성하여 상기 다수의 에이전트 정보를 관리하는 에이전트 컨테이너(110)와 상기 다수의 에이전트 각각의 정보에 대한 개별적인 해쉬키를 생성하여 상기 다수의 에이전트 정보를 관리하는 해쉬테이블(120)과 상기 에이전트 컨테이너(110)와 상기 해쉬테이블(120)을 제어하여 상기 다수의 에이전트 정보에 대한 운영정보를 관리하는 메인 컨테이너(130)를 포함하는 것을 특징으로 한다.
보다 상세하게는, 상기 에이전트 컨테이너(110)는 상기 다수의 에이전트의 상태 및 연결관리를 수행하는 것으로써, 메시지 우선순위, 그룹에 속한 에이전트 리스트, 에이전트 추가와 삭제, 에이전트 개수 측정 등의 기능을 포함한다.
상기 에이전트 컨테이너(110)는 도 2에 도시된 바와 같이 상기 다수의 에이전트 로그를 저장하고 모니터링 하는 활동관리 모듈(111)과 상기 다수의 에이전트 개인정보를 관리하는 정보관리 모듈(112)을 포함한다.
상기 활동관리 모듈(111)은 상기 다수의 에이전트들 사이에 전송되는 메시지를 모니터링 함으로써, 에이전트 아이디에 해당하는 상세 정보를 에이전트 쓰레드에 의하여 찾고 관리한다. 또한, 상기 에이전트 쓰레드는 에이전트의 상태에 따라 다르게 행동하기 때문에 상태를 가지는 가상의 에이전트가 된다. 상기 에이전트 쓰레드는 에이전트 우선순위에 따라 정책이 반영될 수 있으며, 메인 컨테이너(130)의 플랫폼 관리와는 독립적으로 수행된다. 상기 에이전트 쓰레드는 해당 에이전트를 모니터링 할 때, 에이전트 사이에 전달되는 메시지로부터 정보를 획득한다.
*에이전트에게 주요 에이전트들이 보내는 메시지로부터 모니터링 되는 정보 가 주요 에이전트의 집합일 경우, 상기 에이전트 플랫폼은 각 에이전트에 관계된 모니터링 정보를 수집한다. 즉, 가 된다. 모니터링 정보는 메시지의 집중도, 에이전트의 중요도 등의 에이전트들과 관계된 다른 정보들을 측정하는데 사용된다.
상기 해쉬테이블(120)은 상기 다수의 에이전트 각각의 정보에 대한 개별적인 해쉬키를 생성하여 상기 다수의 에이전트 정보를 관리하는 것으로써, 상, 하위로 분류된 계층적 그룹관리의 경우 그룹의 관계가 복잡해질수록, 에이전트 정보를 찾을 때 시간이 지연된다. 따라서 계층적 그룹관리와 동시에, 직접적으로 에이전트 개인 정보에 접근하는 상기 해쉬테이블(120)을 사용함으로써, 빠른 시간내에 신속하게 에이전트 정보를 찾을 수 있는 것을 알 수 있다.
상기 메인 컨테이너(130)는 상기 다수의 에이전트를 등록, 삭제 및 상기 다수의 에이전트에 메시지를 전달하는 것으로써, 도 3에 도시된 바와 같이 상기 에이전트 플랫폼(100)의 초기화 및 관리를 담당하는 플랫폼 매니저 모듈(131)과 상기 에이전트 플랫폼(100)에 추가되는 신규 서비스를 등록 및 관리하는 서비스 매니저 모듈(132)을 포함한다.
보다 상세하게, 상기 플랫폼 매니저 모듈(131)은 상기 에이전트 플랫폼(100)에서 상기 다수의 에이전트에 대한 전반적인 정보를 관리하고 필요에 따라 초기화를 담당한다.
도 4는 본 발명의 일실시예에 따른 에이전트 플랫폼의 전체 구성도로서, HTTP를 기반으로 FIPA의 에이전트 표준 메시지를 처리하는 모듈인 메시지 전송 모 듈(310)과 에이전트 플랫폼(300)과 에이전트들을 관리하는 에이전트 플랫폼 코어(320)로 이루어진 에이전트 플랫폼(300)에 관한 것이다.
상기 메시지 전송 모듈(310)은 에이전트(10)들 사이에 통신을 위하여 HTTP를 기반으로 형성된 HTTP 서버(311)가 형성되고, 상기 HTTP 서버(311)에는 HTTP 클라이언트를 포함하여 에이전트(10) 자체에 메시지를 받을 때는 HTTP 서버 모듈을 사용하고 메시지를 보낼 때는 HTTP 클라이언트 모듈을 사용한다.
또한, 상기 메시지 전송 모듈(310)은 ACL 인코더/디코더(312)가 형성되어 에이전트 표준 메시지인 ACL 메시지를 인코딩/디코딩하여 하나의 에이전트 메시지에 대해 ACL 처리를 수행하여 다수의 에이전트(10)에게 동시에 메시지를 보낼 수 있다.
게다가, 상기 메시지 전송 모듈(310)은 메시지 매니저(313)를 형성하여 다수의 에이전트(10)들이 동시에 메시지를 주고받을 때, 큐방식으로 메시지의 순서와 대기 행렬를 처리한다.
상기 에이전트 플랫폼 코어(320)는 에이전트 컨테이너(321)와 해쉬테이블(322) 및 메인 컨테이너(323)로 이루어지고, 상기 에이전트 컨테이너(321)는 활동관리 모듈(321-1)과 정보관리 모듈(321-2)로 형성되고, 상기 메인 컨테이너(323)는 서비스 매니저 모듈(323-1)과 플랫폼 매니저 모듈(323-2)로 형성된다.
상기 에이전트 플랫폼 코어(320)는 하나의 메인 컨테이너(323)와 여러 개의 에이전트 컨테이너(321)를 그룹화 시켜 계층적으로 형성되는 것으로써, 상기 계층은 상위그룹과 하위그룹을 뜻한다. 상기 에이전트 컨테이너(321)는 에이전트 정보 그룹을 관리하며, 에이전트 정보는 에이전트 라이프사이클(Life-Cycle)을 위한 상태 관리 및 에이전트 연결과 제어 관리 등의 기능을 포함한다.
상기 에이전트 플랫폼 코어(320)는 에이전트(10)들 사이의 상호 통신을 지원하고 상기 에이전트 플랫폼(300)의 실행을 관리하는 것으로써, 상기 에이전트 플랫폼 코어(320)에서는 주요 흐름에 따라 모듈과 서비스들 사이의 관계를 제어한다.
도 5는 본 발명의 일실시예에 따른 에이전트 플랫폼의 동작 흐름도로서, 에이전트 플랫폼(300)의 초기화와 에이전트 등록, 해제, 메시지 전달에 대한 플랫폼 코어의 주요 모듈 사이의 흐름을 나타내는 것이다.
상기 에이전트 플랫폼(300)의 동작이 수행되면, 먼저 메인 컨테이너(323)를 생성하고, 상기 메인 컨테이너(323)는 초기화를 위해 XML 형식의 설정 파일을 리딩(reading)하며 상기 설정 파일에는 에이전트 플랫폼(300)의 이름, 주소, 포트, 리소스, 버전, 디버깅 정보 등의 운영 정보를 포함하고 있다.
그리고, 에이전트 컨테이너(321)의 참조 값을 관리하는 에이전트 정보와 메인 쓰레드 그룹 테이블을 직접적으로 접근하기 위해 해쉬테이블(ADT : 322)를 생성한 후, 메시지 전송 모듈(MTP : 310)을 초기화한다. 다수의 에이전트(10)는 상기 에이전트 플랫폼(300)에 등록하기 위해 에이전트 표준 메시지(ACL)를 보낸다. 그러면 에이전트 플랫폼 코어(320)는 MTP(310)로부터 콜백 메시지를 받게 된다. 에이전트 플랫폼(300)은 콜백으로 받은 ACL 메시지를 확인하여 상기 에이전트 플랫폼(300)에게 보낸 메시지인지를 확인한다. 이후에, ACL 메시지의 선택항목으로부터 등록 메시지 여부를 검사한 후, 에이전트 이름, 주소, 포트, 역할 등의 에이전트 정보를 추출해 낸다. 그리고 해당 에이전트가 이미 등록되어 있는지를 확인하기 위해 해쉬키(Hash Key)를 사용하여 ADT(322)를 통해 에이전트 아이디를 검사한다. 이미 등록되어 있으면, 상기 에이전트 플랫폼(300)은 에이전트(10)에게 'already-registered'가 포함된 실패 메시지를 보낸다. 에이전트(10)가 ADT(322)에 등록되면 에이전트 플랫폼(300)은 쓰레드를 실행한다. 에이전트 쓰레드는 에이전트 명세 정보를 가지고 있으며 에이전트 상태에 따라 동적으로 에이전트(10)를 모니터링 한다. 또한, 에이전트의 그룹을 관리하기 위해 새로운 에이전트 컨테이너를 만들거나 기존의 에이전트 컨테이너에 추가한다. 에이전트 등록 절차가 완료되면, 등록 처리 결과를 에이전트(10)에게 보낸다.
상기 에이전트(10)가 삭제 메시지를 보낼 경우, 에이전트 플랫폼 코어(320)는 콜백을 통해 에이전트 표준 메시지인 ACL 메시지를 받는다. 그러면, 메시지를 송신하는 대상이 에이전트 플랫폼(300)이고, 선택항목이 삭제 메시지인지를 확인한다. 그런 다음, 에이전트 아이디를 해쉬키로 하여 ADT(322)에서 해당 에이전트 정보가 있는지 검사하여 삭제한다. 또한, 상기 ADT(322)로부터 에이전트 정보의 참조 값을 삭제한다.
상기 에이전트 플랫폼 코어(320)는 메시지 콜백 함수로부터 들어오는 ACL 메시지의 수신되는 항목이 에이전트 플랫폼(300)이 아닐 경우 관련된 에이전트(10)에게 메시지를 전달한다. 메시지를 보내는 에이전트는 받는 에이전트의 주소나 포트 정보를 모르며 에이전트 이름만 알고 있다. 따라서 에이전트는 플랫폼(300)에게 전달을 요청한다. 에이전트 플랫폼 코어(320)는 받는 에이전트의 이름에 상응하는 주 소 정보를 찾기 위해 ADT(322)를 검사한다. 에이전트 플랫폼 코어(320)는 에이전트 상세 정보를 관리하는 에이전트 쓰레드로부터 필요한 정보를 얻는다. 이후에, 받는 에이전트의 이름과 주소 항목 값을 변경 시킨 후 관련된 에이전트에 보낸다.
상기 에이전트 플랫폼 코어(320)는 효율적으로 에이전트(10)를 관리하기 위해 에이전트 그룹화 관리와 개인화 관리를 모두 지원한다. 또한, 에이전트 개인 정보를 빠르게 접근하기 위해 ADT(322)가 형성된다. 상기 에이전트 플랫폼(300)에서는 에이전트(10)들의 다양한 그룹관리를 지원하며, 그룹들을 계층적으로 관리한다.
도 6은 본 발명의 일실시예에 따른 에이전트 플랫폼의 등록예시를 나타낸 도면으로서, 스포츠(Sports) 에이전트는 엔터테인먼트(Entertainment) 에이전트 컨테이너의 하위 그룹인 아웃도어(Outdoor) 에이전트 컨테이너에 속하고, 뉴스(News) 에이전트 컨테이너에 의해 참조된다. 상기 스포츠 에이전트가 에이전트 플랫폼 A에 등록하려고 할 때, 상기 스포츠 에이전트의 주소, 이름, 에이전트 디스크립션 등의 정보를 포함하는 에이전트 표준 메시지(ACL)를 상기 스포츠 에이전트가 상기 에이전트 플랫폼 A에게 전송한다. 상기 스포츠 에이전트의 에이전트 컨테이너 정보는 주요 도메인인 엔트테인먼트 : 아웃도어와 참조 도메인인 뉴스로 구성된다. 상기 에이전트 플랫폼 A는 에이전트 상세 정보가 이미 존재하는지 상기 해쉬테이블을 통해 찾는다. 이 때, 이름과 주소 정보를 이용하여 해쉬키를 만들어 상기 스포츠 에이전트가 상기 해쉬테이블에 등록되어 있는지 검사한다. 상기 해쉬테이블(130)에 상기 스포츠 에이전트가 존재하지 않을 경우, 에이전트 쓰레드 클래스를 상속받아 상기 스포츠 에이전트를 상기 해쉬테이블에 등록한다. 다음, 에이전트 그룹 관리 테이블에 접근하여 엔트테인먼트 에이전트 컨테이너 안에 아웃도어 에이전트 컨테이너를 포함하고 있는지 검사한 후 없을 경우 새로 생성한다. 컨테이너 관리 테이블은 상기 해쉬테이블 등록을 위해 만들어진 상기 스포츠 에이전트의 참조 값을 포함한다.
또한, 상기 뉴스 에이전트 컨테이너도 상기 스포츠 에이전트가 포함되기 때문에 참조 값을 가지게 된다. 따라서 상기 스포츠 에이전트는 뉴스 에이전트 컨테이너와 엔터테인먼트 에이전트 컨테이너 모두를 통해 접근할 수 있다. 뮤직(Music)에이전트와 상기 스포츠 에이전트는 서로 다른 컨테이너에 속해 정책 관리가 이루어지기 때문에 브로드캐스트(Broadcast) 에이전트가 이들과 커뮤니케이션을 형성할 때 상황에 따라서 서로 다르게 동작된다.
도 7은 본 발명의 일실시예에 따른 에이전트 플랫폼 코어의 클래스다이어그램을 나타낸 도면으로서, 에이전트 플랫폼 코어(320)의 클래스 다이어그램을 나타낸다. 주요 클래스들로는 CMainContainer와 ThreadGroup, CLADT, CAP_Thread, CAgentInterace가 있다.
CMainContainer는 메인 컨테이너(323)를 관리하는 클래스로, 주요 메소드는 다음과 같다.
1. bool StartPlatform() : 에이전트 플랫폼 실행을 시작한다.
2. bool InitPlatform() : 플랫폼을 초기화한다.
3. bool MTPInitSetting() : MTP를 초기화한다.
4. bool AgentRegister(string cid, string name, string address) : 에이전트 플 랫폼에 에이전트를 등록한다.
5. bool AgentDestroy(string AgentName) : 에이전트 플랫폼으로부터 에이전트를 삭제한다.
6. bool ProcessMsgTransmission (CMessage msg) : 하나 이상의 Receiver 에이전트에게 메시지를 전달한다.
7. bool ACLContentParser (CMessage msg) : MTP 라이브러리로부터 받은 ACL 메시지 처리한다.
CThreadGroup은 에이전트 컨테이너(321) 제어와 백터를 사용하여 하위 컨테이너 참조와 에이전트 쓰레드를 관리하는 것을 나타낸다.
도 8은 본 발명의 일실시예에 따른 에이전트 컨테이너 관리를 위한 클래스를 나타낸 도면으로서, CThreadGroup 클래스의 선언에 대해 간략하게 보여주는 것이다. 클래스의 생성자는 그룹 아이디와 포인터를 상위그룹으로부터 얻게되고, AddThread() 메소드는 쓰레드 백터에 새로운 에이전트 쓰레드를 추가하는 것이며, RemoveThreadItem() 메소드는 쓰레드 백터로부터 에이전트 쓰레드를 삭제하는 것이다. RemoveGroupItem() 메소드는 현재 그룹 벡터로부터 하위 컨테이너를 삭제하는 것이고, Destroy() 메소드는 모든 에이전트 쓰레드와 하위 그룹 벡터들을 삭제하고 그룹 클래스의 인스턴스를 삭제하는 것이며, Enumerate() 메소드는 그룹 내에 활성화된 쓰레드들의 리스트를 나타내게 된다. 상기한 메소드들은 그룹 관리를 위해 사용되며 그룹 아이디는 GUID (Globally Unique Identifier)의 형태를 갖는다.
CAP_Thread는 에이전트 상태에 따른 라이프 사이클 관리를 위한 클래스로, 쓰레드 생성과 관리를 위해 세마포어(semaphore), 컨디션(condition), 뮤텍스(mutex)를 사용한다. CAgentInterface는 에이전트 명세 정보를 관리하는 클래스로, CAP_Thread로부터 상속받는다. 에이전트 명세 정보를 얻을 수 있으며, 쓰레드를 사용하여 에이전트 상태에 따라 라이프 사이클을 관리할 수 있다. CLADT는 ADT를 관리하는 클래스로, Put(), Get(), Sizeof(), Remove() 등의 주요 메소드를 갖는다.
도 9는 본 발명의 일실시예에 따른 에이전트 사이의 커뮤니케이션을 나타내는 도면으로서, 에이전트 플랫폼(300)에서 에이전트(10) 사이의 커뮤니케이션을 나타내는 것으로써, BroadcastAgent와 WeatherAgent, MusicAgent, SportsAgent 각각의 커뮤니티를 나타낸다. BroadcastAgent가 ACL의 Receiver 항목에 MusicAgent와 SportsAgent 이름으로 설정하여, ACL 메시지를 에이전트 플랫폼(300)에게 보낸다. 그러면, 에이전트 플랫폼(300)은 이들의 주소 정보를 찾아 메시지를 전달해준다.
지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐이며, 한정적인 것이 아님을 분명히 하고, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다.
이상에서 설명한 바와 같이 본 발명은 다수의 에이전트를 그룹화하여 관리하 고 개인화하여 관리하는 방법을 동시에 제공하기 때문에 자원 관리의 효율성이 증가하는 효과가 있고, 동적인 커뮤니케이션 환경에 유연하게 적응하고 확장이 용이한 효과가 있다.
Claims (7)
- 다수의 에이전트를 관리하는 에이전트 관리 시스템에 있어서,상기 다수의 에이전트 정보에 기초하여 상위그룹을 형성하고, 상기 상위그룹의 정보에 기초하여 하위그룹을 형성하여 상기 다수의 에이전트 정보를 관리하는 에이전트 컨테이너와;상기 다수의 에이전트 각각의 정보에 대한 개별적인 해쉬키를 생성하여 상기 다수의 에이전트 정보를 관리하는 해쉬테이블과;상기 에이전트 컨테이너와 상기 해쉬테이블을 제어하여 상기 다수의 에이전트 정보에 대한 운영정보를 관리하는 메인 컨테이너를 포함하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 1 항에 있어서상기 에이전트 컨테이너는 다수의 에이전트 로그를 저장하고 모니터링 하는 활동관리 모듈과;상기 다수의 에이전트 개인정보를 관리하는 정보관리 모듈을 포함하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 2 항에 있어서,상기 에이전트 컨테이너는 상기 다수의 에이전트의 상태 및 연결관리를 수행하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 1 내지 제 3 항 중 어느 한 항에 있어서,상기 메인 컨테이너는 상기 에이전트 플랫폼의 초기화 및 관리를 담당하는 플랫폼 매니저 모듈과;상기 에이전트 플랫폼에 추가되는 신규 서비스를 등록 및 관리하는 서비스 매니저 모듈을 포함하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 4 항에 있어서,상기 메인 컨테이너는 상기 다수의 에이전트를 등록, 삭제 및 상기 다수의 에이전트에 메시지를 전달하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 1 항에 있어서,상기 다수의 에이전트와 HTTP를 기반으로 메시지를 전송하는 메시지 전송 모듈을 더 포함하는 것을 특징으로 하는 에이전트 관리 시스템.
- 제 6 항에 있어서,상기 메시지 전송 모듈은 상기 다수의 에이전트에 메시지를 동시에 전송되도록 메시지를 에이전트 표준 메시지로 변환하는 것을 특징으로 하는 에이전트 관리 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070057708A KR100921152B1 (ko) | 2007-06-13 | 2007-06-13 | 에이전트 플랫폼. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070057708A KR100921152B1 (ko) | 2007-06-13 | 2007-06-13 | 에이전트 플랫폼. |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080109413A KR20080109413A (ko) | 2008-12-17 |
KR100921152B1 true KR100921152B1 (ko) | 2009-10-12 |
Family
ID=40368731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070057708A KR100921152B1 (ko) | 2007-06-13 | 2007-06-13 | 에이전트 플랫폼. |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100921152B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030022603A (ko) * | 2001-09-11 | 2003-03-17 | 주식회사 크로스쉬프트 | 서비스 운용 관리 시스템 및 그 운용방법 |
-
2007
- 2007-06-13 KR KR1020070057708A patent/KR100921152B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030022603A (ko) * | 2001-09-11 | 2003-03-17 | 주식회사 크로스쉬프트 | 서비스 운용 관리 시스템 및 그 운용방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20080109413A (ko) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5475817A (en) | Object oriented distributed computing system processing request to other object model with code mapping by object managers located by manager of object managers | |
CN107590072B (zh) | 一种应用开发和测试的方法和装置 | |
US7681203B2 (en) | Context-aware automatic service discovery and execution engine in mobile ad-hoc networks | |
CA2098417C (en) | Method and system for project management across process boundaries in a data processing system | |
EP3447965B1 (en) | Network function instance management method and relevant device | |
KR100845234B1 (ko) | 통신 소프트웨어 구조에서의 도메인 프로파일 파싱 장치 및그 방법 | |
Watson et al. | The trustedbsd mac framework | |
US7711625B2 (en) | Asynchronous events in meta-data driven instrumentation | |
CN112035228A (zh) | 一种资源调度方法及装置 | |
US6119173A (en) | System and method for communications and process management in a distributed telecommunications switch | |
CN102333108A (zh) | 分布式缓存同步系统及方法 | |
CN1326035C (zh) | 在移动应用程序环境中使用的产品 | |
CN111782259A (zh) | 一种基于反向代理的微服务治理方法 | |
Lentini et al. | Emaa: An extendable mobile agent architecture | |
US20070050447A1 (en) | Method and device arrangement for managing a client/server environment | |
Park et al. | A flexible and scalable agent platform for multi-agent systems | |
CN117950628A (zh) | 一种基于grpc的插件构建方法及系统 | |
CN103763325B (zh) | 构建ip安防产品开发环境的方法 | |
Corsaro | The data distribution service tutorial | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
CN117215721A (zh) | 虚拟系统的管理方法、装置、电子设备及存储介质 | |
KR100921152B1 (ko) | 에이전트 플랫폼. | |
US7734640B2 (en) | Resource discovery and enumeration in meta-data driven instrumentation | |
CN111221620A (zh) | 存储方法、装置及存储介质 | |
WO2018120222A1 (zh) | 一种管理vnffg的方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120724 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130930 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |