Servidores de Aplicações Web

Propaganda
Servidores de Aplicações Web
Uma Realidade
O que são ?
O que fazem ?
Como funcionam ?
Bancos de Dados
Servidor 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.
Servidor 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.
Servidor 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.
Servidor 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.
Servidor de Aplicação:
Uma Realidade

A Internet impôs um novo modelo de
desenvolvimento de aplicações, o
desenvolvimento de sistemas/aplicações Web.
Servidor 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.
Servidor de Aplicação:
Uma Realidade

Alguns fatores foram preponderantes para que
o uso de servidores de aplicações se tornasse
uma realidade.
Servidor 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.
Servidor 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.
Servidor 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.
Servidor 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.
Lado 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.
Cliente 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.
Cliente 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.
Cliente 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.
Benefí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.
O Papel do Servidor de Aplicações
Interface
Servidor
Web
Lógica
Dados
Servidor
de
Aplicações
BD
No 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.
No 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.
Arquitetura Cliente/Servidor
3-camadas
Lógica
Interface
HTML
Servidor
Web
Plugins
Servidor
De
Aplicações
Templates
Dados
SQL
ODBC
JDBC
Componentes
BD
Procedures Armazenadas
Servidores 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.
Servidor 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.
Servidor 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.
Servidor 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.
Servidores 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.
Servidores 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 baseiase fortemente na estrutura e nas interfaces
bem definidas dos objetos e dos componentes.
Servidores 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.
Servidores 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.
Servidores 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).
Servidores 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.
Servidores 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.
Servidores 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.
Servidores 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.
Aquitetura 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.
Arquitetura 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.
BD 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.
BD 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.
BD 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.
BD 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.
Conclusõ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.
Conclusõ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.
Conclusõ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.
Conclusõ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.
Conclusõ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.
Conclusõ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, arquivosmodelos, 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.
Produtos 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.
Produtos no Mercado





WebLogic, BEA
WebSphere, IBM
Orbix E2A J2EE Edition, IONA
JBOSS, ...
.... , Inprise
Referê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.
Referências

Moraes, Geraldo Leite. Aplicações Web.
Monografia em Processamento de Dados,
UNIT, Aracaju, 1999.

Developer’s Magazine [on line].
www.developers.com.br.
Java 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, ...
Download