Plataforma .NET - Erudito FEA-USP

Propaganda
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
Download