Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Servidor de Aplicação Jboss

Servidor de Aplicação Jboss

Trabalho sobre jboss, vantagens , desvantagens, documentacao, exemplo de utilização...

João Carlos Ottobboni

June 27, 2012
Tweet

More Decks by João Carlos Ottobboni

Other Decks in Programming

Transcript

  1. FACULDADE DE TECNOLOGIA DE DESENVOLVIMENTO GERENCIAL SENAI – FATESG CURSO

    SUPERIOR EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS JOAO CARLOS OTTOBBONI SERVIDOR DE APLICACAO JBOSS Goiânia, 2012
  2. JOAO CARLOS OTTOBBONI SERVIDOR DE APLICACAO JBOSS Trabalho referente a

    matéria de Servidores de aplicação do professor McGill Evaristo Dias, Goiânia 2012
  3. Sumário 1 INTRODUÇÃO..........................................................................................................4 2 VANTAGENS............................................................................................................5 3 DESVANTAGENS.....................................................................................................7 4 PERFORMANCE ….................................................................................................8

    5 PLATAFORMAS.......................................................................................................9 6 INTALACAO E CONFIGURACAO...........................................................................9 7 EXEMPLO DE ULTILIZACAO.................................................................................12
  4. 1 INTRODUÇÃO Neste documento procuraremos demonstrar de forma clara e

    objetiva como funciona o servidor de aplicado JBOSS. Da mesma forma, expondo as vantagens e desvantagens desse aplicativo em relação aos demais disponíveis no mercado, assim como as plataformas , documentação , instalação e configuração do mesmo. Também iremos mostrar um exemplo de utilização na pratica.
  5. 2 VANTAGENS * JBoss Inc: "Professional Open Source(tm)":[/list] o Tecnologia

    estável p/ middleware baseada em padrões o Produtos open source: sem custos de licença o Suportado por um time de especialistas o Serviços: suporte profissional, treinamento, consultoria o Grande comunidade de desenvolvedores ativos o Diversos parceiros espalhados pelo mundo JBoss Enterprise Middleware System (JEMS) * Suite de produtos p/ criação e implantação de aplicações: o JBoss Application Server (JBoss AS) o Hibernate o JBoss Portal o JBoss Eclispe IDE o Apache Tomcat * JBoss AS: Principal produto JBoss Inc o Servidor de aplicações compatível com a especificação 1.4 doJ2EE JBoss AS * Servidor de aplicações production-ready * É o mais utilizado no mercado * Código fonte e binários disponíveis a partir dehttp://sourceforge.net/projects/jboss * Certificado oficialmente e compatível com a especificação 1.4 do J2EE * Primeiro produto certificado para esta versão do J2EE * Suporte p/ J2EE Web Services e Service Oriented Architecture (SOA) * Suporte a Aspect-Oriented Programming (AOP): amplia a produtividade do desenvolvedor * Altamente integrado ao Hibernate (framework p/ persistência de objetos) * Suporte a clustering e distributed caching A certificação J2EE * Garante que o JBoss está conforme com a especificação J2EE * Permite que os desenvolvedores possam reutilizar seus componentes migrando-os de um servidor de aplicações p/ outro * Possibilita que o JBoss aceite componentes vindos de outro servidor de aplicações compatível com a especificação * Comparado com a versão JBoss AS 3.2, a versão 4.0 do JBoss AS implementa as seguintes especificações J2EE p/ se tornar compatível com a versão 1.4 do J2EE: o J2EE Web Services incluindo JAX-RPC (Java API for XML for Remote Procedure Call) o JMS 1.1 (Java Messaging Service) ao invés de JMS 1.0 o JCA 1.5 (Java Connector Architecture) o JAAC (Java Authorization Contract for Containers) o EJB 2.1 (Enteprise JavaBeans) ao invés de EJB 2.0 + Altera o contrato de message-driven beans p/ suporte a novos tipos JMS
  6. + Stateless session beans como web service endpoints + EJB

    timer service Eis que o JBoss AS 7 vem para derrubar algumas das questões que geravam um enorme incômodo nos desenvolvedores. O primeiro ponto que impressiona no AS 7 é seu tempo de start – em cerca dois segundos ou menos é possível iniciar uma instância do servidor (levantando alguma aplicação que esteja na pasta de deploys também). Não, você não leu errado, aproximadamente dois segundos. Para usuários de versões antigas do JBoss AS isso pode parecer um pouco absurdo, uma vez que o AS 5, por exemplo, tinha fama de levar muito tempo para iniciar após a realização de um deploy. O Jboss AS 7 foi completamente reescrito, deixando de utilizar o JBoss Microcontainer para dar lugar ao JBoss Modular Service Container (MSC). Basicamente, em vez de adotar dependências de modo hierárquico na hora de iniciar o servidor, o MSC define dependências explícitas de modo similar a um grafo, sendo possível levantar diversos serviços de forma concorrente. Mudanças em relação a versões antigas do JBoss AS Falando em outras versões do JBoss AS, uma das mudanças que ocorreram consta no script de start. Não há mais o run.bat ou run.sh; este foi substituído pelo standalone.bat ou standalone.sh. Essa mudança se deu porque o AS 7 agora pode operar em dois modos: standalone, que é similar às versões anteriores do JBoss AS, onde um único processo é iniciado; ou operar em Managed Domain, onde múltiplas instâncias são iniciadas e regidas por uma instância central, tal qual mostra a figura abaixo: JBossAS7 domain Muito simplificadamente, a imagem acima ilustra o funcionamento do JBoss AS 7 em modo domain. Basicamente, um processo central (Domain Controller) rege múltiplas instâncias do AS 7 contidas em hosts diversos. Operar em modo domain é bastante interessante. Você pode obter mais informações na documentação oficial do JBoss AS 7. JBoss AS 7 em produção A boa notícia é que a maioria das aplicações Java EE que rodavam em versões antigas do JBoss AS e em outros servidores Java EE ou até mesmo servlet contaners, tais como Jetty e Tomcat, provavelmente funcionarão sem nenhuma configuração adicional ao serem movidas para o JBoss AS 7. Entretanto, é possível que seja necessário um ajuste ou outro devido ao Class Loading do AS 7, que é consideravelmente diferente de outros servidores, podendo carregar dependências equivocadas. Na maioria dos casos, declarar explicitamente as dependências no MANIFEST.MF resolve a os problemas. Por exemplo, para utilizar versões antigas ou que não sejam padrão do slf4j, basta adicionar ao
  7. MANIFEST.MF a seguinte linha: Dependencies: org.slf4j.jcl-over-slf4j Apesar de novo, já

    há projetos fazendo uso do JBoss AS 7 devido a suas inúmeras vantagens. Por exemplo, o Openshift, projeto de Cloud da Red Hat, utiliza o AS 7. Você inclusive pode realizar deploy de suas aplicações Java gratuitamente lá. O Torquebox, projeto que possibilita a criação de aplicações com JRuby on Rails, roda no AS 7 a partir da versão 2. O JBoss AS 7 é bastante promissor para o desenvolvimento Java para web. Oportunidade de emprego e Mercado de Trabalho Consulta ao site de empregos Indeed.com mostra crescimento acelerado na demanda por profissionais com conhecimento de Tomcat e JBoss, enquanto que a demanda por Websphere e Weblogic se mantém mais ou menos constante: Fonte: Indeed.com, 16/03/2011 O site de empregos dice.com também mostra forte demanda por profissionais conhecedores dos servidores de aplicações livres Tomcat e JBoss AS. Pesquisa realizada em 16/03/2011 teve como resultados: Websphere 2992 Weblogic 2107 Tomcat 1674 JBoss 1483 Glassfish 109 Para comparação, o site nacional netcarreiras.com teve na mesma data os seguintes resultados, mostrando uma demanda ainda maior no mercado de trabalho nacional por profissionais com conhecimentos dos servidores de aplicação livres: JBoss 269 Tomcat 114 Websphere 92 Weblogic 71 Glassfish 36 Finalmente, uma visão da comunidade de software livre. A pesquisa anual dos usuários do Eclipse coloca o JBoss AS como o segundo servidor de aplicações mais utilizado, perdendo apenas para o Tomcat: 3 DESVANTAGENS E um servidor web robusto e bem completo então quando não se necessita usufruir de todas suas ferramentas e melhor optar por um servidor web mais simples como tomcat, você pode usar o jboss porem como ele contem inúmeras ferramentas e bem pesado.
  8. 4 PERFORMANCE O Gartner Group considera o JBoss AS como

    um dos líderes no importante mercado de servidores de aplicações, nas suas pesquisas de realizadas de 2006 até 2009 (não houve pesquisa em 2010): “... has achieved clear leadership in the open- source EAS market, with the largest installed base and largest partner following. It has an excellent technical reputation of the core JBoss EAS technology. Wide portfolio of open- source offerings are positioned to compete with application infrastructure portfolios of the leading closed-source vendors ” O número de bugs confirma a estabilidade do JBoss AS: “Only 10% of respondents reported that JBoss Application Server 4.x had introduced new critical bugs — the best result among the surveyed major platforms. JBoss Application Server 4.x also had the lowest reported rate of noncritical bugs that compromised an application project ” JBoss AS é considerado líder e inovador “JBoss Application Server Is A Strong Leader In Open Source Projects” Michael Goulde, Forrest Research “JBoss has proven itself a force in the J2EE application server market.” Kito D. Mann, JSF Central Editor-In-Chief BZ Research e Java Developers Journal confirmam que JBoss AS é o preferido também pelos desenvolvedores: “The Fourth Annual Java Use and Awareness Study, conducted by BZ Research, has found that JBoss Application Server is the preferred Java platform, ahead of proprietary application servers from IBM, BEA and Oracle. Statistics released by BZ Research have 33.9% of respondents using JBoss, while fewer respondents cited using closed-source commercial application servers. IBM WebSphere fell to 32.9%, BEA WebLogic to 27.9%, and Oracle to 21.9% ” Usuários satisfeitos Pesquisa da Forrest Research coloca o JBoss AS como o segundo colocado em termos de satisfação dos usuários, considerando o item “excedeu as expectativas”. Entretanto note que ele é o único que não teve nenhum usuário insatisfeito, então se considerarmos “atendeu as expectativas” ou melhor, o JBoss AS foi na verdade o primeiro colocado! Na mesma pesquisa da Forrest Research, afirma-se que: “Only 10% of respondents reported that JBoss Application Server 4.x had introduced new critical bugs — the best result among the surveyed major platforms. JBoss Application Server 4.x also had the lowest reported rate of noncritical bugs that compromised an application project ” Consulta ao site HipRank.com mostra novamente o JBoss AS como o líder em satisfação dos usuários entre os servidores de aplicação
  9. 5 PLATAFORMAS JBoss (pronuncia Djei Boss) é um servidor de

    aplicação de código fonte aberto baseado na plataforma J2EE implementada completamente na linguagem de programação Java. Como é baseada em Java, JBoss pode ser usado em qualquer Sistema Operacional que suporte Java. Os desenvolvedores responsáveis estão agora empregados por uma empresa de serviços chamada "JBoss Inc." fundada por Marc Fleury, o criador da primeira versão do JBoss. O projeto é custeado por uma rede mundial de colaboradores. Em Abril de 2006 foi anunciada sua aquisição pela Red Hat. 6 INTALACÃO E CONFIGURACÃO Instalando o JBoss * Requisitos: o JDK 1.4 ou 1.5 instalado no S.O. Para averiguar: + Execute o comando java -version * Procedimentos de instalação: o Siga os procedimentos apresentados na montagem do ambiente * Considerações: o Evite utilizar nomes de diretórios com espaços quando usar VMs da Sun o Para executar, não é preciso ser root. Não são abertas portas (na configuração default) na faixa privilegiada (0-1023) *Faca o download no site do desenvolvedor , e extraia os arquivos. http://www.jboss.org/jbossas/downloads/ Estrutura de diretórios Sistema de arquivos após instalação (com o diretório server expandido): Estrutura de diretórios NOTA: Alguns diretórios são criados dinamicamente quando você começar JBoss. Alguns diretórios podem não existir em versões mais velhas. * bin: contém vários manuscritos e arquivos associados. Isto é onde a corrida e manuscritos de paralisação de empresas que começam e parada JBoss, resida. * client: configuração de lojas e arquivos de jarro dos que podem ser precisados por uma Java cliente aplicação ou um recipiente de teia externo. Você pode selecionar arquivos como exigido ou pode usar jbossall-client.jar. * docs: contém informação útil o docs/dtd do: contém o XML DTD usou em JBoss para referência (esta também são uma fonte útil de documentação em JBoss configuração particulares). o exemplos do: contém configurações opcionais: + bindingmanager: configuração de exemplo para o serviço que liga para cópias de múltiplo correntes em jboss com portos diferentes na mesma máquina. + jca: exemplo configuração de JCA arquiva por montar datasources para
  10. bancos de dados diferentes (como MySQL, Oráculo, Postgres) e acesso

    para legado sistemas de EIS. + jms: configurações de exemplo para persistência de jbossmq diferente, gerente estatal e factorys de conexão # #standalone: um manuscrito para fazer uma configuração de servidor de jbossmq mínima + jmx: adicional e desenvolvimentos de administração de legado + netboot: uma aplicação de teia usou quando jboss de netbooting + remoting: um acesso cedo do serviço de remoting de JBoss4 + tomcat: manuscritos por instalar versões diferentes de Gato macho + varia: serviços adicionais # #loadbalancer: um desenvolvimento para jboss corrente como um loadbalancer de http * lib: arquivos de jarro que são precisados correr o microkernel de JBoss. Você nunca deveria somar quaisquer de seus próprios arquivos de jarro aqui. * server: cada um dos subdiretórios em aqui é uma configuração de servidor diferente. A configuração é selecionada passando a opção - c <config-nome> para o manuscrito de corrida. o o <config-nome>: uma configuração de servidor começou com o - c <config- nome> opção + conf: configuração arquiva inclusive os serviços de bootstrap em jboss- service.xml # #props: omita arquivos de propriedades de users/roles para o jmx console (de 4.0.2) # #xmdesc: XMBean descriptors para esse MBeans com descrições estendidas + lib: arquivos de jarro estáticos para os serviços + deploy: serviços e aplicações que estão quentes desdobraram + data: arquivos de dados que sobrevivem reiniciam + tmp: arquivos temporários que não sobrevivem reiniciam + work: arquivos de trabalho para Gato macho o o mínimo: um jndi mínimo e núcleo de jmx o o deixam de comparecer: a configuração de falta (não inclua agrupando ou corba) o o tudo: tudo consertam incluindo agrupando e corba + farm: desenvolvimentos em aqui estão quentes desdobrado pelo agrupamento + deploy-hasingleton: só são corridos de cada vez desenvolvimentos em aqui em um nodo no agrupamento Arquivos da configuração default * Localizados em JBOSS_DIST/server/default/conf: o jboss-mininal.xml: versão mínima do arquivo jboss-service.xml o jboss-service.xml: define a configuração dos serviços principais do jboss o jndi.properties: define propriedades de configuração do contexto JNDI inicial do JBoss obtidos a partir da criação de um objeto InitialContext com um construtor sem argumentos o log4j.xml: configurações do framework log4j utilizado pelo JBoss para as mensagens de log * Localizados em JBOSS_DIST/server/default/conf: o login-config.xml: configurações de autenticação do lado servidor que são aplicáveis quando utilizado o modelo de segurança JAAS
  11. o server.policy: arquivo de políticas de segurança o standardjaws.xml: arquivo

    com configurações p/ o engine CMP do EJB 1.1 (legado) o standardjboss.xml: arquivo com configurações default p/ o container * Localizados em JBOSS_DIST/server/default/deploy: o standardjbosscmp-jdbc.xml: arquvivo com configurações default p/ o engine CMP o xmldesc/*-mbean.xml: descritores p/ diversos XMBean de serviços configurados no arquivo jboss-service.xml o bsh-deployer.xml: arquivo que configura o bean shell deployer, que implanta scripts bean shell como serviços JBoss o cache-invalidation-service.xml: configurações p/ o serviço que possibilita a invalidação de caches de EJBs via notificações JMS. Desabilitado por default * Localizados em JBOSS_DIST/server/default/deploy: o client-deployer-service.xml: configurações p/ o serviço que provê suporte para aplicações clientes J2EE. Gerencia o java:comp/env (Enterprise Naming Context) para aplicações baseadas no descritor application-client.xml o ear-deployer.xml: configura o serviço responsável pelo deploy de arquivos EAR. o ejb-deployer.xml: configura o serviço responsável pelo deploy de arquivos EJB jars. o bsh-deployer.xml: arquivo que configura o bean shell deployer, que implanta scripts bean shell como serviços JBoss * Localizados em JBOSS_DIST/server/default/deploy: o cache-invalidation-service.xml: configurações p/ o serviço que possibilita a invalidação de caches de EJBs via notificações JMS. Desabilitado por default o client-deployer-service.xml: configurações p/ o serviço que provê suporte para aplicações clientes J2EE. Gerencia o java:comp/env (Enterprise Naming Context) para aplicações baseadas no descritor application-client.xml o ear-deployer.xml: configura o serviço responsável pelo deploy de arquivos EAR. o ejb-deployer.xml: configura o serviço responsável pelo deploy de arquivos EJB jars. * Localizados em JBOSS_DIST/server/default/deploy: o hsqldb-ds.xml: configura o serviço Hypersonic 1.7.1 (banco de dados embutido no JBoss) o http-invoker.sar: configura o acesso dos serviços RMI e JNDI sobre HTTP o jboss-aop.deployer: configura o AspectManagerService para a implantação de aplicações JBoss AOP (Aspect Oriented Programming) o jboss-hibernate.deployer: configuração da implantação de Hibernate archives (arquivos HAR) que suportam aplicações utilizando o Hibernate * Localizados em JBOSS_DIST/server/default/deploy: o jboss-local-jdbc.rar: é um adaptador JCA que implementa a interface JCA ManagedConnnectionFactory para drivers que suportam DataSource mas não JCA o jboss-ws4ee.sar: provê suporte a web services J2EE o jboss-xa-jdbc.rar: é um adaptador JCA que implementa a interface Managed ConnectionFactory para drivers que suportam a interface XADataSource o jbossjca-service.sar: é uma aplicação servidora que implementa a especificação JCA. Provê gerenciamento de conexão e facilidades para integração com adaptadores de recursos dentro do servidor JBoss * Localizados em JBOSS_DIST/server/default/deploy: o jbossweb-tomcat55.sar: provê um servlet engine (Tomcat 5.5) o jms/hsqldb-jdbc-state-service.xml: provê gerenciamento de estado JMS utilizando o Hypersonic o jms/hsqldb-jdbc2-service.xml: configura a persistência e caching JMS utilizanod o
  12. Hypersonic. Também contém o MBean DestinationManager que é o principal

    serviço para a implementação do JMS o jms/jbossmq-destinations-service.xml: configura o número de filas e tópicos utilizados pelo JMS * Localizados em JBOSS_DIST/server/default/deploy: o jms/jbossmq-httpiol.sar: provê uma camada que possibilita o uso de JMS sobre HTTP o jms/jbossmq-service.xml: configura o serviço JBossMQ JMS o jms/jms-ds.xml: configura o provedor JBosMQ JMS para uso com o adaptador de recursos JCA jms-ra.ra o jms/jms-ra.rar: é um adaptador de recursos JCA que implementa a interface ManagedConnectionFactory para JMS * Localizados em JBOSS_DIST/server/default/deploy: o jms/jvm-il-service.xml: configura a camada de chamada JMS in-JVM o jms/uil2-service.xml: configura o JMS version 2 unified invokation layer. É um socket baseado em transporte, rápido e confiável que pode ser utilizado para trafegar mensagens entre JVMs o jmx-console.war: aplicação que provê acesso para a configuração do servidor MBean o jmx-invoker-service.sar: serviço MBean que expõe um subconjunto dos métodos da interface MBeanServer como uma interface RMI para habilitar o acesso remoto as principais funções do JMX * Localizados em JBOSS_DIST/server/default/deploy: o mail-ra.rar: adaptador de recursos que provê um conector JavaMail o mail-service.xml: descritor p/ o serviço MBean que provê sessões JavaMail p/ uso no servidor JBoss o management/console-mgr.sar,web-console.war: fornecem um console web para administração do servidor JMX. Acessível via web através do contexto web-console o monitoring-service.xml: descritor p/ configuração dos monitores de alerta como o console listener e o email listener utilizados por notificações JMX * Localizados em JBOSS_DIST/server/default/deploy: o properties-service.xml: descritor p/ o serviço MBean que possibilita definições de propriedades do sistema o scheduler-service,schedule-manager-service.xml: descritores que proveêm uma tipo de serviço agendador o sqlexception-service.xml: descritor p/ o serviço MBean que manipula exceções SQLException dependentes de fabricante o uuid-key-generator.sar: serviço que provê facilidades para geração de chaves Iniciando e parando o JBoss * Coloque JBOSS_DIST/bin no PATH * Para iniciar: o run.sh * Para executar uma configuração específica: o run -c <configuracao> o Exemplos: + run -c all * Para parar: o shutdown.sh -S Executando o JBoss como serviço
  13. * Veja os scripts de exemplo em JBOSS_DIST/bin: o jboss_init_redhat.sh

    o jboss_init_suse.sh 7 EXEMPLO DE ULTILIZACAO Após iniciar o servidor teste se ele esta em funcionamento no seu browser digitando o endereço localhost:porta, no meu caso localhost:4444 que e a porta padrão do jboss6. Se você ver a tela a seguir parabéns seu JBOSS 6 esta funcionando. O próximo passo e clicar no link Administrator Console e vera essa tela abaixo. Para ter acesso a área de administração entre com login: admin e senha: admin. Após isso você vera a área de de manuseio do seu servidor e tera acesso aos deployments das aplicações e configurações das mesmas.
  14. Vamos fazer o teste do deployment de um aplicativo web

    desenvolvido em jsp simples para testar nosso servidor . Para fazer isso localize o menu Applications e clique no submenu Web Application(WAR), para submeter o arquivo .war .Depois disso clique em Add a new resource localize o arquivo que deseja submeter faca o envio. Após o envio se você ver a tela seguinte , com a mensagem de sucesso e seu aplicativo aparecer na listagem de apps pronto , seu programa esta rodando no servidor jboss 6.
  15. Para testarmos o funcionamento do aplicativo va ate seu navegador

    , digite localhost:nomedoaplicativo, no meu caso localhost:AppCalculadoraJSP. Se tudo ocorreu bem você vera seu aplicativo em perfeito funcionamento.