wiki:WF/ArquiteturadeDesenvolvimento

Version 8 (modified by viani, 16 years ago) (diff)

--

Arquitetura de Desenvolvimento

WikiInclude(WF/tableofcontents)?

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 os três elementos principais 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 da própria 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á conectado ao banco de dados do processo, 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