none
Utilizar instância única para gerenciar usuários RRS feed

  • Pergunta

  • Estou tentando criar um serviço que gerencie os usuários.
    Minha idéia, era ter um windows service que recebe via WCF comandos de registrar e desregistrar usuários.
    No registrar, ele guarda em memória (em alguma coleção) e sempre que alguem quizer acionar algo no sistema ele valida se existe este usuário que solicitou a alteração e se ele está na coleção de usuários registrados.
    Quando o usuário fechar o sistema, envia uma mensagem de desregistrar usuário que faz com que o serviço remova da coleção este usuário.

    Alguém pode me dizer por onde começar?
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 4 de novembro de 2009 11:53

Respostas

  • Boas Leandro,

    Você pode criar sim um serviço para isso, mas já há outra solução para isso, mas você terá que recorrer a outra tecnologia, chamada (codename) de Geneva. Ele fornece uma infraestrutura justamente para atender este teu cenário.

    Se você não quiser pagar o preço do aprendizado desta nova tecnologia, então você pode criar um serviço WCF para isso, mas tem que tomar cuidado para proteger as mensagens que chegam para ele, para que ninguem consiga enxergar o que está sendo passado, que serão informações confidenciais.
    http://www.israelaece.com
    quarta-feira, 4 de novembro de 2009 13:19
    Moderador

Todas as Respostas

  • Boas Leandro,

    Você pode criar sim um serviço para isso, mas já há outra solução para isso, mas você terá que recorrer a outra tecnologia, chamada (codename) de Geneva. Ele fornece uma infraestrutura justamente para atender este teu cenário.

    Se você não quiser pagar o preço do aprendizado desta nova tecnologia, então você pode criar um serviço WCF para isso, mas tem que tomar cuidado para proteger as mensagens que chegam para ele, para que ninguem consiga enxergar o que está sendo passado, que serão informações confidenciais.
    http://www.israelaece.com
    quarta-feira, 4 de novembro de 2009 13:19
    Moderador
  • Israel,

    você recomenda muito a utilização de Geneva? É muito complexo?

    Bom, eu queria saber como tornar a instancia da classe que vai guardar a coleção de usuários em instância unica, para todos os clients lerem do mesmo lugar e escreverem no mesmo lugar.
    Você tem alguma idéia pra isso?

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 4 de novembro de 2009 14:40
  • Israel,

    estou verificando algumas coisas sobre instância singleton no serviço e Marshallbyrefobject.
    Você aconselha utilizar isso?
    Abraços
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 4 de novembro de 2009 17:18
  • Boas Leandro,

    Sim, o Geneva é bem interessante e foi criado para esse tipo de cenário.

    Se você quer manter um serviço ativo, então pode recorrer as features do próprio WCF para isso.
    http://www.israelaece.com
    quarta-feira, 4 de novembro de 2009 18:11
    Moderador
  • Olá pessoal,

    estou utilizando WCF e está tudo OK até agora na parte de acesso ao serviço e do client.

    O que preciso agora, é quando um usuário conectar no sistema gravar na memória de alguma forma que este usuário foi logado no sistema.

    Não sei como fazer exatamente. Do lado do server tenho um windows service. Pensei em criar uma classe e definir ela como singleton (assim ) e dentro dela possuir uma coleção onde adiciono e removo usuários logados.

    Alguém ja fez algo parecido e poderia me ajudar?
    Desde já, grato!
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
    quarta-feira, 4 de novembro de 2009 18:52