As a Software Architecture Model for Distributed system computing it is a specialty variant of the more general Client-server Software Architecture Model and promotes agility and flexibility with regards to communication and interaction between applications. Its primary use is in Enterprise Application Integration (EAI) of heterogeneous and complex landscapes.