O documento discute arquiteturas de integração e serviços orientados a arquitetura. Apresenta o Red Hat JBoss Fuse e Red Hat JBoss Fuse Service Works como soluções para integrar sistemas e implementar SOA, respectivamente. O Fuse oferece funcionalidades básicas de ESB, enquanto o Service Works adiciona governança, orquestração e outros recursos.
2. Elvis Rocha
● Consultor na Tecnisys há 3 anos
● Instrutor pela Red Hat e Especialista JBoss
● Background em desenvolvimento e arquitetura Java
● 12 anos de experiência na área de TI, 10 anos com java
elvis.rocha@tecnisys.com.br
@elvisnaomorreu
3. Tecnisys
● Há 22 anos oferecendo soluções open source
● Red Hat Advanced Business Partner
● Maior parceiro Red Hat na América Latina
● Consultoria especializada em soluções na stack de
middleware, plataforma e cloud da Red Hat
www.tecnisys.com.br
4. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
5. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
6. Arquitetura Clássica de Aplicações Web Java
● Modelo MVC
● Stack de frameworks
JavaEE / Spring
+ JSF / GWT / Spring
● Arquitetura comprovada e
muito utilizada
7. Arquitetura Clássica de Aplicações Web Java
● Modelo MVC
● Stack de frameworks
JavaEE / Spring
+ JSF / GWT / Spring
● Arquitetura comprovada e
muito utilizada
● A camada de apresentação
às vezes é separada
8. Arquitetura de Aplicações Web Java (RIA / Mobile)
● Modelo MVC
● Stack de frameworks
JavaEE / Spring
JSF / GWT / Spring MVC
● Frameworks Javascript
● JSON é o modelo de dados
preferido do lado client
● Arquitetura comprovada e muito
utilizada
9. WebServices - SOAP vs REST
● SOAP é conhecido por ser
mais pesado e complexo
● Contrato formal entre
linguagens para definir o
formato das mensagens
● Suporta XML e binário
● Preferido para SOA
● REST é conhecido por ser
leve e fácil de implementar
● Não tem um contrato formal
para definir o formato das
mensagens
● Múltiplos tipos de dados
(JSON, XML, texto, binário)
● Preferido em aplicações
modernas e mobile
10. XML vs JSON
● XML é o formato nativo de
transferência de dados entre
diferentes aplicações
● Estrutura formal
● Validação de conteúdo
● O formato só muda se todos
os participantes
concordarem
● Suporta os tipos de dados
texto e binário
● JSON é o formato “nativo”
para aplicações modernas e
aplicações mobile
● Não tem estrutura formal
● O conteúdo não pode ser
validado
● Muda de formato facilmente
● Somente texto
11. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
13. Você tem ou precisa de SOA?
● Eu preciso fazer um sistema conversar com outro.
Eu preciso de SOA?
● Eu preciso expor uma API pública.
Eu preciso de SOA?
● Eu estou usando um ESB e tenho todos os
serviços publicados nele.
Significa que eu tenho SOA?
● Eu tenho vários WebServices na empresa.
Então eu tenho SOA?
14. Do que você precisa:
De uma solução de Integração ou de SOA?
● Você quer levar uma informação de um sistema A
para um sistema B?
● Você tem situações problemáticas de integração e
precisa de uma solução?
● Você precisa desenvolver componentes para se
comunicar com suites já existentes tais como SAP,
SalesForce, OpenShift, AWS e Gmail?
15. SOA passa por integração, mas não é somente isso
● SOA é uma solução de negócio e não de tecnologia
● Desenvolver a aplicação pensando em expor serviços como um
contrato (Arquitetura de serviços)
● Gerenciar dentro de sua empresa o inventário desses serviços
● Composição dos serviços para entregar o resultado esperado
● Organizar o ecossistema desses serviços compostos para
atender a uma regra de negócio (Governança)
16. Arquitetura orientada a serviços
● Os serviços:
1. Devem trabalhar com baixíssimo acoplamento
2. Devem funcionar de forma autônoma e independente
3. Devem ser reutilizáveis, mas não por somente um sistema e sim por vários
4. Devem possuir um bom nível de abstração de forma a minimizar o acesso
aos detalhes de funcionamento do sistema
5. Devem ser autossuficientes e suportar composição (serem combinados
com outros serviços)
6. Devem ser stateless, somente a composição pode ser stateful
17. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
18. Integração de dados com processamento em lote (batch)
● Integração Ad hoc (para
resolver um problema
específico no momento)
● Exige uma verificação prévia
(cuidadosa) dos dados
● Não existe uma
responsabilidade definida
(mestre - escravo)
● Difícil de manter e monitorar
● Delay
19. Arquitetura de Integração de dados em lote (batch)
● Orientado ao transporte
eficiente de uma quantidade
grande de dados
● A maioria das soluções
requer um middleware
específico (Database-vendor
solutions)
● ETL
20. Arquitetura de Integração de dados em tempo real
● Integração ponto a ponto
● Alto acoplamento entre
aplicações e componentes
● Difícil de manter
● Difícil de versionar
● Spaguetti
● Ad hoc
● Não é SOA
24. Arquitetura de integração, desenvolvimento e governança
orientada a serviços em tempo real
● JBoss Fuse Service Works
● Adapters + Protocol Mapping + Messaging
● Transformation / Filter / Routing / Enrichment / Monitoring
● Business Rules
● BPM + Service Orchestration
● Governança
● Service Delivery Lifecycle
Management
● Business Transaction
Monitoring
25. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
28. Fuse Core ESB
● É um framework de integração pois auxilia provendo a
infraestrutura básica para implementar rotas,
gateways e outras facilidades para a integração
● Não implementa uma arquitetura SOA, mas fornece
as características básicas para que possa ser
implementado
● O ESB remove o acoplamento entre o serviço
chamado e o meio de transporte
29. Apache Camel
● Framework de integração (EAI Patterns)
● Suporta in-memory BUS (Alternativa ao JBI)
● Suporta mensagens síncronas e assíncronas
● Tratamento de erros/exceções e suporte a debug
● Implementa mais de 50 patterns
● Possui mais de 120 componentes
30. Apache Karaf + Fuse Fabric
● Container Karaf OSGI:
● Plataforma OSGI-based com suporte a gerência de
configuração, provisionamento e hot deploy
● Fuse Fabric:
● Baseado no Apache Zookeper
● Possui containers que podem ter um ou mais profiles
● Ensemble: Grupo de containers
● Micro Containers: java, docker, openshift, kubernetes
31. Apache Active MQ
● Message Broker de alta performance e full JMS client
● Transacional
● Suporta clientes JMS, C, C++, .Net e Stomp
32. Tópicos
● Arquitetura de aplicações Java
● Arquitetura orientada a serviços
● Estilos de integração de sistemas
● Red Hat JBoss Fuse
● Red Hat JBoss Fuse Service Works
33. Red Hat JBoss Fuse Service Works
● Core ESB + Apache Camel + Apache CXF
● JBoss EAP 6
● Overlord (DTGov e RTGov) – Runtime Governance
● Riftsaw (Service Orchestration)
● Switchyard (SCA)
● Drools (BRMS)
● JBPM (BPM Suite)
● S-RAMP
● Smooks
35. JBoss EAP 6
● Full Java EE 6 Certified
● Permite a você criar cenários de integração
aproveitando a arquitetura modular do JBoss baseada
em módulos java e não bundles OSGI
● Permite trabalhar com componentes JavaEE como
componentes EJB, fazer uso da injeção com CDI e
utilizar o cluster do JBoss EAP
38. S-RAMP
● SOA Repository Artifact Model and Protocol
● Protocol: S-RAMP 1.0
● JCR: ModeShape e Infinispan
● Maven:
...
<repository>
<id>local-sramp-repo</id>
<name>S-RAMP Releases Repository</name>
<url>sramp://localhost:8080/s-ramp-server/</url>
</repository>
...
39. Switchyard
● Implementa SCA
● Coarse-grained services
● Você cria bindings para os componentes (Reference)
● Componentes:
Bean CDI
Processo BPM
Processo BPEL
Camel Route
Drools Rule
KIE (Drools/BPM)
40. BRMS
● Business Rule Management System
● Separa regras de negócio da aplicação
● Coleta os dados (facts) e combina com as
informações (rules) e tira as conclusões (inferencing)
● Benefícios:
Facilidade de mudança
Menos erros
Mais visibilidade das regras
● CEP
41. BPM Suite
● Definição, execução e gerenciamento de Processos
● BPMN 2.0
● Forms Designer
● Business Central
● Decision Tables
● OptaPlanner