Um	pouco	sobre	Arquitetura	
e	Integração	de	Sistemas
16-03-2019
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
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
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
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
ARQUITETURA	– Monolítica
ARQUITETURA	– Micro-serviços
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;
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
ARQUITETURA
• 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
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).
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.
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.
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.
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.
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.
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.
ARQUITETURA	e	INTEGRAÇÃO	de	SISTEMAS
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.
INTEGRAÇÃO	de	SISTEMAS	- SOAP
https://calculator-unisal.herokuapp.com/Calculator
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
INTEGRAÇÃO	de	SISTEMAS	- REST
https://demo-mapfood.herokuapp.com/swagger-ui.html
• Chris	Richardson	(Experienced	software	architect)
• http://microservices.io/
• http://microservices.io/articles/applying.html
• http://microservices.io/patterns/index.html
• http://microservices.io/patterns/microservices.html
• http://microservices.io/patterns/data/cqrs.html
• http://microservices.io/patterns/data/saga.html
• Roger	Pressman
• https://www.amazon.com.br/Engenharia-Software-Uma-Abordagem-Profissional/dp/8580555337?tag=goog0ef-
20&smid=A29OXBW5UNL0GU&ascsubtag=go_1494986073_58431735035_285514469186_pla-566080526632_c_
• Martin	Fowler
• https://martinfowler.com/bliki/CQRS.html
• https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa
• Netflix
• https://medium.com/netflix-techblog
• InfoQ
• https://www.infoq.com/minibooks/microservices-patterns-practices
BIBLIOGRAFIA

Arquitetura e Integração de sistemas

  • 1.
  • 2.
    JETHER RODRIGUES DONASCIMENTO 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 • Arquiteturade 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 • Arquiteturacentralizadas 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
  • 6.
  • 7.
  • 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 demuitas 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
  • 10.
  • 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ênciade 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 • Bancode 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çãoRemota 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 • UmMiddleware 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 OrientedArchitecture, 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.
  • 22.
    ARQUITETURA e INTEGRAÇÃO de SISTEMAS • Enterprise ServiceBus, 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.
  • 23.
  • 24.
    INTEGRAÇÃO de SISTEMAS - SOAP • SimpleObject 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.
  • 25.
  • 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
  • 27.
  • 28.
    • Chris Richardson (Experienced software architect) • http://microservices.io/ •http://microservices.io/articles/applying.html • http://microservices.io/patterns/index.html • http://microservices.io/patterns/microservices.html • http://microservices.io/patterns/data/cqrs.html • http://microservices.io/patterns/data/saga.html • Roger Pressman • https://www.amazon.com.br/Engenharia-Software-Uma-Abordagem-Profissional/dp/8580555337?tag=goog0ef- 20&smid=A29OXBW5UNL0GU&ascsubtag=go_1494986073_58431735035_285514469186_pla-566080526632_c_ • Martin Fowler • https://martinfowler.com/bliki/CQRS.html • https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa • Netflix • https://medium.com/netflix-techblog • InfoQ • https://www.infoq.com/minibooks/microservices-patterns-practices BIBLIOGRAFIA