Multiagent systems are distributed systems. Engineering a multiagent system means rigorously specifying the communications among the agents by way of interaction protocols. What makes specifying the protocols for agent interaction especially interesting and challenging is that agents are autonomous and heterogeneous entities. These properties of agents have profound implications on the nature of protocol specifications. As we shall see, protocols for multiagent systems turn out to be fundamentally different from those for other kinds of distributed systems such as computer networks and distributed databases. We conceptualize all distributed systems in architectural terms—as consisting of components and connectors between the components. The components of the Internet are all nodes with IP addresses. The main connector is the Internet Protocol, which routes packets between the nodes. The components of the Web are the clients (such as browsers) and servers and the connector is the HTTP protocol. The components in a distributed database are the client databases and the coordinator and a connector is the two-phase commit protocol. We can discern a pattern here: the connectors are nothing but the interaction protocols among the components. Further, we can associate protocols with the application it facilitates. For example, the Internet Protocol facilitates routing; HTTP facilitates access to 1 2 Chapter 3 a distributed database of resources; and the two-phase commit protocol facilitates distributed transactions.
watch this video:https://www.youtube.com/watch?v=Z5vxRC8dMvs