You are on page 1of 44

Desenvolvimento de Sistemas

Corporativos
Aula 1.3 Motivao de DSC
Viso geral de Arquiteturas
Prof. Bruno Moreno
bruno.moreno@ifrn.edu.br
Motivao
Few companies have the luxury of reinventing
themselves when they compete on Internet time
Steve Jobs
Tratar de negcios nos tempos atuais envolve
dois tipos de presses:
Presses de negcio;
Presses tecnolgicas

2
Motivao
Few companies have the luxury of reinventing
themselves when they compete on Internet time
Steve Jobs
Tratar de negcios nos tempos atuais envolve
dois tipos de presses:
Presses de negcio;
Presses tecnolgicas

3
Presses de Negcio
As empresas devem implementar novos sistemas
muito rapidamente;
Muitos sistemas de empresas devem migrar para
Internet/Intranet/Extranet
Existe diferena entre um sistema web e um sistema
corporativo!!!
Os sistemas corporativos devem ser utilizados
como vantagem estratgica;
Sistema corporativos devem acompanhar as
mudanas nos negcios
Fuses e aquisies.
4
Presses de Negcio
Resultado: tem muito mais software a fazer,
muito mais rapidamente;
Como faz-lo com o mnimo de custos possvel?
Existem tecnologias que podem ajudar nesse
sentido;
A TI deve ser usada estrategicamente:
Processos de

TI Negcio

5
Presses de Negcio
A maioria das pequenas empresas no
possuem planejamento estratgico de negcios
O planejamento estratgico de TI ainda mais
improvvel;
Portanto, um desafio da TI alocar e gerenciar
os recursos de TI adequadamente
Isso involve a implementao e implantao de um
sistema corporativo.

6
Motivao
Few companies have the luxury of reinventing
themselves when they compete on Internet time
Steve Jobs
Tratar de negcios nos tempos atuais envolve
dois tipos de presses:
Presses de negcio;
Presses tecnolgicas

7
Presses Tecnolgicas
As necessidades de negcio e a tolerncia dos
usurios tm criado um mercado de sistemas
ainda mais complexos;
Problemas de complexidade:
Pesquisas mostram que cerca de 80% dos grandes
projetos so fracassados por causa dos requisitos!
O processo de desenvolvimento escolhido tambm
pode ser um problema a ser considerado;
A ausncia de recursos de TI para lidar com a
complexidade foi um problema por um longo
perodo;
8
Motivao
Em resumo: o que se quer com o uso
estratgico da TI em uma corporao?
Cenrio sem uso estratgico de TI Cenrio com uso estratgico de TI
Atendimento do usurio Atendimento do cliente
Perspectiva interna Perspectiva externa
Esforo pessoal Esforo repetitivo e medido
Foco na tecnologia Foco no processo
Processos ad-hoc Processos racionalizados
Comportamento reativo Comportamento proativo
Viso fragmentada Viso integrada
Sistema manual Sistema automatizado
Gestor de operaes Gestor de servios

9
Desafios dos SC
Flexibilidade
Novos requisitos devem ser satisfeitos rapidamente;
Adaptabilidade
Fcil adaptao a mltiplus usurios, vises e alternativas de
realizao de servios de TI;
Manutenabilidade
Fcil atualizao, minimizando o impacto da maioria de suas
mudanas;
Reusabilidade
Possibilitando rapidamente montar aplicaes nicas e dinmicas;
Aproveitamento do legado
Possibilitando reusar a funcionalidade de sistemas legados em novas
aplicaes;
10
Desafios dos SC
Melhor interoperabilidade
Possibilitando integrar 2 aplicaes executando em plataformas
diferentes;
Melhor escalabilidade
A aplicao deve satisfazer vrios volumes de transao;
Menor tempo de desenvolvimento
Atendendo s necessidades mais imediatas e com baixo oramento;
Isso requer maior produtividade do programador;
Melhor robustez
As solues devem ser com menos defeitos, maior confiabilidade e
disponibilidade;
Menor risco
Tentando diminuir o risco de projetos fracassados;
11
Solues
Utilizar padres de projeto;
Projetar a aplicao em mltiplas camadas;
No reinventar a roda: use frameworks.

12
Solues
Utilizar padres de projeto
Fizemos um breve resumo na aula passada;
Projetar a aplicao em mltiplas camadas;
No reinventar a roda: use frameworks.

13
Solues
Utilizar padres de projeto;
Projetar a aplicao em mltiplas camadas
Introduzimos na aula passada...
No reinventar a roda: use frameworks.

14
Arquiteturas em Camadas
Arquitetura centralizada;
Arquitetura em 2 camadas;
Arquitetura em 3 camadas;
Arquitetura distribuda em n camadas;

15
Arquiteturas em Camadas
Arquitetura centralizada;
Arquitetura em 2 camadas;
Arquitetura em 3 camadas;
Arquitetura distribuda em n camadas;

16
Arquitetura Centralizada
Dominante at a dcada de 80;
Era conhecida como arquitetura corporativa;
Uso de um computador central (mainframe);
Problema bsico: interface no amigvel;

17
Arquiteturas em Camadas
Arquitetura centralizada;
Arquitetura em 2 camadas;
Arquitetura em 3 camadas;
Arquitetura distribuda em n camadas;

18
Arquitetura em 2 camadas
Sistemas em camadas surgiram para:
Melhor aproveitar os PCs da empresa;
Oferecer sistemas com interfaces grficas amigveis;
Integrar o desktop e os dados corporativos;
i.e. permitiram aumentar a escalabilidade dos SCs;
Os primeiros sistemas cliente-servidor eram de
duas camadas:
Camada cliente trata da lgica de negcio e da UI;
Camada servidor trata dos dados (usando um SGBD).

19
Arquitetura em 2 camadas
Sistemas em camadas surgiram para:
Melhor aproveitar os PCs da empresa;
Oferecer sistemas com interfaces grficas amigveis;
Integrar o desktop e os dados corporativos;
i.e. permitiram aumentar a escalabilidade dos SCs;
Os primeiros sistemas cliente-servidor eram de
duas camadas:
Camada cliente trata da lgica de negcio e da UI;
Camada servidor trata dos dados (usando um SGBD).

20
Arquitetura em 2 camadas
Problemas da arquitetura em 2 camadas:
Falta de escalabilidade
Conexes a bancos de dados;
Problemas de manuteno
Mudanas na lgica de aplicao forava instalaes;
Dificuldade de acessar fontes heterogneas
Sistemas legados;

Diante desses e outros problemas, surgiu a


arquitetura cliente-servidor em 3 camadas!

21
Arquiteturas em Camadas
Arquitetura centralizada;
Arquitetura em 2 camadas;
Arquitetura em 3 camadas;
Arquitetura distribuda em n camadas;

22
Arquitetura em 3 camadas
Vimos na aula passada: MVC
Camada de apresentao;
Camada de aplicao (business logic);
Camada de dados.

23
Arquitetura em 3 camadas
Problemas de manuteno foram reduzidos:
Mudanas na camada de aplicao no requer
mudanas na camada de viso;
Mudanas na camada de dados no requer
mudanas na camada de viso;
As camadas so lgicas:
Fisicamente, vrias camadas podem executar na
mesma mquina; ou
Existe separao fsica de camadas (e.g. arquitetura
web);

24
Arquitetura em 3 camadas
Problemas da arquitetura em trs camadas:
A instalao dos programas nos clientes cara
Soluo: o browser passa a ser o cliente universal!
Suporte dispositivos mveis
Isso pode gerar problemas de manuteno;
Desenvolver aplicaes multicamadas distribudas
difcil, pois:
Tem que implementar persistncia (mapeamento entre
paradigmas, e.g. OO e Relacional);
Tem que implementar tolerncia a falhas;
Tem que implementar gernciia de transaes;
Tem que implementar balanceamento de carga.
25
Arquitetura em 3 camadas
Problemas da arquitetura em trs camadas:
A instalao dos programas nos clientes cara
Soluo: o browser passa a ser o cliente universal!
Suporte dispositivos mveis
Isso pode gerar problemas de manuteno;
Desenvolver aplicaes multicamadas distribudas
difcil, pois:
Tem que implementar persistncia (mapeamento entre

Oparadigmas,
uso de e.g.umOOservidor
e Relacional);de aplicao
como um middleware faz esses servios
Tem que implementar tolerncia a falhas;

Tem que implementar gernciia de transaes;


serem implementados.
Tem que implementar balanceamento de carga.

26
Arquiteturas em Camadas
Arquitetura centralizada;
Arquitetura em 2 camadas;
Arquitetura em 3 camadas;
Arquitetura em 3/4 camadas web-based;
Arquitetura distribuda em n camadas;

27
Arquitetura em n camadas

28
Modelo cliente-servidor
O desenvolvimento de sistemas corporativos
utiliza o modelo cliente-servidor:
Cliente requisita
Servidor responde
Servidor atende a diversos clientes

29
Clientes
Pode ser navegadores, aplicativos para computadores ou
smartphones;
Funcionamento mnimo:
Inicia a comunicao com o servidor WEB, solicitando um
documento ou informao.
REQUEST;
Aguarda a resposta do servidor;
Transforma a informao obtida em um documento a ser
apresentado ao usurio

RESPONSE;
Linguagens:
HTML, CSS, Javascript;
Aplicativos em JAVA, Android ou IOS;
30
Servidores
Programas que aguardam solicitaes dos
clientes (passivos)
Executa em um processo que escuta em uma
porta especfica (Exemplo: 8080);
Uma vez que chegam mensagens nessa porta, o
SO as redireciona para o servidor;
Para cada mensagem recebida, o servidor:
Analisa a solicitao enviada pelo cliente;
Realiza o processamento da solicitao e envia a
resposta ao cliente.

31
URL
usada para identificar unicamente um recurso na
Internet;
Sintaxe:
PROTOCOLO://SERVIDOR:PORTA/ARQUIVO_OU_PAS
TA
PROTOCOLO: Define o tipo de protocolo.
Ex.: http, ftp, file
SERVIDOR: O nome de domnio ou endereo IP;
PORTA: A porta em que o servidor est escutando as
requisies;
ARQUIVO_OU_PASTA: o nome ou a localizao do
recurso solicitado.
32
HTTP
HTTP o acrnimo de HyperText Transfer
Protocol ou Protocolo de Transferncia de
Hypertexto;
um dos protocolos mais populares da
Internet;
um protocolo cliente-servidor;
sem estado, ou seja, a requisio atual no
sabe o que foi feito nas passadas;
Permite que qualquer tipo de dados seja
trafegado.
33
HTTP
Funcionamento

34
HTTP
Normalmente, servidores enviam instrues
para os clientes escritas em HTML
HyperText Markup Language ou Linguagem de
Marcao de Hipertextos;
O HTML diz ao browser como apresentar o
contedo ao usurio
Lembre-se das tags em HTML!!!

O HTML parte da resposta


HTTP
35
HTTP
O HTML parte da resposta HTTP

Cabealho HTTP

A tag <html> indica pro browser que o


contedo retornado pelo HTTP um HTML.

O corpo HTTP
Quando o browser encontra uma tag
<IMG>, gerada uma solicitao para
obter a imagem descrita na tag.

36
HTTP
A solicitao em HTTP pode ser feito de acordo
com dois mtodos bsicos:
GET;
POST;
O nome do mtodo informa ao servidor o tipo
de solicitao que est sendo feita;
Existem outros mtodos, mas o GET e o POST
so os utilizados com mais frequncia
HEAD, TRACE, PUT, DELETE, OPTIONS e
CONNECT.
37
O mtodo GET
o mtodo mais simples do HTTP
Seu trabalho principal pedir ao servidor algum
recurso;
HTML, JPEG, PDF, etc;
possvel enviar dados com HTTP GET, mas:
Total de caracteres limitado;
No possui segurana: os dados enviados so
anexados URL;

38
O mtodo GET
O que enviado ao servidor em um GET?
A verso do protocolo
O mtodo Caminho para Parmetros que o browser t
A linha de HTTP encontrar o recurso do GET solicitando.
solicitao

Os headers
da solicitao

39
O mtodo POST
uma solicitao que permite, ao mesmo
tempo, enviar algo
Dados de um formulrio, por exemplo;
O POST utilizado para solicitaes complexas
para o servidor;
Os dados enviados ao servidor so chamados
corpo da mensagem ou payload
Esses dados podem ser extensos...

40
O mtodo POST
O que enviado ao servidor em um POST?
A verso do protocolo
O mtodo Caminho para o que o browser t
HTTP recurso no servidor solicitando.

A linha de
solicitao

Os headers
da solicitao

Desta vez os parmetros esto no final do


O corpo da corpo e, portanto, no ficam limitados como
mensagem ocorre no GET.
(payload)
41
A resposta HTTP
o que o servidor envia de volta ao cliente;
composta pelo header e pelo corpo
Header
Informa ao browser o protocolo utilizado;
Informa se a operao obteve xito;
Informa o tipo de contedo includo no corpo;
Corpo
Possui o contedo a ser exibido pelo browser.

42
Sim e?
Por que estamos revisando/estudando
arquiteturas em camadas e o modelo cliente-
servidor?
Lembre-se: um sistema
corporativo JEE um sistema
web!

43
Referncias
Notas de aula do Prof. Marcelo Fernandes,
IFRN Natal Central;
Notas de aula do Prof. Fellipe Aleixo, IFRN
Natal Central;
Notas de aula do Prof. Everton Cavalcanti,
UFRN DIMAP;
Notas de aula do Prof. Jacques Sauv, UFCG
DSC.

44

You might also like