Amigos,
Venho aqui trocar uma bola para saber qual seria o melhor caminho a adotar em um projeto que estou desenvolvendo.
Tenho a necessidade de desenvolver um servidor para receber tarefas de impressão e receber requisições de periféricos;.
Explico.
O sevidor irá estar conectado em mais de uma impressora, cada impressora poderá excutar um trabalho por vez, esse trabalho deve de qualquer maneira ser impresso, ou seja, se caso ele falhe em sua impressora original, deve ser direcionado a outra impressora, e se essa falhar, procurar uma disponivel, se todas falharem, avisar o administrador e retomar os trabalhos assim que uma da impressora estiver disponível.
Esse mesmo servidor irá receber requisições de palm e microterminais para serem salvas no banco de dados e depois impressas;
Estava pensando em criar um POOL de THREAD para gerenciar cada impressora, pesquisando pela NET desconbri o pacote java.util.concurrent. Depois de ler muito, percebi que ele atende tudo que eu preciso, porem, tenho duvidas em como implementar.
O que pensei:
- Para gerenciar os trabalhos em cada impressora, irei usar a interface BlockingQueue;
- Para gerenciar todas as impressoras vou usar a Interface ExecutorService;
- Para a interface do usuário, usarei um JTABLE informando a fila de impressao e um outro informando as impressoras com status em cada uma.
- Terei uma classe principal que irá monitorar as impressoras; Instalar impressoras, desintalar impressoras; Receber conexoes para novos serviços;
- Terei classes para impressoras que é uma interface com os metodos que deverei chamar para realizar a impressao, verificar o estado, carregar o driver, etc.
- Terei uma classe que é o trabalho a ser impresso.
Estou no caminho certo?