Apresento alguns conceitos sobre a arquitetura do JBoss Fuse. Nesta apresentação criamos um simples serviço CXF e mostramos diferentes formas de implantar e gerenciar o serviço no JBoss Fuse 6.1
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
Apresentação Básica sobre alguns fundamentos e conceitos chave do WSO2 ESB. Se você ler estes slides, quando for utilizar o WSO2 Studio, tudo ficará muito mais claro para você
Apresentação realizada no dia 13/04/2013, no 29º Guru-SP: gurusp.org/encontros/vigesimo-nono-encontro-do-guru-sp
Versão original em js: https://github.com/nuxlli/12factor-openruko
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
Apresentação Básica sobre alguns fundamentos e conceitos chave do WSO2 ESB. Se você ler estes slides, quando for utilizar o WSO2 Studio, tudo ficará muito mais claro para você
Apresentação realizada no dia 13/04/2013, no 29º Guru-SP: gurusp.org/encontros/vigesimo-nono-encontro-do-guru-sp
Versão original em js: https://github.com/nuxlli/12factor-openruko
WSO2 Application Server como Alternativa ao TomcatEdgar Silva
Veja como podemos apoiar seu ambiente que está repleto de Tomcats que podem ser difíceis de gerenciar, monitorar etc. Breve visão do WSO2 AppServer em conjunto com o WSO2 BAM.
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Palestra ministrada na Campus Party Brasil 2014.
Com a evolução do PHP no mercado coorporativo o Google não poderia deixar essa linguagem de fora de seu famoso serviço infraestrutura em nuvem, o Google AppEngine. Nesta palestra vamos mostrar o que é possível fazer utilizando PHP e os poderes do AppEngine.
Link para a palestra: https://www.youtube.com/watch?v=LvDnC93xWaI
Futuro do ASP.NET vNext - MVP ShowCast Eduardo Pires
Confira todo meu conteúdo do ASP.NET vNext em:
http://eduardopires.net.br/category/asp-net-vnext/
Palestra Realizada no MVP ShowCast 2014 no dia 15/09/14
O ASP.NET mudou, e não foram poucas mudanças. Após 12 anos de existência, o ASP.NET passa pela sua maior transformação e o resultado é o ASP.NET vNext. Entenda que mudanças são estas e prepare-se para aprender sobre um ASP.NET totalmente novo e moderno.
Por muito tempo desenvolvedores e administradores de infraestrutura tentam fazer integrações para que a implantação (deployment) seja mais efetiva, com menos sofrimento ao portar do ambiente de desenvolvimento para homologação/produção.
Essa apresentação introduz ao movimento DevOps, que aproxima desenvolvedores e administradores de sistema (sysadmin), para que trabalhem em maior sinergia.
A proposta é ilustrar os pilares da cultura DevOps, bem como os softwares que a permeia, focada em ferramentas e práticas reais, com exemplos do ecossistema PHP.
WSO2 Application Server como Alternativa ao TomcatEdgar Silva
Veja como podemos apoiar seu ambiente que está repleto de Tomcats que podem ser difíceis de gerenciar, monitorar etc. Breve visão do WSO2 AppServer em conjunto com o WSO2 BAM.
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Palestra ministrada na Campus Party Brasil 2014.
Com a evolução do PHP no mercado coorporativo o Google não poderia deixar essa linguagem de fora de seu famoso serviço infraestrutura em nuvem, o Google AppEngine. Nesta palestra vamos mostrar o que é possível fazer utilizando PHP e os poderes do AppEngine.
Link para a palestra: https://www.youtube.com/watch?v=LvDnC93xWaI
Futuro do ASP.NET vNext - MVP ShowCast Eduardo Pires
Confira todo meu conteúdo do ASP.NET vNext em:
http://eduardopires.net.br/category/asp-net-vnext/
Palestra Realizada no MVP ShowCast 2014 no dia 15/09/14
O ASP.NET mudou, e não foram poucas mudanças. Após 12 anos de existência, o ASP.NET passa pela sua maior transformação e o resultado é o ASP.NET vNext. Entenda que mudanças são estas e prepare-se para aprender sobre um ASP.NET totalmente novo e moderno.
Por muito tempo desenvolvedores e administradores de infraestrutura tentam fazer integrações para que a implantação (deployment) seja mais efetiva, com menos sofrimento ao portar do ambiente de desenvolvimento para homologação/produção.
Essa apresentação introduz ao movimento DevOps, que aproxima desenvolvedores e administradores de sistema (sysadmin), para que trabalhem em maior sinergia.
A proposta é ilustrar os pilares da cultura DevOps, bem como os softwares que a permeia, focada em ferramentas e práticas reais, com exemplos do ecossistema PHP.
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereJuliano Martins
Esta apresentação contem um passo a passo mostrando a criação de um Web Service RESTFul utilizando a API Jersey no Eclipse, rodando nos servidores de aplicação Tomcat, JBoss e Websphere
SpringSource Tool Suite, tc Server e dm ServerDr. Spock
Slides usados pelo Ricardo Jun na apresentação realizada no Casual Class sobre a plataforma Spring promovido pela Globalcode e Spring Brasil User Group no dia 26/02/2010 em São Paulo/SP.
Palestra para o LinguÁgil 2009 em Salvador.
Evento realizado entre os dias 12 e 14 de novembro de 2009 em Salvador. Palestra realizada no dia 14/11 das 17:20 às 18:10.
Em uma visão macro, o que tiveram destaque para uma filtragem mais especificas foram o ZEND2 devido a robustez e grande credibilidade de mercado, CodeIgniter devido a grande parte do que saim do desenvolvimento "comum" e passam a ter um primeiro contado com algum tipo de framework, e suas comunidades bastante ativas, e Yii a mais jovens desse framework, porém com um grande crescimento nos últimos anos no meio do desenvolvimento PHP.
Obtive um resultado positivo, pois aderir por uma escolhe bastante objetiva e que hoje tem me dado resultado de usabilidade e tempo.
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
1. Red Hat JBoss Fuse:
conceitos básicos para
desenvolvedores
Rafael T. C. Soares
Arquiteto de Soluções, Red Hat
<rsoares@redhat.com>
Janeiro, 2015
2. 6 ADD NAME (View > Master > Slide master)
Já uso Apache Camel em minha aplicação!
● Camel é um Framework de Integração, não um ESB.
● Implementa os principais EIPs
● Oferece mecanismos para:
● Validação
● Enriquecimento (tratamento)
● Transformação
● Rotamento
de mensagens
3. 7 ADD NAME (View > Master > Slide master)
Por que JBoss Fuse?
● Quando seu projeto de integração se torna complexo...
● Onde implantar minhas integrações?
● Como escalar e garantir alta disponibilidade?
● Como versionar e atualizar minha aplicação?
4. 8 ADD NAME (View > Master > Slide master)
Por que JBoss Fuse
● Quando seu projeto de integração se torna complexo...
● Preciso de um meio para realizar debug e o trace de
mensagens em minhas integrações...
● Preciso implementar comunicação assíncrona por meio
de mensageria...
● etc
5. 9 ADD NAME (View > Master > Slide master)
Por que JBoss Fuse
● Quando seu projeto de integração se torna complexo...
● Preciso de suporte para implantação em larga escala...
● Como atualizar a aplicação sem afetar o ambiente
inteiro?
● Quero implantar minha integração em um container
leve e flexivel!
7. 11
Red Hat JBoss Fuse
JBoss Fuse – The Big Picture
● Tooling
● Frameworks
● Containers
● Message Broker
● Service Bus
● Monitoring/Operation
8. 12
Red Hat JBoss Fuse
JBoss Fuse – The Big Picture
● Solução composta por vários Projetos Open Source
JBoss Fuse
Apache CXF
Fuse Fabric
Apache Camel
Apache ServiceMix
Apache ActiveMQ
Apache Karaf
9. 13
Red Hat JBoss Fuse
JBoss Fuse Container
● Suporta vários tipos de deployment
11. 15 ADD NAME (View > Master > Slide master)
Modelo de Desenvolvimento
● Linguagem de programação
● JavaSE 1.6
● Várias linguages dinâmicas como DSL
● Scala
● JS
● Groovy
● Injeção de Dependência – DI
● Spring
● Blueprint (OSGI)
● Construção e gestão de dependências
● Apache Maven
12. 16 ADD NAME (View > Master > Slide master)
Ambiente
● JavaSE 1.6 ou >
● Apache Maven 3
● Red Hat JBoss Fuse IDE
● ECLIPSE plugin
● JBoss Developer Studio (JBDS)
13. 17 ADD NAME (View > Master > Slide master)
Modelo de Desenvolvimento
● JBoss Fuse Project
● Metadados
● OSGI Bundle
● METAINF/MANIFEST.MF
● Fuse Application Bundle (FAB)
● METAINF/maven/groupId/artifactId/pom.xml
● Web ARchive
● WEBINF/web.xml
14. 18 ADD NAME (View > Master > Slide master)
Maven: conceitos
● Ciclo de vida
● mvn <compile, test, package, install ...>
● Estrutura do projeto
●
15. 19 ADD NAME (View > Master > Slide master)
Maven: conceitos
● Resources/Descriptors
● Spring
● ProjectDir/src/main/resources/METAINF/spring/
● Blueprint XML
● ProjectDir/src/main/resources/OSGI
INF/blueprint/
● Packaging
● Fuse Application Bundle (Fuse JAR)
● Bundle (OSGI JAR)
● WAR (Web Archive)
16. 20 ADD NAME (View > Master > Slide master)
Maven: conceitos
● Maven Coordinates
● groupdId : arctifactId : version
● Dentro do JBoss Fuse container
● mvn:groupid/artifactid/version
● Dependências
● Escopo
● build, test e run time
● OSGI Bundle
● provided – não tem efeito
● Fuse Application Bundle
● provided – implantada separadamente (shared library)
17. 21 ADD NAME (View > Master > Slide master)
Maven: conceitos
● Repositórios
● Local Repository
● /home/<user>/.m2/repository
● Remote Repository
● Online
● Maven Central
● Fuse Source Maven Repo
● JBoss Maven Central
● etc
● System Repository (acessado apenas pelo Fuse em runtime)
● $FUSE_HOME/system
18. 22 ADD NAME (View > Master > Slide master)
Maven: conceitos
● Repositórios Remotos
● Build Time
● /home/<user>/.m2/settings.xml
● Run Time
● $FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg
org.ops4j.pax.url.mvn.repositories=
http://my.corporate.nexus.com/nexus/content/groups/public@snapshots
http://repo1.maven.org/maven2@id=maven.central.repo,
https://repo.fusesource.com/nexus/content/repositories/releases@id=fusesource.release.repo,
https://repo.fusesource.com/nexus/content/groups/ea@id=fusesource.ea.repo,
http://svn.apache.org/repos/asf/servicemix/m2repo@id=servicemix.repo,
http://repository.springsource.com/maven/bundles/release@id=springsource.release.repo,
http://repository.springsource.com/maven/bundles/external@id=springsource.external.repo,
https://oss.sonatype.org/content/groups/scalatools@id=scala.repo
19. 23 ADD NAME (View > Master > Slide master)
Injeção de Dependência
● Frameworks Suportados
● Spring XML
● Blueprint XML
● OSGI Spec (osgi.org)
● Similiar ao Spring.
● Antigo Spring DM (implementação da spec OSGI).
● Mais leve
● Resolve dependências automaticamente em runtime
20. 24 ADD NAME (View > Master > Slide master)
Injeção de Dependência
● Spring XML
● Injeção de dependência
● POJO Beans
● Configuração
● Camel
● CXF
● ActiveMQ
● OSGI toolkit
● OSGI Services (OSGI Compendium)
● Containers Services
● Persistence
● Security
● Transactions
21. 25 ADD NAME (View > Master > Slide master)
Injeção de Dependência
● Spring XML
● Descritor
● <ProjectDir>/src/main/resources/META-INF/spring/*.xml
●
22. 26 ADD NAME (View > Master > Slide master)
Injeção de Dependência
● Blueprint XML
● Injeção de dependência
● Mais leve
● Específico para containers OSGI
● Configuração
● Camel
● CXF
● ActiveMQ
● OSGI toolkit
● OSGI Services (OSGI Compendium)
● Containers Services
● Persistence
● Security
● Transactions
23. 27 ADD NAME (View > Master > Slide master)
Injeção de Dependência
● Blueprint XML
● Descritor
● <ProjectDir>/src/main/resources/OSGI-INF/blueprint/*.xml
●
24. 28
Red Hat JBoss Fuse
Apache CXF Web Service
Demo: WS Code First Approach
29. 33
Red Hat JBoss Fuse
JBoss Fuse: instalação express
● unzip jbossfusefull6.1.0.redhat379.zip
● cd jbossfuse6.1.0.redhat379/
● vim etc/users.properties
● cd bin/
● ./fuse
● * Inicia o Fuse no modo standalone
#All users specified in this file, will be uploaded to the fabric registry and will
#be available to all containers that join the fabric.
#The password of the first user in the file will also be used as a registry (zookeeper) password
#unless a password is explicitly specified.
admin=admin,admin
31. 35
Red Hat JBoss Fuse
Deploy do WS
JBossFuse:karaf@root> install
mvn:org.fusesource.example/cxfbasic/1.0SNAPSHOT
Bundle ID: 251
JBossFuse:karaf@root> start 251
JBossFuse:karaf@root> list
[ 251] [Active ] [ ] [Started] [ 60] Apache ServiceMix :: CXF
Code First OSGi Bundle (1.0.0.SNAPSHOT)
● obs: por padrão o Fuse acessa o repositório local do Maven
(~/.m2/repository) para baixar um artefato. Caso necessário é possível
configurar um repositório remoto no arquivo de configuração:
$FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg através da
propriedade org.ops4j.pax.url.mvn.repositories
33. 37
Red Hat JBoss Fuse
Testando o Serviço
● WS Endpoint
● http://localhost:8181/cxf/PersonServiceCF
● WS Client
● cd cxfbasic
● mvn Pclient
INFO: Creating Service
{http://example.fusesource.org/}PersonService from class org.fusesource.example.Person
Invoking getPerson...
getPerson._getPerson_personId=Guillaume
getPerson._getPerson_ssn=0000000000
getPerson._getPerson_name=Guillaume
37. 41
Red Hat JBoss Fuse
Build
● Desabilitar Teste unitário (gerado pelo archetype)
#comentar @Test da classe
vim src/test/java/org/fusesource/example/RouteTest.java
● Adicionar dependencia do componente cameljetty
vim pom.xml
● Build
● cd camelbasic
● mvn install
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>cameljetty</artifactId>
<version>2.10.0.redhat60024</version>
</dependency>
38. 42
Red Hat JBoss Fuse
Deploy do WS
JBossFuse:karaf@root> install
mvn:org.fusesource.example/camelbasic/1.0SNAPSHOT
Bundle ID: 252
JBossFuse:karaf@root> start 252
JBossFuse:karaf@root> list
[ 252] [Active ] [ ] [Started] [ 60] A Camel Blueprint Route
(1.0.0.SNAPSHOT) (1.0.0.SNAPSHOT)
39. 43
Red Hat JBoss Fuse
Testando o Serviço
● WS Client
● cd ../cxfbasic
● mvn Pclient
Dexec.args="http://localhost:8282/cxf/PersonServiceCF"
INFO: Creating Service {http://example.fusesource.org/}PersonService from
class org.fusesource.example.Person
Invoking getPerson...
Após 5 seg...
getPerson._getPerson_personId=Guillaume
getPerson._getPerson_ssn=0000000000
getPerson._getPerson_name=Guillaume
41. 45
Red Hat JBoss Fuse
Agregação de projetos no Maven
● Maven Aggregate POM
● cd getstarted/
● vim pom.xml
<?xml version="1.0" encoding="UTF8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/mavenv4_0_0.xsd">
<groupId>org.fusesource.example</groupId>
<artifactId>getstarted</artifactId>
<version>1.0SNAPSHOT</version>
<packaging>pom</packaging>
<modelVersion>4.0.0</modelVersion>
<name>Getting Started :: Aggregate POM</name>
<description>Getting Started example</description>
<modules>
<module>cxfbasic</module>
<module>camelbasic</module>
</modules>
</project>
● Build
● mvn install
42. 46
Red Hat JBoss Fuse
Definindo uma Feature para a
Aplicação: Apache Karaf Feature
43. 47
Red Hat JBoss Fuse
OSGI Bundles vs. Application Feature
● Bundle = unidade de deployment isolada
● Application Feature = conjunto de bundles que
formam o núcleo da aplicaçao
● Mecanismo mais inteligente e conveniente de
implantação de aplicações dentro do JBoss Fuse
● Ex: get-started project feature xml descriptor
44. 48
Red Hat JBoss Fuse
OSGI Bundles vs. Application Feature
● Como compor uma Feature?
● Depende das dependências de sua aplicação
● Depende dos bundles e features disponíveis (pré-
implantadas) no container
JBossFuse:karaf@root> features:list
...
[installed ] [2.12.0.redhat610379 ] camel
[installed ] [2.12.0.redhat610379 ] camelcore
[installed ] [2.12.0.redhat610379 ] camelspring
[installed ] [2.12.0.redhat610379 ] camelblueprint
45. 49
Red Hat JBoss Fuse
Fuse Application Bundles
● mecanismo de packaging utilizado para definição de
Features
● Capaz de resolver dependências automaticamente em
runtime
● Modos de deployments suportados
● Hot Deploy
● $FUSE_HOME/deploy
● Feature URL
● Fuse Fabric Profile
46. 50
Red Hat JBoss Fuse
Criando um repositório de
Features customizado
47. 51
Red Hat JBoss Fuse
Feature XML descriptor
● Definindo a Feature
● Na raiz do projeto Maven getstarted
mkdir p features/src/main/resources/
vim features/src/main/resources/getstarted
feature.xml
48. 52
Red Hat JBoss Fuse
Empacotando a Feature
● Feature Packaging
● Na raiz do projeto Maven getstarted
● vim features/pom.xml
50. 54
Red Hat JBoss Fuse
Build da Feature
● Feature Packaging
● Na raiz do projeto Maven getstarted
● cd features/pom.xml
● mvn install
● Observe que o JAR gerado contém o XML Descriptor da Feature
criada
$ jar tvf target/getstarted1.0SNAPSHOT.jar
0 Tue Jan 13 00:15:08 BRT 2015 METAINF/
132 Tue Jan 13 00:15:06 BRT 2015 METAINF/MANIFEST.MF
394 Tue Jan 13 00:12:26 BRT 2015 getstartedfeature.xml
0 Tue Jan 13 00:15:08 BRT 2015 METAINF/maven/
0 Tue Jan 13 00:15:08 BRT 2015 METAINF/maven/org.fusesource.example/
0 Tue Jan 13 00:15:08 BRT 2015 METAINF/maven/org.fusesource.example/getstarted/
1487 Tue Jan 13 00:14:52 BRT 2015 METAINF/maven/org.fusesource.example/getstarted/pom.xml
125 Tue Jan 13 00:12:26 BRT 2015 METAINF/maven/org.fusesource.example/getstarted/pom.properties
51. 55
Red Hat JBoss Fuse
Deploy da Feature
● Feature Deployment
● No Fuse Shell
● Remova os OSGI Bundles: camelcxf e camelbasic
● JBossFuse:karaf@root> list
● JBossFuse:karaf@root> uninstall 251
● JBossFuse:karaf@root> uninstall 252
● Informe ao Container onde localizar as features instaladas
● JBossFuse:karaf@root> features:addurl
mvn:org.fusesource.example/getstarted/1.0
SNAPSHOT/xml/features
52. 56
Red Hat JBoss Fuse
Deploy da Feature
● No Fuse Shell
● Confira se a Feature getstartedbasic foi carregada no Container
JBossFuse:karaf@root> features:list | grep getstarted
[uninstalled] [0.0.0] getstartedbasic getstarted
● Instale a Feature
JBossFuse:karaf@root> features:install getstartedbasic
JBossFuse:karaf@root> features:list | grep getstarted
[installed] [0.0.0] getstartedbasic getstarted
53. 57
Red Hat JBoss Fuse
OSGI Config Service: configurando a
aplicação em runtime
54. 58
Red Hat JBoss Fuse
Mecanismo de configuração de aplicações
Permite alterar propriedades e/ou configurações de suas aplicações em
tempo de implantação e execução
● Conceitos
● Persistent ID (PID)
● Conjunto de propriedades
● Nome segue o padrão Java Package
● Ex: org.ops4j.pax.web (configura o conatiner web do
Jboss Fuse – Jetty WebServer)
● Properties
● Propriedade (nome=valor) pertencente à um PID
55. 59
Red Hat JBoss Fuse
Mecanismo de configuração de aplicações
● Definição de PIDs dentro do Fuse
● Arquivo texto (estilo properties file)
● $JBOSS_FUSE_HOME/etc
● <pid name>.cfg
● Ex: org.ops4j.pax.web.cfg
● Fuse Profiles
● Utilizando a console de gerência HawtIO
● Utilizando o Shell através do comando fabric:profileedit
56. 60
Red Hat JBoss Fuse
Mecanismo de configuração de aplicações
● Substituição de propriedades (property placehoders)
● Altere o projeto cxfbasic
● Remova o descritor (Spring XML)
● cxfbasic/src/main/resources/METAINF/spring/beans.xml
● Crie um novo descritor (Blueprint XML)
● cxfbasic/src/main/resources/OSGIINF/blueprint/blueprint.xml
● Dessa forma podemos utilizar o mecanismo OSGI Config Admin service
<?xml version="1.0" encoding="UTF8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:jaxws="http://cxf.apache.org/blueprint/jaxws"
xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprintcm/v1.1.0">
<! osgi blueprint property placeholder >
<cm:propertyplaceholder id="placeholder"
persistentid="org.fusesource.example.get.started">
<cm:defaultproperties>
<cm:property name="portNumber" value="8181"/>
</cm:defaultproperties>
</cm:propertyplaceholder>
<jaxws:endpoint id="HTTPEndpoint"
implementor="org.fusesource.example.PersonImpl"
address="http://0.0.0.0:${portNumber}/PersonServiceCF"/>
</blueprint>
PID name
Default value
Property name
Placehoder
57. 61
Red Hat JBoss Fuse
Mecanismo de configuração de aplicações
● Faça o build do projeto cxf-basic instale a feature get-started-cxf
● cd cxfbasic/
● mvn clean install
● Instale a feature get-started-cxf
● JBossFuse:karaf@root> features:uninstall getstartedbasic
● JBossFuse:karaf@root> features:install getstartedcxf
● Teste o Web Service utilizando a porta configurada no PID:
$JBOSS_FUSE_HOME/etc/org.fusesource.example.get.started.cfg
● mvn Pclient Dexec.args="http://localhost:8182/PersonServiceCF"
Invoking getPerson...
getPerson._getPerson_personId=Guillaume
getPerson._getPerson_ssn=0000000000
getPerson._getPerson_name=Guillaume
59. 63
Red Hat JBoss Fuse
Fabric
● Gestão e Provisionamento de:
● Containers
● Configurações
● Artefatos
em múltiplos Hosts
● Garante
● Alta disponibilidade
● Escalabilidade
60. 64
Red Hat JBoss Fuse
Fabric: composição
● Fabric Registry Service
● “Banco de Dados compartilhado”
● mantém informações sobre o estado do Fabric
● Info sobre provisionamento e gestão da topologia de
containers
● Fabric
● Conjunto de containers que compartilham um registro comum
● Fabric Ensemble
● Grupo de Fabric Servers:
● Para manter a alta disponibilidade, utiliza sempre um número
impar (1, 3, 5, etc) de Servers
61. 65
Red Hat JBoss Fuse
Fabric: composição
● Fabric Server
● Mantém o Registry Service
● Fabric Container (Fuse Instance)
● Runtime da aplicação
● Tipos
● Root container
● Child container
● Profile
● Unidade de implantação
● Composto por: features, bundles e configurações (properties)
63. 67
Red Hat JBoss Fuse
Meu primeiro Fabric: server registry
JBossFuse:karaf@root> fabric:create newuser AdminUser new
userpassword AdminPass zookeeperpassword ZooPass wait
forprovisioning resolver manualip manualip 127.0.0.1
Use um IP Fixo para evitar
problemas com trocas de enderećo IP
64. 68
Red Hat JBoss Fuse
Meu primeiro Fabric: containers
JBossFuse:karaf@root> fabric:containercreatechild root child 2
The following containers have been created successfully:
Container: child1.
Container: child2.
JBossFuse:karaf@root> fabric:containerlist
[id] [version] [connected] [profiles] [provision status]
Root* 1.0 true fabric, fabricensemble00001, jbossfusefull success
child1 1.0 true default success
child2 1.0 true default success
65. 69
Red Hat JBoss Fuse
Meu primeiro Fabric: feature deploy
● Profile Base
● JBossFuse:karaf@root> fabric:profilecreate parents featurecxf gscxfbase
● Adicionando o repositório de features
JBossFuse:karaf@root> profileedit r mvn:org.fusesource.example/get
started/1.0SNAPSHOT/xml/features gscxfbase
Adding feature repository:mvn:org.fusesource.example/getstarted/1.0
SNAPSHOT/xml/features to profile:gscxfbase version:1.0
● Deploy da feature getstartedcxf
JBossFuse:karaf@root> profileedit features getstartedcxf gscxfbase
Adding feature:getstartedcxf to profile:gscxfbase version:1.0
NOTA: caso seja necessário configurar um repositório maven corporativo remoto (ex. Nexus, Archiva, etc),
consulte as intruções descritas em:
https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.1/html/Configuring_and_Running_Red_Ha
66. 70
Red Hat JBoss Fuse
Meu primeiro Fabric: criando o profile
● Herança de profiles: criando dois profiles devirados do profile Base (gs
cxfbase)
● JBossFuse:karaf@root> profilecreate parents gscxfbase gscxf01
● JBossFuse:karaf@root> profilecreate parents gscxfbase gscxf02
67. 71
Red Hat JBoss Fuse
Meu primeiro Fabric: profile property placeholder
● Alterando a propriedade portNumber em cada profile
● gs-cxf-01
● JBossFuse:karaf@root> profileedit p
org.fusesource.example.get.started/portNumber=8185 gscxf01
Setting value:8185 key:portNumber on pid:org.fusesource.example.get.started and
profile:gscxf01 version:1.0
● gs-cxf-02
● JBossFuse:karaf@root> profileedit p
org.fusesource.example.get.started/portNumber=8186 gscxf02
Setting value:8186 key:portNumber on pid:org.fusesource.example.get.started and
profile:gscxf02 version:1.0
68. 72
Red Hat JBoss Fuse
Meu primeiro Fabric: deploy
JBossFuse:karaf@root> fabric:containerchangeprofile
child1 gscxf01
JBossFuse:karaf@root> fabric:containerchangeprofile
child2 gscxf02
69. 73
Red Hat JBoss Fuse
Meu primeiro Fabric: testando os endpoints
cd getstarted/cxfbasic
● mvn Pclient
Dexec.args="http://localhost:8185/PersonServiceCF"
● mvn Pclient
Dexec.args="http://localhost:8186/PersonServiceCF"
Invoking getPerson...
getPerson._getPerson_personId=Guillaume
getPerson._getPerson_ssn=0000000000
getPerson._getPerson_name=Guillaume
This is the official brand platform statement.
Our vision and our business model match up well with what companies want and need now. They want vision, flexibility, and better, faster solutions.
This is something Red Hat is uniquely qualified to do, and to help customers do. Our open source model takes advantage of this idea--that’s what open source is about.
This platform doesn’t scream open source—but open source is the foundation. This platform explains why open innovation is important and why it helps our customers with that long-term, future-looking vision they want so badly.
STOP HERE AND SHOW THE VIDEO
This is the official brand platform statement.
Our vision and our business model match up well with what companies want and need now. They want vision, flexibility, and better, faster solutions.
This is something Red Hat is uniquely qualified to do, and to help customers do. Our open source model takes advantage of this idea--that’s what open source is about.
This platform doesn’t scream open source—but open source is the foundation. This platform explains why open innovation is important and why it helps our customers with that long-term, future-looking vision they want so badly.
STOP HERE AND SHOW THE VIDEO
The insight we gained from our research tells us that the world is changing. Networking. Connecting. Not just socially, and not just locally. Globally. For professional reasons and personal ones. Buying a car. Seeking a job.
This is also happening in business. Companies that figure out how to tap into their own networks will be more successful, because they will have access to innovation—to ideas, to improvements. They’ll get to market faster, solve problems faster.
They want to look ahead better. Forecast and plan more accurately, and create infrastructures that are more flexible in order to address and triumph over change.
OSGI Bundle não é o tipo de implantação mais conveniente para o JBoss Fuse Container
Uma aplicação pode consistir em vários Bundles OSGI
Agrega múltiplos OSGI Bundles formando uma unidadede implantação
OSGI Bundle não é o tipo de implantação mais conveniente para o JBoss Fuse Container
Uma aplicação pode consistir em vários Bundles OSGI
Agrega múltiplos OSGI Bundles formando uma unidadede implantação
OSGI Bundle não é o tipo de implantação mais conveniente para o JBoss Fuse Container
Uma aplicação pode consistir em vários Bundles OSGI
Agrega múltiplos OSGI Bundles formando uma unidadede implantação
These words probably look familiar to you, if you’ve done work with the Red Hat brand before.
This is the tone and personality that works with our core culture, and our customers really love this about Red Hat.
It sets us apart from many other technology companies.
It remains part of our culture and part of our brand platform.
É uma camada tecnologica que permite que um grupo de conatiners formem um cluster de alta disponibilidade compartilhando configuraçoẽs comuns e artefatos de software.
É uma camada tecnologica que permite que um grupo de conatiners formem um cluster de alta disponibilidade compartilhando configuraçoẽs comuns e artefatos de software.
É uma camada tecnologica que permite que um grupo de conatiners formem um cluster de alta disponibilidade compartilhando configuraçoẽs comuns e artefatos de software.
This is another expression of our ideal—the core message.
It’s the same topic, but written in a way that is more conversational. It’s easier to use as inspiration for marketing material.
These are just two of what will be many, many variations and iterations of this messaging. We have a lot of different resources, from a copy and a BU perspective.
And that’s important—addressing each customer or potential customer with the message (or portion of the message) that’s appropriate to them.
Managing the Fabric Server&apos;s IP address and hostname
The IP address and hostname associated with the Fabric Servers in the Fabric ensemble are of critical importance to the fabric. Because these IP addresses and hostnames are used for configuration and service discovery (through the Zookeeper registry), they must not change during the lifetime of the fabric.
In some cases (for example, when creating a fabric on a multi-homed host) it is preferable to specify the Fabric Server&apos;s IP address explicitly when you create the fabric. You can manually specify the IP address at the time you create a fabric, by specifying the --resolver and --manual-ip options, as follows:
JBossFuse:karaf@root&gt; fabric:create --resolver manualip --manual-ip CustomIPAddress
--zookeeper-password admin --wait-for-provisioning
Where --resolver manualip sets the local resolver policy to manualip (which means that, for this Fabric Server only, you are specifying the IP address explicitly) and CustomIPAddress is the custom IP address you want to use.
For more details about resolver policies, see section &quot;Description&quot; in &quot;Console Reference&quot;section &quot;Description&quot; in &quot;Console Reference&quot; and section &quot;Description&quot; in &quot;Console Reference&quot;section &quot;Description&quot; in &quot;Console Reference&quot;.
Fabric creation process
Several things happen when a fabric is created from a standalone container:
The container installs the requisite OSGi bundles to become a Fabric Server.
The Fabric Server starts a registry service, which listens on IP port 2181 (which makes fabric configuration data available to all of the containers in the fabric).
The Fabric Server installs a new JAAS realm (based on the ZooKeeper login module), which overrides the default JAAS realm and stores its user data in the ZooKeeper registry.
The new Fabric Ensemble consists of a single Fabric Server (the current container).
A default set of profiles is imported from InstallDir/fabric/import (can optionally be overridden).
After the standalone container is converted into a Fabric Server, the previously installed OSGi bundles and Karaf features are completely cleared away and replaced by the default Fabric Server configuration. For example, some of the shell command sets that were available in the standalone container are no longer available in the Fabric Server.
This is another expression of our ideal—the core message.
It’s the same topic, but written in a way that is more conversational. It’s easier to use as inspiration for marketing material.
These are just two of what will be many, many variations and iterations of this messaging. We have a lot of different resources, from a copy and a BU perspective.
And that’s important—addressing each customer or potential customer with the message (or portion of the message) that’s appropriate to them.