Diversos

Postado em

Primeiro encontro do JUG Vale reúne Javeiros de todos os níveis

Grupo de Usuários Java do Vale do Paraíba

O recém nascido novo JUG do Vale do Paraíba já tem data definida para seu primeiro grande encontro que dá início, esperamos, a uma história de muitos outros encontros futuros.

Esse marco na história do JUG acontecerá no dia 17 de março na Unesp de São José dos Campos. Irá iniciar um pouco cedo, no entanto, se estenderá até o meio do dia, mas não é uma desculpa para você chegar atrasado 🙂

Ver o post original 318 mais palavras

Café com Java 2012

Postado em Atualizado em

Hoje pela manhã no auditório da Caelum na Vila Mariana, aconteceu o  3º Café com Java que  iniciou com o  assunto Classloaders da JVM ministrada pelo Adriano Almeida, foi bem legal e deu pra aprender bastante,  e ainda por cima com alguns comentários do Paulo Silveira da Caelum, que demonstrou conhecer a fundo Java…
As mini palestras continuaram com o Arthur Júnior, que demonstrou como trabalhar com o JRules. Depois Lucas Catón deu uma introdução ao Ruby on Rails, e isso foi bem divertido 🙂
Para encerrar o dia Eduardo Bregaida fechando com chave de ouro com Scrum Passos e Desafios. Realmente não conhecia muito o Scrum, deu para se ter uma boa ideia do que fazer ou não 😛 , no dia a dia utilizando essa metodologia.
Depois rolou uma confraternização bem legal com a galera, deu para conhecer muitas figuras do GUJ, relembramos alguns tópicos épicos de alguns trolls 😛
Bom posso dizer que foi muito divertido, e que no próximo nos veremos lá 🙂

Abraços

JBoss Certified Application Administrator (JBCAA) – Parte 2

Postado em Atualizado em

Continuando os meus estudos para JBCAA, hoje vamos abordar mais um tópico.

3 – Configuração dos conectores do JBoss Web (incluindo HTTPS)  ( Configure JBoss Web Connectors (including HTTPS) )

No Study Guide, podemos verificar as seguintes informações para esse tópico:

● JB336 JBoss for Administrators course
● JBoss EAP Administration and Configuration Guide3
● JBoss Web Documentation4
http://community.jboss.org/wiki/SecureTheJmxConsole
http://community.jboss.org/wiki/SSLSetup
● Creating an SSL Keystore Using the Java Keytool5
http://java.sun.com/javase/6/docs/technotes/tools/index.html#security (look for keytool)
● Example configurations included with JBoss EAP

Vamos iniciar abordando a segurança no Jmx-Console, que já é bem conhecida pelos administradores mais experientes.

O primeiro passo é visualizar o web.xml, da app jmx-console.war, e verificar se o atributo  <security-constraint> não está comentado, e com as devidas configurações, abaixo temos uma exemplo em que tudo está correto:

Localização do arquivo:  JBOSS_HOME/server/instance01/deploy/jmx-console.war/WEB-INF/web.xml

<security-constraint>
 <web-resource-collection>
   <web-resource-name>HtmlAdaptor</web-resource-name>
   <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application
   </description>
   <url-pattern>/*</url-pattern>
 </web-resource-collection>
 <auth-constraint>
    <role-name>JBossAdmin</role-name>
 </auth-constraint>
 <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
 </user-data-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>JBoss JMX Console</realm-name>
</login-config>

<security-role>
  <role-name>JBossAdmin</role-name>
</security-role>

Agora devemos verificar o arquivo jboss-web.xml, o <security-domain>, deve estar sem o  comentário, como abaixo:

Localização do arquivo: JBOSS_HOME/server/instance01/deploy/jmx-console.war/WEB-INF/jboss-web.xml

<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">

<jboss-web>
<!-- Uncomment the security-domain to enable security. You will need to edit the htmladaptor login configuration to setup the login modules used to authentication users. -->
   <security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>

Obs: Segundo a security note – CVE-2010-0738, devemos remover do JBOSS_HOME/server/instance01/deploy/jmx-console.war/WEB-INF/web.xml  os métodos HTTP:

  <http-method>GET</http-method>
  <http-method>POST</http-method>

Deve-se ainda adicionar ao JBOSS_HOME/server/instance01/deploy/jmx-console.war/WEB-INF/web.xml , o atributo CONFIDENTIAL que garante o uso de HTTPS, que vamos ativar posteriormente.

<user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

Para finalizar, verificamos se os arquivos aonde estão armazenados os roles e users estão corretos.

Localização do Arquivo: JBOSS_HOME/server/instance01/conf/props/jmx-console-roles.properties

  # A sample roles.properties file for use with the UsersRolesLoginModule
  admin=JBossAdmin,HttpInvoker

Localização do Arquivo: JBOSS_HOME/server/instance01/conf/props/jmx-console-users.properties

  # A sample users.properties file for use with the UsersRolesLoginModule
  admin=admin

Application Policy do Jmx-Console:

 <application-policy name="jmx-console">
   <authentication>
     <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required">
       <module-option name="usersProperties">props/jmx-console-users.properties</module-option>
       <module-option name="rolesProperties">props/jmx-console-roles.properties</module-option>
     </login-module>
   </authentication>
</application-policy>

Como já disse anteriormente, eu nunca fiz a prova e realmente não sei o que vai ser cobrado,  então  a aprenderem o máximo que puderem sobre os assuntos mencionados no study guide. Como recomendação para essa parte eu aconselho que os precedimentos acima sejam repetidos para o web-console e jbossws, qualquer dificuldade nessas tarefas deixem comentários.

Vamos gerar o nosso certificado ( keystore ), e habilitar o connetor HTTPS. Para obter o certificado execute o comando abaixo:

   keytool -genkey -alias example -keystore example.keystore -keypass 123456 -keyalg RSA

Por convenção geralmente o .keystore, fica armazenado no diretório JBOSS_HOME/server/instance01/conf/ .

Para visualizar informações do certificado execute:

  keytool -v -list -keystore example.keystore
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: example
Creation date: Jan 29, 2012
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Mauricio Magnani, OU=Home, O=Home, L=SP, ST=SP, C=BR
Issuer: CN=Mauricio Magnani, OU=Home, O=Home, L=SP, ST=SP, C=BR
Serial number: 4f25c7bf
Valid from: Sun Jan 29 20:27:11 BRST 2012 until: Sat Apr 28 19:27:11 BRT 2012
Certificate fingerprints:
MD5:  70:2F:D1:5E:23:E2:1A:3C:DF:E4:76:1D:82:28:AE:0A
SHA1: 03:EF:60:BF:2D:33:D1:29:6A:67:44:07:28:4B:09:E5:6F:56:70:D2
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

Finalmente vamos ativer o connector HTTPS, isso é bem simples, no arquivo JBOSS_HOME/server/instance01/deploy/jbossweb.sar/server.xml, descomente e altere o bloco abaixo:

<!-- SSL/TLS Connector configuration using the admin devl guide keystore-->
<Connector protocol="HTTP/1.1" SSLEnabled="true" port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false" keystoreFile="${jboss.server.home.dir}/conf/example.keystore"
keystorePass="123456" sslProtocol = "TLS" />

Agora acesse a url https://localhost:8443/ , e verifique se tudo está funcionando.

Não percam a próxima parte 🙂

abraços!

Feliz 2012

Postado em Atualizado em

Feliz 2012 a todos que acompanham o Blog, que nós possamos realizar todos os nossos sonhos.

Mauricio Magnani

Balanceamento de Carga no JBoss AS 6.1 – Parte 1

Postado em Atualizado em

Para aplicações como muitas solicitações, geralmente ocorre a necessidade de melhorar a performance. Um dos meios mais utilizados atualmente é o Balanceamento de Carga, que consistem em distribuir a carga das solicitações em vários servidores ( nós ) visando equilibrar as solicitações, proporcionando um tempo de reposta mais rápido. Isso envolve o uso de algoritmos de distribuição de carga.
Para servidores JBoss AS existem atualmente duas soluções que são as mais utilizadas: Mod JK e Mod Cluster. Abaixo vou descrevê-las:

Mod JK: É o componente de balanceamento de carga mais utilizado atualmente, não só para instâncias JBoss, mas para outros servidores web e de aplicação. O mod-jk realiza a integração entre o Apache HTTPd e o Tomcat/JBoss, utilizando o protocolo AJP. Um dos grandes problemas do mod-jk são os arquivos de configuração que dificultam a manutenção em um grande parque de servidores, pois esses mesmos arquivos de configuração devem ser replicados.

Mod Cluster:  É um componente criado pela Red Hat para atender a mecanismos de balançeamento de carga alinhados ao conceito de  Cloud. O Mod Cluster vem com a promessa de algoritmos de balanceamento de carga mais avançados, que se baseiam na carga da aplicação, ou seja quantidades de sessões, conexôes abertas, etc. Ele pode ser customizado conforme a necessidade da aplicação visando um ambiente elástico. Um das vantagens é também o descobrimento automático de novas instâncias JBoss ( Utilizando Multicast ), não havendo a necessidade de configurações extras. Lembrando que o JBoss AS 6.1 já vem com o Mod Cluster nativamente.

Nesse post, vamos abordar as duas situações Mod JK e Mod Cluster utilizando JBoss AS 6.1.

Mod JK e JBoss AS 6.1

Eu presumo que você já possua o Apache HTTPd instalado, caso não basta apenas executar o comando abaixo para que ele seja instalado.

yum install httpd

Ao ver Is this ok [y/N]: , digite y. Pronto, o Apache HTTPd será instalado.

Para configurarmos o balançeamento de carga de forma adequada,  devemos realizar os seguintes passos:

  1.    Baixar e Compilar o Mod JK
  2.   Configurar o Apache HTTPd ( mod-jk.conf )
  3.   Configurar o arquivo worker.properties e uriworkermap.properties
  4.   Preparar o JBoss AS 6.1
  5.  Desenvolver uma aplicação Web simples  para testar o funcionamento

1 – Baixar e Compilar o Mod JK

O mod_jk pode ser baixado na seguinte url: http://tomcat.apache.org/download-connectors.cgi, o arquivo tomcat-connectors-1.2.32-src.tar.gz, deverá ser baixado.

Logo em seguida devemos descompactar o arquivo, e compilar utilizando o comando abaixo:

tar xvfz tomcat-connectors-1.2.32-src.tar.gz
 cd tomcat-connectors-1.2.32-src/native/
 ./configure –with-apxs=/usr/sbin/apxs

Execute os comandos abaixo:

yum install httpd-devel
 ./configure –with-apxs=yes
 make
 make install

Com os passos acima instalamos o Mod JK  no diretorio de modulos do Apache HTTPd.

  2 – Configurar o Apache HTTPd ( mod-jk.conf )

Agora vamos criar o arquivo de parametros do mod-jk, deve-se criar em /etc/httpd/conf/ o arquivo mod-jk.conf e configura-lo como abaixo:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/worker.properties

JkLogFile logs/mod_jk.log

# Nivel de log [debug/error/info]
JkLogLevel debug

# Formato da log
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"

# SSK KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"

JkMount /application/* loadbalancer

# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
JkMountFile conf/uriworkermap.properties

# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
JkShmFile logs/jk.shm

# Add jkstatus for managing runtime data
<Location /jkstatus/>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

Agora edite o arquivo  /etc/httpd/conf/httpd.conf , e adicione no final o seguinte contéudo:

Include conf/mod-jk.conf

Nós estamos simplesmente incluindo uma nova configuração ao httpd.conf para que Apache HTTPd reconheça.

A Configuração dos parametros do Mod JK está finalizada.

3 – Configurar o arquivo worker.properties e uriworkermap.properties

Agora o arquivo worker.properties deverá ser criado  no diretório /etc/httpd/conf/. No arquivo worker estão as informações relacionadas aos hosts envolvidos e  parametros como fator de balanceamento, protocolos, configurações de cache entre outros.

O arquivo worker.properties do nosso exemplo, deve ser configurado como abaixo:

worker.list=instance01, instance02, loadbalancer

#Instance01

worker.instance01.port=8009
worker.inttance01.host=localhost
worker.instance01.type=ajp13
worker.instance01.lbfactor=1

#Instance02

worker.instance02.port=8309
worker.inttance02.host=localhost
worker.instance02.type=ajp13
worker.instance02.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=instance01, instance02

Agora devemos configurar o arquivo uriworkermap.properties, que é o arquivo ao qual nós passamos os contextos que devem ser balanceados, siga o exemplo abaixo:

/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/admin-console=loadbalancer
/admin-console/*=loadbalancer
/loadBalance=loadbalancer
/loadBalance/*=loadbalancer

O contexto loadBalance, será a nossa aplicação de teste para verificarmos se o nosso balanceamento está funcionando. Essa app será criada no passo 5.

Essa parte está finalizada.

4 –   Preparar o JBoss AS 6.1

Inicialmente deve-se criar um perfil, baseando-se nos requisitos da aplicação ( All, Default …),  isso pode ser feito com os comando abaixo:

cd /opt/jboss/server/
cp -Rap all instance01
cp -Rap all instance02

Agora devemos adicionar o parametro jvmRoute ao JBoss, para que a comunicação com o Apache HTTPd seja realizada utilizando o protocolo AJP.

Edite o arquivo  /opt/jboss/server/instance01/deploy/jbossweb.sar/server.xml, e adicione o parametro jvmRoute como abaixo:

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="instance01" >

Repita o processo para a segunda instância:

Edite o arquivo /opt/jboss/server/instance02/deploy/jbossweb.sar/server.xml, e adicione o parametro jvmRoute como abaixo:

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="instance02" >

Agora devemos alterar a porta AJP. Esse passo é necessário pois estou utilizando as duas instâncias do JBoss AS, na mesma máquina.
A porta AJP deve ser a mesma que passamos no parametro worker.instance01.port e worker.instance02.port, no arquivo worker.properties.

Para editar esse arquivos no JBoss AS 6.1, faça como abaixo:

Edite o arquivo  /opt/jboss/server/instance01/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml

<bean>
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="bindingName">AjpConnector</property>
<property name="port">8009</property>
<property name="description">JBoss Web AJP connector socket</property>
</bean>

Edite o arquivo /opt/jboss/server/instance02/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml

<bean>
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="bindingName">AjpConnector</property>
<property name="port">8309</property>
<property name="description">JBoss Web AJP connector socket</property>
</bean>

Agora devemos iniciar as instâncias, com os comandos abaixo:

./run.sh -c instance01
./run.sh -c instance02 -Djboss.service.binding.set=ports-02

Verifique após a inicialização, se a porta AJP realmente é a mesmo que foi configurado no worker.properties.

5 – Desenvolver uma aplicação Web simples  para testar o Funcionamento do Balanceamento de Carga

Crie uma simples aplicação Web Como Abaixo, para realizarmos os testes. Altere o mesmo código  para ficar adequado a Instância 02.

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<img src="numero1.jpg" alt="Instance01" />
<%= request.getSession().getId() %>
<h1>Instance01</h1>
</center>
</body>
</html><strong>
</strong>


Agora crier um pacote chamado loadBalance.war para a primeira instância e loadBalance.war para a segunda instância.
Faça o deploy na pasta padrão  /opt/jboss/server/instance01/deploy/ e /opt/jboss/server/instance02/deploy/.
Acesse a primeira instância pelo FireFox ( ou qualquer outro browser ).

Acesse a seguinte url: http://localhost/loadBalance/test.jsp , você deverá ver a imagem abaixo:

Agora acesse a mesma url http://localhost/loadBalance/test.jsp, só que utilizando outro browser, se o balanceamento estiver funcionando você deverá ver a imagem abaixo:

Bom é isso ai galera, muitas coisas ainda podem ser melhoradas aqui, lembrando que não estamos utilizando o Cluster, tanto é que não fizemos o deploy no diretório farm, mas  sim no diretório padrão.

A Configuração do JBoss AS 6.1 como Mod JK Está Finalizada !

Continua ( Mod Cluster ) ….

Cursos JBoss Oficiais / RedHat

Postado em Atualizado em

Algumas pessoas andaram me peguntando se sabia os preços dos cursos oficiais da RedHat para o JBoss, entrei em contado com eles e o Guilherme Alves,  me passou a tabela abaixo, que vale para o mês de Novembro de 2011.


Segue Abaixo o contato:

Guilherme Alves
Red Hat Training and Certification, Brazil
galves@redhat.com
+55 11 3529 6073
http://www.redhat.com

Abraços!

🙂

Cursos JBoss AS / PostgreSQL

Postado em Atualizado em

Quero começar dizendo aqui, que não trabalho na Dextra e nem tenho qualquer tipo de ligação, estou divulgando o curso por que realmente eu já fiz, e posso dizer que achei muito bom. Foi nesse curso que iniciei os meus conheçimento no JBoss AS. Os Instrutores que ministraram o Curso que fiz em 2009, realmente entendiam a fundo o JBoss AS. O Curso de Arquitetura e Administração dá uma boa introdução e Curso de Performance e Tuning vale muito a pena… Enfim segue  abaixo os Links para os Treinamentos.

JBoss AS

http://www.dextra.com.br/servicos/treinamento/jboss/jbarq.htm
http://www.dextra.com.br/servicos/treinamento/jboss/jbperf.htm

PostreSQL

http://www.dextra.com.br/landing/roadshow-treinamento-postgresql-saopaulo/
http://www.dextra.com.br/landing/roadshow-treinamento-postgresql-curitiba/

Fonte: http://www.dextra.com.br/

Abraços e Bons Estudos.

🙂

Certificação Digital

Postado em Atualizado em

Olá, vou deixar aqui uma dica  de um ótimo artigo sobre certificação digital que li no blog do Ricardo Massao.
Realmente leiam, o artigo foi muito bem elaborado.

http://planetsmartcards.blogspot.com/2010/12/certificacao-digital.html

abraço!