Servidores de Aplicações Web Uma Realidade O que são ? O que fazem ? Como funcionam ? Bancos de...
-
Upload
rubens-custodio-santiago -
Category
Documents
-
view
228 -
download
0
Transcript of Servidores de Aplicações Web Uma Realidade O que são ? O que fazem ? Como funcionam ? Bancos de...
Servidores de Aplicações WebUma RealidadeO 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
Servidor Web
Servidor de
AplicaçõesBD
Interface Lógica Dados
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
ServidorWeb
Servidor De
AplicaçõesBD
Plugins Templates Componentes Procedures Armazenadas
Lógica DadosInterface
HTML
SQLODBCJDBC
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 baseia-se 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, 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.
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, ...