Arquitetura lógica
O SoftExpert Suite é uma solução 100% web, ou seja, é acessado através de um navegador, baseado em uma arquitetura de três camadas, sendo elas:
As camadas são desenvolvidas e mantidas independentemente, permitindo que o sistema opere em um ou mais servidores, possibilitando o balanço de carga. Veja o diagrama desta arquitetura abaixo:
Camada de apresentação
Esta camada é responsável por controlar a interatividade entre o usuário e o sistema, bem como expor a lógica do negócio ao usuário através de componentes gráficos. No SoftExpert Suite o usuário interage diretamente com o sistema através de um browser da estação, mediante a uma autenticação.
O SoftExpert Suite faz uso de um conjunto de tecnologias como JavaScript, CSS (Cascading Style Sheets), HTML e Java na interface para proporcionar ao usuário final uma experiência rica (rich internet application) e interativa.
É importante salientar que não é necessário fazer a instalação de qualquer aplicativo cliente do SoftExpert Suite nas estações de trabalho, ou seja, apenas é necessário acessar a URL da aplicação através do browser, desta forma todos os componentes e serviços que o usuário necessitar serão executados pelo navegador ou, se for necessário, serão baixados automaticamente. Exceto o PDF Viewer .NET que depende apenas da instalação do .NET Framework e os visualizadores de DWG dependem da instalação do SEPreview.msi.
Para correto funcionamento da solução, a estação de trabalho deverá atender aos requisitos mínimos listados no documento SoftExpert Suite - Requisitos do Sistema.
O uso de terminais remotos (Citrix, Microsoft Terminal Services) é transparente para a solução. Para um perfeito funcionamento, o servidor deverá estar devidamente dimensionado ao uso.
Camada de negócio
Esta camada possui componentes responsáveis pelas regras de negócios do sistema e por implementar a lógica da aplicação.
Nesta camada, o SoftExpert Suite possui um conjunto de aplicações Java dispostos em forma de serviços, responsáveis pela execução de funções de negócio compartilhadas entre os diversos componentes que compõem o SoftExpert Suite.
Tecnologias
As tecnologias utilizadas para o desenvolvimento do SoftExpert Suite são compostas por duas plataformas de desenvolvimento, quais são:
- PHP;
- Java.
O SoftExpert Suite foi concebido para fornecer todas as funcionalidades através da internet, permitindo aos usuários trabalharem em qualquer lugar desejado. Todas as telas (camada de apresentação) foram desenvolvidas em PHP e AJAX e as camadas de serviços, em JAVA.
Alguns componentes de visualização e integração com outros aplicativos podem utilizar tecnologias diferentes (.NET, C++). Estes componentes são de terceiros e tem uso restrito a algumas funções do sistema.
Camada de persistência
A camada de persistência é utilizada pelo SoftExpert Suite como repositório de informações, armazenando e consultando registros, através da utilização de um gerenciador de banco de dados.
Além do armazenamento dos registros de sistema em banco de dados, o SoftExpert Suite pode ser configurado para armazenar documentos e arquivos eletrônicos em banco de dados, servidor de arquivos ou servidor externo. Abaixo são listadas as principais vantagens de cada tipo de armazenagem de documentos:
Banco de dados
O armazenamento de documentos em banco de dados tem como principal vantagem a centralização de todas as informações do sistema em um único local, facilitando a realização de backup, administração e monitoramento dessas informações, além de não necessitar de várias rotinas de backup.
As rotinas de backup são de responsabilidade do cliente. É recomendável que a rotina de backup seja executada diariamente.
Servidor de arquivos
O SoftExpert Suite permite parametrização para o armazenamento de documentos e anexos em um diretório, o qual somente o SoftExpert Suite tem permissão de leitura e gravação, isso permite uma maior segurança, já que os usuários não interagem diretamente com os documentos armazenados no servidor de arquivos.
A vantagem do armazenamento de documentos e anexos em diretório é de não sobrecarregar o banco de dados com grandes volumes de informações, possibilitando a redução de custos com dispositivos de armazenagem, já que não necessita de um tempo de acesso tão otimizado, assim como é necessário nos dispositivos de armazenagem utilizados pelo banco de dados.
Servidor externo/distribuído
Servidores externos ou distribuídos são utilizados quando a filial de uma empresa necessita armazenar documentos de tamanho expressivo como, por exemplo, projetos e plantas de engenharia. Neste caso, todo o controle é realizado por uma aplicação desenvolvida em Java, a qual é instalada no servidor de arquivos da filial. Neste caso, o usuário deve possuir acesso ao servidor externo.
O procedimento de instalação desta aplicação Java pode ser consultado no documento 'SoftExpert Suite - Guia de Instalação', no tópico 'Serviço para diretório em servidor externo'.
Servidores externos ou distribuídos permitem que o cliente acesse documentos em diferentes regiões geográficas, agilizando a visualização dos arquivos eletrônicos no ambiente onde estes são mais utilizados. Neste caso, o arquivo de um servidor externo não é salvo temporariamente no web server, e sim, baixado diretamente na estação de trabalho do usuário. Desta forma não ocorrerá o tráfego entre o web server e a estação de trabalho do usuário, mas sim entre o servidor externo e a estação.
Esse diagrama mostra que o usuário da Matriz consegue acessar os arquivos da Filial A e da Filial B, pois o usuário possui acesso nesses servidores.
Veja também os seguintes subtópicos:
Mesmo que os documentos sejam armazenados em um servidor local, qualquer usuário poderá ter acesso a esses documentos, independentemente de sua localização física (desde que o usuário tenha permissão para visualizar o documento).
A comunicação entre a estação de trabalho e o servidor de arquivos é feita através do protocolo HTTPS.
Instâncias de banco de dados
O SoftExpert Suite permite o uso de instâncias de banco de dados, o que permite utilizar vários bancos com uma única instalação. Para utilizar esse recurso é necessário criar diferentes domínios e associá-los para cada banco de dados no sistema.
O SoftExpert Suite será acessado somente pela URL configurada, por exemplo,
http://<domaindatabase.com/se>
e http://<domaindatabase2.com/se>
, caso haja
duas bases. Se você tiver apenas um banco de dados configurado, o SoftExpert
Suite pode ser acessado pelo hostname ou endereço IP, nesse caso o domínio será
ignorado. Veja o diagrama abaixo:
No cenário demonstrado na Figura 3, os usuários de uma instância, ou em uma filial, não tem acesso aos registros de outra instância.
Balanço de carga
O SoftExpert Suite possui suporte ao balanceamento de carga em banco de dados, desta forma oferecendo alta escalabilidade e disponibilidade, bem como um excelente desempenho no acesso às informações.
O gerenciamento do balanço de carga é realizado totalmente pela interface middleware(1). O SoftExpert Suite irá conectar-se ao client do banco de dados, tornando o balanço de carga transparente para a aplicação. Essa interface middleware é responsável pela conexão com os servidores de banco de dados, por distribuir entre os servidores ativos as requisições feitas pelos usuários e por manter a escalabilidade sempre que um servidor for inserido ou removido do balanceamento.
1 - Aplicação de terceiros com o objetivo de realizar o balanceamento de dados sendo transparente para o SoftExpert Suite.
O uso de mais de um servidor de banco de dados melhora no desempenho do SoftExpert Suite, pois o tempo de resposta é proporcional ao número de usuários fazendo requisições ao banco de dados, então quando existe um balanceamento de carga, as requisições são divididas entre os servidores ativos, aumentando o desempenho do SoftExpert Suite, garantindo um tempo de resposta menor.
Métodos de conexão
Para conectar com o banco de dados o SoftExpert Suite utiliza os seguintes métodos de conexão:
- JDBC: utilizado pelos serviços e aplicações JAVA;
- Native Client: utilizado pelas aplicações PHP;