Title: Servidores de Aplica
1Servidores de Aplicações Web
- Uma Realidade
- O que são ?
- O que fazem ?
- Como funcionam ?
- Bancos de Dados
2Servidor de Aplicação Uma Realidade
- Atualmente, uma boa parte das empresas baseiam
seu funcionamento em um banco de dados, onde suas
transações são efetuadas e onde depositam todo o
seu lado informatizado.
3Servidor de Aplicação Uma Realidade
- Com a chegada da Internet, iniciou-se uma
verdadeira corrida contra o tempo, que resultou
no desenvolvimento de sites Web, puramente
estáticos e de necessária manutenção, nos quais
as organizações passaram a disponibilizar
informações sobre suas atividades.
4Servidor de Aplicação Uma Realidade
- Hoje, a Web é um dos meios mais poderosos de
comunicação, que tem provocado grandes impactos
em qualquer área de atuação profissional.
5Servidor de Aplicação Uma Realidade
- A medida que grandes corporações passaram a
colocar algumas de suas aplicações críticas na
Web, tornou-se crucial administrar os problemas
que o desenvolvimento nesta plataforma pode
ocasionar.
6Servidor de Aplicação Uma Realidade
- A Internet impôs um novo modelo de
desenvolvimento de aplicações, o desenvolvimento
de sistemas/aplicações Web.
7Servidor de Aplicação Uma Realidade
- Com o advento dos servidores de aplicações Web,
esse novo modelo de desenvolvimento possibilita a
criação e a distribuição de aplicações para a Web
cada vez mais complexas.
8Servidor de Aplicação Uma Realidade
- Alguns fatores foram preponderantes para que o
uso de servidores de aplicações se tornasse uma
realidade.
9Servidor de Aplicação Uma Realidade
- O primeiro fator é que a atual arquitetura de
software passou por uma evolução no seu projeto
antigamente o usuário interagia com um programa
monolítico que continha o código para gerenciar a
aplicação, os dados, a interface do usuário e a
comunicação.
10Servidor de Aplicação Uma Realidade
- Segundo fator
- Atualmente, existe uma programação totalmente
organizada, no que se refere às funcionalidades
citadas, a qual possibilita uma divisão bem clara
dessas partes no projeto de um software.
11Servidor de Aplicação Uma Realidade
- O segundo fator a favorecer o uso dos servidores
de aplicações é a evolução no projeto de
interação entre o usuário e os computadores, ou
seja a evolução da arquitetura cliente/servidor - - a arquitetura de duas camadas,
- - a arquitetura de três camadas.
12Servidor de Aplicação Uma Realidade
- O terceiro fator
-
- O amadurecimento da Internet, permitindo uma
rápida transmissão de mensagens entre
computadores de qualquer parte do mundo e
consequentemente, o rápido crescimento de
utilização da Web - O advento dos servidores de aplicações se encaixa
nesta evolução. -
13Lado Cliente Web
- O computador cliente utiliza o protocolo TCP/IP e
um browser para mostrar os dados e interagir com
o usuário e o servidor. - 1. Cliente com aplicações cliente/servidor
- convencional.
- 2. Cliente com aplicações baseadas na Web.
14Cliente com aplicações Cliente/Servidor
Tradicional
- Ao executar aplicações, uma máquina-cliente do
modelo cliente/servidor tradicional, roda um
software que é armazenado localmente, que é uma
parte da lógica da aplicação. - Alguma aplicação pode ter uma outra parte
armazenada e executada num servidor, mas a
maioria das aplicações estão no cliente.
15Cliente com aplicações Cliente/Servidor
Tradicional
- O servidor fornece os dados para a aplicação.
- Nenhum software adicional é necessário, além do
sistema operacional e o da própria aplicação.
16Cliente com aplicações cliente/servidor na Web
- O servidor Web fornece o código da execução,
assim como os dados para o cliente, quando
necessário. - O browser é a interface do usuário.
- O único software que o cliente necessita é o
browser, além do sistema operacional.
17Benefício das aplicações Web
- Não somente para o desenvolvimento de novas
aplicações, mas também na sua distribuição não
existe nada para instalar e para atualizar nas
máquinas-cliente. - Tudo para a Web, está no lado-servidor.
18 O Papel do Servidor de Aplicações
Lógica
Interface
Dados
Servidor Web
Servidor de Aplicações
BD
19No lado Servidor
- O protocolo TCP/IP mantém a comunicação.
- O servidor Web interage com o browser do usuário
no lado-cliente. - Um novo software é adicionado o servidor de
aplicações. - O servidor de aplicações interage com o banco de
dados e com arquivos HTML.
20No lado Servidor
- Um típico servidor Web, simplesmente provê e
retorna arquivos HTML estáticos. - O servidor de aplicação combina modelos, dados
oriundos de um banco de dados e outros elementos
para criar arquivos HTML, dinamicamente, para que
o servidor Web faça o download. - O servidor Web não deve saber que está capturando
nada além de texto baseado num arquivo HTML.
21Arquitetura Cliente/Servidor 3-camadas
Lógica
Dados
Interface
SQL ODBC JDBC
Servidor Web
Servidor De Aplicações
BD
HTML
Plugins
Templates
Componentes
Procedures Armazenadas
22Servidores de Aplicações Web
- São softwares que agem como intermediário entre
um servidor Web e uma base de dados. - Consequentemente, de uma forma lógica, entre um
browser (no cliente) e uma base de dados (no lado
servidor) que tem a informação desejada.
23Servidor HTTP
- Um servidor HTTP, não é um servidor de
aplicações. - A finalidade de um servidor HTTP é mapear uma URL
num arquivo físico. - Ele fica transformando as requisições do browser,
obtendo arquivos do disco e os enviando ao
browser.
24Servidor de Aplicações
- Um servidor de aplicações é responsável por
manter uma lista de serviços que podem ser
obtidos (como se fosse uma lista telefônica), e
prover um canal de comunicação entre esses
serviços e os clientes, sejam eles Web ou não.
25Servidor HTTP
- Normalmente, como parte dos serviços providos
roda a partir de um browser, existe também um
servidor HTTP repassando as requisições ao
servidor de aplicações.
26Servidores de Aplicações Web
- Os servidores de aplicações Web geram o processo
de ligação dos utilizadores de informação aos
dados onde estão armazenados. - Envolvem tecnologia orientada a objetos na forma
de objetos tradicionais e componentes de software.
27Servidores de Aplicações Web
- Objetos e componentes (nem todo componente é um
objeto) são softwares encapsulados e que podem
ser reutilizáveis. - O mundo dos servidores de aplicações baseia-se
fortemente na estrutura e nas interfaces bem
definidas dos objetos e dos componentes.
28Servidores de Aplicações Web
- Esta arquitetura rigorosa permite a
interoperabilidade entre os produtos de vários
fornecedores. - Fornecem a infra-estrutura de run time (tempo de
execução) e serviços necessários para implementar
aplicações ou componentes numa arquitetura de
várias camadas, que suportam a Web e outras
interfaces com o cliente.
29Servidores de Aplicações Web
- São partes de uma infra-estrutura que deve
permitir que os programadores Web construam
aplicações, que trabalhem com uma grande
variedade de hardware e softwares-cliente e que
possuam funcionalidades para serem integrados com
recursos existentes.
30Servidores de Aplicações Web
- Por outro lado, têm de ser de fácil utilização e
capazes de fornecer mais valor de desenvolvimento
do que produtos de midlleware (produtos separados
que servem de ligação entre duas aplicações).
31Servidores de Aplicações Web
- Devem proporcionar a construção de aplicações
mais elaboradas, que assegurem níveis aceitáveis
de integridade, confiabilidade, disponibilidade,
desempenho e segurança.
32Servidores de Aplicações Web
- O servidor de aplicação Web contém a lógica da
aplicação e situa-se entre o servidor Web e o
banco de dados. - Ele controla a conexão com o banco de dados em
função das requisições do browser.
33Servidores de Aplicações Web
- O ganho obtido com o servidor de aplicação é que
a Web (originariamente) é um sistema que não
preserva o estado, quando um cliente se conecta
nela. O protocolo HTTP que transporta HTML) é um
protocolo sem estado e o próprio servidor Web
(originariamente) é um servidor que não preserva
o estado de conexões.
34Servidores de Aplicações Web
- Web é sem estado (stateless)
- Ou seja, o servidor Web esquece a primeira
interação com o banco de dados, mesmo se cliente
retornar apenas alguns segundos depois.
35Aquitetura Web Comunicação com outros
elementos
- Cada um dos componentes desta arquitetura
(servidor Web, servidor de aplicações e banco de
dados) pode comunicar-se com outros elementos. - A comunicação com esses outros elementos não é
geralmente baseada em padrões abertos.
36Arquitetura Web Comunicação com outros
elementos
- Entretanto, essa comunicação é definida pelo
produto (servidor de aplicação específico) que
será usado. - Elementos adicionais para a comunicação podem ser
providos pelos próprios fornecedores dos produtos
envolvidos ou podem ser desenvolvidos por
terceiros.
37BD e Servidores de Aplicações Acesso ao BD
- Independentemente do servidor de aplicações
específico, existem três tipos de conexões a
banco de dados - - o acesso nativo,
- - o acesso via ODBC (Open Database
-
Connectivy), - - o acesso via JDBC (Java Database
Connectivy). - Para cada tipo de acesso, haverá algumas
características que definirão como o acesso
deverá ser feito. -
38BD e Servidores de Aplicações Acesso Nativo
- Os bancos de dados de acesso nativo são os bancos
de dados textuais e proprietários, isto é aqueles
que só podem ser acessados por programas de uma
linguagem própria. - BDs antigos e com diversas limitações quanto ao
acesso, mas que permitem que programas sirvam de
intermediários (gateways) entre eles e as
aplicações Web.
39BD e Servidores de Aplicações Acesso via ODBC
- Os BDs com acesso via ODBC (coleções de funções e
estruturas de dados escritas na linguagem C)
correspondem à grande maioria existente no
mercado. - ODBC é uma maneira fácil de se obter a
comunicação com o banco de dados, mas existe a
limitação de que a máquina com ODBC (no cliente
ou no servidor), seja uma máquina Windows.
40BD e Servidores de Aplicações Acesso JDBC
- Os bancos de dados mais modernos possuem acesso
via JDBC, que é uma solução orientada a objetos,
com vantagem de poder funcionar em qualquer
sistema operacional que possua uma JVM (Java
Virtual Machine). - JDBC encapsula as funcionalidades de um BD em um
conjunto de classes que permitem o acesso nativo
ao banco e a comunicação via SQL.
41Conclusões
- O momento de disponibilizar informações puramente
estáticas terminou. - O momento agora é de usufruir as vantagens que a
Internet e a Web podem proporcionar no
desenvolvimento de aplicações. - Um novo modelo de desenvolvimento de aplicações,
baseado em servidores de aplicações Web, é agora
existente.
42Conclusões
- Ao deixar claro o nível de separação entre o
servidor Web e a camada de acesso aos dados
(servidor de aplicação), podemos suprir a
necessidade de quem deseja disponibilizar
aplicações Web. - Ao crescerem em complexidade, essas aplicações,
passam a requerer melhor gerenciamento, ao
contrário de aplicações simples, que podem se
desenvolvidas através de linguagens de scripts,
serem menos dispendiosas e de mais fácil
implementação.
43Conclusões
- Ambiente computacional capaz de reduzir o TCO
(Total Cost of Ownership) nas empresas. - - máquinas clientes não precisam de alto
- poder de processamento e armazenamento,
-
- - economia com licenças de utilização de
- softwares.
44Conclusões
- Atualizações do sistema/aplicação só precisa ser
feita no servidor de aplicação e automaticamente
é atualizada para todos que acessarem tal
aplicação.
45Conclusões
- O desenvolvimento Web pode assemelhar-se ao
desenvolvimento de sistemas usando ferramentas
GUI, porém com maior flexibilidade, pois a
aplicação pode ser acessada remotamente sem que
haja a necessidade de instalar um
software-cliente no usuário final.
46Conclusões
- O papel principal de um servidor de aplicação é
dar suporte a sites Web que usem dados dinâmicos,
ou seja, dados oriundos de um banco de dados,
arquivos- modelos, scripts e de outros elementos,
para criar arquivos HTML dinamicamente. - O servidores de aplicações provêem a informação
formatada para ser entregue aos usuários.
47Produtos no Mercado
- Servidor de Aplicações Web Integrator da ITX
Information Technology Experts. - Sistema SIGES, desenvolvido e disponibilizado
pela INFOX Sistemas de Informação Ltda.
48Produtos no Mercado
- WebLogic, BEA
- WebSphere, IBM
- Orbix E2A J2EE Edition, IONA
- JBOSS, ...
- .... , Inprise
49Referências
- Feiler, Jesse. Application Servers Powering the
Web-Based Enterprise. Morgan Kaufmann, 2000. - Fournier, Roger. A Methodology for Client/Server
and Web Application Development . Yourdon Press,
1999.
50Referências
- Moraes, Geraldo Leite. Aplicações Web. Monografia
em Processamento de Dados, UNIT, Aracaju, 1999. - Developers Magazine on line.
www.developers.com.br.
51Java 2 Enterprise Edition (J2EE)
- Especificação da Sun Microsystems, para a
construção de plataformas com servidor de
aplicações. - J2EE oferece, numa só arquitetura, todos os
recursos necessários para a construção de
aplicações distribuídas multi-camadas para a
Internet. - Engloba um número de especificações para a
construção de páginas dinâmicas, acesso à bancos
de dados, monitores de transação, serviço de
troca de mensagens, coordenação de objetos
distribuídos e, também, Web Services. - www.java.sun.com/j2ee contém toda a
especificação, tutoriais, artigos, ...