Upload
truongnga
View
214
Download
0
Embed Size (px)
Citation preview
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
ServidoresSão equipamentos com maiorpoder de processamento e armazenamento.
ClientesGeralmente 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 pelo Cliente.
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
Lógica do Negócio
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
ApresentaçãoO 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ócioSã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
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 funcionamento da aplicação.
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
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.
Dados: Servidor de Banco de Dados, com todas as informações.
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 ProtocolUm 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.
RequestFormadas e enviadas por um Cliente HTTP.
ResponseRespostas são formadas e retornadas por um servidor após a requisição.
A porta de comunicações onde o servidor aguarda requisições é, por default, a porta de serviços TCP/IP de número 80.
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.
www.cesar.org.br > 200.255.126.219
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.
80, 8080, 5433 e etc.
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
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çãoGET 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.
CONNECT Comunicação com servidores Proxy.
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 maiscomuns 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; Um cookie, pequeno arquivo ou string (4 KB no máximo) é enviado.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Campos de um Cookie
Campo DescriçãoDomain 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.
Assim o navegador confirma que os servidores estão enviando dados fieis a respeito de seu domínio.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Sessões
Como http usa conexões stateless. Send Request
Response and Close Connection
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; ONDE encontrá-lo.
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
URL - Uniform Resource Locator
protocolo://maquina:porta/recurso
http://www.dominio.com.br/teste/minha/pagina/texto.html
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; Formato não suportado. (.rar e etc).
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
x-application/java .class
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.
Estático Dinâmico
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços
Entendendo o Funcionamento de WebServers.
Exercício: Instalar Apache Server, tomcat ou Xampp.
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).”
Austin et al. (2002)
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.
ExternosConectados a mais de um dom ínio ampliando as fronteiras da
condução de negócios através da Internet.
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 aplicações Web no browser.
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
Lado do Servidor
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 SOA não é uma ferramenta de produtividade
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
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”
http://csrc.nist.gov/groups/SNS/cloud-computing/
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
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.
Calendar Planilhas Documentos Apresentações Drive Gmail
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 que controla a nuvem.