Conceitos Básicos sobre Sistemas
Web: Arquitetura e Servi
ços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
“Arquitetura é antes de mais nada construção, mas,
construção concebida com o propósito primordial
de ordenar e organizar o espa ç o para
determinada finalidade e visando a determinada
intenção.”
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Arquiteturas em Aplicações
Cliente/Servidor
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Servidores
São equipamentos com maior
poder de processamento e armazenamento.
Clientes
Geralmente microcomputadores PCs ligados em rede.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Cliente
Inicia e termina as conversa ç õ es com os Servidores, solicitando serviços;
Não se comunica com outros Clientes;
Normalmente respons á vel por receber e enviar dados em uma
comunicação com o usuário;
Torna a rede ‘transparente’ ao usuário; Hardware: pode ser um micro simples; Software: tem início e fim definido.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Servidor
Recebe e responde a solicitações dos Clientes; Presta serviços distribuídos;
Atende a diversos Clientes simultaneamente;
Hardware: exige máquinas mais robustas, com grande capacidade de
processamento;
Software: processo sempre em execução, aguardando ser chamado
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Foram utilizadas no in í cio da implanta ç ã o do modelo Cliente/ Servidor.
Aqui, a aplicação Cliente responde pelas seguintes funções:
Apresentação
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Apresentação
O c ó digo que gera a interface vis í vel do programa faz parte da aplica ç ão Cliente. Todos os formulários, menus e demais elementos visuais nele estão contidos. Então uma alteração na interface do programa requer a geração de uma nova versão para todos os computadores.
Lógica do Negócio
S ã o as regras que definem como os dados ser ã o acessados e processados. Toda a L ó gica do Neg ó cio fica no Cliente. Quando o programa Cliente é instalado, são instaladas todas as regras de acesso ao banco de dados.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Características
É necess á ria uma nova vers ã o do programa cada vez que altera ç ões ocorrerem e as regras mudarem.
Também é necessário que todos os computadores que estejam com a versão anterior recebam a nova versão, mesmo que sejam centenas ou milhares de micros.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Arquitetura Cliente/Servidor
3 Camadas
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Características
Retira as Regras do Neg ó cio do cliente e as centraliza em um determinado ponto, o qual é chamado de servidor de aplicações:
O acesso ao Banco de Dados é feito através das regras contidas no Servidor de Aplicações.
Facilidade de atualização das regras de negócio, pois estão centralizadas em um único ponto.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Características
As Regras do Neg ó cio (l ó gica) foram deslocadas para o Servidor de
Aplicações;
Todo o acesso do cliente ao Banco de Dados é feito de acordo com as
regras contidas no Servidor de Aplicações. Não é possível o acesso ao Banco de Dados diretamente, somente atrav é s dos recursos do Servidor de Aplicações;
No Servidor de Banco de Dados reside toda informação necessária para o
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Arquitetura Cliente/Servidor
4 Camadas
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Idéia Básica
Retirar a apresentação do cliente e centralizá-la em um determinado ponto, o qual na maioria dos casos é um Servidor web.
Qual o avanço?
O cliente deixa de existir como um programa que precisa ser instalado em cada micro. O acesso à aplicação é feito através de aplicativos “genéricos” chamados de Navegador.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Cliente: Navegador
Apresentação: Servidor Web, onde serão feitas as alterações de
interface
Lógica (Regras do Negócio): Servidor de Aplicações, onde serão
feitas as alterações nas regras do negócio, quando necessárias.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
A Web baseia-se em:
Apresentação
Protocolo Serviço
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Apresentação
Softwares que interpretam conte ú dos vindos da Internet e exibindo-os para o usuário.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Protocolo
“ Conven ç ã o que controla e possibilita uma conex ão, comunica ç ã o, transfer ê ncia de dados entre dois sistemas computacionais.”
HTTP - Hypertext Transfer Protocol
Um dos principais meios de comunica ç ã o entre um browser e um servidor Web.
25
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
A comunica ç ã o em HTTP é feita atrav é s de mensagens que podem ser requisições ou respostas.
Request
Formadas e enviadas por um Cliente HTTP.
Response
Respostas são formadas e retornadas por um servidor após a requisição.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Serviços
Protocolo IP
Um dos mais importantes protocolos da arquitetura TCP/IP, ele permite a localização de um computador na internet, através de um conjunto de dígitos chamado de endereço IP.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Serviços
DNS
Facilita o acesso a computadores da Internet e evita a necessidade de se decorar números IP;
Nesse servi ç o guarda-se tabelas que associam o nome de uma máquina à um endereço IP.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Serviços
Portas
Maneira na qual é poss ível oferecer diversos servi ç os diferentes em uma mesma máquina.
As portas são identificadas por números.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Serviços
Serviço Web
A World Wide Web é um servi ç o TCP/IP baseado no Protocolo HTTP;
Serviço Web é um serviço que provê acesso (HTTP) aos seus clientes para transferência de conteúdos.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Métodos de Requisição HTTP
A versão HTTP 1.1 define 7 métodos básicos. GET HEAD POST PUT DELETE TRACE OPTIONS
Um servidor Web mínimo, que suporte HTTP 1.1, deve ser capaz de entender pelo menos os métodos GET e HEAD.
32
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Método Descrição
GET Requisita dados de um recurso espec ífico, podem enviar informa ç õ es que s ã o vis í veis na URL.
POST Submete dados para serem processados por um recurso espec í fico. Enviam informa ç õ es n ão visíveis na URL.
HEAD Mesma requisi ç ã o de um GET, mas retorna apenas cabeçalhos HTTP.
PUT Faz Upload de um recurso para o Servidor. DELETE Deleta um recurso específico.
OPTIONS Retorna os m é todos HTTP que o servidor suporta.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
34
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Códigos de Status no HTTP
C ó digos que informam ao cliente HTTP o status do servidor ap ó s a requisição.
Os códigos mais comuns são:
Código Status
200 – OK A requisição foi completada com sucesso
204 – No Response Servidor recebe a requisi ç ão mas n ão a informaç ões para serem enviadas de volta.
400 – Bad Request O pedido n ã o p ô de ser entregue devido a sintaxe incorreta.
401 – Unauthorized Quando a autenticação é possível, mas não conseguiu ou ainda não foram fornecidos.
403 – Forbidden O pedido foi um pedido legal, mas o servidor est á recusando a responder a ela.
404 – Not Found O recurso requisitado não foi encontrado. 405 – Método não
permitido
Foi feita uma solicita ç ã o de um recurso usando um método de pedido não é compatível com esse recurso. 500 – Internal Error O servidor encontrou uma condição inesperada.
35
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Cookies
Grupo de dados trocados entre o servidor de p á ginas e o navegador colocado em um ficheiro criado no computador do usuário.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Cookies
Usuário solicita uma página na Web;
Servidor fornece informações adicionais acompanhando a página solicitada;
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Campos de um Cookie
Campo Descrição
Domain Informa de onde veio o Cookie
Path Caminho na estrutura de diret ó rios do servidor que identifica as partes da arvores de arquivos do servidor que podem usar o cookie. Content Armazena uma chave e valor definida pelo servidor, esse campo cont é m o conte ú do do Cookie.
Expires Campo que permite o cookie ser persistido, assim é poss í vel informar uma data que o mesmo irá expirar.
Secure Indica se o Cookie é seguro ou não.
38
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Sessões
Como http usa conexões stateless. Send Request
40
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Sessões
Sessões permitem usuários manterem estado entre várias conexões.
O servidor gera um session ID que é enviado para o cliente na primeira resposta, assim o Cliente reenvia esse session ID sempre que for fazer uma nova requisição.
41
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
URL - Uniform Resource Locator
Todas as comunicações na plataforma Web utilizam a sintaxe chamada URL para localizar os recursos que são transferidos. Contém duas informações essenciais:
COMO transferir o objeto;
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
URL - Uniform Resource Locator
protocolo://maquina:porta/recurso
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Tipos MIME - Multipart Internet Mail Extensions
Tipo de dado recebido pelo browser para representação da informação na tela.
Imagem;
Arquivo HTML;
44
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Tipos MIME - Multipart Internet Mail Extensions
Formato de um tipo MIME: tipo/subtipo
Tipo Subtipo
image/jpg .jpe, .jpg, .jpeg
text/html .html, .htm, .jsp, .asp, .shtml
text/plain .txt
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Servidor Web
Software responsável por aceitar pedidos e gerar respostas HTTP.
Esse pedidos geralmente s ã o feitos por Browsers e se referem a páginas HTML.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Servidor Web
Modelo de Entrega de Páginas:
Estáticos
Conteúdo vem diretamente de um ficheiro no servidor; Não utiliza scripts para geração de conteúdos.
Dinâmicos
Conteúdo é criado dinamicamente por scripts do lado do servidor para então ser retornado para o cliente.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Entendendo o Funcionamento de WebServers.
50
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Web Server x Web Service
Web Service:
“ Uma aplica ç ã o auto-contida, identificada por um URI (Uniform Resource Identifier), cujas interfaces e ligações são definidas, descritas e localizadas por artefatos que utilizam a linguagem XML (Extensible Markup Language).”
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Web Service permite...
Novas aplicações interajam com as já existentes;
Sistemas desenvolvidos em plataformas diferentes sejam compatíveis; Serviços interactivos da Web estejam disponíveis para qualquer outra
aplicação (Web ou não).
Transporte de dados feito pelo HTTP. Padrões mais famosos:
SOAP - Simple Object Access Protocol REST - Representational State Transfer
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Web Services podem ser:
Internos
Estão relacionados a um único domínio de segurança, geralmente a própria empresa ou uma Intranet.
Externos
Conectados a mais de um dom í nio ampliando as fronteiras da condução de negócios através da Internet.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
55
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Tecnologias de Apresentação
Se destinam à formatação e estruturação das páginas Web; Podem ser usadas também para construir a interface de
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Tecnologias Interativas
Permitem o desenvolvimento de aplica ç õ es e p á ginas com um alto nível de interatividade com o usuário.
Podem ser executadas:
Lado do Cliente
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
SOA
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
“ Arquitetura proposta para interoperabilidade de sistemas por meio de conjunto de interfaces de servi ç os fracamente acoplados, onde os serviços não necessitam de detalhes técnicos da plataforma dos outros serviços para a troca de informações ser realizada.”
(e-ping v.3,2007)
Os componentes da arquitetura SOA representam uma cole ç ã o de serviços que se comunicam através da troca de mensagens XML.
59
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
O que SOA não é:
SOA não é uma tecnologia SOA não é um produto
SOA não é um projeto de TI SOA não é um software
SOA não é um “framework” SOA não é uma metodologia
SOA não é uma solução de negócio SOA não é um middleware
SOA não pode ser comprada
60
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Por que é importante?
“42% dos orçamentos de TI – apenas para fazer “coisa se conectar com coisa”.
Gartner
Reutilização dos Serviços Baixo acoplamento
Abstraem Lógica
São capazes de se compor (Modularização) São autônomos
61
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
62
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
63
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Arquitetura e Serviços
Cloud Computing
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Cloud Computing
“ Modelo que permite acesso ub í quo, conveniente, sobre demanda, para a rede ou a um pool de recursos computacionais (rede, storage, servidor, aplica ç õ es, servi ç os) que podem ser rapidamente provisionados e disponibilizados com um esforço mínimo de gerenciamento do provedor de serviços”
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
O Surgimento da Cloud Computing interfere na maneira que projetamos sistemas na internet?
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Nas nuvens tudo passa a ser visto como um componente de uma solução.
Ambientes customizados e pré-prontos para funcionar.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
SaaS
O consumidor usa a aplica ç ã o, mas n ã o controla o sistema operacional, hardware e infra-estrutura de rede na qual esta funcionando.
69
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
PaaS
O consumidor usa o ambiente do hosting para as suas aplicações. O usu á rio controla a aplica ç ã o que roda no ambiente (e possivelmente tem algum controle sobre o ambiente), mas n ã o controla o sistema operacional, hardware e rede. Tipicamente a plataforma vira um framework.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
IaaS
O consumidor usa “os recusros fundamentais da computação” como consumo de processamento, storage, componentes de rede e middleware. O consumidor controla o sistema
operacional, storage, deploy de aplicações, ….. Mas não controla a infra-estrutura