Mudanças entre as edições de "Claudus Server"
(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.