Sei sulla pagina 1di 51

Servidores de Aplicaes Web

Uma Realidade O que so ? O que fazem ? Como funcionam ? Bancos de Dados

Servidor de Aplicao: Uma Realidade

Atualmente, uma boa parte das empresas baseiam seu funcionamento em um banco de dados, onde suas transaes so efetuadas e onde depositam todo o seu lado informatizado.

Servidor de Aplicao: Uma Realidade

Com a chegada da Internet, iniciou-se uma verdadeira corrida contra o tempo, que resultou no desenvolvimento de sites Web, puramente estticos e de necessria manuteno, nos quais as organizaes passaram a disponibilizar informaes sobre suas atividades.

Servidor de Aplicao: Uma Realidade

Hoje, a Web um dos meios mais poderosos de comunicao, que tem provocado grandes impactos em qualquer rea de atuao profissional.

Servidor de Aplicao: Uma Realidade

A medida que grandes corporaes passaram a colocar algumas de suas aplicaes crticas na Web, tornou-se crucial administrar os problemas que o desenvolvimento nesta plataforma pode ocasionar.

Servidor de Aplicao: Uma Realidade

A Internet imps um novo modelo de desenvolvimento de aplicaes, o desenvolvimento de sistemas/aplicaes Web.

Servidor de Aplicao: Uma Realidade

Com o advento dos servidores de aplicaes Web, esse novo modelo de desenvolvimento possibilita a criao e a distribuio de aplicaes para a Web cada vez mais complexas.

Servidor de Aplicao: Uma Realidade

Alguns fatores foram preponderantes para que o uso de servidores de aplicaes se tornasse uma realidade.

Servidor de Aplicao: Uma Realidade

O primeiro fator que a atual arquitetura de software passou por uma evoluo no seu projeto: antigamente o usurio interagia com um programa monoltico que continha o cdigo para gerenciar a aplicao, os dados, a interface do usurio e a comunicao.

Servidor de Aplicao: Uma Realidade

Segundo fator: Atualmente, existe uma programao totalmente organizada, no que se refere s funcionalidades citadas, a qual possibilita uma diviso bem clara dessas partes no projeto de um software.

Servidor de Aplicao: Uma Realidade

O segundo fator a favorecer o uso dos servidores de aplicaes a evoluo no projeto de interao entre o usurio e os computadores, ou seja a evoluo da arquitetura cliente/servidor: - a arquitetura de duas camadas, - a arquitetura de trs camadas.

Servidor de Aplicao: Uma Realidade

O terceiro fator: O amadurecimento da Internet, permitindo uma rpida transmisso de mensagens entre computadores de qualquer parte do mundo e consequentemente, o rpido crescimento de utilizao da Web:

O advento dos servidores de aplicaes se encaixa nesta evoluo.

Lado Cliente Web

O computador cliente utiliza o protocolo TCP/IP e um browser para mostrar os dados e interagir com o usurio e o servidor. 1. Cliente com aplicaes cliente/servidor convencional. 2. Cliente com aplicaes baseadas na Web.

Cliente com aplicaes Cliente/Servidor Tradicional

Ao executar aplicaes, uma mquina-cliente do modelo cliente/servidor tradicional, roda um software que armazenado localmente, que uma parte da lgica da aplicao. Alguma aplicao pode ter uma outra parte armazenada e executada num servidor, mas a maioria das aplicaes esto no cliente.

Cliente com aplicaes Cliente/Servidor Tradicional

O servidor fornece os dados para a aplicao. Nenhum software adicional necessrio, alm do sistema operacional e o da prpria aplicao.

Cliente com aplicaes cliente/servidor na Web

O servidor Web fornece o cdigo da execuo, assim como os dados para o cliente, quando necessrio. O browser a interface do usurio. O nico software que o cliente necessita o browser, alm do sistema operacional.

Benefcio das aplicaes Web

No somente para o desenvolvimento de novas aplicaes, mas tambm na sua distribuio: no existe nada para instalar e para atualizar nas mquinas-cliente. Tudo para a Web, est no lado-servidor.

O Papel do Servidor de Aplicaes

Interface

Lgica

Dados

Servidor Web

Servidor de Aplicaes

BD

No lado Servidor

O protocolo TCP/IP mantm a comunicao. O servidor Web interage com o browser do usurio no lado-cliente. Um novo software adicionado o servidor de aplicaes. O servidor de aplicaes interage com o banco de dados e com arquivos HTML.

No lado Servidor

Um tpico servidor Web, simplesmente prov e retorna arquivos HTML estticos. O servidor de aplicao combina modelos, dados oriundos de um banco de dados e outros elementos para criar arquivos HTML, dinamicamente, para que o servidor Web faa o download. O servidor Web no deve saber que est capturando nada alm de texto baseado num arquivo HTML.

Arquitetura Cliente/Servidor 3-camadas


Interface Lgica SQL ODBC JDBC BD Dados

HTML

Servidor Web

Servidor De Aplicaes

Plugins

Templates

Componentes

Procedures Armazenadas

Servidores de Aplicaes Web

So softwares que agem como intermedirio entre um servidor Web e uma base de dados. Consequentemente, de uma forma lgica, entre um browser (no cliente) e uma base de dados (no lado servidor) que tem a informao desejada.

Servidor HTTP

Um servidor HTTP, no um servidor de aplicaes. A finalidade de um servidor HTTP mapear uma URL num arquivo fsico. Ele fica transformando as requisies do browser, obtendo arquivos do disco e os enviando ao browser.

Servidor de Aplicaes

Um servidor de aplicaes responsvel por manter uma lista de servios que podem ser obtidos (como se fosse uma lista telefnica), e prover um canal de comunicao entre esses servios e os clientes, sejam eles Web ou no.

Servidor HTTP

Normalmente, como parte dos servios providos roda a partir de um browser, existe tambm um servidor HTTP repassando as requisies ao servidor de aplicaes.

Servidores de Aplicaes Web

Os servidores de aplicaes Web geram o processo de ligao dos utilizadores de informao aos dados onde esto armazenados. Envolvem tecnologia orientada a objetos na forma de objetos tradicionais e componentes de software.

Servidores de Aplicaes Web

Objetos e componentes (nem todo componente um objeto) so softwares encapsulados e que podem ser reutilizveis. O mundo dos servidores de aplicaes baseiase fortemente na estrutura e nas interfaces bem definidas dos objetos e dos componentes.

Servidores de Aplicaes Web

Esta arquitetura rigorosa permite a interoperabilidade entre os produtos de vrios fornecedores. Fornecem a infra-estrutura de run time (tempo de execuo) e servios necessrios para implementar aplicaes ou componentes numa arquitetura de vrias camadas, que suportam a Web e outras interfaces com o cliente.

Servidores de Aplicaes Web

So partes de uma infra-estrutura que deve permitir que os programadores Web construam aplicaes, que trabalhem com uma grande variedade de hardware e softwares-cliente e que possuam funcionalidades para serem integrados com recursos existentes.

Servidores de Aplicaes Web

Por outro lado, tm de ser de fcil utilizao e capazes de fornecer mais valor de desenvolvimento do que produtos de midlleware (produtos separados que servem de ligao entre duas aplicaes).

Servidores de Aplicaes Web

Devem proporcionar a construo de aplicaes mais elaboradas, que assegurem nveis aceitveis de integridade, confiabilidade, disponibilidade, desempenho e segurana.

Servidores de Aplicaes Web

O servidor de aplicao Web contm a lgica da aplicao e situa-se entre o servidor Web e o banco de dados. Ele controla a conexo com o banco de dados em funo das requisies do browser.

Servidores de Aplicaes Web

O ganho obtido com o servidor de aplicao que a Web (originariamente) um sistema que no preserva o estado, quando um cliente se conecta nela. O protocolo HTTP que transporta HTML) um protocolo sem estado e o prprio servidor Web (originariamente) um servidor que no preserva o estado de conexes.

Servidores de Aplicaes Web

Web sem estado (stateless): Ou seja, o servidor Web esquece a primeira interao com o banco de dados, mesmo se cliente retornar apenas alguns segundos depois.

Aquitetura Web: Comunicao com outros elementos

Cada um dos componentes desta arquitetura (servidor Web, servidor de aplicaes e banco de dados) pode comunicar-se com outros elementos. A comunicao com esses outros elementos no geralmente baseada em padres abertos.

Arquitetura Web: Comunicao com outros elementos

Entretanto, essa comunicao definida pelo produto (servidor de aplicao especfico) que ser usado. Elementos adicionais para a comunicao podem ser providos pelos prprios fornecedores dos produtos envolvidos ou podem ser desenvolvidos por terceiros.

BD e Servidores de Aplicaes: Acesso ao BD

Independentemente do servidor de aplicaes especfico, existem trs tipos de conexes 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 caractersticas que definiro como o acesso dever ser feito.

BD e Servidores de Aplicaes Acesso Nativo

Os bancos de dados de acesso nativo so os bancos de dados textuais e proprietrios, isto aqueles que s podem ser acessados por programas de uma linguagem prpria. BDs antigos e com diversas limitaes quanto ao acesso, mas que permitem que programas sirvam de intermedirios (gateways) entre eles e as aplicaes Web.

BD e Servidores de Aplicaes Acesso via ODBC

Os BDs com acesso via ODBC (colees de funes e estruturas de dados escritas na linguagem C) correspondem grande maioria existente no mercado. ODBC uma maneira fcil de se obter a comunicao com o banco de dados, mas existe a limitao de que a mquina com ODBC (no cliente ou no servidor), seja uma mquina Windows.

BD e Servidores de Aplicaes Acesso JDBC

Os bancos de dados mais modernos possuem acesso via JDBC, que uma soluo 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 comunicao via SQL.

Concluses

O momento de disponibilizar informaes puramente estticas terminou. O momento agora de usufruir as vantagens que a Internet e a Web podem proporcionar no desenvolvimento de aplicaes. Um novo modelo de desenvolvimento de aplicaes, baseado em servidores de aplicaes Web, agora existente.

Concluses

Ao deixar claro o nvel de separao entre o servidor Web e a camada de acesso aos dados (servidor de aplicao), podemos suprir a necessidade de quem deseja disponibilizar aplicaes Web. Ao crescerem em complexidade, essas aplicaes, passam a requerer melhor gerenciamento, ao contrrio de aplicaes simples, que podem se desenvolvidas atravs de linguagens de scripts, serem menos dispendiosas e de mais fcil implementao.

Concluses

Ambiente computacional capaz de reduzir o TCO (Total Cost of Ownership) nas empresas. - mquinas clientes no precisam de alto poder de processamento e armazenamento, - economia com licenas de utilizao de softwares.

Concluses

Atualizaes do sistema/aplicao s precisa ser feita no servidor de aplicao e automaticamente atualizada para todos que acessarem tal aplicao.

Concluses

O desenvolvimento Web pode assemelhar-se ao desenvolvimento de sistemas usando ferramentas GUI, porm com maior flexibilidade, pois a aplicao pode ser acessada remotamente sem que haja a necessidade de instalar um software-cliente no usurio final.

Concluses

O papel principal de um servidor de aplicao dar suporte a sites Web que usem dados dinmicos, ou seja, dados oriundos de um banco de dados, arquivosmodelos, scripts e de outros elementos, para criar arquivos HTML dinamicamente. O servidores de aplicaes provem a informao formatada para ser entregue aos usurios.

Produtos no Mercado

Servidor de Aplicaes Web Integrator da ITX Information Technology Experts. Sistema SIGES, desenvolvido e disponibilizado pela INFOX Sistemas de Informao Ltda.

Produtos no Mercado

WebLogic, BEA WebSphere, IBM Orbix E2A J2EE Edition, IONA JBOSS, ... .... , Inprise

Referncias

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.

Referncias

Moraes, Geraldo Leite. Aplicaes Web. Monografia em Processamento de Dados, UNIT, Aracaju, 1999. Developers Magazine [on line]. www.developers.com.br .

Java 2 Enterprise Edition (J2EE)


Especificao da Sun Microsystems, para a construo de plataformas com servidor de aplicaes. J2EE oferece, numa s arquitetura, todos os recursos necessrios para a construo de aplicaes distribudas multicamadas para a Internet. Engloba um nmero de especificaes para a construo de pginas dinmicas, acesso bancos de dados, monitores de transao, servio de troca de mensagens, coordenao de objetos distribudos e, tambm, Web Services. www.java.sun.com/j2ee contm toda a especificao, tutoriais, artigos, ...