Estratégia para rastrear atividade recente do usuário

Nosso cliente gostaria de saberquem está online e atualmente usando o aplicativo personalizado que escrevemos para eles. Eu discuti isso com eles e isso não precisa serexato, mais de um guestimate funcionará.

Então, meu pensamento é um intervalo de 15 minutos para determinar a atividade do usuário. Algumas idéias que tenho para fazer isso são as seguintes:

Carimbar seu registro de usuário com uma data e hora de sua última atividade toda vez que eles fazem algo que atinge o banco de dados, ou solicita uma página web ... isso, porém, pode ser bastante intensivo de banco de dados.

Envie um "who is online request" do nosso software, procurando respostas, isso poderia ser feito em um intervalo programado e, em seguida, carimbar o registro do usuário com a data e a hora atuais para cada resposta que recebi.

Quais são seus pensamentos? E como você lidaria com essa situação?

Esclarecimento

Eu gostaria de usar a mesma arquitetura para o Windows ou a Web, se possível. Eu tenho uma única camada de lógica de negócios que várias interfaces de usuário interagem, pode ser o Windows ou a Web.

Pelo Windows eu significaria cliente-servidor.

Esclarecimento

Estou usando uma arquitetura de n camadas para que meus objetos de negócios lidem com toda a interação com a camada de apresentação. Essa camada de apresentação pode estar alimentando um aplicativo do Windows cliente-servidor, aplicativo da Web, serviço da Web e assim por diante.

Não é um aplicativo de alto tráfego, pois foi desenvolvido para um cliente nosso, talvez 100 usuários no máximo.

questionAnswers(10)

yourAnswerToTheQuestion