Saúde, paz, alegria, amor, amizade e tudo que for de melhor para você neste ano que começa, são os meus mais sinceros votos, neste domingo nublado de São Paulo, esperando a carne para o almoço descongelar.
Voltei de férias, que graças A Deus foram ótimas, não melhores pela saudade da esposa, que foi pro outro lado do estado ficar com a família dela, mas tudo bem, em breve voltaremos a longe Oriximiná :). Uma das coisas interessantes da viagem, foi ter encontrado em Santarém (cidade de onde peguei o avião para voltar pra SP), ter encontrado 4 turistas de “meiaidade“(É assim agora né?) de Washington-DC, tomando suco de cupuaçu, e o que mais me chamou a atenção, foi um deles comentando que “Não senti nada de mosquitos”, logo, eu tive que elogiar o bom-gosto(será que tá certo?), destes turistas que passaram 22 dias visitando a Amazônia não só do Brasil, mas colombiana, Boliviana etc.
Praça de Oriximiná
Natureza do Lugar
Uma rede, um banho ou um futebol?
Uma ducha
Algumas atividades já de começo de ano
Janeiro
JBossBrasil - Lançamento Oficial em Janeiro 2009
Está prestes a confirmas a data do lançamento da Comunidade JBossBrasil, que ocorrerá com certeza em São Paulo e Brasília, além de algumas outras cidades que estamos trabalhando, assim que tiver a data final estaremos publicando-a aqui.
Chris Morgan
O palestrante para lançamento da comunidade em São Paulo, será Chris Morgan, Sr. Product Mkt Manager para o JBoss Operations Network, que estará no Brasil na semana do dia 19 ao dia 23 de Janeiro, visitando clientes, e com certeza proferindo algumas apresentações para a comunidade JBoss no Brasil.
Se você tem interesse em conhecer um pouco sobre o JBoss Operations Network, eu recomendo fortemente o artigo do meu grande amigo Alexandre Gomes no blog da empresa Sea Tecnologia ( http://blog.seatecnologia.com.br) ou clique aqui para ir direto no link deste post.
JBoss Virtual Experience - 11 de Fevereiro 2009
No dia 11 de Fevereiro, além do meu aniversário :), haverá uma conferência Internacional online da JBoss - JBoss Virtual Experience. Este evento acontecerá agora, pois o evento mundial anual JBossWorld acontece apenas em Setembro, logo, é uma oportunidade boa e barata de ficar por dentro de algumas tecnologias Java e JBoss que a empresa está trabalhando. Veja detalhes aqui: http://www-2.virtualevents365.com/jboss_experience/ .
Sei que este ano temos vários planos, entre eles realizar a primeira conferêncial oficial de JBoss no Brasil, onde o foco será um evento e comunidade, e claro, para que os profissionais possam mostrar seus talentos no uso das tecnologias emergentes e populares no mercado, além é claro, de fazer o máximo para apoiar os JUGs locais e eventos Java da comunidade.
Ufa, e olha que o ano só está começando! Com certeza, este será um ano muito especial, e espero muito encontrar e reencontrar vários amigos nestas atividades por todo o Brasil.
Alguns amigos meus preferem lugares exóticos como África, India, Tibet etc… Mas existem lugares também extremamente exóticos no Brasil, é num destes lugares que meu pai resolveu morar e estabelecer negócios e trabalho dele, portanto, é para um lugar de nome estranho chamado: Oriximiná que ficarei cerca de 10 dias:
Pôr do sol no Rio Trombetas
Minha viagem, começa encontrando minha mãe em Belém, de onde voamos de “Grande Onibus Lotado” Linhas Aéreas Nutry inteligentes, até a conhecida cidade paraense Santarém. De lá, pegamos um barco mais ou menos como este:
Barcos na região amazonica
E passamos a noite inteira até chegar em Oriximiná, fico lá até dia 28 de Dezembro, longe da minha esposa, que irá passar as festas com sua mãe também no interior do Pará em Tucuruí, onde há a uma das maiores Hidrelétricas do mundo, mesmo que num estado divulgado mais frequentemente pelas atrocidades ambientais que se praticam por lá.
Depois de 5 anos sem ver meu pai, vou também aproveitar para ver meu avô( Edgar Ankiewsky original, já que eu sou o neto), avó, alguns parentes, entre eles alguns tios que moram em Manaus, que vão aproveitar também que o Brazil é católico e aproveitamos o natal como todo mundo para rever a família.
Vou tentar tirar várias fotos, até pra isso que meu laptop vai junto, mas se tiver um tempinho eu adoraria estudar algumas coisas novas, nem que fosse deitado numa rede, de frente pra algum lago, ou simplesmente comendo alguma fruta ou peixe assado, claro, com pimenta de tucupí e farinha.
É fascinante passar vários dias, apenas preocupado em chegar cedo no campinho de futebol para formar um time de 3 na linha e 1 no gol que não perca tanto, preocupar com as horas que as comidas vão ficar prontas, e o melhor de tudo, ter a sensação que qualquer diversão é a coisa mais barata do mundo. Bom, vejo meus amigos assim que voltar, se possível, publico umas fotos aqui, e não esqueça: Há inúmeros lugares fantásticos no Brasil também, pena que nosso turismo interno seja as vezes mais caro que ir para o exterior.
Margem do Rio... Brincando com JBoss ESB
Eu adicionaria na lista de lugares exóticos: Lençois Maranhenses, Bonito (que ainda não fui), Pantanal etc, mas as vezes meus amigos pensam que é mais cliché falar que foi pro Nepau para impressionar a mulherada, nesse quesito, ainda bem que eu já casei :), já que Oriximiná mesmo sendo um lugar lindo, não é dos nomes mais impressionantes.
A Red Hat anunciou hoje que assinou um acordo de contribuição para o GoogleWebToolkit, o que reforça cada vez mais o compromisso da divisão JBoss em investir em tecnologias.
Esse link fala em detalhes sobre este acontecimento
O JBoss ESB é de fato um produto viciante, pelo fato de ser ao mesmo tempo poderoso e simples, nesse pequeno exemplo, o que eu estou mostrando é basicamente como integrar um serviço Jabber(XMPP) ao barramento de serviços.
Um serviço Jabber pode ser interessante para vários aspectos, principalmente pela comunicação que pode haver com um serviço Asterisk ou até mesmo alertas etc.
Eu instalei na minha máquina o OpenFire, que é um servidor Jabber, mesmo eu estando muito longe de ser um exímio administrador Linux eu consegui instalar no meu Red Hat Linux, e carregar a interface de administração, configurando-o para uso, bem como adicionando dois usuários: joao e edgar.
Para rodar o Openfire no Linux, você precisa apenas como root (su -), iniciá-lo a partir do /etc/init.d/openfire start , com isso feito, você poderá ver a tela de gerenciamento no endereço: http://localhost:9090 , veja o exemplo:
Openfire - Tela de Administração de Sessão
Claro, muito do que fiz poderia ser economizado se eu quisesse usar uma conta to google/gtalk, mas como com certeza eu iria esquecer minha senha em algum exemplo que enviasse para amigos e clientes, correndo o risco de perder minha conta, ou algum amigo fazer aquelas velhas brincadeiras como estas:
Poderia ser você
Bom, vamos voltar ao JBoss ESB, que é o que este post trata, já que eu tenho meu próprio servidor Jabber
Criando um Scheduler para embutir a API Smack no ESB
Basicamente, como mostrei naquele blog mais sério em inglês que falo da integração com o Apache Camel, você pode embarcar serviços como Listeners no barramento.
Sobre a API Smack
O Smack é uma API super interessante, e existem várias oportunidades de negócio na área de integração VOIP, Mídia, Colaboração etc, então, se o assunto for integrar Jabber clientes com serviços, essa API é na minha opinião a número 1 em termos de simplicidade e facilidade.
Criando o Listener via Scheduler no JBoss ESB
Primeiramente, vamos declarar o Provider Scheduler no jboss-esb.xml como você pode ver abaixo:
<services><servicecategory="Extra"description="Service responsible for interact with Actions based in Project smackesb"name="buddy"><listeners><scheduled-listenerevent-processor="org.demo.smackesb.XmppListener"name="cron-schedule-listener"scheduleidref="Xmpp"/></listeners></service><servicecategory="CBR"description="Service responsible for interact with Actions based in Project smackesb"name="jabber"><listeners><jms-listenerbusidref="smackesbGwChannel"is-gateway="true"maxThreads="1"name="JMS-Gateway"/><jms-listenerbusidref="smackesbEsbChannel"maxThreads="1"name="EsbChannel"/></listeners><actionsmep="OneWay"><actionclass="org.jboss.soa.esb.smooks.SmooksAction"name="transform-from-csv"><propertyname="smooksConfig"value="/smooks-res.xml"/><propertyname="messageProfile"value="source-csv"/></action><actionclass="org.jboss.soa.esb.actions.SystemPrintln"name="dumpCanonical"><propertyname="message"/><propertyname="printfull"value="false"/></action><actionclass="org.jboss.soa.esb.smooks.SmooksAction"name="transform-to-xml"><propertyname="smooksConfig"value="/smooks-res.xml"/><propertyname="messageProfile"value="canonical-xml"/></action><actionclass="org.jboss.soa.esb.actions.SystemPrintln"name="dumpXML"><propertyname="message"/><propertyname="printfull"value="false"/></action></actions></service></services>
Configuração do Smooks:
<?xmlversion='1.0'encoding='UTF-8'?><smooks-resource-listxmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"><profiles><profilebase-profile="source-csv"/><profilebase-profile="canonical-xml"/></profiles><resource-configtarget-profile="source-csv"selector="org.xml.sax.driver"><resource>org.milyn.csv.CSVParser</resource><paramname="fields"type="string-list">
transacao,
valor
</param></resource-config><resource-configtarget-profile="canonical-xml"selector="csv-set"><resourcetype="xsl"><![CDATA[
<ROOT><xsl:for-eachselect="csv-record"><Transacao><numero><xsl:value-ofselect="transacao"/></numero><valor><xsl:value-ofselect="valor"/></valor></Transacao></xsl:for-each></ROOT>
]]>
</resource><paramname="is-xslt-templatelet">true</param></resource-config><!-- Popular Transacao --><resource-configselector="Transacao"><resource>org.milyn.javabean.BeanPopulator</resource><paramname="beanId">transacao</param><paramname="beanClass">bpmesb.Transacao</param><paramname="bindings"><bindingproperty="id"selector="Transacao/@numero"/><bindingproperty="valor"selector="Transacao/@valor"type="Double"/></param></resource-config></smooks-resource-list>
Agora, vamos mostrar o código fonte do Scheduler ESB:
package org.demo.smackesb;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.client.ServiceInvoker;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageFactory;
import org.jboss.soa.esb.schedule.ScheduledEventListener;
import org.jboss.soa.esb.schedule.SchedulingException;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.filter.AndFilter;
import org.jivesoftware.smack.filter.FromContainsFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.Packet;
public class XmppListener implements ScheduledEventListener {
protected boolean started = false;
protected ConnectionConfiguration config;
protected XMPPConnection connection;
public void onSchedule() throws SchedulingException {
}
public void initialize(ConfigTree arg0) throws ConfigurationException {
try {
config = new ConnectionConfiguration("localhost", 5222, "es");
connection = new XMPPConnection(config);
connection.connect();
connection.login("joao", "123", "Home");
org.jivesoftware.smack.packet.Message chat = new org.jivesoftware.smack.packet.Message();
chat.setTo("edgar@es/Home");
chat.setSubject("SOA Integration");
chat.setBody("JBoss ESB Buddy is online!");
chat.setType(org.jivesoftware.smack.packet.Message.Type.chat);
connection.sendPacket(chat);
PacketFilter filter = new AndFilter(new PacketTypeFilter(
org.jivesoftware.smack.packet.Message.class),
new FromContainsFilter("edgar"));
PacketListener myListener = new MyTracker();
connection.addPacketListener(myListener, filter);
} catch (XMPPException e) {
e.printStackTrace();
}
}
public void uninitialize() {
connection.disconnect();
}
class MyTracker implements PacketListener {
public void processPacket(Packet packet) {
// dispatch messages to ESB from a Jabber Client
org.jivesoftware.smack.packet.Message msg = (org.jivesoftware.smack.packet.Message) packet;
System.out.println("Will forward the Message: " + msg.getBody());
try {
ServiceInvoker invoker = new ServiceInvoker("CBR", "Jabber");
Message message = MessageFactory.getInstance().getMessage();
message.getBody().add(msg.getBody());
invoker.deliverAsync(message);
} catch (MessageDeliverException e) {
e.printStackTrace();
}
}
}
}
Basicamente, nós temos na classe acima, acesso ao ConfigTree, então algumas configurações poderiam vir do XML do JBoss-ESB, mas decidi construir o código de forma mais simples.
Agora, o que acontece é, quando o JBoss ESB é iniciado, ele terá um “buddy” chamado joao, que interage com o edgar, o que acontece então é que eu posso via meu programa de bate-papo fazer algo de fato útil, por exemplo, enviar uma mensagem no formato:
[numero da transacao],[valor da transacao]
Onde, esssa linha, vai ser considerada um CSV, que vai ser transformado pelo serviço de Transformação Smooks do JBoss ESB.
Basicamente, quando a mensagem de edgar vai para o JBoss ESB, o buddy joao converte essa mensagem para uma mensagem no formato do ESB para o barramento, o que garante o processamento dentro do bus.
Veja a interação da demo na seguinte screenshot:
JBoss em ação com o Jabber
Baixe aqui os fontes desta solução, descompacte-o no seu diretório [jboss-esb-home]/samples/quickstarts, e para deploy o comando: ant deploy.
E claro, em próximas apresentações em eventos, ou demonstrações da plataforma SOA JBoss, este deve ser um dos novos caras a ser mostrado.
Em resumo, apesar de ouvir comentários chatos como “JBoss ESB não é um esb robusto”, eu sugiro fortemente a leitura de alguns cases de sucesso dele neste site, e claro, no Brasil existem casos de sucesso também, mas infelizmente ainda estamos trabalhando na escrita destes cases, isto sem falar nos clientes que usam o JBoss ESB .ORG, os quais não tem acesso a suporte e SLA profissional da Red Hat, estes, apenas conhecemos e ajudamos da melhor forma possível, e claro, no intuíto de fazermos com que essas empresas também possam enchergar as vantagens de opensource “profissional”, onde o suporte não fica a cargo somente de pessoas, e sim a cargo de uma empresa de saúde que é a Red Hat e sua divisão JBoss.
Acredito que após ler o site que citei, possa ser um bom ponto de reflexão para comentários e/ou escolhas de tecnologias, já que os casos apresentados, são dignos de sucesso com certeza.
Ah, o JBoss 5 ? Uma outra hora comento sobre o lançamento dele, primeiro prefiro ouvir, ler…Principalmente porque alguns comentários são bem divertidos, para não dizer outra coisa.
Em alguns foruns, em alguns comentários, sempre algumas pessoas perguntam algumas coisas inusitadas, até eu mesmo fui vítima de um amigo meu que me pregou essa peça.
Então, ao invés de responder GIYF (Google is your Friend), responda usando este serviço:
Fazer com que os leitores possam ter uma pequena introdução a respeito do uso de JAX-WS da forma mais simples possível.
Ingredientes
Não vou usar aqui nenhum IDE, quando estamos aprendendo o IDE pode atrapalhar por facilitar até demais, escondendo alguns detalhes importantes que podem passar desapercebidos de você, sendo assim, vamos usar a distribuição do JAX-WS 2.1.5, que pode se encontrada aqui.
Quando você baixa este jar, no mac ou windows você pode dar dois cliques nele e instalar normalmente, entretanto se estiveres usando o Linux, uma linha de comando pode ser requerida, mas aí será um simples:
java -jar <jaxws-arquivo.jar>
Além do JAX-WS que é a implementação da JSR 224, vamos usar um Container Web leve e super simples, no caso, o Apache TomCat 6.18 , que por padrão não traz nenhum stack WebService, como um servidor de Aplicações mais completo como JBoss App Server (JBossWS) ou Glassfish(Metro).
Passo 1 - Instalando as bibliotecas do JAX-WS no Apache TomCat
Você agora quer que seu tomcat tenha o suporte ao JAX-WS, ou seja, você não precisará mais se preocupar em embarcar os jars de WebServices no seu WAR já que seu “tomcatizinho” vai ter essas bibliotecas pra você.
Para realizar as tarefas sem depender de um IDE, você como desenvolvedore Java, seja “cabra-macho” ou “Maria Bonita” vai precisar de seu ANT instalado e configurado, achei este tutorial no Google que pode lhe ajudar a partir deste ponto neste tutorial.
Uma vez que o ANT está claro pra você, você poderá ver alguns arquivos importantes na pasta onde o jaxws-ri foi instalado, lá há um arquivo chamado tomcat.xml que é o arquivo de build para instalação/configuração do jax-ws no TomCat. Para que isto seja realizado, você deve informar neste arquivo onde está seu tomcat, alterando o valor desta propriedade do XML:
property name=”tomcat.home” value=”O CAMINHO DO SEU TOMCAT: EX: C:/java/tomcat”
Você também vai precisar da variável de ambiente JAVA_HOME, que pode ser declarada no seu Painel de Controle do Windows, ou via profile no linux, ou ainda com o set JAVA_HOME=caminho do seu jdk se windows, ou export JAVA_HOME=caminho do seu jdk se linux. Para finalizar a Instalação então, basta você digitar o comando: ant -f tomcat.xml install e então você deverá ver um retorno deste comando mais ou menos assim:
mac-es:~/java/jaxws/jaxws-ri edgarsilva$ ant -f tomcat.xml install
Buildfile: tomcat.xml
update-catalina-props:
[echo] Backing up /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18/conf/catalina.properties…
[copy] Copying 1 file to /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18/conf
[echo] Adding JAX-WS RI jars to shared.loader property in /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18/conf/catalina.properties…
install:
[echo] Installing JAX-WS RI 2.1.5 for /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18 …
[mkdir] Created dir: /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18/shared/lib
[copy] Copying 19 files to /Users/edgarsilva/java/tomcat/apache-tomcat-6.0.18/shared/lib
jdk6-message:
BUILD SUCCESSFUL
Total time: 2 seconds
Se isto funcionar (mensagem build successful), pronto, seu TomCat agora suporta Aplicações WebServices.
Executando nosso primeiro Exemplo
Nos dias de hoje dificilmente você encontrará um framework sem exemplos interessantes, o jax-ws não foge a regra e na pasta samples há vários, para este nosso tutorial, vamos usar o exemplo “Annotations”. Entre neste diretório para vermos um pouco da estrutura dele, observe que temos a seguinte estrutura:
build.xml etc src
Onde o build.xml é o script ant do projeto, as pastas etc e src são respectivamente a de configuração e a de código fonte. Este build.xml chama/inclui também o deploy-targets.xml da parta etc no processo de build, alterei o esse arquivo para facilitar seu entendimento quando estamos utilizando apenas tomcat. A alteração realizada você pode ver na imagem a seguir:
Porção ANT Alterada para permitir deploy no tomcat
Agora, para compilar e instalar o aplicativo web com suporte a WebService, digite ant server, automaticamente todo seu processo de build e deploy será realizado pelo ant.
Inicializando o Tomcat 6
Há várias maneiras de se inicializar o tomcat, a minha preferida é chamar do diretório bin o comando Java:
java -jar bootstrap.jar
Com este comando o Tomcat é inicializado, e ao abrir a url : http://localhost:8080/jaxws-annotations/addnumbers?wsdl no Browser, temos o seguinte resultado:
Visualização do WSDL de nosso serviço do JAX-RS hospedado no Tomcat
Na próxima oportunidade, vou tentar expor um exemplo com o uso de JAXB para auxiliar na definição dos tipos de dados no Schema do XML no WSDL.
Como parte de nosso trabalho é criar demos que possibilitem técnicos e até mesmo pessoas de áreas gerencias e de vendas entenderem o valor das soluções, estamos trabalhando numa demonstração do MetaMatrix, que é a solução de Data Services Federation da JBoss.
Com o MetaMatrix é possível criar um Virtual Database(VDB) que é uma camada de banco de dados apenas lógica, que permite “federar” os dados! Mas que coisa é essa de Federar? Significa de modo mais objetivo “reunir, aglomerar, juntar” os dados de alguma forma. Mas qual o resultado disso? Compartilhamento de informações via banco de dados é uma das 4 formas de integração de acordo com o EAI Patterns, sendo assim, é muito importante que tenhamos uma maneira simplificada de obter informação independente de onde ou qual banco de dados, seja Oracle, MysqL, DB2, TXT, WebServices etc.
O responsável por estes estudos é meu colega Leandro Abite, que está criando toda a camada de acesso a dados, para nossa “Prova de Conceito”, decidimos criar um serviço de busca de infrações(multas) em vários estados do Brasil, partindo do princípio que cada estado armazene as infrações da forma que é mais peculiar, por exemplo:
a) Para estado X , como prova, ele não normalizou o esquema de banco de dados, pondo as multas e infratores na mesma tabela, simulando como informações em legados de banco de dados
b) Para outro estado, todas as normas para um modelo relacional foi estabelecido.
c) No outro estado, ele fez com que os dados sejam obtidos de um TXT (CSV).
d) De um outro estado, os dados estão vindo via WebServices.
Com estes cenários, o MetaMatrix permite criar um “DataSet” que chamamos de Infracoes , no qual a chave de pesquisa (criteria ou where) seja a Placa do veículo. Assim, uma vez, que informemos a placa, o MetaMatrix realiza a busca em todos estes repositórios, retornando os dados e já atualizando o seu Cache de Informações.
Para exibir as informações, criamos um cliente usando o JBoss Seam com Richfaces e o GMaps4JSFhospedado no GoogleCode.
A Consulta hoje é feita via o Driver JDBC MetaMatrix, usando os simples java.sql.ResultSet e java.sql.Statement, mas estamos vendo uma forma de realizar operações deste tipo usando Hibernate e JPA.
Estas demos estaremos realizando em alguns eventos e reuniões de grupos de usuário, portanto, se você ver o título MetaMatrix por aí, você vai se impressionar do quanto esta ferramenta que está na reta final de ser 100% opensource pode fazer para sua empresa.
Esta é uma apresentação de Erica, que é SA da MetaMatrix da Inglaterra, aqui ela apresenta o MetaMatrix, em breve, vocês poderão ver muito mais deste produto em português com o Leandro Abite, Consultor JBoss onde um dos seus focos é ser Evangelhista de MetaMatrix no Brasil, por hora, a voz da Érica, que é bem melhor que a do Leandro, sem dúvida:
Hoje tive um tempinho de dar uma olhada no JBoss 5.0 CR2, já que há um mecanismo do MicroContainer que esperamos utilizar em um projeto em cliente, resolvi postar aqui algumas visões.
Velocidade
Em alguns dos builds antes deste atual, confesso que a performance era algo que me preocupava, entretanto, diante de alguns testes comparativos entre JBoss 4.2.2 e o JBoss 5.0 CR2, já consegui observar alguns fatores bons em termos de performance. Claro, eu não estou falando em tempo de start-up, mas se o caso for esse, o meu 4.2.2 inicia em 18 segundos, enquando o 5.0 fica nos 28 s. Ambos sem tunning, numa máquina normal Intel Core-Dual 4GB de ram.
Classloading
Poder interceptar, manipular e alterar todo o comportamento do Classloder é algo muito interessante, porém “perigoso” se cair em mãos erradas.
JBoss Messaging, JBossWS, jUDDI
Tudo que é preciso para aplicações SOA que não necessariamente já estão orientadas a um Enterprise Service Bus, ou que ainda, vão utilizar outros ESBs de mercado, que é o nosos caso, para este cliente especifico.
Responsividade dos Consoles
Os novos Consoles respondem de forma bem mais rápida, bem como a experiência viausl foi melhorada. Veja alguns screenthos:
JMX-Console de Cara Nova
Nova cara do JMX-Console
Falando em Consoles Novos
Como falei no post anterior, o JON agora é 100% opensource, com o nome de Jopr , existe uma versão embarcada dele pro JBoss, que faz com que você tenha uma visão melhor de Console Corporativos JBoss. Embora o JMX-Console seja bem útil para quem consegue usá-lo, quem conhece-o um pouquinho mais, sabe do que eu estou falando. Veja aqui a cara do Console Embaracod Jopr:
JBoss 5 - Console Novo
Fique atento aos eventos realizados por http://jbossbrasil.ning.com , pois estaremos fazendo um trabalho de divulgação mais forte do JBoss 5.0, assim que a versão GA chegar ao mercado, que a partir de agora, não deve demorar, visto que a CR2 é a última antes do GA, e pelo o andar do JIRA o GA está mais breve até do que eu imaginava.
O JBoss Operation Network - JON que muitos viram no JBoss Road Show em 6 capitais no Brasil, agora podem vibrar: Sim, ele agora é 100% opensource! E com esse nome meio estranho, mas o que interessa é o projeto, que faz com que o JBoss agora SIM TENHA UM CONSOLE ADMINISTRATIVO PROFISSIONAL como os outros Application Servers proprietários ou remendados de mercado.
Uma alternativa, de quem não quiser usar o modelo cliente-servidor do Jopr, pode usar o Embbeded Console, que é um WAR file que você instala no JBoss App Server, e pronto, você terá um console mais bonito que o JMX-Console e Web-Console, que possuem em funcionalidades poderosissimas, mesmo não sendo dos consoles mais bonitos de mercado.
Trabalhar numa empresa opensource é um desafio diário, as emoções são grandes, mas as vitórias, são imensamente importantes, neste caso, com crescimento da divisão no Brasil fez com que contratemos de uma só vez 3 profissionais para o time brasileiro, que começam suas atividades nesta segunda dia 03 de Novembro, particularmente para mim é um prazer enorme contar com esses caras na nossa operação daqui pra frente, sendo assim, apresento-os aqui:
Você vai encontrar Alessandro muitas vezes ministrando treinamentos JBoss, além de consultorias, palestras sobre várias tecnologias ligadas a JBoss Seam, JBoss Portal, Alfresco etc.
Deivison poderá ser um dos consultores a visitar sua empresa e projetos que envolvam Arquitetura Java e alguns dos projetos da plataforma opensource SOA da JBoss.
Leandro Abite JBoss Consultant
http://jbossbrasil.ning.com/profile/leandroabite
Leandro aproveitou a saída da sua última empresa para tirar férias :), não tenho uma foto dele, tudo bem. Ele tem uma larga experiência em Java, bem como uma vivência em projetos no Brasil e Inglaterra, e nos últimos tempos trabalhava num time técnico como DBA, por isso, este perfil se encaixa perfeito para que ele possa atender os projetos que usam a nossa plataforma de federação de dados MetaMatrix.
Estes se juntam ao time brasileiro que já conta com Core-Developers que trabalham em projetos como: JBoss AOP, AppServer, Drools, Messaging, Profiler, SOA-P, além de Arquitetos de Soluções e outros consultores. Posso dizer apenas um bem-vindo público para todos vocês.
Em dezembro, deveremos contratar outro profissional, que seria um Consultor com foco em plataforma Java, EE, Boas Práticas e que tenha uma vivência em ambiente de Telecom e seus protocolos, que conheçam e tenham experiência em SIP Servers, XMPP, Asterisk etc, se você tem esse perfil envie um email para gsantos (at) redhat.com, e junte-se a esse time, que é muito mais que um grupo de profissionais, e sim um grupo que faz de tudo para fazer com que o Brasil seja visto no mercado global como um país que se vale a pena investir.
Hoje fui ao lançamento da InfoQ Brasil, achei interessante algumas palestras, em especial a de SOA do meu amigo Alexandre Gomes, que falou de forma super alto-nível sua visão sobre o assunto, saí mais cedo do evento, para poder aproveitar um pouco mais o final de semana com esposa e amigos.
Acredito que será um sucesso este renomado portal, agora disponível também em Português do Brasil, o pessoal da Fratech está de parabens, pelo arrojado projeto.
Apenas uma nota importante, pois escutei algumas pessoas comentando sobre esta notícia:
Acredito que esta notícia foi uma piada de “1 de de Abril” , pois até hoje não vi nada de oficial no site da SpringSource, pelo contrário, as notícias que tenho visto da empresa por trás do SpringFramework, não são das mais agradáveis para a comunidade opensource.
Agradecimentos a meu amigo Ricardo Ferreira, pela revisão e pelas dicas sobre o material, e meu muito obrigado as mais de 60 pessoas que estiveram no Workshop da FA7 nesse último sábado em Fortaleza.
Assim que o projeto SOA Workshop tiver uma próxima agenda, estaremos divulgado neste blog e no site: http://soaworkshop.wordpress.com
Agora mais que confirmado, neste sábado, estaremos em fortaleza realizando um workshop de JBoss ESB, fique a vontade para levar seu latop para acompanhar alguns laboratórios e exemplos que vamos mostrar.
Você poderá usar seu IDE, no meu caso, estou usando Ganymed, além do JBoss Tools versão compilada da última semana, e o JBoss ESB Server 4.4 GA, que pode ser obtido através deste link.
Veja aqui o primeiro capitulo do Workshop, após a realização voltarei aqui para publicar todo o material, que totaliza cerca de 150 slides nessa primeira versão do material:
Neste próximo sábado, estarei na bela cidade de Fortaleza, para ministrar um Workshop de JBoss ESB e SOA. Nesta oportunidade, espero poder transmitir valiosos conhecimento a respeito de SOA e sobre o ESB opensource que vem ganhando um enorme aderência no mercado brasileiro.
Este evento está sendo patrocinado pela Faculdade 7 de Setembro, nessa oportunidade, os assuntos mostrados estarão relacionados ao JBoss ESB, e sua versão 4.4, quem quiser levar seu laptop com o JBoss ESB Server 4.4, poderão acompanhar alguns dos demos e exercícios práticos que serão propostos a fim de fazer com que a platéia ganhe o máximo em aproveitamento de aprendizado.
Sendo assim, Se Deus Quiser, no próximo sábado, estarei em Fortaleza, e já convido a todos as pessoas que queiram após o Workshop a dar uma esticadinha para podermos ir até um bar comer um carangueijo e comer um peixinho, e aproveitar as coisas boas que Fortaleza têm.
Eu polêmico? Jamais, sou daqueles caras que fico na minha, vejo inúmeras brigas, informações controversas em vários foruns de discussão Java no Brasil, que mais parecem aqueles caras daquele programa de futebol na rádio AM, que reúne sempre um Corinthiano, Palmeirense, São Paulino e um Santista faltando chegarem as “vias-de-fato”, eu passo, leio, me irrito, daí penso: “Não vale a pena responder, passei desta idade, fase como prefeririem”. Mas este entry visa tentar esclarecer algumas coisas, vamos lá tentar.
1 - Na última terça dia 23, estava em Brasilia e fui a reunião do DFJUG, levando minha lata de leite ninho para ajudar o projeto deles, que eu acho super válido, além de mim, estava amigos, entre eles Alexandre Gomes (Sea Tecnologia), Paulo Silveira(Caelum), Alexandre Porcelli (Caravela), Vladimir e João Paulo Viragine (JBoss), encontrei alguns amigos de Brasília da época do Loterias da Caixa, bem como outros membros do Grupo, na apresentação de Arun Gupta, sobre Glassfish, gostei muito das novidades e promessas para este servidor de aplicações, mas uma coisa me chamou atenção: Por que falar mal e atacar somente JBoss App Server para chamar a atenção sobre Glassfish, acredito que seria muito mais valioso falar das vantagens sobre WebOracleLogic ou qualquer outro. Mas acho que é mais fácil, tentar ir buscar os clientes que a JBoss como empresa passou anos até mobilizar para o momento Opensource, isso é de fato, e parece mais fácil, do que realmente em termos de mercado, tentar competir de igual pra igual com grandes players de App Server.
2- Esses dias, li um artigo de um cara que respeito muito, Osvaldo Doerdelin, Editor-Chefe da Java-Magazine, que não poupa em emitir opiniões extremamente pessoais sobre JBoss(claro, ao invés de imparciais) como por exemplo:
“O que esta versão suporta é um Frakenstein chamado J2EE 1.4 com EJB 3.0 …“
Definitivamente, o tempo de pesquisa e desenvolvimento para chegarmos ao JBoss 5.0 é algo que possa ter levado um tempo exarcebado, entretanto, este tempo vai garantir que o JBoss volte a acompahar as specs novas do JEE, a exemplo JEE6. Não cabe a mim, ficar tecendo explicações pelo tempo, porém nunca senti falta de nada importante no JEE5, já que EJB3, WebServices, JSF etc, estavam disponíveis há muito tempo. Sendo, porém, muito além de implementar a Spec, era preciso pensar nos próximos 5-10 anos de tecnologias Java, e avaliar como suportar não só JEE5, mas JEE6…7.8.1000 com o intuito de continuar sendo o AppServer mais simples, estável, performático e ainda querido no mercado. O atraso para spec JEE5, deverá não acontecer para a JEE6. Todavia, dias atrás precisamos rodar o JBoss jBPM num BIG AppServer o “Esfera de Teia” versão 6.1, e este por sua vez, não realizava o deploy devido a ORDEM DOS SERVLETS e LISTENERS do web.xml, e pensei “É este o valor de implementar JEE5?, ou poder rodar intereceptors, EJB3, JSF, MDBs, TimerServices etc?”
É por estes e outros motivos que eu ainda acredito que vemos Tecnologia no Brasil como SILOS, GUETOS, TIMES de FUTEBOL ou fanáticos de RELIGIÃO, ou pior como “meninos” mimados, ser mimado não é o problema, e sim, quando formamos opiniões, e aí você depende que 100% da sua audiência seja lúcida a ponto de dicernir o que é certo do errado.
Eu espero imensamente que as pessoas usem as tecnologias de código aberto JBoss não por que temos uma logomarca legal e bonita pra caramba, que até hoje meus amigos do Jiu-Jitsu acham que é uma camisa de “Rave”, ou porque a Flávia Rainone do JBoss AOP é super simpática, e sim, porque as pessoas acreditem que temos tecnologias que agregam, ajudam e que fazem com que a nossa vida de desenvolvedores possa ser mais divertida e fácil.
Eu não vou aqui falar mal de nenhum Application Server, ou de nenhuma empresa, não sei se amanha, eu possa precisar de um emprego, e uma delas possa querer um cara como eu, mas alguns fatos que as pessoas as vezes não prestam muita atenção numa estratégia de uma empresa open-source, e aqui alguns fatores:
Sim, a JBoss existe no Brasil, como empresa e com escritório em São Paulo, no mesmo prédio da Google, e não numa garagem, onde há o time técnico, suporte, educacional e vendas, além parceiros em quase todas as capitais brasileiras.
Core-Developers, Consultores, Instrutores de JBoss contratados no Brasil de forma CLT, ou seja, que arrecada impostos, e com a chance de falar nosso idioma
Influenciadores direto de movimentos e futuros dos produtos JBoss globalmente
Investimento na Comunidade
Sendo a divisão da Red Hat no Brasil, que mais cresce em vários aspectos.
Claro, ainda queremos fazer muitas coisas, como aumentar imensamente nosso time, investir em projetos dentro das univesidades e educação de base, estar ainda mais ativos na comunidade, mas para isso, contamos não só com funcionários, mas com o próprio carinho da comunidade.
É difícil, você achar que eu estou sendo imparcial, visto meu empregador, mas é algo, que fatos como eu descrevi acima, me causam orgulho primeiro de ser Braileiro, por ver o Edson Tirelli, Clebert Suconic, Flávia Rainone, Stephan, Marcus Moysés, Charlton Barreto, Professor. Francisco Reverbel, serem profissionais respeitadissímos e de contribuições importantes para as tecnologias de middleware da próxima geração.
A JBoss foi fundada, por um cara não é um grande exemplo de diplomacia, mas ninguém pode considerá-lo nada menos que um gênio, se até o próprio Mark Fleury respeitou o Sun/Glassfish na declaração que vi nos slides de Gupta, eu sinceramente não entendo o porquê de falar tão mal sobre JBoss!? Também não entendo uma revista, na qual já anunciamos, fazendo declarações no mínimo fortes a um projeto que está longe de ser proprietário, e sim dirigido e focado em comunidade, mas com valor agregado para os clientes, via suporte e serviços, para justamente que o opensource não seja vítima das afirmações imbecis como “Não use Opensource, eles não tem suporte….”.
Eu ainda espero realmente, que os meninos um dia virem de fato “Arquitetos”. Ah, sobre o TomCat, nem vou comentar! Talvez eu devesse trabalhar na SpringSource para me sentir um pouco mais “p” da vida. Talvez o problema possa até ser Java, visto que no mundo Ruby o ROR é o que há, e e .net nada é melhor que MS IIS.
Deixei um comentário no blog de Arun Gupta, apenas para que ele refletisse na mensagem dele, apenas isso, já para Osvaldo, um cara que respeito, e de quem sempre só ouvi o melhor, eu tenho certeza que a opinião dele, não é a da DevMedia, assim como aqui é extritamente expressa nada mais nada menos que o registro de uma visão para que cause o mesmo nas pessoas: apensa reflexão.
Mesmo no meio de semana, vai valer a pena com certeza ir ao evento este ano, além de várias palestras que citei no meu post anterior, não posso deixar de fazer propaganda da minha colega Flávia Rainone, que fará duas palestras que tenho certeza que serão sensacionais.
Sei que vem gente de vários lugares e para falar de tecnologia, como os amigos do CEJUG, isto mostra que de fato: Java está em todos os lugares. Sem falar nos “xirus” que vem do Rio Grande do Sul tchê, dos cariocas e os paulistanos de nascimento e os “adotados” também etc, ou seja, mesmo sendo no meio da semana!!! Tenho certeza que a comunidade fará com que seja um evento de sucesso.
Não estranhe também um patrocinador novo evento, talvez a “convergência” e a “interoperabilidade” chegaram nos eventos de Java do Brasil.
Brincadeiras a parte, uma das demos que espero mostrar amanhã, terá a presença do MobiCents, que é nossa plataforma de Comunicações(Telco[SIP], Vídeo, Midia, Presença etc) open source da JBoss. E toda a integração de uma arquitetura SOA a uma plataforma muito comum para soluções de telco/call-center. Sendo assim, vejo vocês todos amanha!
JustJava 2008 começa nesta quarta, e neste ano, acontecerá quarta, quinta e sexta, este é o evento mais tradicional de Java no país, por estas e outras que vale sempre a pena enviar uma palestra para este evento. Este ano, consegui aprovar uma palestra com o tema SOA (Arquitetura Orientada a Serviços), que acontecerá as 15:00 horas no auditório, no dia 10, quarta-feira. Veja mais abaixo:
Título: OpenSource SOA: Reais maneires de trazer esta cultura para sua empresa Resumo: Arquitetura Orientada a Serviços - SOA, é um dos assuntos mais debatidos da atualidade, e um dos mais procurados nas empresas na atualidade, porém pouco se tem visto de casos de aplicabilidades reais ou até mesmo casos de sucesso. Esta palestra traz muito poucos slides, já que fala-se bastante de SOA em termos teóricos, sendo assim, iremos focar em muita prática sobre aspectos gerais que englobam SOA numa perspectiva de tecnologia opensource, vamos mostrar ao invés de teoria, aspectos práticos de integrações de sistemas com o advento de ESBs, trazendo a realidade da necessidade de termos o uso de orquestração via BPM e Engine de regras, além de um exemplo usando de integração usando REST, outro com FileSystem e um até com sistemas legados como por exemplo Borland Delphi(TM). Serão 50 mintutos de muita prática, integração com o público e alguns minutos para perguntas gerais. Mostraremos no final, algumas soluções que aderiram a SOA primeiramente adquirindo cultura, isto sendo permitido pelo advento do OpenSource, ou seja, fazendo com que as empresas utilizassem tecnologias e modelos arquiteturais funcionais,antes de terem que realizar qualquer gasto ou investimento desnecessário.
Se você está interessando em SOA, eu recomendo fortemente você também assistir as seguintes palestras:
a) Palestrante: Rafael Pereira Nunes - Instituto Metodista de Ensino Superior - Arquiteto de Software
Titulo: Restful WebServices Resumo: Desde que começamos a desenvolver softwares há a necessidade de integrá-los, ao longo dos anos descobrimos e criamos diversos padrões para estas integrações, com a popularidade e uso massivo da web a transformamos em também uma plataforma de integração. Porém muita complexidade e burocracia foi agregada a estas integrações dificultando e em alguns casos incompatibilizando integrações de plataformas heterogêneas. E é bem sabido que a proposta de um web service é exatamente o contrário, disponibilizar e consumir serviços independente da plataforma em que qualquer uma das partes foi implementada. REST é a resposta a essa complexidade e burocracia desnecessária, é uma forma simples, descomplicada e eficiente de integrar aplicações -seja gerando serviços ou consumindo-os - utilizando a web como plataforma, porém sem dificultar a vida de ninguém.
b) Palestrante: Eric Claudiney Machado de Oliveira - Luceroli Consultoria - Analista Desenvolvedor Especialista Java Título: Desenvolvimento Java com Portlets 2.0 (Nova JSR 286) Resumos: O conceito de um portal define uma plataforma que permite a usuários ter um ponto único de acesso baseado na web para entrega de aplicativos e/ou serviços. Essa arquitetura cresceu, primeiramente com implementações proprietárias e sem padronização, para trilhar um novo caminho de padronização com a JSR 168, e depois com crescimento de SOA. Desde 2003, houve a padronização da tecnologia de portais, trazendo ganhos para clientes, empresas de portais e a comunidade de desenvolvedores em geral. Entretanto surgiram lacunas, além da evolução natural da arquitetura Java, e uma nova JSR se fez necessária (JSR 286). Suporte a eventos, sessões compartilhadas entre portlets, suporte a frameworks como JSF, Struts e Spring , além de supporte AJAX, estão entre as novidades da nova JSR, com release liberado no ultimo mês de junho.
c) Palestrante 1: Bianca de Oliveira Spazziani - Serasa - an Experian Company - Arquiteta de Soluções Título: Interoperabilidade entre Java e .NET Resumo: Uma realidade no mercado atual é a predominância, dentro de uma mesma empresa, de aplicações desenvolvidas tanto na plataforma Java quanto na plataforma .NET. E, com o crescimento cada vez maior do market share anual de cada uma das plataformas é bastante óbvio que nenhuma das duas deixará de ser importante a curto ou médio prazo. Para se adaptar a este ambiente heterogêneo será cada vez mais necessário ter componentes Java e .NET trabalhando em conjunto. Mas obter interoperabilidade nem sempre é uma das tarefas mais fáceis, é preciso escolher a melhor solução tanto no mundo Java quanto no .NET sem que necessariamente haja custo ou complexidade muito altos. Para isso, apresentaremos diversos conceitos a serem compreendidos, formas de obter interoperabilidade (web services, messaging, unified runtime layers), melhores práticas e alguns perigos da interoperabilidade.
d) Palestrante: Leandro Tiemin Yung - Accenture do Brasil SA - Arquiteto de Soluções Título: Depois do Desenvolvimento, aplicações Java e infra-estrutura de TI Resumo: A idéia é apresentar uma visão de infra-estrutura sobre aplicações Java em ambientes de produção e servidores de aplicação. Apresentar as atividades de ambientes e vivência do dia-a-dia com as aplicações, conceitos, arquitetura, problemas comuns e estruturais de projetos que aparecem e impactam as aplicações em ambiente de produção. Aplicações em ambiente produtivo ao longo do tempo se comporta de maneira diferente do ambiente de desenvolvimento, seja por questãos de consumo de memória, processamento, número excessivo de usuários, conexões com o banco de dados mal comportadas, etc. Tudo isto é reflexo de projetos que atendem os requisitos funcionais de projeto, mas falham em requisitos não-funcionais de qualidade e infra-estrutura. Algumas dicas são extremamente úteis, pequenos cuidados podem ser tomados durante a fase de elaboração e implementação podem resultar em aplicações mais leves e evitam a dor de cabeça de ter que corrigir erros e melhorar performance depois. O palestrante é arquiteto Java e responsável por arquitetura de aplicações em ambientes de produção da Petrobras na região São Paulo Sul.
e) Palestrante: Paulo Eduardo de Azevedo Silveira Caelum - Especialista Java Título: Os 7 hábitos dos arquitetos altamente eficazes Resumo: Ficamos confuso com tantos design patterns, padrões, frameworks e boas práticas? Como devemos desenhar nossas classes? Usar herança ou composição? Injeção de dependências? Webservices ou RMI? JPA ou Hibernate? Devo usar EJB? Para tomar essas e outras decisões, vamos apresentar aqui 7 pontos que consideramos muito importantes que o arquiteto deve sempre estar atento, independente da tecnologia escolhida. Esses são pontos em que devemos focar nosso estudo: a tecnologia sempre vai mudar, já os conceitos aqui apresentados sempre serão muito discutidos. Entre eles, falaremos de boas práticas em OO, o reusou e o open source, o uso de DTOs e o ajuste de granularidade entre serviços, além dos princípios da Bala de prata e da Janela quebrada.
f) Palestrantes: Felipe A. Oliveira - Scaphe Systems - DS e BEA - Arquiteto de Software Título: Enterprise Mashups - SOA 2.0 Resumo: A palestra tem por objetivo trazer ao público-alvo a visão de design orientada a serviços, benefícios diretos colhidos através dessa abordagem, melhores práticas e problemas que um projeto SOA pode enfrentar. Será apresentado ao público como lidar com o ativo de serviços crescente dentro das companhias, como estabelecer políticas : segurança, serviço; versionamento, controle de tráfego entre outros. Cases reais como Amazon, entre outros do mercado nacional serão apresentados, a fim de ilustrar como o tema. Também será apresentado todo o universo de tecnologias, produtos e metodologias que são comumente utilizados pelos consultores dos principais players de mercado como Bea-Oracle, IBM e Sun Microsystems. Por fim, será apresentada a evolução do conceito SOA, em cima da pluralidade das linguagens computacionais (plataformas), diversidade de protocolos e serviços expostos pelas companhias.
g) Palestrante: Bruno Borges - Jawsys Consultoria - Consultor Java Resumo: As buzzwords do momento, SOA/ESB/EDA, soam complicada para a maioria. Mas produtos Open Source tentam simplificar a implementação de arquiteturas orientadas a serviços. Com o Apache ServiceMix, é possível ver que SOA não soa tão complicado quanto parece. Veremos como funciona o ServiceMix integrado com o Apache CXF para publicar serviços como Web Services, de forma simples e descomplicada. Finalmente, entenderemos que SOA, ESB e EDA não são Sistemas Orientados A Especialistas Superiores, Bons e Experientes, Dignos Arquitetos: qualquer um pode implementar!
Estas seriam algumas das palestras que eu gostaria de estar assistindo, na quinta estarei no Rio de Janeiro a trabalho, mas não poderia deixar aqui meu boa sorte para os amigos que vão estar palestrando, bem como um ótimo evento a todos os congressistas!
O trabalho que a comunidade Brasileira de Java realiza é de fato impressionante, mobilizar inúmeras cidades para poderem falar sobre Java é realmente algo de muito orgulho em ser brasileiro.
Estou muito feliz e honrado, por comparecer em 3 destas cidades: São Paulo, Salvador e se tudo der certo Belo Horizonte.
Em Salvador, estamos desenvolvendo vários projetos, levando open source em esfera profissional em vários segmetos para o estado da Bahia e para o Nordeste de modo geral. No caso do JavaBahia, obrigado pelo convite, e ao nosso parceiro NorthTech pelo convite.
Este ano não vou poder ir a Belém, minha cidade linda e querida, mas pelo que eu vi o evento está super bem elaborado e com presença de ótimos palestrantes.
Esse meu blog virou mesmo site de divulgação de eventos, mas estes valem a pena, vejo vocês por lá então