FEA/USP EAD-5881 – Tecnologia de Informática Tecnologia Internet Processamento no Servidor Tecnologias Microsoft e Java Prof. Dr. Antonio Geraldo da Rocha Vidal [email protected] 1 Scripts no Cliente • São códigos de programação processados pela estação Cliente. • Tratam apenas de formatações dinâmicas, pequenas consistências de telas e validações de entrada de dados. • São processados por um navegador com capacidade para interpretar a linguagem em que foram escritos. • Maiores problemas: – Incompatibilidade na interpretação da linguagem utilizada no script entre os navegadores disponíveis no mercado. – O código do programador fica exposto ao usuário. 2 Scripts no Servidor • O uso de linguagens script no computador Cliente não é suficiente para a criação de aplicações voltadas a negócios em sites da Web. • Os scripts no lado Cliente fazem o seu papel na camada de apresentação ao usuário (Interface). • Porém, a ferramenta usada para tratar a camada de regras de negócio e acessar a camada de dados são os scripts no lado do Servidor. 3 Scripts no Servidor Páginas Ativas no Servidor • • • Um script no lado do Servidor significa que há um código (programa) embutido numa página Web que é executado pelo Servidor quando um computador Cliente faz uma solicitação. Este código normalmente: 1. Obtém dados a partir de fontes de dados (bancos de dados SQL ou arquivos XML); 2. Executa regras de negócio e; 3. Constrói uma página HTML para apresentar os resultados obtidos ao usuário. O resultado final é uma página Web em HTML padrão (compatível com qualquer browser) enviada ao 4 navegador do Cliente. Páginas Web Dinâmicas • Páginas Web dinâmicas correspondem a “códigos” HTML que foram criados pelo Servidor em resposta a solicitações do Cliente. • Ao contrário das páginas Web estáticas, uma página Web dinâmica não fica fisicamente armazenada no Servidor, pois é dinamicamente criada para responder solicitações específicas dos usuários. • Todo código de programação existente nos scripts é executado no Servidor, e este retorna ao Cliente somente respostas em HTML padrão: – Recebe entradas de • Parâmetros via URL • Dados via Formulários HTML – Pode acessar bases de dados nos servidores, servidores de e-mail, arquivos, documentos XML, mainframes, etc. 5 Vantagens do Processamento no Servidor • Por que código no servidor? – Acessibilidade • Você pode acessar a Internet de qualquer browser, qualquer dispositivo, a qualquer hora, em qualquer lugar, pois são geradas em HTML padrão – Gerenciamento • Não exige a distribuição de código do aplicativo cliente/servidor • Facilidade para mudar o código e atualizar a aplicação • O resultado do aplicativo é automaticamente distribuído pela rede, pois o aplicativo “roda” no Servidor – Segurança • O código fonte não é exposto • Uma vez que o usuário é autenticado, só pode executar certas ações – Escalabilidade • Arquitetura do aplicativo baseada em 3 camadas • Será o retorno do processamento centralizado? 6 Desvantagens do Processamento no Servidor • Sobrecarga do Servidor quando milhares de usuários solicitarem execuções de funções dos aplicativos. • Maior vulnerabilidade quanto a questões de segurança. • Dificuldade para controle do “estado da aplicação” para cada usuário. 7 Gerenciamento de Estado • O estado é um termo usado para descrever as informações que devem ser mantidas para descrever o usuário e o que ele está “fazendo” a cada momento quando está utilizando um aplicativo. • Sendo o HTTP um protocolo sem estado, os aplicativos Web não têm meios “naturais” de controlar quem é o usuário ou o que ele está fazendo. • Os cookies são uma maneira de resolver este problema, e correspondem à uma tecnologia usada para armazenar informações na máquina do usuário. 8 Gerenciamento de Estado • Quando um usuário acessar o site do aplicativo novamente, o navegador enviará ao servidor o cookie salvo anteriormente. • Isso permite que o aplicativo personalize conteúdos, recupere informações, ou faça o que mais for necessário para atender cada usuário específico. • O aplicativo Web poderá, então, manter o “estado” para cada usuário entre vários acessos subseqüentes. • Outra maneira de manter o estado ou “rastro” dos usuários é manter suas informações e o que fizeram em um banco de dados (no Servidor). 9 Páginas Ativas no Servidor • Há muitas ferramentas e linguagens que podem criar páginas Web ativas; as tecnologias mais utilizadas são: – – – – – – – – – – Common Gateway Interface (CGI) Internet Server API (ISAPI) Perl (Practical Extract Report Language) – Aberta, 1987 Active Server Pages (ASP) – Microsoft,1995 Personal Home Page Tools (PHP) – Aberta, 1995 ColdFusion – Allaire/Macromedia, 1995 J2EE (Java, Servlets, JSP, JavaBeans, EJB etc.) – Sun & Cia. – 1996 WebSphere (J2EE) – IBM – 1997 Oracle Applications (J2EE) – Oracle, 1997 .NET Common Language Runtime – Microsoft, 2002 • Abordaremos com algum detalhe apenas as ferramentas mais utilizadas: plataforma Microsoft (ASP) e plataforma Java (J2EE). 10 Plataforma Microsoft • O ASP é uma tecnologia desenvolvida pela Microsoft para a criação de páginas Web dinâmicas. • Uma página ASP é uma seqüência de HTML estático entremeada com código executado pelo servidor. As linguagens de programação usadas são o VBScript, o JavaScript e o JScript. • Quando surgiram no Servidor Web IIS 3.0 (Internet Information Server), as páginas ASP permitiram criar páginas ativas, baseando-se na recuperação e atualização de conteúdo de banco de dados ou outro sistema. • As páginas ASP foram “revolucionárias”! 11 Programação para a Web ASP HTTP request (form data, HTTP header data) HTTP response HTML, XML ASP page (static HTML, server-side logic) 12 Plataforma Microsoft Páginas ASP • Porém, como o script no Servidor não era compilado, mas interpretado e executado dinamicamente quando um Cliente fazia uma solicitação, o tempo de resposta, portanto, era longo...... • Essa restrição limita bastante a capacidade de atendimento do Servidor ASP para solicitações de milhares de Clientes. • Por esse motivo (entre outros) uma nova tecnologia mais avançada foi desenvolvida, denominada .NET, agora baseada em objetos, componentes e camadas (como o Java). • Além das camadas de apresentação, regras de negócio e dados, várias camadas intermediárias foram acrescentadas. • Um novo modelo de n-camadas incorpora diferentes níveis de componentes compilados no padrão COM (Component Object Model) ou .NET (código gerenciado) e aplicativos diversos. 13 Plataforma .NET • Ferramentas da plataforma .NET: – – – – Microsoft .NET Enterprise Servers - Servidores Microsoft Visual Studio .NET – Desenvolvimento .NET Framework – Infra-estrutura Microsoft Windows .NET – Sistema Operacional • A tecnologia .NET permite o desenvolvimento em “qualquer” linguagem de programação adaptada ao .NET Framework e à Commom Language Runtime (CLR – linguagem comum utilizada em tempo de execução dos programas). 14 Componentes e Camadas • Ao dividir as camadas, cada uma pode ser desenvolvida separadamente, desde que as interfaces entre as camadas permaneçam constantes. • Isso fomentou o desenvolvimento de componentes que se apóiam o mínimo possível em linguagens script. • Porém, o script ainda é necessário para chamar estes componentes e formatar (apresentar ao usuário) os dados retornados por eles. • Este modelo tem se provado efetivo na construção de aplicativos Web empresariais, sendo adotado pela maioria dos fornecedores de tecnologia. 15 Camadas e Componentes Página ASP .NET .NET Oracle .NET SQL Server No Servidor .NET Página COM HTML No Cliente COM Outros APRESENTAÇÃO REGRAS DE NEGÓCIOS 16 DADOS Modelo de Execução Plataforma .NET Código Fonte MSIL Ngen Código Nativo VB C# C++ Compiler Compiler Compiler Assembly Assembly Assembly Common Language Runtime JIT Compiler Managed Code CLR Services Managed CLR Code Managed Code Unmanaged Code Operating System Services 17 O Modelo Lógico da Plataforma .NET da Microsoft 18 O Modelo Lógico do .NET Framework XML Web Services Web Forms ASP.NET Windows Forms Data and XML Classes Base Framework Classes Common Language Runtime 19 O Modelo Físico da Plataforma .NET 20 O Modelo de Serviços Web da Plataforma .NET Clientes Aplicações Web Form Protocolos: HTTP, HTML, XML, SOAP, UDDI Web Services Próprios Web Service .NET Framework Windows Web Services da .NET Web Services de Terceiros Ferramentas: Visual Studio.NET, Notepad .NET Enterprise Servers 21 Linguagem C# (lê-se C-sharp) • Nova linguagem criada especialmente para a plataforma .NET (semelhante à linguagem Java) • Utiliza o .NET Framework • Parte do Visual Studio.NET • Submetida para o ECMA para padronização • Conceitos chave: – – – – Orientada a componentes Tudo é um objeto Código robusto e durável Preservando seu investimento 22 Acesso a Banco de Dados • O acesso a banco de dados é feito através de objetos servidores, como o ADO (Active Data Objects) da Microsoft. • O ADO possui um mecanismo de comunicação com servidores de objetos COM (Component Object Model), como os servidores de bancos de dados. 23 Acessando Banco de Dados • O ADO é uma coleção de objetos ou componentes utilizados para conexão, recuperação, alteração, inclusão e exclusão de registros em bancos de dados padrão ODBC – Open Database Connectivity e OLE DB. • Os objetos ADO são automaticamente instalados com o Servidor Web Microsoft Internet Information Server (IIS), versão 3.0 ou posterior. • Os objetos ADO são chamados através de páginas ativas e executados no servidor Web, retornando as informações de bancos de dados em formato HTML. 24 Acessando Banco de Dados • A coleção de objetos ADO constitui uma camada intermediária entre a página ativa e o banco de dados. • Para acessar o banco de dados, são escritos códigos nas páginas ativas que configurarão propriedades e utilizarão os métodos dos objetos ADO. • A comunicação dos objetos ADO com o banco de dados é feita através de padrões: – OLE-DB baseado na tecnologia COM – Component Object Model; – ODBC ou banco de dados que possuem drives padrão ODBC (Open Database Connectivity). 25 Interface de Componentes para Acesso a Banco de Dados Página HTML Ativa/Dinâmica 26 ADO.NET • • • Semelhante ao ADO, mas melhor elaborado Acesso a dados independente da linguagem Suporta dois estilos de acesso: – Desconectado com atualização – Acesso forward-only e read-only • • • Suporta DataBinding (ligações a dados) Suporta DataSet (coleção de tabelas de dados) Pode acessar e processar dados no formato relacional (tabelas SQL) ou hierárquico (XML) 27 ADO.NET “System.Data” • Acesso a dados SQL ou XML • Usa o XML para comunicação entre camadas • Objetos Consumidores – DataSet – DataTable • DataRow • DataColumn – DataRelation • Objetos Provedores – – – – – Connection Command CommandBuilder DataReader DataAdapter 28 Plataforma J2EE (Java) Sun & Parceiros • J2EE (Java 2 Platform, Enterprise Edition) é um conjunto de normas e componentes para o desenvolvimento de aplicações para a Web. • Pode ser entendido como um conjunto de componentes que, trabalhando em colaboração, contribui para a construção das múltiplas camadas que constituem o aplicativo. • Esses componentes foram desenvolvidos com o objetivo de facilitar a interação entre as diversas funções da aplicação. 29 Características da Plataforma J2EE • Portabilidade: a linguagem utilizada é o JAVA. • APIs JDBCTM : componentes para acesso a bancos de dados relacionais. • CORBA (JavaIDL e RMI-IIOP): componentes para interação com sistemas internos da empresa. • EJB (Enterprise JavaBeansTM) : componentes Java para implementar regras de negócios. • APIs Java ServLets : componentes para interfaces com parceiros de negócios. • JSP (Java Server PagesTM): linguagem para a criar e gerenciar a interação com o usuário e utilização dos demais componentes. 30 O programa é criado pelo programador no editor e armazenado no disco O compilador lê o programa e cria bytecodes e os armazena no disco Compilador FASE 3 Carregador de Classes Memória Principal O carregador de classes coloca bytecodes na memória Memória Principal O verificador de bytecodes confirma que todos estão válidos e não violam as regras de segurança e gerenciamento Memória Principal O interpretador lê os bytecodes e os traduz para uma linguagem que o computador pode entender. Bytecodes são uma linguagem intermediária independente de plataforma. Disco FASE 2 Disco FASE 1 Editor de Textos Disco Modelo de Execução Java FASE 4 FASE 5 Verificador de Bytecode Interpretador Pode haver um Interpretador de bytecodes para cada plataforma. 31 Plataforma J2EE • Disponibiliza um “emaranhado” de componentes que permitem construir um conjunto abrangente de soluções. • Desenvolvida com base na colaboração entre vários parceiros da Sun, constituindo-se numa “filosofia” de trabalho para o desenvolvimento de sistemas, robusta e cada vez mais aceita. • Toda solução ou aplicativo é construído baseado em componentes, desenvolvidos de acordo com as regras do negócio. 32 Plataforma J2EE • Os diferentes papeis e funcionalidades do aplicativo são encapsulados em camadas: – Apresentação: páginas HTML, applets Java, APIs Java ServLets, JSP ou componentes Java. – Regras de Negócio: componentes EJB – Dados: bancos de dados relacionais, repositórios de arquivos, XML, sistemas legados ou parceiros de negócios. • Como é necessário instalar alguns componentes no Cliente, a plataforma oferece funcionalidades de download. 33 O Modelo Lógico da Plataforma J2EE JDBC WEB CONTAINER (X)HTML/ XML TAG LIBRARY JSPs SERVLETS RDMS JAVAMAIL JAF JAVAMAIL JMS JDBC JTA JNDI RMI/IIOP APPLET J2EE APLICATION SERVER RMI JAVA APLICATION IIOP CORBA SERVER EJB CONTAINER JNDI SESSION BEANS ENTITY BEANS CLIENT APPLICATION JAF JAVAMAIL JMS JDBC JTA JNDI RMI/IIOP JMS MESSAGE QUEUE CLIENT APPLICATION LOGIC DATA 34 Aplicativos Java em Múltiplas Camadas cliente servidor web servidor de aplicativos servidor base de dados web server application server data base server browser HTML cookies XML api's browser Java applets Java servlet JSP Java VM DataBase driver EJB beans Java VM middleware desktop Java JRE beans XML lógica de apresentação api's <=processo=> objeto <=processo=> JDBC sockets / object lógica dos negócios objeto <=processo=> double-tier triple-tier quadruple-tier objeto <=processo=> 35 O Modelo Físico da Plataforma J2EE 36 Plataforma J2EE • O modelo de aplicações com a tecnologia J2EE divide uma aplicação em 3 partes: – Interfaces: intercedem entre os Clientes e os componentes, fornecendo uma comunicação transparente entre ambos; – Componentes: implementam a lógica do negócio; – Conectores: APIs que fazem a ligação entre o “mundo externo” e a aplicação J2EE. 37 Principais Fornecedores da Plataforma J2EE • IBM: WebSphere – WebSphere Studio Application Developer – WebSphere Application Server – WebSphere UDDI Registry • Oracle – – – – – – – Oracle JDeveloper Oracle Forms Developer Oracle Designer Oracle Reports Developer Oracle Discoverer Oracle SCM (Oracle Repository) Oracle Warehouse Builder • BEA: WebLogic – BEA WebLogic Enterprise – BEA WebLogic Server – BEA Tuxedo 38 Comparação das Plataformas J2EE X Microsoft .NET Característica J2EE .NET Padrão Aberto Produto Mais de 30 Microsoft Java C#, VB.NET, C++, JavaScript, JScript JRE (Java Runtime Environment) CLR (Commom Language Runtime) JSP (Java Server Pages) ASP.NET (Active Server Pages) Componentes de Negócio EJB (Enterprise Java Beans) .NET Managed Components Acesso a Banco de Dados JDBC SQL/J ADO.NET (Active Data Objects) Suporte a SOAP, WSDL, UDDI Sim Sim Funcionalidade de interface Sim Sim Tipo de Tecnologia Fornecedores Linguagem Interpretador Páginas Dinâmicas 39 Construção de Aplicativos Internet XML Sun & Cia. Microsoft 40