520 likes | 741 Vues
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.
E N D
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 Lógica Interface Dados Servidor Web 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 Dados Interface SQL ODBC JDBC Servidor Web Servidor De Aplicações BD HTML Plugins Templates Componentes 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 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.