节点文献

基于组织的面向Agent程序设计理论及语言

Organization-based Agent-Oriented Programming Theory and Language

【作者】 胡翠云

【导师】 毛新军;

【作者基本信息】 国防科学技术大学 , 计算科学与技术, 2013, 博士

【摘要】 当前以互联网为运行环境的软件系统呈现出环境开放化、软件实体自主化、交互不确定化和系统社会化等方面的复杂性特点,对软件的动态性、灵活性和社会性提出了更高的要求。如何提供高层的抽象、有效的机制以及具有较强表达能力的程序设计语言来支持此类软件系统的构造和实现,是目前软件工程关注的一个重要研究课题。面向Agent程序设计(Agent-Oriented Programming,AOP)将自主Agent作为基本的软件单元,Agent之间通过高层的交互相互作用,代表了一种新颖的软件抽象和软件系统构造方法,被视为解决上述问题的有效手段。然而现有AOP的研究,一方面缺乏有效的程序设计机制支持软件的动态性和灵活性;另一方面缺乏与现有软件工程成功理论和实践的充分集成,影响了程序设计的质量和效率。近年来,随着社会组织思想在面向Agent分析和设计中的广泛应用,借助社会组织的思想和机制认识互联网环境下软件系统的社会化特征,进而支持此类系统的构造和实现已成为AOP研究的一个重要趋势。本文以互联网环境下软件系统的构造和实现为具体应用背景,从软件工程的角度,研究如何将AOP与社会组织学的思想和方法以及软件工程的技术和原则相结合,从程序设计模型和机制、语言的语法和语义、类型系统和理论、程序设计和运行支撑环境四个方面,开展基于组织的面向Agent程序设计研究。论文取得的研究成果和主要创新点描述如下。1.基于组织的面向Agent程序设计模型和机制针对现有AOP模型缺乏支持软件系统动态性和灵活性的有效抽象和机制这一问题,论文将Agent、角色和组织作为一阶的程序设计抽象,引入一系列的社会组织机制作为程序设计机制,提出了基于组织的面向Agent程序设计模型——Oragent,从而在程序设计层为互联网环境下软件系统的动态性、灵活性等提供显式支持,具体包括:角色扮演机制实现了Agent与其结构和行为的动态绑定;角色组合机制实现了Agent的自适应行为;角色晋升机制实现了Agent的自演化行为;基于角色的交互使得Agent可以动态地获取交互对象;基于组织的自管理机制实现了组织结构的动态调整(即实现了组织的自适应性)。此外,Oragent模型还借鉴和引入了OOP中的继承机制,分别在组织和角色不同层次上给出了其新的解释和内涵,从而增强了Oragent程序的结构性和可重用性。2.基于组织的面向Agent程序设计语言OragentL论文基于Oragent程序设计模型设计了OragentL语言,其特色在于为组织的概念和机制提供了显式的语言设施,使得Oragent模型支持动态性的核心程序设计机制在语言层得以体现,为不同抽象层次的软件实体(高层的组织概念和个体Agent)提供了统一的语法和语义。论文还基于抽象状态机和迁移系统从语句、Agent、组织等不同层次上定义了OragentL语言的形式化操作语义,从而为OragentL语言运行时环境的设计与实现提供了理论参考,也为OragentL性质的验证奠定了基础。3.基于组织的面向Agent程序设计语言的类型系统和理论为了解决在基于组织的面向Agent程序设计中,Agent之间交互的合法性以及来自不同角色的行为的一致性问题,论文定义了OragentL语言的类型系统,建立了相应的理论,主要工作包括:基于动作序列(行为)建立了Agent和角色的类型理论;给出了角色程序和Agent格局的良类型规则;基于保持定理和进展定理,证明了轻量级OragentL语言(只支持角色扮演和基于角色交互机制)的安全性等。OragentL语言类型系统的研究,提高了基于组织的面向Agent程序设计程序的质量,从而使得基于OragentL开发大规模软件系统更加安全和实用。4.基于组织的面向Agent程序设计和运行的支撑环境论文设计与实现了支持OragentL程序设计与运行的支撑环境,以支持OragentL程序的编译和运行。该环境主要包括两个部分:OragentL程序运行时环境Oragentburg和OragentL编译器。Oragentburg在平台层实现了Oragent模型的核心程序设计机制,同时为Oragent程序的运行提供了诸如实体管理、标识符管理、通信等基础设施和服务。OragentL编译器实现了OragentL程序到Oragentburg上可运行的Java代码的转换。论文以互联网环境下的在线商场为案例,基于上述理论和语言对其进行构造和实现。该工作一方面展示了如何基于OragentL语言提供的语言设施和机制来构造和实现互联网环境下的软件系统;另一方面验证了OragentL编译器与Oragentburg运行时环境的有效性。

【Abstract】 Current software systems situated on the Internet are characterized by theopenness of environment, autonomy of software entities, uncertainty of interactions, andsocialization of themselves. These characteristics pose higher requirements on thedynamisms and flexibilities of software. One main trend of software engineering is howto provide high-level abstraction, effective mechanisms and expressive programminglanguages for the constructions of such software systems.Agent-oriented programming (AOP) takes the autonomous agents as basicsoftware units, which can engage in high-level interactions. AOP is considered as arepresentative novel software paradigm for abstraction and construction of softwaresystems, which effectively addresses the above issues. However, current AOP researchstill lacks effective programming mechanism for software dynamisms and flexibilities.Moreover, AOP also fails to integrate successful principles and practices of softwareengineering, which affects the quality and efficiency of programming. Recently, withthe wide application of organization metaphor in agent-oriented analysis and design, anew trend in AOP field is to recognize and realize the socialized characteristics ofInternet-based software systems with organizational concepts and mechanisms.This dissertation, from a software engineering perspective, addresses the problemsof how to construct Internet-based complex software systems by integratingorganizational abstraction and AOP with software engineering principles andtechnologies. Our research on organization-based agent-oriented programming focusesthe following aspects: programming model and mechanism, language, type system andrelated theory, and programming and runtime environment. The main contributions ofthis dissertation are described as follows.1. Models and mechanisms of organization-based agent-oriented programmingWith regards to the problems that current AOP models lack effective abstractionsand mechanisms to support dynamism, we propose an organization-basedagent-oriented programming model, namely Oragent, which takes organizationalconcepts, such as agent, role, and organization, as first-class abstractions, and introducesa set of organizational mechanisms, so as to explicitly support such dynamism at theprogramming level. Specifically, in this model, we provide a role-enactment mechanismfor the dynamic binding between agents and roles, a role-composition mechanism forthe self-adaptive behavior of agents, a role-promotion mechanism for the self-evolutionof agents, a role-based interaction mechanism for an agent to dynamically obtain itscommunication partners, and an organization-based self-management mechanism forthe dynamic and adaptive adjustment of organizational structures. We also introduceinheritance, which has been proven availably in OOP, for both organizations and roles, thereby reinforcing the modularity and extensibility of Oragent programs.2. An organization-based agent-oriented programming language—OragentLOragentL is designed based on the Oragent model. Its distinguishing characteristicis that providing explicit language facilities for the core concepts and programmingmechanisms of Oragent model, so that the high-level organization abstractions can beexplicitly specified in the low-level codes. In this way, OragentL provides the uniformsyntax and semantics for organizational concepts and agents. Moreover, we havedefined the operational semantics of OragentL at levels of statements, agents, andorganizations with abstract state machine and transition system, so as to provide atheoretical basis for the development of a runtime environment, and the verification ofproperties of the language.3. Type system and related theory of organization-based agent-orientedprogramming languageIn order to address the problems related to the legitimate interactions among agentsand to the consistency of behavior from different roles, a type system and related theoryis defined for OragentL. The major works include: typing agents and roles with actionsequence (i.e., behavior), defining the well-typed rules for role programs and agentconfigurations, proving the safety of a featherweight OragentL (which supports onlyrole enactment and role-based interaction) with preservation theorem and progresstheorem. The study on this aspect ensures the quality of organization-basedagent-oriented programs, so as to make the language more practically useful indeveloping large-scale software systems.4. A programming and runtime environment for organization-based agent-orientedprogrammingWe design and implement a programming environment for the compilation andexecution of OragentL programs. The environment consists of Oragentburg—aruntime environment, and an OragentL complier. Oragentburg realizes the coreprogramming mechanisms of OragentL and provides infrastructure for the entitiesmanagement and communication. The OragentL complier is responsible for translatingOragentL programs into corresponding Java classes that can execute on Oragentburg.Throughout the paper, a case of online mall is studied to demonstrate how toconstruct and implement Internet-based software systems with OragentL, anddemonstrate the effectiveness of the runtime environment Oragentburg.

节点文献中: 

本文链接的文献网络图示:

本文的引文网络