Introdução a Arquitetura de Sistemas

16,604 views

Published on

Slides utilizados para introduzir os conceitos básicos sobre o tema

Published in: Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
16,604
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
540
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Introdução a Arquitetura de Sistemas

  1. 1. http://www.takenami.com.br Introdução a Arquitetura de Sistemas Igor Takenami itakenami@gmail.com http://twitter.com/itakenami Versão 1.1
  2. 2. http://www.takenami.com.br Evolução na Arquitetura de Sistemas • Necessidades do Usuário - Aplicações Modulares - Capacidade de Expansão - Fácil Manutenção • Descentralização - Fornecedores diferentes fornecendo produtos para uma mesma solução - Viabilidade de Custo - Concorrência • Dinâmica modificação na infra-estrutura e avanços da tecnologia disponível no mercado
  3. 3. http://www.takenami.com.br Arquitetura Monolítica • Terminal burro • Não possui capacidade de processamento • Conexão a um servidor central • Compartilhamento de recursos • Altamente acoplada e centralizada • Dependência de um único fornecedor de hardware e software • Custo muito elevado
  4. 4. http://www.takenami.com.br Cliente/Servidor (2-Tier) • Conhecida como 2 camadas • Muito utilizado até hoje • Resultado de evoluções tecnológicas - Surgimento do PC • Dividir o processamento em 2 estações: a estação cliente e o servidor
  5. 5. http://www.takenami.com.br Cliente/Servidor (2-Tier) • Fat Client - Problemas na atualização das regras de negócio e interface com o usuário • Thin Client - Dependente do Banco de Dados - Problemas na atualização da interface com o usuário • Problemas na atualização de versões no cliente
  6. 6. http://www.takenami.com.br Fat Client
  7. 7. http://www.takenami.com.br Thin Client
  8. 8. http://www.takenami.com.br Modelo WEB (3-Tier) • Surgimento da Internet • Modelo cliente/servidor passou a ser implementado em 3 camadas • Arquitetura mantém 2 camadas lógicas • Regras de negócio da aplicação estão acopladas a interface • Acessado de um mesmo programa navegador
  9. 9. http://www.takenami.com.br Modelo WEB • Servidor possui as telas e regras de negócio da aplicação • Uma atualização (na interface ou nas regras de negócio) implica em atualizar somente o respectivo servidor • Clientes deixam de processar a informação e passam a solicitar e receber respostas do servidor
  10. 10. http://www.takenami.com.br Modelo WEB
  11. 11. http://www.takenami.com.br Modelo n Camadas (n-Tier) • Evolução das tecnologias para implementação de sistemas distribuídos • Necessidade de uma maior descentralização das camadas • Desacopla fisicamente a interface da aplicação das regras de negócio • Processamento pode ser distribuído para diversos servidores (hosts) • Regras de negócio são independentes da interface - serviços para diversos tipos de aplicação
  12. 12. http://www.takenami.com.br Modelo n Camadas
  13. 13. http://www.takenami.com.br Dispositivos, com exceção do navegador, precisavam acessar os componentes de negócio diretamente e para isto teriam que ser compatíveis com a tecnologia em que foi construído
  14. 14. http://www.takenami.com.br WebServices • Integração entre sistemas independente da tecnologia que foi desenvolvido • Componentes passam a disponibilizar seus métodos através de serviços • Utiliza a infra-estrutura da internet (TCP/IP) através de HTTP (como meio de transporte) assim como os navegadores • Requisições HTTP com conteúdo dos pacotes em XML/SOAP • Implementação no servidor WEB para receber o pacote XML/ SOAP e interpretar a informação • Implementação para transformar a resposta em XML/SOAP e devolver ao solicitante
  15. 15. http://www.takenami.com.br XML é utilizado para descrever um conjunto de dados especificado através de um padrão aberto e conhecido como SOAP (Simple Object Access Protocol)
  16. 16. http://www.takenami.com.br SOAP Request <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/> <S:Body> <ns2:adicionar xmlns:ns2="http://eai.pos.unijorge/"> <nome>Igor</nome> <cpf>123</cpf> <endereco>Av. X</endereco> <email>itakenami@gmail.com</email> <salario>1000.0</salario> </ns2:adicionar> </S:Body> </S:Envelope>
  17. 17. http://www.takenami.com.br SOAP Response <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:adicionarResponse xmlns:ns2="http://eai.pos.unijorge/"> <return>1</return> </ns2:adicionarResponse> </S:Body> </S:Envelope>
  18. 18. http://www.takenami.com.br SOA - Arquitetura Orientada a Serviços • Reuso de componentes (serviços) • Centralização dos processos de negócio disponibilizados através de serviços • Composição: Novos serviços são criados a partir de um determinado fluxo de serviços existentes • Foco em reúso e negócio • Facilita a integração de sistemas
  19. 19. http://www.takenami.com.br Aplicação WEB • Projetada para navegação por documentos no formato HTML • Código de formatação de páginas (HTML) amarrado a código do sistema • Modelo síncrono (Cliente/Servidor/Cliente) • Perda de contexto • Web 1.0 - Super valorização das empresas que não existiam fisicamente - Bolha
  20. 20. http://www.takenami.com.br Web 2.0 • Plataforma para utilização de serviços WEB com foco no usuário e usabilidade • Navegação (em diversos formatos) e utilizando diversas tecnologias • Ajax - Asynchronous Javascript And XML - Requisição sob demanda - Modelo assíncrono - Parte do processamento no cliente (Javascript) • Novos formatos de integração entre sistemas: REST e JSON
  21. 21. http://www.takenami.com.br REST • Transferência de Estado Representacional (Representational State Transfer) • Tese de doutorado escrita por Roy Fielding em 2000 - um dos principais autores da especificação do HTTP • Utilizado para fazer integração entre sistemas, assim como os Web Services
  22. 22. http://www.takenami.com.br Significado prático de REST ? Descreve qualquer interface web que utiliza XML/JSON e HTTP sem as abstrações dos protocolos baseados em trocas de mensagem
  23. 23. http://www.takenami.com.br Exemplo de REST
  24. 24. http://www.takenami.com.br Arquitetura REST • Utiliza o protocolo HTTP não só como transporte, mas como parte de sua especificação • Arquitetura baseado em requisições HTTP sem estado (stateless) • Cada mensagem HTTP contém toda a informação necessária para o pedido • Define um pequeno conjunto de operações como POST, GET, PUT e DELETE • Sintaxe universal para identificação dos recursos
  25. 25. http://www.takenami.com.br JSON • JavaScript Object Notation. Formato leve para descrição de dados • Subconjunto da notação de objeto de JavaScript - seu uso não requer Javascript exclusivamente • Alternativa ao XML para descrição de dados • Parse nativo em Javascript (eval)
  26. 26. http://www.takenami.com.br { "id":1, "autor":"Jorge Amado", "livros":[ {"titulo":"Tieta do Agreste","ano":1977}, {"titulo":"Tocaia Grande","ano":1984} ] }
  27. 27. http://www.takenami.com.br Formato JSON { "id":1, "autor":"Jorge Amado", "livros":[ {"titulo":"Tieta do Agreste","ano":1977}, {"titulo":"Tocaia Grande","ano":1984} ] }
  28. 28. http://www.takenami.com.br Dúvidas ?

×