에이전트 지향 프로그래밍
Agent-oriented programming| 프로그래밍 패러다임 |
|---|
에이전트 지향 프로그래밍(AOP)은 소프트웨어 구성의 중심이 소프트웨어 에이전트의 개념에 맞춰져 있는 프로그래밍 패러다임이다.객체(변수 매개변수가 있는 방법 제공)를 핵심으로 하는 객체 지향 프로그래밍과는 대조적으로, AOP는 외부적으로 지정된 에이전트(인터페이스와 메시징 기능 포함)를 핵심에 두고 있다.그것들은 사물의 추상적인 개념으로 생각할 수 있다.교환된 메시지는 "에이전트"를 받는 것으로 해석되며, 에이전트 종류에 특정한 방식으로 해석된다.
역사
역사적으로 요브 쇼엄은 1990년 요브 쇼엄의 인공지능 연구 내에서 에이전트 중심의 프로그래밍 개념과 소프트웨어 중심의 개념을 도입했다.[1][2]그의 에이전트들은 하나의 매개 변수를 가진 하나의 방법만을 가지고 있기 때문에 자신의 패러다임에 특유하다.AOP와 OOP의 기본적인 차이점을 위해 1990년 논문에서 Yoav Shoham을 인용하는 것:
- ...에이전트 지향 프로그래밍(AOP), 객체 지향 프로그래밍의 전문화라고 볼 수 있는 것. ...
| OOP | AOP | |
|---|---|---|
| 기본 단위 | 반대하다 | 에이전트 |
| 기본 단위의 상태를 정의하는 매개변수 | 구속력이 없는 | 믿음, 약속, 능력, 선택, ... |
| 연산 프로세스 | 메시지 전달 및 응답 방법 | 메시지 전달 및 응답 방법 |
| 메시지 유형 | 구속력이 없는 | 통보, 요청, 제안, 약속, 거절, ... |
| 방법의 제약 | 없는 | 정직, 일관성, ... |
프레임워크
쇼엄의 프로그래밍 패러다임을 구현하는 에이전트 플랫폼이라고도 불리는 여러 개의 AOP '프레임웍스'가 있다.다음의 예는 기본적인 에이전트가 어떻게 헬로 월드 프로그램으로 프로그램되는지를 보여준다.
제이드
자바 플랫폼의 경우 프레임워크 중 하나는 JAID(https://web.archive.org/web/20100621141053/http://jade.tilab.com/))이다.다음은 코드를 실행하는 에이전트의 매우 기본적인 예 [1]
꾸러미 안녕 세계; 수입하다 옥색의에이전트; 공중의 계급 안녕 연장하다 에이전트 { 보호받는 공허하게 하다 세우다() { 시스템.밖으로.인쇄하다("헬로 월드."); 시스템.밖으로.인쇄하다("내 이름은 " 입니다.+ getLocalName()); } 공중의 안녕() { 시스템.밖으로.인쇄하다("건설자 호출"); } } JADE의 AOP 모델의 핵심은 API가 표준 FIPA 에이전트 커뮤니케이션 언어를 지원하는 것이다.
에이전트 말하기(Jason)
에이전트 지향 개념을 Java와 Object Orientness 뒤에 있는 Jason은 에이전트 지향적 개념을 JAID처럼 모호하지 않은 체계로 문자 그대로 번역하기 위해 에이전트 스피크(Jason)는 에이전트에게 "자연적인" 언어를 제공한다.
시작된. +시작된 <- .인쇄하다("헬로 월드."). 목표
ALLE는 인지 에이전트를 프로그래밍하기 위한 에이전트 프로그래밍 언어다.목표 요원들은 그들의 신념과 목표로부터 그들의 행동 선택을 이끌어낸다.언어는 대리인의 신념과 목표의 조작을 허용하고 용이하게 하고 의사결정을 구조화하는 구조를 프로그래밍함으로써 인지 에이전트를 설계하고 구현할 수 있는 기본적인 구성 요소를 제공한다.언어는 상식이나 실제 추리에 기초한 직관적인 프로그래밍 프레임워크를 제공한다.
SARL 언어
SARL[5](SARL 웹 사이트)은 멀티에이전트 시스템 코딩을 위한 기본 추상화를 제공한다.대본과 같은 구문(스칼라와 루비에서 영감을 받은)을 사용한다.
꾸러미 안녕 세계 수입하다 io.sarl.core.초기화 에이전트 HelloWorld에이전트 { 에 관하여 초기화 { 인쇄하다("헬로 월드.") } } 미들웨어
모듈형 또는 확장형 AOP 지원을 구현하는 한 가지 방법은 소프트웨어 에이전트로 구현되는 미들웨어 기능에 대한 표준 AOP API를 정의하는 것이다.예를 들어, 디렉토리 서비스는 FIPA 디렉토리 촉진자 또는 DF 소프트웨어 에이전트로 구현될 수 있으며, 에이전트를 시작, 중지, 일시 중지 및 재개하는 라이프사이클 관리는 FIPA 에이전트 관리 서비스 또는 AMS 에이전트로 구현될 수 있다.[6]AOP 접근법의 이점은 애플리케이션, 서비스 및 네트워크의 서로 다른 사용자와 제공자들 사이의 보다 동적인 역할을 지원한다는 것이다.예를 들어, 전통적으로 네트워크와 서비스는 대개 고객을 대신하여 네트워크와 서비스 제공자에 의해 관리되고 단일 가상 네트워크 서비스로 제공되었지만, 고객들 스스로는 그들 자신의 서비스를 통합하고 관리할 수 있는 권한이 더 많아지고 있다.이는 AOP와 API를 통해 유연하고 동적으로 통신을 관리할 수 있는 미들웨어 에이전트에 도달할 수 있다.[7]
참고 항목
- 소프트웨어 에이전트 – thailand.it용 부팅 컴퓨터 프로그램
- 넷로고
- 행위자 모델 – 동시 연산 모델
- 목표
참조
- ^ Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department.
- ^ Shoham, Y. (1993). "Agent-Oriented Programming". Artificial Intelligence. 60 (1): 51–92. CiteSeerX 10.1.1.123.5119. doi:10.1016/0004-3702(93)90034-9.
- ^ Bellifeminee, Fabio; Agostino Poggi; Giovanni Rimassa (2001). JADE: a FIPA2000 compliant agent development environment. Proceedings of the fifth international conference on Autonomous agents. pp. 216–217. doi:10.1145/375735.376120.
- ^ 아난드 S.라오, 1996년AgentSpeak(L): 논리 계산 가능한 언어로 BDI 에이전트 발표MAAMAW-96) Multi-Agent World에서 자율 에이전트 모델링에 관한 제7차 유럽 워크숍의 진행.
- ^ Rodriguez, Sebastian; Gaud, Nicolas; Galland, Stéphane (2014). "SARL: A General-Purpose Agent-Oriented Programming Language". 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT). pp. 103–110. doi:10.1109/wi-iat.2014.156. ISBN 978-1-4799-4143-8.
- ^ Poslad, S (2007). "Specifying Protocols for Multi-agent System Interaction". ACM Transactions on Autonomous and Adaptive Systems. 2 (4): 15–es. doi:10.1145/1293731.1293735.
- ^ Poslad, S; J. Pitt; A. Mamdani; R. Hadingham; P. Buckle (1999). Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems, Hayzelden A, Bigham J Eds. pp. 221–242. doi:10.1007/978-3-642-58418-3_9.