Quando acessamos recursos baseados no modelo cliente/servidor, existe a separação dos papéis dos
agentes envolvidos: o cliente solicita recursos a um servidor, e o servidor disponibiliza estes recursos ao
cliente. Para que isso ocorra, é possível utilizar duas ou mais camadas no processo, como, um cliente
requisita dados de um servidor de aplicação, que, por sua vez, requisita dados a um servidor de banco
de dados antes de retornar a solicitação ao cliente.