Hola comunidad
Estoy desarrollando un subsitema de servicio de seguridad que le brindara autenticacion , control de acceso a recursos , generacion de log , auditaria a los log y administracion de usuarios roles y recursos , ahora ...
Normalmente es bueno tener un controlador de fachada para los subsistemas de servicios que incurriria en un menor acoplamiento de los subsistemas de diseño que usuarian la interfaz brindada por el subistema (valido aclarar que este controlador delegaria responsabilidad en controladores de casos de usos para dar respuesta a las responsabilidades) , ahora la encrucjada en que me encuentro es que como el subistema de servicio de seguridad brindara unas cuantas funcionalidades temo tener un controlador sobrecargado que no es una buena de tecnica de diseño y prog
Como saber si mi controlado esta sobre cargado ?
class SecurityManager
{
«» authentication ( [in] user, [in] password, [in] authenticationType ) : Integer
«» logOut ( [in] idSession ) : Integer
«» determineAccess ( [in] idSession, [in] idResource ) : Integer
«» isAccessible ( [in] idSession, [in] idResource, [in] action ) : Boolean
«» resourceVSpermission ( [in] idSession ) : int[*]
«» alarmRegistration ( [in] ... ) : Integer
«» insertUser ( [in] user : String, [in] name : String, [in] role : String )
«» editUser ( [in] user : String, [in] name : String, [in] role : String )
«» deleteUser ( [in] user : String )
«» searchUser ( [in] user : String )
«» listUsers ( )
«» insertProfile ( [in] nameProfile : String, [in] listPermissionResourse : int[*] )
«» editProfile ( [in] nameProfile : String, [in] listPermissionResourse : int[*] )
«» deleteProfile ( [in] nameProfile : String )
«» searchProfile ( [in] nameProfile : String )
«» listResources ( ) : int[*]
«» MonitorUser ( )
«» monitorSystemExt ( )
«» auditAuthentication ( [in] ..., [in] int type, [in] list<string> * logs, [in] tm * dateI, [in] tm * dateF, [in] string newName, [in] int newCredential, [in] string authenticationType )
«» auditAccessControl ( [in] ..., [in] int type, [in] list<string> * logs, [in] tm * dateI, [in] tm * dateF, [in] string newName, [in] int newCredential, [in] int idResource )
«» auditProfileAdministration ( [in] int type, [in] list<string> * logs, [in] tm * dateI, [in] tm * dateF, [in] string newName, [in] int newCredential, [in] int idGroup, [in] string profile )
«» auditUserAdministration ( [in] int type, [in] list<string> * logs, [in] tm * dateI, [in] tm * dateF, [in] string newName, [in] int newCredential, [in] int credential, [in] string name )
«» auditResourceAdministration ( [in] int type, [in] list<string> * logs, [in] tm * dateI, [in] tm * dateF, [in] string newName, [in] int newCredential, [in] int idResourceAdmin, [in] string resourceType )
}
toda esta funcionalidad la reparte el controlador de fachada a otros controladores de casos de uso mas cohesivos
espero haya sido claro con mi duda espero sugerencias
Saludos Antares1983