sexta-feira, 22 de julho de 2016

[Ferramentas úteis] SetupMyProject


Olá amigos,
Quem nunca passou uma situação entrou em apuros para configurar um projeto spring ou java ee, quem nunca se bateu um pouco("muito") pra configurar as dependências do maven


É pra essas horas que temos setupmyproject.

http://www.setupmyproject.com/

É uma solução online desenvolvida pelo Alberto Souza, a ideia é excelente e gostaria de agradecer e dizer que me tornei usuário.

Grande Abraço.

[Ferramentas Utéis] sqlfiddle


Olá amigos,
Quem nunca passou uma situação entrou em apuros onde vc só queria testar uma query em banco de dados relacional, mas não podia/queria instalar um.


É pra essas horas que temos temos nosso sqlfiddle.




O SQL Fiddle é um projeto muito bacana, no qual podemos criar tabelas e queries testáveis de forma rápida e online.
















Eu destaquei as abas, o funcionamento é muito simples e acho que não é necessário entrar em detalhes.


Abraço,
Fuiz!!

quinta-feira, 21 de julho de 2016

[Weblogic] Exportar certificado SSL e TLS

Olá amigos,
Eu imagino que todo mundo já deve ter brigado com o bendito do keytool para exportar um certificado do weblogic, bom existe um caminho mais fácil!!!


O keystore explorer é uma ótima ferramenta para te ajudar nesses probleminha abaixo o link para download.

http://www.keystore-explorer.org/

Como esse processo funciona  no weblogic??? Aqui embaixo está o nosso how-to!!













Ao iniciar o keystore será apresentada a tela abaixo:

Para verificar/importar/exportar certificados do weblogic será necessário editar seus arquivos de jks. 
No meu caso eu tenho apenas o demotrust instalado que é o certificado default que vem no weblogic. 
[$MIDDLEWARE_HOME]\Oracle_Home\wlserver\server\lib\demotrust.jks

Ao editar input o passphrase padrão DemoTrustKeyStorePassPhrase:


Para exportar um certificado basta selecionar o certificado e clicar com o botão direito:


quarta-feira, 20 de julho de 2016

[Arquitetura de Software] Soluções (Técnicas de contraponto e cuidados com o viés de confirmação)

Olá pessoas,
Mas um dia belo e ensolarado de inverno para falarmos sobre arquitetura de software.

Abaixo uma charge comum no dia a dia de um arquiteto de software:


serto que ás vezes ficamos com vontade de matar um... Tirando essa parte essa charge tem algo muito interessante a ser lembrado o bendito Viés de confirmação.

Mas oq vem a ser viés de confirmação??




"Basicamente é uma tendência cognitiva, temos um problema no nosso raciocínio indutivo de apenas lembrar e pesquisar coisas que sustentem a nossa crença inicial." 

Esse fenômeno ocorre às vezes de uma forma não perceptível e tem reflexos sobre todas as nossas decisões, inclusive as que envolvem arquitetura.

 Tá??? Mas que diabos isso tem a ver com arquitetura.


Ao propor soluções em projetos temos uma tendência de pesquisar e ouvir apenas pessoas que concordem com aquilo que estamos propondo.

É nessa hora que bom termos aquele colega chato, mas muito chato.

Para evitar essa tendência cognitiva procure seguir alguns passos simples como:

  1. Solicitar uma avaliação do seu colega chato.
  2. Solicitar avaliação de mais de uma pessoa.
  3. Avaliar Desempenho, Dificuldade de Desenvolvimento, Dificuldade de Manutenção, Reutilização e Análise de Impacto.
  4. Pesquisar pontos contra sua proposta, se vc não encontrou continue procurando vc não pesquisou direito.





"O primeiro pecado da humanidade foi a fé; a primeira virtude foi a dúvida." Carl Sagan

Ajustar 
Abraço!!



segunda-feira, 11 de julho de 2016

[JDeveloper] Erro ao criar domínio integrado

Boa tarde,
Eu tive problemas ao gerar o domínio integrado do JDeveloper no windows 10.




Graças um post do ótimo blog universioned resolvi meu problema:

https://unversioned.blogspot.com.br/2015/12/jdeveloper-12c-generic-installer-cannot-create-weblogic-domain.html


Retirado do blog universioned:

Caso ocorra um erro como esse ao criar o domínio:

[Waiting for the domain to finish building...]
[03:44:23 PM] Creating IntegratedWebLogicServer Domain...
[03:44:32 PM] ERROR:  An error occurred while building the default domain.
Please see this log file for more details:
C:\Users\ChristosVezalis\AppData\Roaming\JDeveloper\system12.2.1.0.42.151011.0031\o.j2ee.adrs\BuildDefaultDomain.log
The Server Instance cannot be started because the IntegratedWebLogicServer Domain was not built successfully

Vc deve baixar o seguinte jar jython-modules.jar e substituir na diretório 

[$middleware_home]\Oracle_Home\wlserver\common\wlst\modules



Abraços!!

[JDeveloper]Melhorar desempenho/performance JDeveloper

Olá pessoas,
Existem alguns procedimentos que podem tornar a experiência com Oracle JDeveloper mais fluída para tal serão necessárias algumas configurações como as abaixo:

Acesse o arquivo jdev.conf que fica [$MIDDLEWARE_HOME]/jdeveloper/jdev/bin.

Você pode adicionar as seguintes propriedades:

1)Aumentar o heap ajuste o heap para o tamanho mais adequado para isso adicione as seguintes linhas: 
  • AddVMOption  -Xmx2048M
  • AddVMOption  -Xms2048M
2) Ajustar o opções de edição de texto:
  • AddVMOption -XX:+UseStringCache
  • AddVMOption -XX:+OptimizeStringConcat
  • AddVMOption -XX:+UseCompressedStrings
3) Ajuste para reduzir o tempo de pausa, ideal para máquina com 4 cores ou superior:
  • AddVMOption -XX:+UseConcMarkSweepGC
4) Ajuste para alterar a política de GC:
  • AddVMOption -XX:+AggressiveOpts
5) Desabilitar o image pool.
  • AddVMOption -Ddecora.disable.pool=true
6) Ativar o monitoramento de memória, através dele e possível ver o consumo do heap em tempo real e ativar o GC através de solicitação.
  • AddVMOption -DMainWindow.MemoryMonitorOn=true
Abraços

Algoritmo para distância Levenshtein - XQuery


Boa tarde pessoas!!!
Eu pergunto quem nunca passou por uma situação como essa??



É bastante comum não é verdade? rsrs


Mas como funciona um corretor ortográfico? Qual seria o algoritmo por trás disso?

Basicamente essa solução é conhecida como distância de Levenshtein, esse tipo de solução consegue nos dizer a distância entre as palavras permitindo ao corretor selecionar a palavra mais adequada ou não rsrs!!!

Esse tipo de solução pode ser aplicada a diversos contextos, mas como nosso foco é integração e API's pensamos em algo voltado para isso.

Bom vamos exemplificar.

sexta-feira, 8 de julho de 2016

[JDeveloper](OSB , ADF)- JDeveloper 12.2.1 (12c) Debug não funciona.

Olá pessoas,
Ao rodar o JDeveloper 12.2.1 algumas pessoas tem enfrentado problemas para rodar o debug do OSB e de aplicações java ADF.

Para resolver esse problema você precisa realizar o seguinte procedimento:


1) Editar o arquivo java.policy em $JAVA_HOME/jre/lib/security da VM onde o weblogic está executando.


2) Ao editar o arquivo adicione a linha permission javax.management.MBeanTrustPermission "register"; como abaixo:



Dúvidas ou problemas é só chamar.

domingo, 13 de dezembro de 2015

Ciclo de vida - váriaveis padrão OSB


Eu acredito que em algum momento o ciclo de vida das variáveis padrão do OSB já gerou dúvidas a todo mundo. Meu objetivo é que com uma série de post's encontraremos uma forma clara e rápida de explicar como isso funciona.

Vou editar e re-editar esse post por alguns dias, por isso não se suupreendam se eu mudar um pouco a estrutura do post.

Bom, temos as variáveis padrão no OSB abaixo:
Variável Descrição Altera Protocolo
$header Contém o header SOAP. Não
$body Contém o body SOAP. Não
$attachments Contém os attachments associados. Sim
$fault Contém detalhes da última fault recebida. Não
$inbound Contém meta-dados sobre a requisição como headers, detalhes do client e outras informações. Sim
$outbound Contém meta-dados sobre a requisição como headers, detalhes do client e outras informações. Sim
$operation Contém o nome da operação acionada. Não

Um ponto imporante para lembrar é que a estrutura das variáveis irá mudar conforme o tipo de protocolo, como destaquei na coluna "altera protocolo". Podemos trabalhar com vários protocolos conforme a lista abaixo:

jca file mq
ws(x) ftp sftp
sb http(x) tuxedo
email jms(x) local(x)

Eu marquei com "x" os protocolos que eu irei abordar.

Comparação entre SOAP 1.1 e SOAP 1.2 (SOAP 1.1 vs SOAP 1.2)

Quais são as diferenças entre SOAP 1.1 e SOAP 1.2???

Quem não perguntou se existe vantagem em utilizar Soap 1.2 ao invés de 1.1, mas qual seria essa vantagem?


Basicamente são duas:



  1. Performance.
  2. Serviço agnóstico de protocolo.
Performance é um benefício meio óbvio, então vamos nos concentrar no segundo que é agrega mais valor.

Um serviço em Soap 1.2 pode trabalhar com JMS por exemplo usando a estrutura do envelope Soap, já no caso do 1.1 ficamos limitados ao http e ao ftp.

Podemos dizer que o protocolo Soap 1.2 aumentada as nossas capacidades de integração e então sempre que possível é interessante optar por ele.

Sem mais!!

Grande Abraço.

sexta-feira, 9 de setembro de 2011

Timeout Business Service - Oracle Service Bus

Olá pessoas esse é mais um post meu na internet.

Bom, nesse post vou demonstar como configurar e tratar de forma adequada o timeout de um Business Service no Oracle Service Bus 11g. 

Indicado para desenvolvedores

Pontos importantes:
-Ao lançar o timeout o business não impede o provedor de continuar com seu processamento, em outra palavras, se o timeout do provedor for maior que do business service em serviço transacionais podem haver problemas de integridade.


Pré-requisitos:
Eclipse com OEPE: 11.1.1.4
OSB: 11.1.1.4
SoapUI 4.x ou superior
Ter algum familiaridade com OSB.

Configuração de projetos
Baixe sconfig nesse link e importe no seu eclipse.
Baixe o projeto SoapUI nesse LINK e importe.
Publique o projeto no OSB.


Ao abrirmos o projeto vamos se deparar com a estrutura abaixo:


Para configurar o timeout clique no business service e navegue até a aba HTTP Transport.



Aqui temos duas opções de configurações voltadas para timeout sendo elas:

Connection Timeout: Ele determina quanto tempo esperar até ocorrer o ack do TCP.
Read Timeout: Ele determina quanto tempo esperar o response após o request ser enviado. 

O valor dessas propriedades está em segundos.

Vamos alterar os valores para 3 segundos cada e publique o projeto no OSB.Após publicar selecione o Business dentro do SBConsole, iremos verificar que as propriedades estão configuradas corretamente, a partir do SBConsole também é posssível alterar essas propriedades.


Bom, vamos aos testes para compreender como funciona o controle de timeout no OSB.

Primeiro vamos alterar o nosso mock do SoapUI. Clique no response e vá na opção Script, adicione o um sleep de 5 segundos por exemplo, na função sleep os valores estão em milisegundos.


Logo após isso vamos testar no business, altere o endpoint do business para o endpoint do mock. E abra o test console do Business do OSB, execute o teste e veja o resultado.

Após esgotar o tempo o business lançou um erro como o descrito na figura abaixo, isso significa que o teste foi com sucesso. Mas notou que a exceção lançada não está em um formato de fault??
Esse ponto é um pouco ruim, se deixarmos em aberto sem efetuar o tratamento adequado pode gerar má interpretação de erros por parte do cliente. No exemplo que temos, há um tratamento de erros nesse tratamento estamos traduzindo esse erro para o formato esperado pelo cliente.

Clique no proxy local e vá até o error handler para conferir.
Para conferir como a mensagem será tratada e enviada para o cliente acione o proxy soap. Após a execução o erro retornado estará formado conforme o seguinte.
Feito isso já termos nosso projeto com tratamento de timeout configurado e com sua falta tratada de forma correta.

Obrigado!! Nós vemos por ai!

segunda-feira, 6 de agosto de 2007

Definindo SOA

Hoje temos um buzzwords imenso a respeito de SOA e estamos cheios de definição para todos os lados.

Gostaria aproveitar o espaço aqui pra expor a minha consideração sobre essa definição.

SOA é uma forma madura de definir e aproveitar os recursos das aplicações, o seu objetivo maior é garantir uniformidade, reusabilidade independente da tecnologia em que o recurso foi inicialmente desenvolvida” 
Davi Piala

Mas oq são esses recursos?? 

R: Basicamente serviços. dãhnnnnn

Mas....
O que é um serviço?
2.      Devem ser associados a um objeto direto
3.      Devem ser autosuficientes.
4.      Podem cooperar entre si.
5.      Produz um resultado significativo para empresa.
Os serviços podem ser classificados em 3 grandes grupos sendo:1.      Serviços de Dados
2.      Serviços Utilitários
3.      Serviços de Negócio (Tarefas)

Há mais dois pontos que devem ser respeitados na ideia de serviços a autosufiência e cooperação entre serviços.Sendo assim podemos dizer que é um recurso computacional que se apoia nos nossos 5 pontos que são:1.      Devem ser associados a um verbo no infinitivo.


Outro dia iremos discutir os tipos de serviços e suas características.