wiki:WF/ArquiteturadeDesenvolvimento

Version 11 (modified by viani, 14 years ago) (diff)

--

Arquitetura de Desenvolvimento

O desenvolvimento de processos de Workflow utiliza a arquitetura MVC, já consagrada entre desenvolvedores, que organiza o código em camadas. Cada camada irá limitar-se exclusivamente àquilo que se propõe a fazer, mantendo tudo em seu contexto a fim de tornar transparente a localização de cada parte do código.

mvc.png

A figura acima esquematiza a arquitetura MVC empregada em uma atividade qualquer de um processo. Vale dizer que todas as atividades do processo deverão seguir este modelo de implementação como forma de padronizar o código e facilitar a manutenção.

Observa-se que as três camadas do MVC (Model - View - Controller) estão representados no esquema. O ponto inicial de ação é a execução da atividade por parte do usuário, representado pelo ícone do computador e o método run() que ativa a camada de controle.

A camada de controle irá processar a requisição run() e tentará identificar qual a ação que está sendo solicitada pelo usuário. Feita esta identificação, o método adequado da camada Controller será acionado através do dispatch(). Quando for a primeira execução da atividade, nenhuma ação será requisitada, então a camada Controller irá acionar o método __default() da própria Controller. Uma vez no método adequado, métodos da Model serão chamados para executar a ação solicitada.

Uma vez que o processamento passe para a camada Model, a mesma terá acesso à recursos disponibilizados pelo módulo workflow, que são:

  • DAO: é um objeto de conexão com o banco de dados (que significa Data Access Object). Este objeto já estará configurado para utilizar o banco de dados do processo. Uma vez solicitada a conexão, o objeto já estará pronto para receber comandos SQL, como por exemplo queries de consulta, ou comandos de inserção de dados;
  • Factory: este é um objeto especial responsável por criar outros objetos sob demanda do usuário. Por exemplo, com a factory podemos requisitar a criação de um objeto de organograma, e com ele ter acesso aos dados do organograma da organização;
  • Natural: objeto de conexão com o ambiente Mainframe para execução de programas Natural;
  • Workflow: este objeto contém informações sobre o ambiente de execução da atividade corrente, como por exemplo, qual o usuário está logado;
  • Request: contém os dados submetidos pela atividade. Por exemplo, se a ação a ser tratada pela Model for um salvamento com inserção no banco de dados, neste objeto estarão os dados preenchidos pelo usuário no formulário da atividade;
  • Instance: objeto da instância atual;
  • Activity: objeto da atividade atual.

O retorno da camada Model será um indicativo de sucesso ou insucesso da operação. A camada Controller irá tratar este retorno para tomar uma decisão sobre o que fazer. Geralmente após o retorno da camada Model, alguma informação será exibida para o usuário, com uma mensagem de sucesso, ou uma página de resultado de pesquisa, etc. Neste ponto, a camada Controller irá carregar na camada View os dados a serem exibidos e acioná-la passando qual o template a ser utilizado para exibição dos dados.

Assim fecha-se o ciclo e a atividade fica no aguardo de uma ação do usuário para novamente acionar a camada Controller.

Attachments