| Introduction / 1: |
| Software Architecture and Middleware / 1.1: |
| Software Architecture / 1.1.1: |
| Middleware / 1.1.2: |
| Agent-Oriented Methodologies / 1.2: |
| Case Study / 1.3: |
| Overview of the Book / 1.4: |
| Overview of Architecture-Based Design of Multi-Agent Systems / 2: |
| General Overview of the Approach / 2.1: |
| Architectural Design in the Development Life Cycle / 2.1.1: |
| Steps of Architecture-Based Design of Multi-Agent Systems / 2.1.2: |
| Functional and Quality Attribute Requirements / 2.2: |
| Architectural Design / 2.3: |
| Architectural Patterns / 2.3.1: |
| ADD Process / 2.3.2: |
| Middleware Support for Multi-Agent Systems / 2.4: |
| Documenting Software Architecture / 2.5: |
| Architectural Views / 2.5.1: |
| Architectural Description Languages / 2.5.2: |
| Evaluating Software Architecture / 2.6: |
| From Software Architecture to Downstream Design and Implementation / 2.7: |
| Summary / 2.8: |
| Capturing Expertise in Multi-Agent System Engineering with Architectural Patterns / 3: |
| Situated Multi-Agent Systems / 3.1: |
| Single-Agent Systems / 3.1.1: |
| Multi-Agent Systems / 3.1.2: |
| Target Domain of the Pattern Language for Situated Multi-Agent Systems / 3.2: |
| Overview of the Pattern Language / 3.3: |
| Pattern Template / 3.4: |
| Virtual Environment / 3.5: |
| Primary Presentation / 3.5.1: |
| Architectural Elements / 3.5.2: |
| Interface Descriptions / 3.5.3: |
| Design Rationale / 3.5.4: |
| Situated Agent / 3.6: |
| Selective Perception / 3.6.1: |
| Roles and Situated Commitments / 3.7.1: |
| Free-Flow Trees Extended with Roles and Situated Commitments / 3.8.1: |
| Protocol-Based Communication / 3.9: |
| Architectural Design of Multi-Agent Systems / 3.9.1: |
| Designing and Documenting Multi-Agent System Architectures / 4.1: |
| Designing and Documenting Architecture in the Development Life Cycle / 4.1.1: |
| Inputs and Outputs of ADD / 4.1.2: |
| Overview of the ADD Activities / 4.1.3: |
| The Domain of Automated Transportation Systems / 4.2: |
| Business Case / 4.2.2: |
| System Requirements / 4.2.3: |
| General Overview of the Design / 4.3: |
| Challenges at the Outset / 4.3.1: |
| The System and Its Environment / 4.3.2: |
| Design Process / 4.3.3: |
| High-Level Design / 4.3.4: |
| Architecture Documentation / 4.4: |
| Introduction to the Architecture Documentation / 4.4.1: |
| Deployment View / 4.4.2: |
| Module Uses View / 4.4.3: |
| Collaborating Components View / 4.4.4: |
| Middleware for Distributed Multi-Agent Systems / 4.5: |
| Middleware Support for Distributed, Decentralized Coordination / 5.1: |
| Middleware in Distributed Software Systems / 5.1.1: |
| Middleware in Multi-Agent Systems / 5.1.2: |
| Scope of the Middleware and Requirements / 5.2: |
| Objectplaces / 5.2.2: |
| Views / 5.2.3: |
| Coordination Roles / 5.2.4: |
| Middleware Architecture / 5.3: |
| High-Level Module Decomposition / 5.3.1: |
| Group Formation / 5.3.2: |
| View Management / 5.3.3: |
| Role Activation / 5.3.4: |
| Collision Avoidance in the AGV Transportation System / 5.4: |
| Collision Avoidance / 5.4.1: |
| Collision Avoidance Protocol / 5.4.2: |
| Software Architecture: Communicating Processes for Collision Avoidance / 5.4.3: |
| Task Assignment / 5.5: |
| Schedule-Based Task Assignment / 6.1: |
| FiTA: Field-Based Task Assignment / 6.2: |
| Coordination Fields / 6.2.1: |
| Adaptive Task Assignment / 6.2.2: |
| Dealing With Local Minima / 6.2.3: |
| DynCNET Protocol / 6.3: |
| Monitoring the Area of Interest / 6.3.1: |
| Convergence / 6.3.3: |
| Synchronization Issues / 6.3.4: |
| Evaluation / 6.4: |
| Test Setting / 6.4.1: |
| Test Results / 6.4.2: |
| Tradeoff Analysis / 6.4.3: |
| Evaluation of Multi-Agent System Architectures / 6.5: |
| Evaluating Multi-Agent System Architectures with ATAM / 7.1: |
| Architecture Evaluation in the Development Life Cycle / 7.1.1: |
| Objectives of a Multi-Agent System Architecture Evaluation / 7.1.2: |
| Overview of the ATAM Activities / 7.1.3: |
| AGV Transportation System for a Tea Processing Warehouse / 7.2: |
| Evaluation Process / 7.2.2: |
| Quality Attribute Workshop / 7.2.3: |
| Analysis of Architectural Approaches / 7.2.4: |
| Reflection on ATAM for Evaluating a Multi-Agent System Architecture / 7.3: |
| ATAM Follow-Up and Demonstrator / 7.4: |
| Related Approaches / 7.5: |
| Architectural Approaches and Multi-Agent Systems / 8.1: |
| Architectural Styles / 8.1.1: |
| Reference Models and Architectures for Multi-Agent Systems / 8.1.2: |
| Middleware for Mobile Systems / 8.2: |
| Work Related to Views / 8.2.1: |
| Work Related to Coordination Roles / 8.2.2: |
| Scheduling and Routing of AGV Transportation Systems / 8.3: |
| AI and Robotics Approaches / 8.3.1: |
| Multi-Agent System Approaches / 8.3.2: |
| Conclusions / 9: |
| Reflection on Architecture-Based Design of Multi-Agent Systems / 9.1: |
| It Works! / 9.1.1: |
| Reflection on the Project with Egemin / 9.1.2: |
| Lessons Learned and Challenges / 9.2: |
| Dealing with Quality Attributes / 9.2.1: |
| Designing a Multi-Agent System Architecture / 9.2.2: |
| Integrating a Multi-Agent System with Its Software Environment / 9.2.3: |
| Impact of Adopting a Multi-Agent System / 9.2.4: |
| ?-ADL Specification of the Architectural Patterns / A: |
| Language Constructs / A.1: |
| Virtual Environment Pattern / A.2: |
| Situated Agent Pattern / A.3: |
| Synchronization in the DynCNET Protocol / B: |
| Synchronization of Abort and Bound Messages / B.1: |
| Synchronization of Scope Dynamics / B.2: |
| Overview / C: |
| Invariant / C.2: |
| Maintaining the Invariant / C.3: |
| Glossary |
| References |
| Index |
| Introduction / 1: |
| Software Architecture and Middleware / 1.1: |
| Software Architecture / 1.1.1: |