Soluções

Para lidar com o problema dos papéis dinâmicos decidimos que, ao ser inserido num projeto/programa, a pessoa já entra com uma determinada responsabilidade(papel) no mesmo. Por exemplo: num programa, existe um coordenador, estagiários e, um supervisor.

Para validar a execução de ações dentro do programa, verificamos o papel que o executor possui neste programa. Como foi utilizado J2EE, papéis e permissões para execução das funções podem ser definidas de maneira declarativa, eliminando a necessidade de misturar estas validações com o código da aplicação.

Como cada programa/projeto deveria possuir um autômato de tarefas definido pelo usuário, a idéia foi permitir que o usuário os criasse da seguinte maneira:

Deixamos que o coordenador de um projeto/programa crie o seu próprio autômato.

A questão das fichas dinâmicas foi resolvida com o uso do sistema VODU pois, ele permite a criação de fichas utilizando XML.

A implementação das notificações foi feita com o uso de Timer Services. Para cada notificação é criado um Timer Services com duração especificada. Assim que ele expira, o interessado é informado e realiza a ação desejada. Por exemplo: quando uma tarefa começa a ser executada ela cria um Timer Service com tempo de duração igual ao tempo máximo para a conclusão da tarefa. Se ela não for concluída a tempo, o Timer Service notificará a tarefa que, por sua vez, tomará as atitudes necessárias.

Fabio Pisaruk 2004-12-07