...
A camada de apresentação utiliza o framework AngularJS, o mais novo lançamento do time de desenvolvedores do Google. Diferentemente de outros frameworks JavaScript, ele adota uma abordagem mais ligada à sintaxe HTML, funcionando como uma espécie de extensão da linguagem. Componentes padrões, como por exemplo laços de repetição (ng-repeat), já estão inclusos no framework. Entretanto, novos componentes customizados foram desenvolvidos para auxiliar nossos desenvolvedores. Estes componentes são classificados no AngularJS como directives, filters, providers, services; e serão discutidos na seção Camada de Apresentação.
A camada de serviços faz uso da especificação JSR311 e sua implementação de referência Jersey. Em conjunto, ambos buscam simplificar o desenvolvimento de serviços REST e oferecer uma forma padrão de implementação desta linha de serviços. O Jersey implementa os recursos definidos pela JSR e acrescenta algumas funcionalidades, como o WADL e uma API para clientes REST. Novamente, a arquitetura provê métodos auxiliares, nos quais implementam operações CRUD através de endpoints RESTful.
E por Por fim, temos a camada de negócios e as diferentes implementações de frameworks que disponibilizam o mapeamento de objeto-relacional, são eles: Hibernate, AO, TopLink. Nesta camada foi possível criar abstrações para que seja transparente as operações nativas destes frameworks, isto é, o desenvolvedor não preocupa-se com detalhes de qual framework está sendo utilizado pela aplicação. Contudo, estas não são as únicas funcionalidades da camada. Validações de modelo e regras de negócio também estão contidas neste terceiro nível.
Assim, após a apresentação formal do propósito da arquitetura, concluimos esta seção com uma figura que será responsável unificar todos os dados passados. Segue: