Mudanças entre as edições de "Claudus Server"

De GeoSales
Ir para navegação Ir para pesquisar
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 41: Linha 41:
  
 
'''ATENÇÃO'''
 
'''ATENÇÃO'''
 +
 
o Claudus Server está preparado para suportar versões novas de um bean. Dessa forma, o client que utilizar versões antigas irá simplesmente desconsiderar as colunas novas adicionadas.
 
o Claudus Server está preparado para suportar versões novas de um bean. Dessa forma, o client que utilizar versões antigas irá simplesmente desconsiderar as colunas novas adicionadas.
  
 
Outro ponto importante, o Claudus utiliza autenticação OAUTH2, dessa forma é possível outros aplicativos se conectem com o claudus e também é possível realizar testes a partir do próprio browser, utilizando alguns plugins.
 
Outro ponto importante, o Claudus utiliza autenticação OAUTH2, dessa forma é possível outros aplicativos se conectem com o claudus e também é possível realizar testes a partir do próprio browser, utilizando alguns plugins.
 +
 +
A Classe principal é SSRestAPIController.java Ela que trata as requisições externas.
 +
 +
A implementação do Claudus Server é muito simples. Você irá encontrar 3 pacotes principais:
 +
 +
- br.com.softsite.rest.controller: Nesse pacote estão as classes relacionadas ao serviço web. As requisições serão recebidas aqui. '''ATENÇÃO''' O Claudus é um serviço genérico, então a instanciação dos beans também é genérica.
 +
 +
- br.com.softsite.rest.datasource: Nesse pacote estão as configurações do multi tenant do hibernate
 +
 +
- br.com.softsite.rest.oauth:  Nese pacote, as configurações da autenticação OAUTH2
 +
 +
'''ATENÇÃO'''
 +
 +
Em ambiente de produção o arquivo log4j.properties deve estar configurado para enviar emails.
 +
 +
Esses emails são importantes para que os bugs sejam detectados e corrigidos antes que o cliente descubra.
 +
 +
Dessa forma, caso você faça uma nova implementação, sempre deve tratar as exceptions na última camada e adicionar o código "logger.error("sua mensagem")" no bloco catch, de forma que possamos nos antecipar e corrigir possíveis problemas.

Edição atual tal como às 13h20min de 9 de fevereiro de 2017

Claudus Server

O Claudus é uma API WEB REST (web service) que disponibiliza recursos e operações de inserção/alteração(post) de dados, deleção (delete) e consulta (GET) de dados.

O Claudus Server é um repositório de dados. Ele não executa nenhuma operação de forma automática apenas recebe requisições e processa de acordo com o método invocado (POST insere, DELETE, deleta, GET recupera).

Ele é um micro-service que utiliza os seguintes frameworks: Spring-Boot e Hibernate e utiliza uma autenticação do tipo OAUTH2.

ATENÇÃO Para uma empresa começar a enviar os dados para o Claudus você deve checar os seguintes pontos:

1. Empresa está cadastrada na tabela EMPRESA do banco BD_SSM_ADM

2. Senha está cadastrada na tabela EMPRESA do banco BD_SSM_ADM

3. o banco de dados possui o mesmo nome da empresa na tabela EMPRESA do banco BD_SSM_ADM. Ex.: nome da base "bd_ssm_camil", nome da empresa deve ser "camil". Caso você coloque o nome da base "bd_ssm_camil2" e a nome da empresa for "camil", o claudus não vai conseguir se autenticar, nem enviar os dados para a base =(

4. Você deve configurar as triggers CLAUDUS para que os envio/recebimento dos dados funcione. Para isso, você deve pegar os scripts de migration disponível no projeto Beans que você irá utilizar e aplicar manualmente na base da nuvem SoftSite (eu sei, isso é um saco, deveria ser automático, mas hoje não é.)

Instalação

Para instalar o Claudus-Server é bem fácil.

Basta pegar a última versão do jenkins (ssrestapi-server-<número da versão>-all.zip), configurar o arquivo target/application.properties adicionando o acesso correto ao banco de dados (produção, teste, homologação).

Você terá que adicionar o JAR do BEAN que mapeia as tabelas. Adicione uma pasta lib, coloque o jar dentro e altere o arquivo "startup-manual.bat" trocando "geosales-beans-0.0.1-SNAPSHOT.jar" pelo nome-versão do seu jar com os beans.

Por fim, clique no startup-manual.bat

PRONTO!!! O Claudus-Server está no ar!!

Para validar se o serviço está no ar, acesse o link http://localhost:1083 e verifique se a interface do Claudus irá aparecer

Como foi dito anteriormente, ele não executa nada sozinho, então nada deve acontecer LOL. Configure o Client para começar a ver as requisições chegando.

Detalhes técnicos

O Claudus Server é uma aplicação multi tenant e a implementação utilizada é a padrão do Hibernate (tirada inclusive do próprio site). Dessa forma, um Claudus-Server deve ser capaz de processar requisições para várias empresas simultaneamente (você não precisa criar um Claudus para cada empresa), desde que eles utilizem o mesmo Bean.

Então, se você tem dois tipos de beans diferentes (ex.: pronta-entrega e prévenda), você precisa ter dois Claudus Server rodando, um para cada bean.

ATENÇÃO

o Claudus Server está preparado para suportar versões novas de um bean. Dessa forma, o client que utilizar versões antigas irá simplesmente desconsiderar as colunas novas adicionadas.

Outro ponto importante, o Claudus utiliza autenticação OAUTH2, dessa forma é possível outros aplicativos se conectem com o claudus e também é possível realizar testes a partir do próprio browser, utilizando alguns plugins.

A Classe principal é SSRestAPIController.java Ela que trata as requisições externas.

A implementação do Claudus Server é muito simples. Você irá encontrar 3 pacotes principais:

- br.com.softsite.rest.controller: Nesse pacote estão as classes relacionadas ao serviço web. As requisições serão recebidas aqui. ATENÇÃO O Claudus é um serviço genérico, então a instanciação dos beans também é genérica.

- br.com.softsite.rest.datasource: Nesse pacote estão as configurações do multi tenant do hibernate

- br.com.softsite.rest.oauth: Nese pacote, as configurações da autenticação OAUTH2

ATENÇÃO

Em ambiente de produção o arquivo log4j.properties deve estar configurado para enviar emails.

Esses emails são importantes para que os bugs sejam detectados e corrigidos antes que o cliente descubra.

Dessa forma, caso você faça uma nova implementação, sempre deve tratar as exceptions na última camada e adicionar o código "logger.error("sua mensagem")" no bloco catch, de forma que possamos nos antecipar e corrigir possíveis problemas.