PAC is an architectural pattern that organizes software into three main components: Presentation (user interface), Abstraction (functional core), and Control (mediates interactions between Presentation and Abstraction).
- Hierarchy of co-operating agents
- Each agent is a PAC in itself
- Similar to MVC
- Presentation -> View
- Abstraction -> Model
- Control -> Controller
Usage
- Network management - PAC agents for traffic monitoring, analysis, control.
Benefits
- Separation of concerns - Within and between agents.
- Multi-tasking - Agents can run concurrently on separate processors.
Drawbacks
- Complexity - Many PAC hierarchies to manage.
- Control component - Very complex to coordinate agents.
- Inefficiency - Data propagation through agents.
Example
In a video game, the Presentation layer handles the graphics and user input, the Abstraction layer manages game logic and state, and the Control layer coordinates communication between the Presentation and Abstraction layers.