70
Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços Aécio Costa

Conceitos Básicos sobre Sistemas Web: Arquitetura e …aeciocosta.com.br/wp-content/uploads/FG/Projeto de Sistemas na... · Conteúdo é criado dinamicamente por scripts do lado

Embed Size (px)

Citation preview

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Aécio Costa

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

O que é Arquitetura?

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

Arquitetura em 2 Camadas

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

Arquitetura Cliente/Servidor3 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 funcionamento da aplicação.

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Arquitetura Cliente/Servidor4 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

Uso do Conceito de Thin Client

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

E como funciona a Web?

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Arquitetura Básica da Web

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

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.

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Método GET

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.

38

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Cookies - Exemplo

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

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

Servidores Web

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.

Tecnologias do Ambiente Web

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Tecnologias Web?

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

SOA Service Oriented Architecture

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

61

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

Modelo Tradicional

62

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços

SOA

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

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.