Arquitetura do BIS: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
Linha 1: Linha 1:
O BIS (ou BISERP) é um sistema focado em atender de forma ampla as necessidades de uma empresa. Com esse objetivo a arquitetura do BIS precisa ter uma organização que permita escalabilidade a medida que sua abrangência se torna mais ampla, o desenvolvimento e organização do código não devem ser comprometidas.
= Missão =


'''Para entender a arquitetura é imprescindível algum conhecimento básico em J2EE'''
'''A nossa missão é fazer do BIS (ou BISERP) um sistema que atenda de forma ampla e integrada as necessidades de uma empresa.'''




= Camadas =
= Estrutura Física =
 
Para alcançar a missão de forma prática, o BIS será construído como uma ferramenta on-line. Capaz de funcionar "na nuvem" pelo menos em sua grande maioria de módulos e funcionalidades.
 
Módulos que demandem alta disponibilidade ou que dependam de comunicação direta, terão os dados sincronizados na máquina local. Mas note que estes dados só estarão disponíveis no local. Todo o processamento e lógica de operação, bem como armazenamento e backup devem continuar nos servidores do BIS.
 
Também é necessário que a arquitetura do BIS precisa ter uma organização que permita escalabilidade a medida que sua abrangência se torna mais ampla, o desenvolvimento e organização do código não devem ser comprometidas.
 
 
 
= Arquitetura =
 
'''A arquitetura do BIS é toda montada de acordo com os patterns e estrutura oferecida pelo J2EE''', logo, faz-se necessário um prévio conhecimento em J2EE para o entendimento e desenvolvimento do sistema.
 
== Camadas ==




Linha 15: Linha 29:
* '''Camada de Apresentação''' - é a camada onde estão configuradas as interfaces entre o sistema e o usuário. Nesta camada temos apenas a programação da própria interface (botões, listas, combos, cores, etc.) Embora seja possível ter alguma validação para agilizar e impedir o usuário de entrar dados inválidos, TODAS AS VALIDAÇÕES devem constar na camada de lógica.
* '''Camada de Apresentação''' - é a camada onde estão configuradas as interfaces entre o sistema e o usuário. Nesta camada temos apenas a programação da própria interface (botões, listas, combos, cores, etc.) Embora seja possível ter alguma validação para agilizar e impedir o usuário de entrar dados inválidos, TODAS AS VALIDAÇÕES devem constar na camada de lógica.


= Modularidade =
== Modularidade ==




Linha 31: Linha 45:




= Serviços do BIS =
== Serviços do BIS ==




Linha 40: Linha 54:




= Empacotamento =
== Empacotamento ==





Edição das 16h50min de 19 de maio de 2019

Missão

A nossa missão é fazer do BIS (ou BISERP) um sistema que atenda de forma ampla e integrada as necessidades de uma empresa.


Estrutura Física

Para alcançar a missão de forma prática, o BIS será construído como uma ferramenta on-line. Capaz de funcionar "na nuvem" pelo menos em sua grande maioria de módulos e funcionalidades.

Módulos que demandem alta disponibilidade ou que dependam de comunicação direta, terão os dados sincronizados na máquina local. Mas note que estes dados só estarão disponíveis no local. Todo o processamento e lógica de operação, bem como armazenamento e backup devem continuar nos servidores do BIS.

Também é necessário que a arquitetura do BIS precisa ter uma organização que permita escalabilidade a medida que sua abrangência se torna mais ampla, o desenvolvimento e organização do código não devem ser comprometidas.


Arquitetura

A arquitetura do BIS é toda montada de acordo com os patterns e estrutura oferecida pelo J2EE, logo, faz-se necessário um prévio conhecimento em J2EE para o entendimento e desenvolvimento do sistema.

Camadas

O BIS é montado em cima de três camadas 'básicas' de arquitetura:

  • Camada de Persistência - é a responsável por 'guardar' os objetos no banco de dados. É a única parte do sistema que "conhece" o banco de dados. Sabe como guardar e recuperar os objetos solicitados pela camada de lógica.
  • Camada de Lógica - é a responsável por armazenar a lógica do sistema. Aqui encontram-se as rotinas que validam e processam os dados do sistema.
  • Camada de Apresentação - é a camada onde estão configuradas as interfaces entre o sistema e o usuário. Nesta camada temos apenas a programação da própria interface (botões, listas, combos, cores, etc.) Embora seja possível ter alguma validação para agilizar e impedir o usuário de entrar dados inválidos, TODAS AS VALIDAÇÕES devem constar na camada de lógica.

Modularidade

O BIS apresenta uma organização interna de módulos. O Módulo nada mais é do que uma parte do sistema responsável por cuidar de algum assunto específico da necessidade da empresa. Por exemplo:

  • Módulo de Items - Módulo responsável por cadastrar e gerencias os itens do sistema. Itens são os produtos vendidos ou comprados, serviços prestados ou recebidos, material comprado para consumo ou ativo da empresa, e assim por diante.
  • Módulo de Fluxo de Caixa - Módulo responsável por gerenciar a parte financeira da empresa. Contas a pagar e de receber, caixas e orçamentos locais ou bancários, etc.
  • Módulo de Vendas/PDV - Módulo que permite a venda em checkouts, emissão de cupons SAT/NFCe, etc..

Apesar dessa divisão em módulos, o sistema não permite o destacamento dos seus módulos (como plugins). A separação de módulos é feita em relação aos 'packages' do java, mas todo o código, ou seja, todos os módulos andam juntos e estão presentes.


Habilitação do Módulo
Apesar de todo o código estar presente (o que evita chegar a presença das classes durante a programação), casa módulo pode ser 'vendido' separadamente para a empresa. O que significa dizer que o usuário pode não ter acesso à algum módulo.

Assim ao se implementar código em que um módulo gere, manipule ou dependa de dados de outro módulo é necessário considerar se o outro módulo está ou não presente para determinada empresa.


Serviços do BIS

Serviços do BIS são como pequenos módulos (as vezes não tão pequenos) mas que muitas vezes não tem uma funcionalidade própria além de prover agilidade ou de centralizar as informações para outros módulos. Por exemplo:

  • Cadastro de Pessoas - O BIS oferece o cadastro de pessoas, que podem ser utilizadas como clientes, fornecedores, funcionários, contatos, etc. por qualquer outro módulo.
  • Localização - Há uma base de dados com País, Estado, Cidade e Endereços que permite que qualquer módulo obtenha localidades de forma organizada sem ter de implementar todos esses dados de forma autônoma.
  • Mail Boxes - O serviço de e-mail permite que caixas de e-mail sejam configuradas, e posteriormente os módulos as utilizem tanto para enviar quanto para receber e-mails.


Empacotamento

Empacotamento da aplicação é o arquivo para distribuição e execução da aplicação. Por ser uma aplicação J2EE o BIS é distribuido em um arquivo EAR. Atualmente dentro dele, de forma simplificada, encontramos os seguintes conteúdos:

  • 'BISEJB - Pacote da camada de lógica do BIS e camada de Persistência. Por conta da camada de persistência simplificada do BIS, ela acabou sendo unificada dentro do próprio pacote da camada de lógica. Mas embora empacotada de forma diferente, a camada continua existindo de forma lógica e organizacional no código.
  • BISVaadin - Pacote contendo a camada de apresentação do BIS destinada a WEB para Desktops.
  • Bibliotecas - Bibliotecas de terceiros necessárias para execução do BIS. Como conectores de banco de dados, ferramentas de Logs, manipulação de equipamentos, etc.