O documento discute conceitos de arquitetura e integração de sistemas, incluindo estilos de arquitetura como monolítica e microserviços. Também aborda técnicas de integração como EDI, banco de dados compartilhado, RPC, MOM, mensageria, SOA, ESB, SOAP e REST.
2. JETHER RODRIGUES DO NASCIMENTO
Bacharel em Ciência da Computação
MBA em tecnologia da Informação
Sênior Software Developer
Oracle Certified Associate – OCAJP 8
https://www.linkedin.com/in/jetherodrigues
https://www.github.com/jether2011
3. Roteiro
• Arquitetura
• Definição
• Estilos de arquitetura
• Monólito e Micro Serviços
• Integração de Sistemas
• EDI, BD compartilhado, RPC, MOM e Mensageria
• SOA
• ESB
• Webservices
• SOAP
• REST
4. ARQUITETURA – Definição
• Arquitetura de software é utilizada para modelar a estrutura de um sistema, bem
como a maneira por meio da qual os dados e componentes colaboram entre si;
• Arquitetura propõe a tomada de decisão do desenvolvimento de um sistema ou
um ecossistema de aplicações;
• Projeto não é arquitetura e sim uma instancia em uma arquitetura;
• Planejar e arquitetar deve ser prática em pequenos e grandes projetos
5. ARQUITETURA – Estilos de arquitetura
• Arquitetura centralizadas em dados
• Ex.: Banco de dados compartilhados;
• Arquitetura de fluxo de dados
• Ex.: ESB, Mensageria;
• Arquitetura de chamadas e retornos
• Ex.: RPC;
• Arquitetura orientada a objetos
• Ex.: Mensageria;
• Arquitetura em camadas
• Ex.: Interface de usuário, controllers, banco de dados
8. ARQUITETURA - Micro-serviços
• Arquitetura de microsserviços u`liza o conceito de Y-axis, que
consiste no escalonamento por quebra da aplicação em múltiplos e
diferentes serviços.
• Fácil escalonamento;
• Baixa complexidade do código;
• Deploy de aplicação com complexidade fraca;
• Equipes trabalhando diferentes frentes;
• Recursos e features altamente definidas (Conceito de DDD);
• Entregas contínuas;
9. ARQUITETURA -
• Integração de muitas tecnologias (linguagens e BD´s);
• Escalabilidade de serviços e API´s;
• Um pequeno e focado pedaço de software em uma determina lógica
de negócio;
• Independente do desenvolvimento, implantação e atualização;
• Comumente expostos em funcionalidade utilizando protocolo HTTP
com o modelo arquitetural REST;
ARQUITETURA - Micro-serviços
14. • Banco de dados
• https://martinfowler.com/articles/microservices.html#DecentralizedDataMan
agement
• http://blog.christianposta.com/microservices/the-hardest-part-about-
microservices-data
• https://plainoldobjects.com/2015/09/02/does-each-microservice-really-
need-its-own-database-2/
• https://medium.com/@nathankpeck/microservice-principles-decentralized-
data-management-4adaceea173f
ARQUITETURA – Micro-serviços
15. INTEGRAÇÃO de SISTEMAS - EDI
• Transferência de arquivo (Electronic Data Interchange ou EDI): um
sistema escreve um arquivo de texto ou binário para que um outro
sistema leia. Esse estilo exige conformidades no nome do arquivo,
localização e formato (layout). Normalmente está associado ao uso do
protocolo FTP (File Transfer Protocol).
16. INTEGRAÇÃO de SISTEMAS – BD
Compartilhado
• Banco de dados compartilhado: múltiplos sistemas utilizam um
mesmo banco de dados físico para consultar e manipular dados. Com
isso, não há duplicidade de informação.
17. INTEGRAÇÃO de SISTEMAS - RPC
• Invocação Remota de Procedimento (Remote Procedure Call ou
RPC): um sistema expõe suas funcionalidades para que sejam
acessadas remotamente por outros sistemas. Nesse estilo a
comunicação ocorre em tempo real, sincronamente e necessita que
os sistemas integrados possuam compatibilidade em relação à
tecnologia remota para que a comunicação funcione.
18. INTEGRAÇÃO de SISTEMAS - MOM
• Um Middleware Orientado a Mensagens permite que um sistema
receba ou envie mensagens para outros sistemas de forma
assíncrona. Além disso, o sistema que envia uma mensagem não
precisa conhecer os sistemas que a receberão. Da mesma forma, que
os sistemas que recebem uma mensagem não precisam conhecer o
sistema que a enviou. Essas características permitem que os sistemas
sejam integrados com baixo acoplamento.
19. INTEGRAÇÃO de SISTEMAS - Mensageria
• Mensageria: é a tecnologia que permite a entrega rápida e confiável
de mensagens através da comunicação assíncrona. Tudo isso funciona
através de um sistema que publica uma mensagem em um canal para
que outro, que também possui acesso a esse canal, possa ler e
interpretar essa mensagem.
20. ARQUITETURA e INTEGRAÇÃO de SISTEMAS
• Service Oriented Architecture, SOA, é um estilo de arquitetura de
software cujo princípio fundamental prega que as funcionalidades
implementadas pelas aplicações devem ser disponibilizadas na forma
de serviços.
21.
22. ARQUITETURA e INTEGRAÇÃO de SISTEMAS
• Enterprise Service Bus, ESB, é uma plataforma de integração baseada
em normas que combina as funcionalidades de mensageria, web
services, transformação de dados e roteamento inteligente para
conectar e coordenar com segurança a interação de um número
significativo de sistemas diversos por meio do conceito de corporação
estendida, isto é, sistemas que ligam as unidades locais da
corporação, os parceiros de negócios, fornecedores e clientes. Para
oferecer as funcionalidades mencionadas anteriormente, um ESB tem
como premissa o baixo acoplamento na comunicação, além da
utilização de redes distribuídas que possam ser facilmente escaláveis.
24. INTEGRAÇÃO de SISTEMAS - SOAP
• Simple Object Access Protocol, ou Protocolo Simples de Acesso a
Objetos. Ele foi criado e é mantido pelo World Wide Web Consortium,
ou simplesmente W3C;
• Baseia-se numa invocação remota de um método;
• Baseado em XML;
• WSDL - Descreve os serviços disponibilizados através de uma
semântica XML;
• SOAP especifica a comunicação entre um cliente e um servidor, o
WSDL descreve os serviços oferecidos.
26. INTEGRAÇÃO de SISTEMAS - REST
• REST é um estilo de arquitetura (ou modelo arquitetural);
• REST surgiu no inicio dos anos 2000, a partir da tese de Ph.D de um
cientista chamado Roy Fielding , também integrante do grupo que
criou o protocolo HTTP;
• RESTFul é a capacidade de aplicar os princípios de REST
• Constraints:
• Uniform interface
• Client/Server
• Stateless
• Cacheable
• Layered System
• Code on Demand