Introdução a Arquitetura de Sistemas

28
http://www.takenami.com.br Introdução a Arquitetura de Sistemas Igor Takenami Versão 1.1 [email protected] http://twitter.com/itakenami

description

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

Transcript of Introdução a Arquitetura de Sistemas

Page 1: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Introdução a Arquitetura de Sistemas

Igor Takenami

Versão 1.1

[email protected]://twitter.com/itakenami

Page 2: Introdução a Arquitetura de Sistemas

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

Page 3: Introdução a Arquitetura de Sistemas

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

Page 4: Introdução a Arquitetura de Sistemas

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

Page 5: Introdução a Arquitetura de Sistemas

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

Page 6: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Fat Client

Page 7: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Thin Client

Page 8: Introdução a Arquitetura de Sistemas

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

Page 9: Introdução a Arquitetura de Sistemas

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

Page 10: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Modelo WEB

Page 11: Introdução a Arquitetura de Sistemas

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

Page 12: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Modelo n Camadas

Page 13: Introdução a Arquitetura de Sistemas

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

Page 14: Introdução a Arquitetura de Sistemas

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

Page 15: Introdução a Arquitetura de Sistemas

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)

Page 16: Introdução a Arquitetura de Sistemas

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>[email protected]</email> <salario>1000.0</salario> </ns2:adicionar> </S:Body></S:Envelope>

Page 17: Introdução a Arquitetura de Sistemas

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>

Page 18: Introdução a Arquitetura de Sistemas

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

Page 19: Introdução a Arquitetura de Sistemas

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

Page 20: Introdução a Arquitetura de Sistemas

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

Page 21: Introdução a Arquitetura de Sistemas

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

Page 22: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Descreve qualquer interface web que utiliza XML/JSON e HTTP sem as abstrações dos

protocolos baseados em trocas de mensagem

Significado prático de REST ?

Page 23: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Exemplo de REST

Page 24: Introdução a Arquitetura de Sistemas

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

Page 25: Introdução a Arquitetura de Sistemas

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)

Page 26: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

{ "id":1, "autor":"Jorge Amado", "livros":[ {"titulo":"Tieta do Agreste","ano":1977}, {"titulo":"Tocaia Grande","ano":1984} ] }

Page 27: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Formato JSON

{ "id":1, "autor":"Jorge Amado", "livros":[ {"titulo":"Tieta do Agreste","ano":1977}, {"titulo":"Tocaia Grande","ano":1984} ] }

Page 28: Introdução a Arquitetura de Sistemas

http://www.takenami.com.br

Dúvidas ?