| Introduction | p. 1 |
| Software Architecture and Middleware | p. 1 |
| Software Architecture | p. 2 |
| Middleware | p. 3 |
| Agent-Oriented Methodologies | p. 4 |
| Case Study | p. 5 |
| Overview of the Book | p. 6 |
| Overview of Architecture-Based Design of Multi-Agent Systems | p. 9 |
| General Overview of the Approach | p. 9 |
| Architectural Design in the Development Life Cycle | p. 9 |
| Steps of Architecture-Based Design of Multi-Agent Systems | p. 11 |
| Functional and Quality Attribute Requirements | p. 12 |
| Architectural Design | p. 14 |
| Architectural Patterns | p. 14 |
| ADD Process | p. 16 |
| Middleware Support for Multi-Agent Systems | p. 17 |
| Documenting Software Architecture | p. 17 |
| Architectural Views | p. 18 |
| Architectural Description Languages | p. 19 |
| Evaluating Software Architecture | p. 20 |
| From Software Architecture to Downstream Design and Implementation | p. 23 |
| Summary | p. 24 |
| Capturing Expertise in Multi-Agent System Engineering with Architectural Patterns | p. 27 |
| Situated Multi-Agent Systems | p. 28 |
| Single-Agent Systems | p. 28 |
| Multi-Agent Systems | p. 30 |
| Target Domain of the Pattern Language for Situated Multi-Agent Systems | p. 32 |
| Overview of the Pattern Language | p. 33 |
| Pattern Template | p. 34 |
| Virtual Environment | p. 35 |
| Primary Presentation | p. 35 |
| Architectural Elements | p. 35 |
| Interface Descriptions | p. 37 |
| Design Rationale | p. 38 |
| Situated Agent | p. 39 |
| Primary Presentation | p. 39 |
| Architectural Elements | p. 39 |
| Interface Descriptions | p. 41 |
| Design Rationale | p. 41 |
| Selective Perception | p. 43 |
| Primary Presentation | p. 43 |
| Architectural Elements | p. 43 |
| Interface Descriptions | p. 44 |
| Design Rationale | p. 44 |
| Roles and Situated Commitments | p. 45 |
| Primary Presentation | p. 45 |
| Architectural Elements | p. 45 |
| Design Rationale | p. 47 |
| Free-Flow Trees Extended with Roles and Situated Commitments | p. 47 |
| Protocol-Based Communication | p. 50 |
| Primary Presentation | p. 50 |
| Architectural Elements | p. 50 |
| Interface Descriptions | p. 52 |
| Design Rationale | p. 52 |
| Summary | p. 53 |
| Architectural Design of Multi-Agent Systems | p. 55 |
| Designing and Documenting Multi-Agent System Architectures | p. 55 |
| Designing and Documenting Architecture in the Development Life Cycle | p. 56 |
| Inputs and Outputs of ADD | p. 57 |
| Overview of the ADD Activities | p. 57 |
| Case Study | p. 58 |
| The Domain of Automated Transportation Systems | p. 58 |
| Business Case | p. 60 |
| System Requirements | p. 61 |
| General Overview of the Design | p. 63 |
| Challenges at the Outset | p. 64 |
| The System and Its Environment | p. 65 |
| Design Process | p. 67 |
| Design Rationale | p. 68 |
| High-Level Design | p. 69 |
| Architecture Documentation | p. 75 |
| Introduction to the Architecture Documentation | p. 75 |
| Deployment View | p. 76 |
| Module Uses View | p. 79 |
| Collaborating Components View | p. 83 |
| Summary | p. 92 |
| Middleware for Distributed Multi-Agent Systems | p. 93 |
| Middleware Support for Distributed, Decentralized Coordination | p. 93 |
| Middleware in Distributed Software Systems | p. 94 |
| Middleware in Multi-Agent Systems | p. 95 |
| Case Study | p. 96 |
| Scope of the Middleware and Requirements | p. 96 |
| Objectplaces | p. 97 |
| Views | p. 99 |
| Coordination Roles | p. 103 |
| Middleware Architecture | p. 106 |
| High-Level Module Decomposition | p. 106 |
| Group Formation | p. 109 |
| View Management | p. 111 |
| Role Activation | p. 113 |
| Collision Avoidance in the AGV Transportation System | p. 114 |
| Collision Avoidance | p. 114 |
| Collision Avoidance Protocol | p. 115 |
| Software Architecture: Communicating Processes for Collision Avoidance | p. 119 |
| Summary | p. 122 |
| Task Assignment | p. 123 |
| Schedule-Based Task Assignment | p. 124 |
| FiTA: Field-Based Task Assignment | p. 124 |
| Coordination Fields | p. 125 |
| Adaptive Task Assignment | p. 127 |
| Software Architecture | p. 127 |
| Dealing With Local Minima | p. 130 |
| DynCNET Protocol | p. 131 |
| Adaptive Task Assignment | p. 132 |
| Monitoring the Area of Interest | p. 135 |
| Convergence | p. 137 |
| Synchronization Issues | p. 137 |
| Evaluation | p. 137 |
| Test Setting | p. 137 |
| Test Results | p. 139 |
| Tradeoff Analysis | p. 144 |
| Summary | p. 147 |
| Evaluation of Multi-Agent System Architectures | p. 149 |
| Evaluating Multi-Agent System Architectures with ATAM | p. 149 |
| Architecture Evaluation in the Development Life Cycle | p. 150 |
| Objectives of a Multi-Agent System Architecture Evaluation | p. 151 |
| Overview of the ATAM Activities | p. 151 |
| Case Study | p. 152 |
| AGV Transportation System for a Tea Processing Warehouse | p. 153 |
| Evaluation Process | p. 153 |
| Quality Attribute Workshop | p. 155 |
| Analysis of Architectural Approaches | p. 156 |
| Reflection on ATAM for Evaluating a Multi-Agent System Architecture | p. 161 |
| ATAM Follow-Up and Demonstrator | p. 163 |
| Summary | p. 163 |
| Related Approaches | p. 165 |
| Architectural Approaches and Multi-Agent Systems | p. 165 |
| Architectural Styles | p. 165 |
| Reference Models and Architectures for Multi-Agent Systems | p. 168 |
| Middleware for Mobile Systems | p. 172 |
| Work Related to Views | p. 172 |
| Work Related to Coordination Roles | p. 174 |
| Scheduling and Routing of AGV Transportation Systems | p. 177 |
| AI and Robotics Approaches | p. 177 |
| Multi-Agent System Approaches | p. 178 |
| Conclusions | p. 181 |
| Reflection on Architecture-Based Design of Multi-Agent Systems | p. 181 |
| It Works! | p. 181 |
| Reflection on the Project with Egemin | p. 183 |
| Lessons Learned and Challenges | p. 185 |
| Dealing with Quality Attributes | p. 185 |
| Designing a Multi-Agent System Architecture | p. 185 |
| Integrating a Multi-Agent System with Its Software Environment | p. 186 |
| Impact of Adopting a Multi-Agent System | p. 187 |
| ¿-ADL Specification of the Architectural Patterns | p. 189 |
| Language Constructs | p. 189 |
| Virtual Environment Pattern | p. 190 |
| Situated Agent Pattern | p. 194 |
| Synchronization in the DynCNET Protocol | p. 199 |
| Synchronization of Abort and Bound Messages | p. 199 |
| Synchronization of Scope Dynamics | p. 201 |
| Collision Avoidance Protocol | p. 203 |
| Overview | p. 203 |
| Invariant | p. 204 |
| Maintaining the Invariant | p. 205 |
| Glossary | p. 209 |
| References | p. 213 |
| Index | p. 223 |
| Table of Contents provided by Ingram. All Rights Reserved. |