Camadas da
...
A aplicação é divida da seguinte maneira:
Interface de Usuário (Commons Business UI)
Camada de Serviços
Todos os serviços disponíveis são implementados utilizando o padrão de Restful Objects. Esta camada oferece uma forma de comunicação entre as diferentes partes do plugin.
Modelo de URI utilizado pela API REST:
O modelo de URI é baseado na operação a ser realizada (POST, PUT, DELETE e GET)
http://{host}:{port}/{context}/rest/latest/domain/{object}/{actions}
Onde:
- {host} e {port} definem onde a aplicacao esta rodando;
- {context} é o Servlet Context da aplicacao. Por exemplo, no crowd normalmente é /crowd;
- {object} é o Objeto da camada de persistência a ser trabalhado (entidade de persistência "Company", caso a mesma exista).
Camada de Negócios
A camada de negócio provida pela arquitetura, é dada através das classes com sufixo Manager (dentro projeto 3layer-commons-buiness). Ela é estruturada da seguinte maneira:
Está camada fornece métodos CRUD com implementação básica e são expostos dentro da arquitetura para que, caso seja necessário, possam ser implementados de forma especifica. Os métodos declarados na interface IManager e Implementados na classe AbstractManager e são:
Especificando Métodos de Negócio da Arquitetura
Caso sejam necessárias criar regras e validações especificas para um determinado fluxo, o mesmo pode ser feito seguindo os seguintes passos:
Criar uma interface que estenda IManager tipificando-a com a Classe referente a entidade de banco de dados (para fins de persistência de dados)
Bloco de código theme Eclipse language java title Interface linenumbers true public interface IExemploManager extends IManager<EntidadeBancoDados>{ }Cria uma classe concreta que implemente a interface criada e estenda AbstractManager tipificando-a com a Classe referente a entidade de banco de dados (para fins de persistência de dados)
Bloco de código theme Eclipse language java title Classe Concreta linenumbers true public class ExemploManager extends AbstractManager<EntidadeBancoDados> implements IExemploManager{ public ExemploManager(IBasicPersistence persistence) { super(persistence); } }Sobrescrever os métodos que precisam ser especificados (neste exemplo, especificaremos a validação)
Bloco de código theme Eclipse language java title SobrescritaMetodo linenumbers true @Override protected Period validateCreateImpl(EntidadeBancoDados model) { // Aplicar regras de negócio return super.validateCreateImpl(model); }Chamar normalmente o método e através do delegate o método especifico será acionado
Camada de Persistência
A camada de persistência provida pela arquitetura é dada através das classes com sufixo Persistence (dentro projeto 3layer-commons-buiness). Ela é estruturada da seguinte maneira:
Neste diagrama podemos destacar a interface IBasicPersistence e a classe AbstractBasicPersistence.
...
Arquitetura
Anteriormente na seção Proposta da Arquitetura, abordamos a interação entre componentes de cada uma das camadas. Além da interação, também introduzimos os frameworks utilizados nesta camada.
| Incluir Página | ||||
|---|---|---|---|---|
|
| Incluir Página | ||||
|---|---|---|---|---|
|
| Incluir Página | ||||
|---|---|---|---|---|
|
| Incluir Página | ||||
|---|---|---|---|---|
|



