Criando um Client para o nosso Stateless SessionBeanAgora, com o nosso componente rodando no servidor, precisamos testa-lo e acessa-lo. Vamos agora escrever um cliente que possa acessar o componente e seus metodos de negocio. O nosso cliente precisara conectar-se ao servico de nomes (JNDI) e encontrar o nosso componente.Para usarmos uma abordagem mais de acordo com o que acontece no mundo real durante o desenvolviemnto de um sistema, vamos criar um ServiceLocator.ServiceLocator e uma pattern que nos poupa o trabalho de pegar o InitialContext toda vez que quisermos uma interface para um objeto de negocio. Imagine que toda vez que voce for acessar um componente EJB voce faca assim: try { Hashtable t = new Hashtable(); t.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); t.put(Context.PROVIDER_URL, "localhost"); t.put (Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); initialContext = new InitialContext(t);UsuarioService usuarioService = (UsuarioService) initialContext.lookup(UsuarioService.class.getName()); } catch (Exception exc) { exc.printStackTrace(); } }E evidente que isso faria o nosso codigo ficar demasiadamente grande. Por isso concentramos o processo de procurar o objeto no servico de nomes em um Singleton, que fara esse trabalho para nos.Crie uma classe chamada ServiceLocator, dentro do pacote com.service. Aqui o nosso ServiceLocator:package com.service;import java.util.HashMap;import java.util.Hashtable;import javax.ejb.EJBHome;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;public class ServiceLocator {private HashMap homes = new HashMap();private static ServiceLocator locator;private InitialContext initialContext;private ServiceLocator() {try {Hashtable t = new Hashtable();t.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");t.put(Context.PROVIDER_URL, "localhost");t.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");initialContext = new InitialContext(t);} catch (Exception exc) {exc.printStackTrace();}}public static ServiceLocator getInstance() {if (locator == null) {locator = new ServiceLocator();}return locator;}protected Object clone() throws CloneNotSupportedException {throw new CloneNotSupportedException("Nao e possivel clonar o ServiceLocator!");}public Object get(String jndiName) throws Exception {try {Object result = null;result = initialContext.lookup(jndiName);if(result==null) {if (result==null) {throw new NamingException();}}return result;} catch (NamingException e) {e.printStackTrace();}return null;}}Agora vamos criar uma classe teste, para acessar o nosso objeto, crie um pacote chamado com.testes e nele uma classe chamada TestUsuario:package com.testes;import com.service.ServiceLocator;import com.service.UsuarioService;public class TestUsuario {public static void main (String...args){try{UsuarioService usuario = (UsuarioService)ServiceLocator.getInstance().get(UsuarioService.class.getName());System.out.println(usuario.getMessage());}catch (Exception e){e.printStackTrace();}}}Vamos precisar adicionar ao build path do nosso projeto 2 arquivos jars, localizados no diretorio de instalacao do JBoss:jboss/client/jbossall-client.jarjboss/server/default/deploy/jboss-aop.deployer/jboss-aspect-library-jdk50.jarFeito isso, podemos executar nossa classe de teste e veremos a mensagem contida na implementacao do metodo do nosso componente. Esta analize realizada pelo TheServerside, compara as funcionalidades e caracteristicas dos mais conhecidos e relevantes ESB s, do mercado.http://eugeneciurana.com/musings/ESB-comparison.pdf A arquitetura corporativa federal (FEA) e a mais recente tentativa do governo federal unir o grande numero de agencias e funcoes sob uma unica arquitetura corporativa comum e universal. A FEA ainda esta em seus primordios, pois a maior parte dos principais itens esta disponivel desde 2006, apenas. Todavia, conforme mencionei na secao historico, possui atras de si uma longa tradicao e, se nao for por nenhum outro motivo, tem muitas falhas as quais, quem sabe, serviram para o aprendizado de licoes valiosas.A FEA e a mais completa de todas as metodologias discutidas ate agora. Possui uma taxonomia abrangente, como Zachman, e um processo arquitetural, como o TOGAF. A FEA pode ser considerada uma metodologia para criar uma arquitetura corporativa ou o resultado da aplicacao desse processo a uma determinada empresa, ou seja, o governo norte-americano. Farei a minha analise da FEA pela perspectiva metodologica. Meu interesse especifico, aqui, e como poderemos aplicar