Árvore de páginas
Skip to end of metadata
Go to start of metadata

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 13 Próxima »

Camadas da arquitetura

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 (http://restfulobjects.org/).  Esta camada oferece uma forma de comunicação entre as diferentes partes do plugin.

Modelo de URI utilizado pela API REST:

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:

  1. 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)

    Interface
    public interface IExemploManager extends IManager<EntidadeBancoDados>{
    }
  2. 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)

    Classe Concreta
     public class ExemploManager extends AbstractManager<EntidadeBancoDados> implements IExemploManager{
     
    	public ExemploManager(IBasicPersistence persistence) {
    		super(persistence);
    	}
    }
  3. Sobrescrever os métodos que precisam ser especificados (neste exemplo, especificaremos a validação)

    SobrescritaMetodo
    	@Override
    	protected Period validateCreateImpl(EntidadeBancoDados model) {
    		// Aplicar regras de negócio
            return super.validateCreateImpl(model);
    	}
  4. 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.

Este métodos são responsáveis por realizar a persistência na base de dados e da mesma maneira como ocorre com a camada de negócio, a camada de persistência pode ter especificações

  • Sem rótulos