Soluções

Utilizamos a idéia de papéis no sistema. Para entender melhor esta abstração pense, por exemplo que o sistema seja um carro. Neste caso, existem os seguintes papéis: motorista, passageiro, frentista, mecânico, etc. Cada papel interage com o carro de uma maneira diferentes e, de acordo com o estado em que o carro se encontra: se o carro estiver quebrado então o mecânico interage com ele, se estiver sem gasolina então é a vez do frentista, etc. Cada papel possui um conjunto de ações que pode realizar: o frentista não pode, por exemplo, consertar o carro e, nem o mecânico encher o tanque.
Cada pessoa no sistema recebe um conjunto de papéis e, como cada papel define um conjunto de ações permitidas, temos seu nível de acesso configurado.
Um autômato foi criado para controlar o fluxo de estados pelos quais uma solicitação passa. Para escolher quais estados e transições fariam parte do autômato, foram analisados os estados pelos quais uma solicitação passava atualmente no Núcleo, além de analisarmos a possibilidade de incluir novos estados que pudessem melhorar o gerenciamento das solicitações.
Vale lembrar que, a permissão de execução de uma determinada ação no sistema está ligada ao nível de acesso do executor. Se a ação for sobre uma solicitação, além do nível de acesso temos que analisar o estado no qual ela se encontra pois, cada estado define um conjunto de ações permitidas.

Fabio Pisaruk 2004-12-07