Prezados Amigos, estou projetando um sistema de automação comercial para supermercados em especial, e portanto estou com dúvida em alguns itens, vou listar os requisitos, dessa forma acredito que os Srs. terão como tirar minhas dúvidas fácil fácil.
-
Requisitos Funcionais (Básico)
1.1 Manter Produtos, Grupo de Produtos, Departamento, Marca, Fornecedores, Empresas, Filiais, Compradores, Vendedores, Transportadores, PDV's. 1.2 Requisição de Compra/Venda, Cotação, Pedido de Compra/Venda e de Bonificação. 1.3 Entrada de produtos no estoque por aquisição, bonificação. 1.5 Saida de Produtos(Envio de Mercadoria do estoque de Vendas para estoque de Trocas). Separação de Estoques/Armazenagem. Ex: Est1-Venda, Est2-Trocas, Est3-Amox, Est4-Brinde. 1.6 Saida de Produtos(Venda), no Balcão/Emissão de NF/NFE, e no PDV/Cupom Fiscal. 1.7 Saida de Produtos(Perda de Estoque, Materia Prima/Produção). 1.8 Sistema deve fazer Sugestão de compras automático com base no histórico de venda. (Poderá também gerar o pedido automatico de acordo com sugestão) 1.9 Histórico de Vendas dos Ultimos 3 Mesês, Preço da Ultima Compra, Ultimo Fornecedor do Produto, Resumo Mensal de Vendas. 1.9.1 Saida por Transferência entre Filiais com Emissão de NF/NFE ( Ex: Transferir 100 Fardos de Arroz Cristal da Filial 1 para Filial 2).
OBS: Existe inúmeros requisitos funcionais, aqui eu coloquei somente alguns, para os Srs, ter uma noção do sistema.
- Requisitos Não Funcionais.
2.1 Banco de Dados:
MySQL no PDV e Oracle ou PostgreSQL na Matriz/Central.
2.2 Linguagem de programação:
Front End:
Aplicação Principal (Não é o PDV): Adobe Flex (Plataforma WEB) - MXML e Action Script
Aplicação PDV (Ponto de Vendas): Java (Plataforma Desktop - compativel com Linux e Windows). Usarei NetBeans
Back End:
JAVA
2.3 Link para comunicação entre Filial e Matriz.
MPLS ou VPN em cima de Internet com Velocidade minima de 512Kbps sem CIR na filial e 1MBps na Matriz (Isso é relativo).
2.4 Frameworks usado em todo projeto: Spring, Hibernate ou TopLink como implementação da JPA no PDV, na Aplicação principal quero usar JDBC puro mesmo, vou montar uma CAMADA DAO…e criar possibilidade para utilização de pelo menos uns 3 banco de dados: ORACLE, MySQL e PostGreSQL.
2.3 Arquitetura: (PESSOAL ONDE EU TENHO MAIS DÚVIDA). - Não quero e nem pretendo transmitir esses dados via arquivos Texto, tem que ser Banco a Banco…ja sofri muito com arquivo Texto.
PDV => to pensando 3 Camadas (MVC). mais com essa ideia de aplicação distribuida..agora fiquei na duvida quantas camadas, quais tecnologias para esse fim devo utilizar..
Aplicação Principal => Não Sei ainda, aqui que entra minha dúvida. Segue abaixo as perguntas.
Meu PDV será desenvolvido em na plataforma Desktop usando componentes Swing, e Esse PDV poderá está operando em diversas localidades do País. ou seja é envidente que iremos trabalhar em cima de uma VPN. Considerando que meu PDV irá gravar as vendas e outras operações como baixa de estoque ..etc. no banco de dados local que será o MySQL, como eu faço para transferir a venda do PDV para o Banco de dados na Matriz? Qual tecnologia eu usaria para distribuir esse objetos de forma segura/transações e com eficiência/rapidez. Poderia usar EJB? Spring? WebServices?. Alguem poderia me ajudar?
2.4 Tempo de Resposta deve ser no máximo 30 Segundos. Ou seja, Logo após fechar o cupom fiscal no PDV da filial… imediatamente o PDV tem que se conectar com a matriz, selecionar todos registros de venda no banco de dados MySQL local…enviar para o Servidor de Aplicação, não sei como ele vai enviar…rsrs. mais preciso que envie… logo, o metodo remoto terá que pegar esses registros que poderão está em um lista tipada ou não tipada, e iniciar as operações de inserção e atualização, como por exemplo…baixa de estoque…e registro de venda daqueles produtos que estão contido na lista. Outra coisa também, quando o usuario…alterar o preço de um produto na aplicação principal…de tempos em tempos o PDV irá invocar um metodo para pegar os produtos que foram alterados o seus preços…e em seguida…atualizar a tabela de produtos do banco de dados localmente. Galera é possivel fazer isso???
Algumas perguntas basicas…
2.5 Posso usar JBOSS como ApplicationServer ? ou GlassFish?
2.6 Com Spring Framework…eu consigo fazer o que o EJB Faz…tipo enquanto o cliente estiver transmitindo dados para o servidor …ele matem o estado da conexão.(StateFull…igual Firewall).
- Então o que vocês me aconselham…fazer?
…Estou a espera da resposta dos veteranos!
Atenciosamente,
Sebastião Fidêncio da Silva Pereira
Estudante do Curso de Tecnologia em Análise e Des. de Sistemas
Faculdade Anhanguera de Anápolis.
“Meu Sonho é desenvolver algo que seja útil para a sociedade Brasileira”