SlideShare une entreprise Scribd logo
1  sur  65
1 
Red Hat JBoss Fuse 
Paulo Castro 
paulof@gmail.com
Agenda – 1 dia – Manhã - 1 
● Introdução ao JBoss Fuse. 
● História. 
● SOA. 
● ESB. 
● EIP. 
● Fuse 
2 
● Componentes. 
● Fabric 
● Fuse IDE. 
● Fuse Service Works. 
● SwitchYard. 
● Overlord.
Agenda – 1 dia – Manhã - 2 
● Karaf 
● Arquitetura. 
3 
● Definições. 
● Benefícios. 
● OSGi 
● Deployment 
● Provisionamento 
● Gerenciamento. 
● Console Administrativo. 
● Logging. 
● Administração. 
● Configuração. 
● Aplicações de Patches. 
● Múltiplas instâncias. 
● Deployment failover. 
● Segurança. 
● Console. 
● Extras 
● Message Broker. 
● ActiveMQ Web Console. 
● Gerenciamento Fabric. 
● Infraestrutura.
Agenda – 1 dia – Tarde - Hands-on 
● Hands-on Karaf 
● Instalação. 
● Trabalhando com Karaf 
4 
● Iniciando. 
● Console (Help e TAB). 
● Comandos Shell. 
● Global 
● Log. 
● Package. 
● Gerenciamento de bundles OSGi. 
● Introdução funcionalidades. 
● Descritores XML. 
● Shell.
Quem sou eu ? 
5 
● Paulo Castro <paulof@gmail.com> / @paulorcf / github: paulorcf 
● Físico pela USP. 
● Trabalha com desenvolvimento de sistemas há 12 anos. 
● Projetos em empresas como Ericsson, Vivo, TVA, Avaya, TIM, Toyota, 
CPFL, GOL entre outras. 
● Implementou diversos projetos usando stack Apache para integração e 
trouxe FuseSource para Brasil como parceira da empresa VPIData. 
● Esse material não é oficial e não tem relação nenhuma com a Red Hat. 
● Marcas Red Hat, JBoss e Fuse são registradas e pertencem a Red Hat.
O quê esperar do workshop ? 
6 
● Workshop foi desenvolvido para ser um overview sobre o JBoss Fuse e 
seus componentes focado para perfil de desenvolvimento. 
● Além da apresentação receberão: 
● Máquina virtual para Hand-ons: 
● CentOS 6.3. 
● JBoss IDE. 
● Maven. 
● Exercícios. 
● Para acessar a máquina: 
● Instalar o Virtualbox. 
● Configurar a máquina virtual. 
● usuário: fuse 
● senha: fuse
Fuse: História 
7 
● Existiam diversos projetos Apache voltados para integração 
entre quais uma empresa chamada IONA contribuía fortemente. 
● Em 2008 a IONA Technologies é comprada pela Progress 
Software. 
● Em 2010 a IONA foi vendida e com a separação da área open 
source foi criada empresa chamada FuseSource para unir todos 
esses projetos em um guarda-chuva “Enterprise”. 
● A FuseSource torna-se uma subsidiária da Progress Software. 
● Em 2011 a FuseSource foi considerada umas das líderes em 
plataformas ESB pelo “The Forrester”. 
Em 2012 a Red Hat comprou a FuseSource incorporando ao 
seu portfolio Middleware.
JBoss Fuse: SOA 
8 
● Service-oriented architecture (Arquitetura Orientada a Serviço): 
● SOA pode ser considerada uma metodologia que visa maximizar a 
reutilização de serviços existentes e a integração com novos 
serviços para aumentar a eficiência e produtividade de uma 
empresa. 
● Principais princípios: 
● Padronização das interfaces de serviço. 
● Fraco acoplamento. 
● Abstração. 
● Reuso. 
● Autonomia. 
● Stateless. 
● Discovery. 
● Composição. 
● Granularidade. 
● Normalização. 
● Optimização. 
● Relevância. 
● Encapsulamento. 
● Transparência de endpoint.
Fuse: SOA 
9 
Introduzindo um novo software. 
SOA Design Patters, Thomas Erl, Prentice Hall.
Fuse: SOA 
10 
Modelo de serviço para uma ordem de 
compra. 
SOA Design Patters, Thomas Erl, Prentice Hall.
Fuse: SOA 
11 
SOA Design Patters, Thomas Erl, Prentice Hall. 
Composição de 
exemplo para fluxo 
de serviço.
Fuse: ESB 
12 
● Enterprise Service Bus (Barramento de serviços): 
● É uma abordagem de integração global para permitir a 
diferentes aplicações se comunicarem. 
● ESB fornece uma abstração na forma de um “workflow” 
para um sistema de mensagens, que define, executa e 
supervisiona o fluxo de controle e dados entre vários 
sistemas. 
Service-Oriented Infrastructure: On-premise and in cloud, 
John deVadoss, Francois Lascelles.
Fuse: ESB 
13 
Fuse ESB Diagram.
Fuse: ESB 
14 
Service-Oriented Infrastructure: On-premise and in cloud, 
John deVadoss, Francois Lascelles.
EIP: Enteprise Integration Patterns 
15 
Livro de Gregor Hohpe e Bobby Woolf demonstra diversos 
padrões para integração de software e foi base para construção 
do Apache Camel. (http://www.eaipatterns.com/)
EIP: Exemplos 
16 
Shared database 
File transfer
Fuse: Onde se aplica? 
17 
Plataformas compostas por diversas aplicações que se integram 
App A App C 
JBoss Fuse 
App A App B 
App Legada 
App C 
Ainda mais necessário com aplicações legadas
Fuse: Estamos falando de ESB? 
18 
Sim, mas infelizmente não existe uma definição padrão para ESB 
JBoss Fuse se encaixa como ESB por possuir frameworks de 
integração e prover administração
Fuse: Componentes 
Development Layer 
19 
CXF Camel 
Karaf A 
FABRIC 
ActiveMQ 
Infrastructure Layer 
... Karaf N Deployment
Fuse: Componentes 
Integrações com serviços Web 
e Restfull (JAX-WS e JAX-RS) Framework EIP 
20 
Gerenciamento 
centralizado de containers 
CXF ActiveMQ 
Camel Karaf 
Fabric 
Enterprise Messaging Container OSGI
Fuse: Componentes – JBoss Fuse 6 
21 
● Apache ActiveMQ 5.8.0. 
● Apache Camel 2.10.0. 
● Apache CXF 2.6.0 
● Apache Karaf kernel 2.3.0. 
● Fuse Fabric 7.2.0. 
● Spring 3.1.3. 
Ref: Migration Overview - 
https://access.redhat.com/site/documentation/JBoss_Fuse/
JBFuse: Fuse IDE 
22 
FUSE IDE: IDE para facilitar o desenvolvimento com Camel 
Integrada com a IDE Eclipse 
Visualizador Gráfico das Rotas 
Explorador de métricas JMX em runtime 
Shell para gerenciamento de instâncias Karaf 
Deployment e Tracing de rotas
JBFuse: Fuse Service Works 
23 
Service Works: Solução completa com camada de integração, 
mensageira, SOA e governança. 
Combina Fuse ESB com SwitchYard e Overlord. 
SwitchYard é um componente JBoss focado em facilitar todo o ciclo 
de desenvolvimento e deploy de componentes SOA. 
Trabalhando em conjunto com Fuse permite agilidade e um modelo 
unificado para lidar com Apache Camel, Java EE, BPM, rules, 
orquestração e roteamento. 
https://docs.jboss.org/author/display/SWITCHYARD/User+Guide
JBFuse: Fuse Service Works 
24 
SwitchYard 
11 22 
33 
https://docs.jboss.org/author/display/SWITCHYARD/User+Guide 
44
JBFuse: Fuse Service Works 
25 
Service Works: Solução completa com camada de integração, 
mensageira, SOA e governança. 
Combina Fuse ESB com SwitchYard e Overlord. 
Overlord é um componente JBoss focado em governança SOA. 
● Monitoramento. 
● Gerenciamento de sistemas distribuídos complexos. 
● Repositório. 
● Discovery. 
● Teste. 
● Segurança. 
● BAM. 
http://docs.jboss.org/overlord/presentations/SOAGovernance.pdf
JBFuse: Fuse Service Works 
26 
Overlord 
11 
http://docs.jboss.org/overlord/presentations/SOAGovernance.pdf 
22 
Governança
27 
Apache Karaf
Karaf: Arquitetura 
28 
Karaf tem sua arquitetura baseada na tecnologia 
OSGi (http://www.osgi.org) e suporta múltiplos componentes. 
Componentes 
OSGi bundles 
JBI artifacts 
Servlets 
Spring beans 
Camel routes 
CXF (WS e RESTful) 
EJB 
Facilmente extensível para 
adicionar outros componentes.
Karaf: Definições 
29 
Container OSGI, responsável pelo deploy dos artefatos 
gerados no desenvolvimento das integrações (bundles) 
Opcional se for apenas utilizados os frameworks de 
integração dentro de aplicações executadas em servidores 
de aplicação. 
KARAF 
Inicialização 
Consoles 
Segurança 
Patching 
Logging 
Deployment 
... 
O que estudar? 
Funcionalidades básicas de um 
container
Karaf: Definições 
Technology layer 
30 
Core 
Karaf runtime. 
Technology layer 
Exemplos de aplicações suportadas. 
JMS JAX-WS JAX-RS Camel Spring JBI 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF 
Core
Karaf: Benefícios 
31 
● Hot deploy via OSGi bundles. 
● Configuração dinâmica dos serviços OSGi via 
“ConfigurationAdmin”. 
● Logging dinâmico provido pelo Log4J mas suporta outras APIs 
(SLF4J, Java Utils, JCL, Avalon, Tomcat, OSGI). 
● Provisionamento da aplicação via cópia de arquivo, maven 
acessando repositório remoto ou Fuse Fabric. 
● Administração via shell console e remoto via ssh. 
● JAAS como framework de segurança.
Karaf: OSGi 
32 
● Tem sua origem “Open Services Gateway initiative”. 
● Resolve o problema de deploy e administração de módulos em Java 
(conhecidos como “bundles”). 
● Ciclo de vida (como carregar, iniciar e parar Java bundles sem ter que 
parar JVM. 
● Gerenciamento e administração remota. 
● Class-loading. 
● Versionamento. 
● Gerenciamento de dependência. 
● “The OSGi Alliance” foi fundada em 1999 para promover em larga escala 
da adoção da tecnologia OSGi (http://www.osgi.org). 
● Entre os membros: Red Hat, SpringSource, Progress, IBM etc.
Karaf: Deployment 
33 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Deployment 
34 
Como um bom container OSGI, toda instalação consiste de bundles 
JAR contendo informações específicas em seu MANIFEST 
Há outros tipos deploy, mas tornam-se um bundle internamente 
Regular library JAR 
Web archives (WAR) 
Enterprise Archives (EAR) 
Descritores XML (Datasources, etc) 
Alguns bundles já estão pré-instalados no Karaf 
Karaf bundles 
Spring bundles 
Camel bundles 
ServiceMix bundles 
Jetty bundles 
CXF bundles 
Bundle
Karaf: Deployment 
35 
Deployment através do terminal 
Qualquer URL, inclusive Maven 
Deployment através do console Web 
Hot deployment através do diretório deploy 
etc/org.apache.felix.fileinstall-deploy.cfg
Karaf: Deployment 
36
Karaf: Provisioning 
37 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Provisionamento 
38 
O sistema de provisionamento provém uma interface 
simplificada para gerenciar OSGi bundles individualmente. 
Comandos para registrar, lookup, instalar e desinstalar 
bundles. 
Configurações são definidas via único arquivo XML. 
Bundles podem estar locais ou remotos.
Karaf: Gerenciamento 
39 
Scripts de inicialização no diretório bin 
bin/fuse 
bin/fuse server | bin/start 
bin/fuse client 
Mas e o console? 
Inicializa o container com console ativo 
Inicializa o container sem console ativo 
Inicializa o container sem acesso remoto 
Utilizando outra instância 
Utilizando comando ssh 
Utilizando script client 
ssh:ssh -l user -P pwd -p 8108 
ssh user@host -p 8108 
bin/client
Karaf: Gerenciamento 
40 
Criação de script de serviço para o gerenciamento 
bin/karaf-wrapper 
bin/karaf-service 
etc/karaf-wrapper.conf 
lib/libwrapper.so 
lib/karaf-wrapper.jar 
/etc/init.d
Karaf: Console Administrativo 
41 
Console por linha de comando, local ou remoto 
Console Web pode ser instalado 
Deployment 
Configurações 
Operações 
Embedded Console
Karaf: Logging 
42 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Logging 
43 
Baseado no padrão OPS4J Pax Logging 
(http://www.ops4j.org/projects/pax/logging). 
Suporta API de log como Apache Commons Logging, SLF4J, 
Log4j, Java Util Logging. 
Combina todos em único sincronizado output. 
Usa modelo de configuração do Log4j.
Karaf: Logging 
44 
Log padrão gerado em data/log/fuse.log 
Configurações em etc/org.ops4j.pax.logging.cfg (hot deploy) 
Comandos de log no console
Karaf: Logging 
45 
Configuração de log por aplicação (bundle), utilizando MDC 
Divisão pode ser feita por qualquer propriedade, basta configurá-las na 
aplicação (não só bundle-name)
Karaf: Admin 
46 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Admin 
47 
Cada instância do Karaf roda em uma JVM separada, sendo 
assim, com suas próprias configurações, estado, logs e 
arquivos temporários. 
Instâncias na mesma máquina podem compartilhar arquivos de 
instalação, bundles de sistemas e JAR de inicialização.
Karaf: Configurações 
48 
Toda configuração é localizada em arquivo .cfg, sendo o prefixo 
o pid da configuração 
etc/ ... 
Alterações podem ser aplicadas pelo terminal
Karaf: Aplicação de Patches 
49 
Distribuídos na forma de um ZIP, contendo arquivos de patch e 
um descritivo dos mesmos 
Não destrutivo: aplicação de patch armazena antigos artefatos 
para posterior rollback 
Possibilidade de simulação do patch
Karaf: Múltiplas instâncias 
50 
Possibilidade de criação de múltiplas instâncias (containers) 
Karaf em uma única estação 
JBoss Fuse Installation 
root container 
mycontainer 
yourcontainer 
instances/mycontainer/... 
instances/yourcontainer/... 
Portas ssh e rmi são 
incrementadas 
automaticamente 
Como criar novos containers ...
Karaf: Deployment Failover 
51 
Arquitetura Master/Slave garantido pelo controle de lock 
master slave master slave 
SimpleFileLock DefaultJDBCLock 
Segundo container fica em modo de espera 
aguardando o lock ser liberado para iniciar 
Podemos otimizar a performance de carregamento do 
slave realizando o preload dos bundles com 
karaf.lock.level=50
Karaf: Segurança 
52 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Segurança 
53 
Segurança dos consoles baseada em JAAS 
Por padrão utiliza-se o login-module karaf 
Baseado em arquivo de propriedades /etc/users.properties 
Aumentando a segurança 
Controle de permissão no arquivo de propriedades 
Encriptação da senha dentro do arquivo 
etc/org.apache.karaf.jaas.cfg
Karaf: Segurança 
54 
Podemos sobrescrever o login-module karaf 
Deploy de um novo login-module através de um 
descritor blueprint, utilizando um rank maior 
deploy/myjaas.xml
Karaf: Segurança 
55 
Existência de diversas implementações de login-module
Karaf: Segurança 
56 
Gerenciamento dos usuários através do console 
Por isso faz-se necessária a query de insert ... 
Facilidade de gerenciamento com auto complete e --help
Karaf: Console 
57 
LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn 
OOSSGGii 
KARAF
Karaf: Console 
58 
Sub-módulo que provém interface de linha de comando. 
Formato dos comandos: {subshell}:{comando} [opções] 
Sub-shell é um grupo de comandos relacionados. 
Exemplo: admin 
Acesso via ssh.
59 
Apache Karaf 
Extras
Karaf: Messaging Broker 
60 
JBoss Fuse incorpora produto JBoss A-MQ, sendo que o Karaf 
vem configurado com um broker padrão 
Propriedades específicas Broker template 
org.apache.activemq.server-default.cfg activemq.xml
Karaf: Messaging Broker 
61 
Interação com o broker através do terminal 
Além dos comandos de terminal, os MBeans são expostos via JMX 
Utiliza o JMX server do próprio Karaf 
service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root
Karaf: ActiveMQ Web Console 
62 
Web Console específico para o ActiveMQ 
Distribuído como uma feature: feature:install mq-web-console 
Acessível em http://localhost:8181/activemqweb 
Configurado em etc/org.apache.activemq.webconsole.cfg
Fuse: Gerenciamento com Fabric 
63 
Possibilita o gerenciamento do deployment em ambiente distribuído 
Baseado em três conceitos 
Container: Instância do servidor Karaf (Broker e ESB) 
Profile: Descrição de como os containers serão provisionados 
Version: Versionamento dos profiles
Fabric: Infra estrutura 
64 
Possibilita o gerenciamento do deployment em ambiente distribuído
https://access.redhat.com/site/documentation/JBoss_Fuse/ 
http://www.infoq.com/articles/ESB-Integration 
65 
Espaço para dúvidas 
e discussões 
Obrigado pela atenção, 
Paulo Castro 
paulof@gmail.com

Contenu connexe

Tendances

Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesRodrigo Cândido da Silva
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Periódicos MundoJ e Java Magazine Fevereiro 2012
Periódicos MundoJ e Java Magazine Fevereiro 2012Periódicos MundoJ e Java Magazine Fevereiro 2012
Periódicos MundoJ e Java Magazine Fevereiro 2012rogerlista
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...Rogério Moraes de Carvalho
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootRodrigo Cândido da Silva
 
Melhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM ConnectionsMelhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM Connectionsrodrigoareis
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.XEduardo Pires
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 

Tendances (20)

GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
GUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EEGUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EE
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Periódicos MundoJ e Java Magazine Fevereiro 2012
Periódicos MundoJ e Java Magazine Fevereiro 2012Periódicos MundoJ e Java Magazine Fevereiro 2012
Periódicos MundoJ e Java Magazine Fevereiro 2012
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
 
Melhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM ConnectionsMelhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM Connections
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.X
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 

En vedette

TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewOpenTOSCA
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1Edgar Silva
 
Redes Sociais ensinam Apache Camel e EIPs
Redes Sociais ensinam Apache Camel e EIPsRedes Sociais ensinam Apache Camel e EIPs
Redes Sociais ensinam Apache Camel e EIPsBruno Borges
 
Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelPedro Oliveira
 
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Kai Wähner
 

En vedette (7)

TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
 
[Q con] apache camel e eip na vida real
[Q con] apache camel e eip na vida real[Q con] apache camel e eip na vida real
[Q con] apache camel e eip na vida real
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1
 
Redes Sociais ensinam Apache Camel e EIPs
Redes Sociais ensinam Apache Camel e EIPsRedes Sociais ensinam Apache Camel e EIPs
Redes Sociais ensinam Apache Camel e EIPs
 
Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache Camel
 
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
 

Similaire à JBoss Fuse Workshop Desenvolvimento - Parte 1

Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Leandro Gomes
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSLeandro Freitas
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011Eder Magalhães
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 

Similaire à JBoss Fuse Workshop Desenvolvimento - Parte 1 (20)

Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWS
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Zabbix 3 0-cinfotec
Zabbix 3 0-cinfotecZabbix 3 0-cinfotec
Zabbix 3 0-cinfotec
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 

JBoss Fuse Workshop Desenvolvimento - Parte 1

  • 1. 1 Red Hat JBoss Fuse Paulo Castro paulof@gmail.com
  • 2. Agenda – 1 dia – Manhã - 1 ● Introdução ao JBoss Fuse. ● História. ● SOA. ● ESB. ● EIP. ● Fuse 2 ● Componentes. ● Fabric ● Fuse IDE. ● Fuse Service Works. ● SwitchYard. ● Overlord.
  • 3. Agenda – 1 dia – Manhã - 2 ● Karaf ● Arquitetura. 3 ● Definições. ● Benefícios. ● OSGi ● Deployment ● Provisionamento ● Gerenciamento. ● Console Administrativo. ● Logging. ● Administração. ● Configuração. ● Aplicações de Patches. ● Múltiplas instâncias. ● Deployment failover. ● Segurança. ● Console. ● Extras ● Message Broker. ● ActiveMQ Web Console. ● Gerenciamento Fabric. ● Infraestrutura.
  • 4. Agenda – 1 dia – Tarde - Hands-on ● Hands-on Karaf ● Instalação. ● Trabalhando com Karaf 4 ● Iniciando. ● Console (Help e TAB). ● Comandos Shell. ● Global ● Log. ● Package. ● Gerenciamento de bundles OSGi. ● Introdução funcionalidades. ● Descritores XML. ● Shell.
  • 5. Quem sou eu ? 5 ● Paulo Castro <paulof@gmail.com> / @paulorcf / github: paulorcf ● Físico pela USP. ● Trabalha com desenvolvimento de sistemas há 12 anos. ● Projetos em empresas como Ericsson, Vivo, TVA, Avaya, TIM, Toyota, CPFL, GOL entre outras. ● Implementou diversos projetos usando stack Apache para integração e trouxe FuseSource para Brasil como parceira da empresa VPIData. ● Esse material não é oficial e não tem relação nenhuma com a Red Hat. ● Marcas Red Hat, JBoss e Fuse são registradas e pertencem a Red Hat.
  • 6. O quê esperar do workshop ? 6 ● Workshop foi desenvolvido para ser um overview sobre o JBoss Fuse e seus componentes focado para perfil de desenvolvimento. ● Além da apresentação receberão: ● Máquina virtual para Hand-ons: ● CentOS 6.3. ● JBoss IDE. ● Maven. ● Exercícios. ● Para acessar a máquina: ● Instalar o Virtualbox. ● Configurar a máquina virtual. ● usuário: fuse ● senha: fuse
  • 7. Fuse: História 7 ● Existiam diversos projetos Apache voltados para integração entre quais uma empresa chamada IONA contribuía fortemente. ● Em 2008 a IONA Technologies é comprada pela Progress Software. ● Em 2010 a IONA foi vendida e com a separação da área open source foi criada empresa chamada FuseSource para unir todos esses projetos em um guarda-chuva “Enterprise”. ● A FuseSource torna-se uma subsidiária da Progress Software. ● Em 2011 a FuseSource foi considerada umas das líderes em plataformas ESB pelo “The Forrester”. Em 2012 a Red Hat comprou a FuseSource incorporando ao seu portfolio Middleware.
  • 8. JBoss Fuse: SOA 8 ● Service-oriented architecture (Arquitetura Orientada a Serviço): ● SOA pode ser considerada uma metodologia que visa maximizar a reutilização de serviços existentes e a integração com novos serviços para aumentar a eficiência e produtividade de uma empresa. ● Principais princípios: ● Padronização das interfaces de serviço. ● Fraco acoplamento. ● Abstração. ● Reuso. ● Autonomia. ● Stateless. ● Discovery. ● Composição. ● Granularidade. ● Normalização. ● Optimização. ● Relevância. ● Encapsulamento. ● Transparência de endpoint.
  • 9. Fuse: SOA 9 Introduzindo um novo software. SOA Design Patters, Thomas Erl, Prentice Hall.
  • 10. Fuse: SOA 10 Modelo de serviço para uma ordem de compra. SOA Design Patters, Thomas Erl, Prentice Hall.
  • 11. Fuse: SOA 11 SOA Design Patters, Thomas Erl, Prentice Hall. Composição de exemplo para fluxo de serviço.
  • 12. Fuse: ESB 12 ● Enterprise Service Bus (Barramento de serviços): ● É uma abordagem de integração global para permitir a diferentes aplicações se comunicarem. ● ESB fornece uma abstração na forma de um “workflow” para um sistema de mensagens, que define, executa e supervisiona o fluxo de controle e dados entre vários sistemas. Service-Oriented Infrastructure: On-premise and in cloud, John deVadoss, Francois Lascelles.
  • 13. Fuse: ESB 13 Fuse ESB Diagram.
  • 14. Fuse: ESB 14 Service-Oriented Infrastructure: On-premise and in cloud, John deVadoss, Francois Lascelles.
  • 15. EIP: Enteprise Integration Patterns 15 Livro de Gregor Hohpe e Bobby Woolf demonstra diversos padrões para integração de software e foi base para construção do Apache Camel. (http://www.eaipatterns.com/)
  • 16. EIP: Exemplos 16 Shared database File transfer
  • 17. Fuse: Onde se aplica? 17 Plataformas compostas por diversas aplicações que se integram App A App C JBoss Fuse App A App B App Legada App C Ainda mais necessário com aplicações legadas
  • 18. Fuse: Estamos falando de ESB? 18 Sim, mas infelizmente não existe uma definição padrão para ESB JBoss Fuse se encaixa como ESB por possuir frameworks de integração e prover administração
  • 19. Fuse: Componentes Development Layer 19 CXF Camel Karaf A FABRIC ActiveMQ Infrastructure Layer ... Karaf N Deployment
  • 20. Fuse: Componentes Integrações com serviços Web e Restfull (JAX-WS e JAX-RS) Framework EIP 20 Gerenciamento centralizado de containers CXF ActiveMQ Camel Karaf Fabric Enterprise Messaging Container OSGI
  • 21. Fuse: Componentes – JBoss Fuse 6 21 ● Apache ActiveMQ 5.8.0. ● Apache Camel 2.10.0. ● Apache CXF 2.6.0 ● Apache Karaf kernel 2.3.0. ● Fuse Fabric 7.2.0. ● Spring 3.1.3. Ref: Migration Overview - https://access.redhat.com/site/documentation/JBoss_Fuse/
  • 22. JBFuse: Fuse IDE 22 FUSE IDE: IDE para facilitar o desenvolvimento com Camel Integrada com a IDE Eclipse Visualizador Gráfico das Rotas Explorador de métricas JMX em runtime Shell para gerenciamento de instâncias Karaf Deployment e Tracing de rotas
  • 23. JBFuse: Fuse Service Works 23 Service Works: Solução completa com camada de integração, mensageira, SOA e governança. Combina Fuse ESB com SwitchYard e Overlord. SwitchYard é um componente JBoss focado em facilitar todo o ciclo de desenvolvimento e deploy de componentes SOA. Trabalhando em conjunto com Fuse permite agilidade e um modelo unificado para lidar com Apache Camel, Java EE, BPM, rules, orquestração e roteamento. https://docs.jboss.org/author/display/SWITCHYARD/User+Guide
  • 24. JBFuse: Fuse Service Works 24 SwitchYard 11 22 33 https://docs.jboss.org/author/display/SWITCHYARD/User+Guide 44
  • 25. JBFuse: Fuse Service Works 25 Service Works: Solução completa com camada de integração, mensageira, SOA e governança. Combina Fuse ESB com SwitchYard e Overlord. Overlord é um componente JBoss focado em governança SOA. ● Monitoramento. ● Gerenciamento de sistemas distribuídos complexos. ● Repositório. ● Discovery. ● Teste. ● Segurança. ● BAM. http://docs.jboss.org/overlord/presentations/SOAGovernance.pdf
  • 26. JBFuse: Fuse Service Works 26 Overlord 11 http://docs.jboss.org/overlord/presentations/SOAGovernance.pdf 22 Governança
  • 28. Karaf: Arquitetura 28 Karaf tem sua arquitetura baseada na tecnologia OSGi (http://www.osgi.org) e suporta múltiplos componentes. Componentes OSGi bundles JBI artifacts Servlets Spring beans Camel routes CXF (WS e RESTful) EJB Facilmente extensível para adicionar outros componentes.
  • 29. Karaf: Definições 29 Container OSGI, responsável pelo deploy dos artefatos gerados no desenvolvimento das integrações (bundles) Opcional se for apenas utilizados os frameworks de integração dentro de aplicações executadas em servidores de aplicação. KARAF Inicialização Consoles Segurança Patching Logging Deployment ... O que estudar? Funcionalidades básicas de um container
  • 30. Karaf: Definições Technology layer 30 Core Karaf runtime. Technology layer Exemplos de aplicações suportadas. JMS JAX-WS JAX-RS Camel Spring JBI LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF Core
  • 31. Karaf: Benefícios 31 ● Hot deploy via OSGi bundles. ● Configuração dinâmica dos serviços OSGi via “ConfigurationAdmin”. ● Logging dinâmico provido pelo Log4J mas suporta outras APIs (SLF4J, Java Utils, JCL, Avalon, Tomcat, OSGI). ● Provisionamento da aplicação via cópia de arquivo, maven acessando repositório remoto ou Fuse Fabric. ● Administração via shell console e remoto via ssh. ● JAAS como framework de segurança.
  • 32. Karaf: OSGi 32 ● Tem sua origem “Open Services Gateway initiative”. ● Resolve o problema de deploy e administração de módulos em Java (conhecidos como “bundles”). ● Ciclo de vida (como carregar, iniciar e parar Java bundles sem ter que parar JVM. ● Gerenciamento e administração remota. ● Class-loading. ● Versionamento. ● Gerenciamento de dependência. ● “The OSGi Alliance” foi fundada em 1999 para promover em larga escala da adoção da tecnologia OSGi (http://www.osgi.org). ● Entre os membros: Red Hat, SpringSource, Progress, IBM etc.
  • 33. Karaf: Deployment 33 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 34. Karaf: Deployment 34 Como um bom container OSGI, toda instalação consiste de bundles JAR contendo informações específicas em seu MANIFEST Há outros tipos deploy, mas tornam-se um bundle internamente Regular library JAR Web archives (WAR) Enterprise Archives (EAR) Descritores XML (Datasources, etc) Alguns bundles já estão pré-instalados no Karaf Karaf bundles Spring bundles Camel bundles ServiceMix bundles Jetty bundles CXF bundles Bundle
  • 35. Karaf: Deployment 35 Deployment através do terminal Qualquer URL, inclusive Maven Deployment através do console Web Hot deployment através do diretório deploy etc/org.apache.felix.fileinstall-deploy.cfg
  • 37. Karaf: Provisioning 37 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 38. Karaf: Provisionamento 38 O sistema de provisionamento provém uma interface simplificada para gerenciar OSGi bundles individualmente. Comandos para registrar, lookup, instalar e desinstalar bundles. Configurações são definidas via único arquivo XML. Bundles podem estar locais ou remotos.
  • 39. Karaf: Gerenciamento 39 Scripts de inicialização no diretório bin bin/fuse bin/fuse server | bin/start bin/fuse client Mas e o console? Inicializa o container com console ativo Inicializa o container sem console ativo Inicializa o container sem acesso remoto Utilizando outra instância Utilizando comando ssh Utilizando script client ssh:ssh -l user -P pwd -p 8108 ssh user@host -p 8108 bin/client
  • 40. Karaf: Gerenciamento 40 Criação de script de serviço para o gerenciamento bin/karaf-wrapper bin/karaf-service etc/karaf-wrapper.conf lib/libwrapper.so lib/karaf-wrapper.jar /etc/init.d
  • 41. Karaf: Console Administrativo 41 Console por linha de comando, local ou remoto Console Web pode ser instalado Deployment Configurações Operações Embedded Console
  • 42. Karaf: Logging 42 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 43. Karaf: Logging 43 Baseado no padrão OPS4J Pax Logging (http://www.ops4j.org/projects/pax/logging). Suporta API de log como Apache Commons Logging, SLF4J, Log4j, Java Util Logging. Combina todos em único sincronizado output. Usa modelo de configuração do Log4j.
  • 44. Karaf: Logging 44 Log padrão gerado em data/log/fuse.log Configurações em etc/org.ops4j.pax.logging.cfg (hot deploy) Comandos de log no console
  • 45. Karaf: Logging 45 Configuração de log por aplicação (bundle), utilizando MDC Divisão pode ser feita por qualquer propriedade, basta configurá-las na aplicação (não só bundle-name)
  • 46. Karaf: Admin 46 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 47. Karaf: Admin 47 Cada instância do Karaf roda em uma JVM separada, sendo assim, com suas próprias configurações, estado, logs e arquivos temporários. Instâncias na mesma máquina podem compartilhar arquivos de instalação, bundles de sistemas e JAR de inicialização.
  • 48. Karaf: Configurações 48 Toda configuração é localizada em arquivo .cfg, sendo o prefixo o pid da configuração etc/ ... Alterações podem ser aplicadas pelo terminal
  • 49. Karaf: Aplicação de Patches 49 Distribuídos na forma de um ZIP, contendo arquivos de patch e um descritivo dos mesmos Não destrutivo: aplicação de patch armazena antigos artefatos para posterior rollback Possibilidade de simulação do patch
  • 50. Karaf: Múltiplas instâncias 50 Possibilidade de criação de múltiplas instâncias (containers) Karaf em uma única estação JBoss Fuse Installation root container mycontainer yourcontainer instances/mycontainer/... instances/yourcontainer/... Portas ssh e rmi são incrementadas automaticamente Como criar novos containers ...
  • 51. Karaf: Deployment Failover 51 Arquitetura Master/Slave garantido pelo controle de lock master slave master slave SimpleFileLock DefaultJDBCLock Segundo container fica em modo de espera aguardando o lock ser liberado para iniciar Podemos otimizar a performance de carregamento do slave realizando o preload dos bundles com karaf.lock.level=50
  • 52. Karaf: Segurança 52 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 53. Karaf: Segurança 53 Segurança dos consoles baseada em JAAS Por padrão utiliza-se o login-module karaf Baseado em arquivo de propriedades /etc/users.properties Aumentando a segurança Controle de permissão no arquivo de propriedades Encriptação da senha dentro do arquivo etc/org.apache.karaf.jaas.cfg
  • 54. Karaf: Segurança 54 Podemos sobrescrever o login-module karaf Deploy de um novo login-module através de um descritor blueprint, utilizando um rank maior deploy/myjaas.xml
  • 55. Karaf: Segurança 55 Existência de diversas implementações de login-module
  • 56. Karaf: Segurança 56 Gerenciamento dos usuários através do console Por isso faz-se necessária a query de insert ... Facilidade de gerenciamento com auto complete e --help
  • 57. Karaf: Console 57 LLooggggiinngg DDeeppllooyyeerr PPrroovviissiioonniinngg AAddmmiinn OOSSGGii KARAF
  • 58. Karaf: Console 58 Sub-módulo que provém interface de linha de comando. Formato dos comandos: {subshell}:{comando} [opções] Sub-shell é um grupo de comandos relacionados. Exemplo: admin Acesso via ssh.
  • 59. 59 Apache Karaf Extras
  • 60. Karaf: Messaging Broker 60 JBoss Fuse incorpora produto JBoss A-MQ, sendo que o Karaf vem configurado com um broker padrão Propriedades específicas Broker template org.apache.activemq.server-default.cfg activemq.xml
  • 61. Karaf: Messaging Broker 61 Interação com o broker através do terminal Além dos comandos de terminal, os MBeans são expostos via JMX Utiliza o JMX server do próprio Karaf service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root
  • 62. Karaf: ActiveMQ Web Console 62 Web Console específico para o ActiveMQ Distribuído como uma feature: feature:install mq-web-console Acessível em http://localhost:8181/activemqweb Configurado em etc/org.apache.activemq.webconsole.cfg
  • 63. Fuse: Gerenciamento com Fabric 63 Possibilita o gerenciamento do deployment em ambiente distribuído Baseado em três conceitos Container: Instância do servidor Karaf (Broker e ESB) Profile: Descrição de como os containers serão provisionados Version: Versionamento dos profiles
  • 64. Fabric: Infra estrutura 64 Possibilita o gerenciamento do deployment em ambiente distribuído
  • 65. https://access.redhat.com/site/documentation/JBoss_Fuse/ http://www.infoq.com/articles/ESB-Integration 65 Espaço para dúvidas e discussões Obrigado pela atenção, Paulo Castro paulof@gmail.com