Arquitetura 2.0
Servidor de aplicações
Contentor da lógica de negócio, acessível de diferentes maneiras:
- Serviços web com protocolo XML-RPC: ou Lógica de negócio implementada em Powerbuilder ou Lógica de negócio implementada em Java e executada em Tomcat (RPC2).
- Novos serviços acessíveis por meio de REST (pedidos HTTP) e implementados em Java, por meio de framework Spring e executando-se sob Tomcat.
Contentor de diferentes repositórios de dados:
- Base de dados relacional (SQL) que contém dados de negócio com suporte para: ou SQL Server ou Oracle ou Postgre SQL.
- Base de dados não relacional para suporte do novo framework (cache de dados, configuração, auditoria, etc.). A Base de Dados escolhida é Redis.
Contentor para serviços de mensagens entre serviços. Para esta funcionalidade, optou-se pelo protocolo MQTT (Message Queue Telemetry Transport) que permite ter a funcionalidade push (notificações iniciadas pelo servidor para o cliente).
Servidor web
Baseado em NodeJS, é o servidor de elementos estáticos (elementos HTML, imagens, etc.) e atua como um proxy para pedidos REST de negócio do cliente ao servidor.
Servidor cliente
O framework possui uma API formada pelos serviços (sejam os XML-RPC ou os REST) e acessível:
- Diretamente a partir de qualquer cliente que permita fazer chamadas HTTP.
- Por aplicações criadas a partir da API. Para isso, optou-se pelo Angular2, pela flexibilidade quando se trata de criar aplicações executáveis a partir de navegador web e como executável, seja em ambiente Windows, Linux ou iOS.
Novas funcionalidades
- Possibilidade de definição dinâmica de segurança por serviço, ao nível do papel de utilizador, em vários níveis:
- Definição de lista de serviços sem restrição de acesso.
- Definição de lista de serviços acessíveis por determinados papéis.
- Definição de lista de serviços restringidos a determinados papéis.
- Serviços acessíveis por qualquer papel de utilizador (utilizador com sessão iniciada).
- Para o acesso a serviços com definição de controlo de acesso, deve-se fazer a chamada fornecendo ao serviço um token de acesso obtido ao efetuar um início de sessão.
- Cache de dados baseada em Redis que permite uma melhoria de tempos de execução.
- Aplicações multi-idioma.
- Possibilidade de auditoria dinâmica de eventos.
- Possibilidade de configuração dinâmica de segurança de pedidos de início de sessão falhados, tornando possível o bloqueio de pedidos para evitar ataques do tipo DoS (Denial of Service).
- Funcionalidades mais dinâmicas graças à possibilidade de fazer notificações a partir do servidor para o cliente (notificações push).
A estrutura da arquitetura futura
O novo paradigma é baseado em SERVIÇOS. Um serviço é uma peça do programa que cumpre certos requisitos:
- Abstração e reutilização: fazem o mesmo, independentemente de "quem" os chame.
- Autonomia de execução.
- Flexibilidade para executar o serviço a partir de qualquer local.
- Não haverá programas.
Um trabalho é executado a partir de:
- Um fluxo de serviços.
- Um agrupamento de serviços simples em serviços compostos.
- Uma nova casuística.
Vantagens da Arquitetura 2.0
-
Maior flexibilidade e adaptação
-
Baseado em padrões
-
Aumenta a velocidade e a agilidade
-
Autonomia de execução
-
Independência da plataforma
-
Interoperabilidade