40
1 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]

FEA/USP EAD-5881 – Tecnologia de Informática

Embed Size (px)

DESCRIPTION

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]. Scripts no Cliente. São códigos de programação processados pela estação Cliente. - PowerPoint PPT Presentation

Citation preview

Page 1: FEA/USP EAD-5881 – Tecnologia de Informática

1

FEA/USPEAD-5881 – Tecnologia de Informática

Tecnologia InternetProcessamento no Servidor

Tecnologias Microsoft e Java

Prof. Dr. Antonio Geraldo da Rocha [email protected]

Page 2: FEA/USP EAD-5881 – Tecnologia de Informática

2

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.

Page 3: FEA/USP EAD-5881 – Tecnologia de Informática

3

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.

Page 4: FEA/USP EAD-5881 – Tecnologia de Informática

4

Scripts no ServidorPá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 navegador do Cliente.

Page 5: FEA/USP EAD-5881 – Tecnologia de Informática

5

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.

Page 6: FEA/USP EAD-5881 – Tecnologia de Informática

6

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?

Page 7: FEA/USP EAD-5881 – Tecnologia de Informática

7

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.

Page 8: FEA/USP EAD-5881 – Tecnologia de Informática

8

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.

Page 9: FEA/USP EAD-5881 – Tecnologia de Informática

9

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).

Page 10: FEA/USP EAD-5881 – Tecnologia de Informática

10

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).

Page 11: FEA/USP EAD-5881 – Tecnologia de Informática

11

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”!

Page 12: FEA/USP EAD-5881 – Tecnologia de Informática

12

Programação para a WebASP

HTTP request(form data, HTTP

header data)

HTTP responseHTML, XML

ASP page(static HTML, server-side logic)

Page 13: FEA/USP EAD-5881 – Tecnologia de Informática

13

Plataforma MicrosoftPá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.

Page 14: FEA/USP EAD-5881 – Tecnologia de Informática

14

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).

Page 15: FEA/USP EAD-5881 – Tecnologia de Informática

15

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.

Page 16: FEA/USP EAD-5881 – Tecnologia de Informática

16

Camadas e Componentes

Página

ASPNo Servidor

Página

HTMLNo Cliente

.NET Oracle

SQLServer

.NET

.NET

COM

.NET

COM

APRESENTAÇÃO REGRAS DE NEGÓCIOS DADOS

Outros

Page 17: FEA/USP EAD-5881 – Tecnologia de Informática

17

CLR

VBCódigoFonte

Compiler

C++C#

Assembly AssemblyAssembly

Operating System Services

MSIL

Common Language Runtime JIT Compiler

Compiler Compiler

CódigoNativo

ManagedCode

ManagedCode

ManagedCode

UnmanagedCode

CLR Services

Ngen

Modelo de ExecuçãoPlataforma .NET

Page 18: FEA/USP EAD-5881 – Tecnologia de Informática

18

O Modelo Lógico da Plataforma.NET da Microsoft

Page 19: FEA/USP EAD-5881 – Tecnologia de Informática

19

O Modelo Lógico do .NET Framework

Common Language RuntimeBase Framework Classes

Data and XML Classes

XML WebServices

Web Forms Windows

FormsASP.NET

Common Language RuntimeBase Framework Classes

Data and XML Classes

XML WebServices

Web Forms Windows

FormsASP.NET

Page 20: FEA/USP EAD-5881 – Tecnologia de Informática

20

O Modelo Físico da Plataforma .NET

Page 21: FEA/USP EAD-5881 – Tecnologia de Informática

21

O Modelo de Serviços Web da Plataforma .NET

Web Form

.NET Framework

Windows

Web Service

Web Servicesda .NET

Web ServicesPróprios

Web Servicesde Terceiros

.NET EnterpriseServers

Clientes Aplicações

Protocolos: HTTP,HTML, XML, SOAP, UDDI

Ferramentas:Visual Studio.NET,

Notepad

Page 22: FEA/USP EAD-5881 – Tecnologia de Informática

22

• 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

Linguagem C#(lê-se C-sharp)

Page 23: FEA/USP EAD-5881 – Tecnologia de Informática

23

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.

Page 24: FEA/USP EAD-5881 – Tecnologia de Informática

24

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.

Page 25: FEA/USP EAD-5881 – Tecnologia de Informática

25

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).

Page 26: FEA/USP EAD-5881 – Tecnologia de Informática

26

Interface de Componentes para Acesso a Banco de Dados

Página HTMLAtiva/Dinâmica

Page 27: FEA/USP EAD-5881 – Tecnologia de Informática

27

• 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)

ADO.NET

Page 28: FEA/USP EAD-5881 – Tecnologia de Informática

28

ADO.NET“System.Data”

• Objetos Consumidores– DataSet– DataTable

• DataRow

• DataColumn

– DataRelation

• Objetos Provedores– Connection– Command– CommandBuilder– DataReader– DataAdapter

• Acesso a dados SQL ou XML

• Usa o XML para comunicação entre camadas

Page 29: FEA/USP EAD-5881 – Tecnologia de Informática

29

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.

Page 30: FEA/USP EAD-5881 – Tecnologia de Informática

30

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.

Page 31: FEA/USP EAD-5881 – Tecnologia de Informática

31

Modelo de ExecuçãoJava

Editor deTextos D

isco

Compilador

Dis

co

Carregador deClasses

MemóriaPrincipal

Verificador deBytecode

MemóriaPrincipal

InterpretadorMemóriaPrincipal

FASE 1

FASE 2

FASE 3

FASE 4

FASE 5

O programa é criado peloprogramador no editor earmazenado no disco

O compilador lê oprograma e cria bytecodese os armazena no disco

O carregador de classescoloca bytecodes namemória

O verificador de bytecodesconfirma que todos estãoválidos e não violam asregras de segurança egerenciamento

O interpretador lê osbytecodes e os traduzpara uma linguagem que ocomputador podeentender.

Dis

co

Bytecodes sãouma linguagemintermediáriaindependentede plataforma.

Pode haver umInterpretador de bytecodespara cada plataforma.

Page 32: FEA/USP EAD-5881 – Tecnologia de Informática

32

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.

Page 33: FEA/USP EAD-5881 – Tecnologia de Informática

33

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.

Page 34: FEA/USP EAD-5881 – Tecnologia de Informática

34

O Modelo Lógico daPlataforma J2EE

(X)HTML/XML

APPLET

CLIENTAPPLICATION

J2EEAPLICATION

SERVER

WEB CONTAINER

SERVLETS

JSP

s

TAGLIBRARY

RM

I/IIOP

JND

I

JTA

JDB

C

JMS

JAV

AM

AIL

JAF

EJB CONTAINERR

MI/IIO

P

JND

I

JTA

JDB

C

JMS

JAV

AM

AIL

JAF

SESSIONBEANS

ENTITYBEANS

RDMS

JAVAAPLICATION

CORBASERVER

MESSAGEQUEUE

JMS

JNDI

IIOP

RMI

JAVAMAIL

JDBC

CLIENT APPLICATION LOGIC DATA

Page 35: FEA/USP EAD-5881 – Tecnologia de Informática

35

Aplicativos Java emMúltiplas Camadas

browser

browser

desktop

web server application server data base server

Java servlet

JSP

middleware

Java applets

beans

HTML

Java JRE

cookies

api's

api's

cliente servidor web servidor de aplicativos servidor base de dados

Java VM

EJB

DataBase driver

Java VM

JDBCsockets / object

XML

XML

double-tiertriple-tierquadruple-tier

lógica de apresentação lógica dos negócios

<=processo=> objeto <=processo=> objeto <=processo=> objeto <=processo=>

beans

Page 36: FEA/USP EAD-5881 – Tecnologia de Informática

36

O Modelo Físico daPlataforma J2EE

Page 37: FEA/USP EAD-5881 – Tecnologia de Informática

37

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.

Page 38: FEA/USP EAD-5881 – Tecnologia de Informática

38

Principais Fornecedores daPlataforma 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

Page 39: FEA/USP EAD-5881 – Tecnologia de Informática

39

Comparação das PlataformasJ2EE X Microsoft .NET

Característica J2EE .NET

Tipo de Tecnologia Padrão Aberto Produto

Fornecedores Mais de 30 Microsoft

Linguagem JavaC#, VB.NET, C++, JavaScript,

JScript

InterpretadorJRE (Java Runtime

Environment)CLR (Commom Language

Runtime)

Páginas Dinâmicas 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

Page 40: FEA/USP EAD-5881 – Tecnologia de Informática

40

Construção de Aplicativos Internet

Sun & Cia. Microsoft

XML