EAD-0750 - Erudito FEA-USP

Transcrição

EAD-0750 - Erudito FEA-USP
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
EAD-0750
Prof. Antonio Geraldo da Rocha Vidal
[email protected]
Tópicos Especiais de Mé
Métodos
Quantitativos e Informá
Informática
Conteúdo Básico
¾
Tecnologia Cliente/Servidor
»
»
¾
Tecnologia Web
»
»
»
»
¾
Processamento no Cliente (HTML, scripts e componentes)
Processamento no Servidor (Java, .NET e componentes)
Banco de Dados
Orientação para Objetos (conceitos)
Tecnologia XML
»
»
»
¾
Processamento no Cliente
Processamento no Servidor
Conceitos
Web Services
Aplicações
Desenvolvimento de Sistemas Aplicativos
»
»
»
Microsoft Visual Studio .NET
Linguagem de Programação C#
Banco de Dados SQL Server 2000
Sistemas Monolíticos
¾
¾
¾
¾
¾
¾
¾
Dados centralizados
Recursos centralizados
Processamento centralizado
Simplicidade de desenvolvimento
Simplicidade de operação
Pouca flexibilidade para atendimento aos
usuários.
Exemplos:
»
»
Sistemas em Mainframe (Grande Porte)
Primeiros Aplicativos em Microcomputadores
EAD-750 - Tópicos Especiais de MQI - FEA/USP
1
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Sistemas Distribuídos
¾
¾
¾
¾
¾
¾
¾
Processos em execução concorrente,
distribuídos em diversos pontos da rede.
Comunicação entre processos.
Otimização de hardware.
Reutilização de software.
Software em camadas.
Dados distribuídos.
Maior flexibilidade para atendimento aos
usuários.
Tecnologia Cliente/Servidor
¾ Utilização
de três componentes básicos
para o compartilhamento de recursos
de computação:
»
Computador Cliente:
»
Computador Servidor:
–
–
»
Normalmente um microcomputador padrão PC.
Normalmente um PC poderoso, um
equipamento RISC ou mesmo um Mainframe.
Rede:
–
Conecta os clientes aos servidores.
Tecnologia Cliente/Servidor
¾ Equilíbrio
»
»
entre:
Cliente “burro” e Servidor “inteligente”
Cliente “inteligente” e Servidor “burro”.
¾ Pressupõe
que o cliente e o servidor
sejam plenamente capazes.
¾ Tenta distribuir o trabalho de forma
equilibrada, numa tentativa de tirar
melhor proveito de ambos os recursos
(dentro de suas especialidades).
EAD-750 - Tópicos Especiais de MQI - FEA/USP
2
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Tecnologia Cliente/Servidor
¾ Dependendo
do tipo da aplicação, a
distribuição exata do trabalho entre o
cliente e o servidor pode variar.
¾ Porém, o mais comum é:
»
»
Cliente: responsável pela interface com o
usuário (GUI) e lógica básica do aplicativo.
Servidor: responsável pelo gerenciamento
do acesso, por todas as funções relativas
ao banco de dados e pelas “regras” ou
“lógica” do negócio.
Aplicações Típicas Cliente/Servidor
¾ Aplicativos
Simples de Banco de Dados:
Pedido SQL
Resultados
Cliente
GUI
Lógica da Aplicação
Parte da Lógica dos
Negócios
Servidor
Acesso ao
Banco de Dados
Lógica dos Negócios
Gerenciamento da Rede
Aplicações Típicas Cliente/Servidor
¾ Processamento
de Transações: duas ou
mais atualizações no banco de dados que devem ser
concluídas tudo ou nada (aplicações missão-crítica)
Transação
Resultados
Cliente
GUI
Lógica da Aplicação
Parte da Lógica dos
Negócios
Servidor
Acesso ao
Banco de Dados
Lógica dos Negócios
Registro das Transações
Recuperação da Transação
EAD-750 - Tópicos Especiais de MQI - FEA/USP
3
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Papel do Cliente
¾ Gerenciamento
»
»
¾ Lógica
»
»
do aplicativo:
Funcionamento do interativo do aplicativo
Partes simples da lógica do negócio
¾ Aplicativos
»
»
de apresentação:
Interação com o usuário (GUI)
Entrada e consulta de dados
de produtividade pessoal:
Processador de textos, planilha etc.
Navegador Web, Cliente de E-mail etc.
Papel do Servidor
¾
Atendimento a Usuários:
»
»
¾
Gerenciador de Banco de Dados:
»
»
»
¾
Acesso e organização de registros/dados
Seleção de registros/dados
Atualização de registros/dados
Execução de Regras do Negócio:
»
»
¾
Autenticação e comunicação com usuários
Atendimento a solicitações
Procedimentos armazenados no Banco de Dados
Procedimentos armazenados em Componentes
Processamento de Transações
»
Execução de conjuntos de operações
relacionadas aos processos e regras do negócio.
Papel da Rede
¾
¾
¾
¾
Infra-estrutura para os aplicativos
Cliente/Servidor.
Submete solicitações do Cliente para o
Servidor.
Transporta os dados resultantes do Servidor
para o Cliente.
Padrões mais utilizados:
»
»
»
¾
Ethernet (transporte físico)
TCP/IP (transporte lógico)
HTTP (transporte do conteúdo)
Animações sobre o funcionamento da Rede
EAD-750 - Tópicos Especiais de MQI - FEA/USP
4
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Processamento Cliente/Servidor
¾
¾
¾
¾
Um processo de software é um programa de
computador sendo executado em uma CPU.
“Processo”, “Tarefa” e “Serviço” podem ser
considerados sinônimos.
Processos concorrentes enviam e recebem
mensagens entre si, prestando serviços uns
aos outros para atender o usuário.
Um “sistema” Cliente/Servidor é composto
por diversos destes processos, tarefas ou
serviços.
Processamento Distribuído
Processamento
Processamento
Centralizado
Processamento
Distribuído
Monolítico
Ponto-a-Ponto
Cliente
Servidor
Processamento Ponto-a-Ponto
(peer-to-peer)
¾ Não
é hierárquico.
¾ Todos os processos são “clones”
rodando em todas as máquinas e
prestando serviços uns aos outros.
¾ Não existem processos servidores.
¾ Cada processo pode ser cliente e
também servidor para outros processos
simultaneamente.
¾ Exemplo: Windows Explorer
EAD-750 - Tópicos Especiais de MQI - FEA/USP
5
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Processamento Cliente/Servidor
¾
¾
¾
¾
¾
Existem processos distintos: o processo
cliente é diferente do processo servidor.
Processos cliente são sempre clientes.
Processos servidores são sempre servidores.
Cada processo é designado para a
plataforma mais conveniente.
Exemplos:
»
»
Páginas Web: Internet Explorer (no cliente) e
Internet Information Server (no servidor)
Correio Eletrônico: Outlook (no cliente) e
Exchange Server (no servidor)
Camadas da Aplicação
Apresentação
Rede
Apresentação
CLIENTE
Apresentação
Apresentação
Apresentação
Lógica de Negócio
Lógica de Negócio
Lógica de Negócio
Gerência de Dados
Apresentação
Lógica de Negócio
Lógica de Negócio
Lógica de Negócio
Gerência de Dados
Gerência de Dados
Gerência de Dados
Gerência de Dados
Gerência de Dados
Apresentação Distribuída
Apresentação Remota
Lógica Distribuída
Gerenciamento de
Dados Remoto
Gerenciamento de
Dados Distribuído
SERVIDOR
Interfaces na Arquitetura do
Aplicativo em Três Camadas
GUI & WEB
Aplicativos do
Usuário
Interação com
componentes
da mesma camada
Pedido de Processo
Regras de
Negócios
Interação com
componentes de
outra camada
Transações e Consultas
Banco de Dados
EAD-750 - Tópicos Especiais de MQI - FEA/USP
6
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Estrutura Típica de um Aplicativo
Interface do
Usuário
Regras de
Negócios
Banco de
Dados
Arquitetura do Sistema
¾
¾
¾
¾
¾
¾
¾
Definição da Interface com o Usuário
Distribuição de Dados e Processos.
Divisão da Aplicação em Camadas e
componentes.
Arquitetura da Rede e Comunicações.
Considerações de Segurança, Capacidade e
Desempenho.
Considerações de Reutilização de
Componentes.
Seleção de Ferramentas de Desenvolvimento
de Software.
Identificação de Processos
Clientes
¾ Processos
»
»
»
–
–
»
a serem alocados a clientes:
Interface gráfica com o usuário
Validações básicas de dados
Lógica local (personalização)
Departamental
Pessoal
Fluxo de utilização (seqüência de
formulários ou páginas).
EAD-750 - Tópicos Especiais de MQI - FEA/USP
7
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Identificação de Processos
Servidores
¾
Processos a serem alocados a servidores:
»
Gerenciamento de recursos compartilhados:
Bancos de dados
Imagens
– Documentos
–
–
»
Regras corporativas
–
–
»
Política e perfis de acesso
Autenticação de usuários
Regras de negócio
Decisões
Cálculos
– Operações e transações
–
–
Integração entre Sistemas
¾ Sempre
considerar, ao avaliar
alternativas de distribuição de dados e
processos, as possibilidades de futura
reutilização dos componentes.
¾ Conceber a arquitetura com interfaces
bem definidas para futuras integrações
entre sistemas.
¾ Encapsular sistemas internos e
sistemas legados como componentes
servidores.
Transações
¾
¾
Transação: uma seqüência de comandos que
constitua uma unidade lógica de trabalho
para o software aplicativo.
Deve aderir às propriedades ACID:
»
»
»
»
Atômica: todos os comandos são executados
com sucesso ou todos falham.
Consistente: deve deixar os dados em um estado
consistente quando completada.
Isolada: não pode ver as modificações feitas por
outras transações simultâneas.
Durável: deve ser permanente quando
completada, até no caso de queda do sistema.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
8
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Transações Distribuídas
¾ Consulta
remota:
Acesso a uma fonte de dados remota para
recuperação de informações.
»
¾ Atualização
remota:
Alteração realizada em uma fonte de
dados remota.
»
¾ Consulta
distribuída
Obtenção de dados de várias fontes.
»
¾ Alteração
distribuída
Atualização de dados em várias fontes.
»
Internet X Web
¾
Internet
¾
Todos os computadores
conectados em rede
TCP/IP
» Todos os serviços
disponíveis:
»
–
–
–
–
–
e-mail
FTP
Newsgroups
Web
Etc.
Web
»
Páginas de hipertexto
conectadas:
–
–
–
–
–
»
Hyperlinks
Textos
Imagens
Animações
Documentos
Aplicações
–
Sistemas de informação
Como funciona a Web
¾
¾
¾
¾
¾
É um grande exemplo de um sistema
Cliente/Servidor.
Tudo o que está na Web pode ser dividido
em cliente e servidor.
Um servidor Web responde às solicitações
de um cliente por páginas Web nele contidas.
Os servidores são localizados na rede por
meio de uma URL – Uniform Resource
Locator, ou endereço Web.
Uma URL aponta para um servidor e para
uma página Web que está sendo solicitada.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
9
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Tecnologias Internet
Arquitetura WWW
PC/Mac/Unix
+ Browser
Cliente
Request:
http://www.msn.com/default.asp
Rede
TCP/IP
Response:
<html>…</html>
Servidor
Web Server
Como Funciona a Web
¾
¾
O HTTP (HyperText Transfer Protocol) é o
protocolo que permite que os servidores e
clientes web se comuniquem e passem dados
uns para os outros.
Tipos básicos de mensagens HTTP:
»
»
»
¾
HTTP GET: solicita dados do servidor
HTTP RESPONSE: envia dados para o cliente
HTTP POST: envia dados para o servidor
Padronização
»
»
Internet Engineering Task Force (IETF)
World Wide Web Consortium (W3C)
Princípios das Tecnologias
para Internet
¾
Interoperabilidade: linguagens Web e os
protocolos devem ser compatíveis entre si e
independentes de hardware e software.
¾
Evolução: a Web deve ser capaz de
incorporar tecnologias futuras, direcionadas
para a simplicidade, modularidade e
extensibilidade.
¾
Descentralização: facilitar a escalabilidade
e a robustez.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
10
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Linguagem HTML
¾ Hypertext
Markup Language (HTML) é
a linguagem usada para criar e exibir
páginas de hipertexto na Web.
¾ Utiliza um conjunto de marcadores
(tags) para identificar as partes do
documento ou página e definir como o
conteúdo (texto ou imagem) aparecerá
quando visto em um navegador
(browser) Web.
Exemplo de Página HTML
<HTML>
<HEAD>
<TITLE>Exemplo de página HTML</TITLE>
</HEAD>
<BODY>
<H1>Comércio Eletrônico na Internet!</H1>
<P>Este é um documento HTML simples.</P>
</BODY>
</HTML>
Páginas HTML
Estáticas
¾ As
páginas Web podem ser ou
estáticas ou dinâmicas (ativas).
¾ Páginas estáticas podem ter hyperlinks
para outras páginas e arquivos, mas
não atualizam dados no servidor e não
são atualizadas pelas ações ou
informações do usuário sobre o
servidor.
¾ A maioria das páginas Web ainda são
estáticas.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
11
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Páginas HTML
Dinâmicas
¾ Uma
página dinâmica ou ativa fornece
meios para o usuário interagir com o
servidor Web, atualizando ou alterando
dados no servidor.
¾ Uma página ativa pode conter também
controles ativos (componentes) ou
programas em linguagem de scripting, o
que fornece à página capacidades de
processamento de informações.
Ferramentas para
Desenvolvimento de páginas Web
¾ Editores
para criação de conteúdo HTML
gráficos
¾ Geradores de animação
¾ Ambientes/Linguagens de programação
¾ Gerenciadores de banco de dados
¾ Administradores de Web Sites
¾ Servidores Web
¾ Navegadores (browser)
¾ Editores
O Código das Páginas Web
¾
¾
¾
HTML: textos, gráficos estáticos e hyperlinks.
DHTML: textos, gráficos e hyperlinks dinâmicos e
interativos.
Automação através de linguagens script:
»
»
¾
Java Script (JavaScript) ou JScript (variação da
Microsoft)
Visual Basic Script (VBScript)
Automação através de componentes:
»
»
ActiveX
Java Applets
EAD-750 - Tópicos Especiais de MQI - FEA/USP
12
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Programação Orientada para
Objetos
¾
¾
¾
¾
O desenvolvimento de aplicações Web é
baseado no modelo de programação orientada
para objetos.
A programação orientada para objetos permite
escrever códigos associados a objetos
específicos em de um aplicativo.
Um objeto é uma combinação de operações e
dados que podem ser tratados como uma
unidade.
Um objeto pode ser um pedaço de uma página
de aplicativo Web, uma página inteira ou uma
regra de negócio.
Programação para a Web
Baseada em Objetos do DHTML
¾O
DHTML: Document Object Model
window
event
navigator
history
document
location
screen
frames
all
location
children
forms
selection
body
links
radio
button
text
password
file
checkbox
submit
textarea
select
option
reset
Programação para a Web
Processamento no Cliente
¾
¾
O que é processamento no cliente?
» O software que é descarregado do servidor Web para
o browser e então executado no cliente.
Por que processamento no cliente?
» Melhor escalabilidade: menos trabalho feito no
servidor
» Melhor desempenho/atendimento ao usuário
» Criar elementos de interface em HTML
– Menus drop-down e pull-out
– Diálogos paginados
» Efeitos especiais, p.ex. animação
» Validação de dados
EAD-750 - Tópicos Especiais de MQI - FEA/USP
13
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Programação para a Web
Processamento no Servidor
¾
¾
¾
Quando processamento no servidor, as
instruções (código-fonte) são executadas pelo
servidor Web antes da página ser retornada para
o usuário no computador cliente.
Um programa no servidor cria uma página HTML
padrão de retorno, portanto, o usuário nunca vê o
código-fonte do programa executado no servidor.
O servidor Web precisa suportar páginas de
servidor ativas: ASP, JSP, PHP etc.
JavaScript
¾O
JavaScript é um a linguagem C-like,
baseada em Java.
¾ Desenvolvida pela Sun Microsystems
Inc. e pela NetScape Communication
Corporation.
¾ JavaScript é suportada pelo NetScape
Navigator versão 2.0 ou posterior e pelo
Microsoft Internet Explorer versão 3.0
ou posterior.
Componentes Ativos
¾ Java
»
Applets – tag <APPLET>
São programas pequenos, reutilizáveis e
independentes de plataforma que expõem
uma interface padrão e são executados
em um recipiente como um navegador
Web.
¾ Controles
»
ActiveX – tag <OBJECT>
São componentes da plataforma Windows
(.dll ou .ocx) que podem ser inseridos em
uma página Web ou outras aplicações que
podem se tornar recipientes de controles
ActiveX.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
14
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Scripts no Servidor
Páginas Ativas no Servidor
Um programa no Servidor significa que há um código
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.
¾
¾
¾
Páginas Ativas no Servidor
Principais Tecnologias
¾
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
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.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
15
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
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.
Bytecodes são
uma linguagem
intermediária
independente
de plataforma.
Disco
Disco
Disco
Modelo de Execução
Java
Pode haver um
Interpretador de
bytecodes
para cada
plataforma.
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.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
16
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
O Modelo Lógico da
Plataforma J2EE
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
JDBC
sockets / object
beans
XML
api's
<=processo=>
lógica de apresentação
objeto
<=processo=>
double-tier
triple-tier
quadruple-tier
lógica dos negócios
objeto
<=processo=>
objeto
<=processo=>
O Modelo Físico da
Plataforma J2EE
EAD-750 - Tópicos Especiais de MQI - FEA/USP
17
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
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
Borland: JBuilder
Plataforma Microsoft .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).
Camadas e Componentes .NET
Página
ASP
.NET
.NET
Oracle
.NET
SQL
Server
No Servidor
.NET
Página
COM
HTML
No Cliente
COM
APRESENTAÇÃO
REGRAS DE NEGÓCIOS
Outros
DADOS
EAD-750 - Tópicos Especiais de MQI - FEA/USP
18
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
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
O Modelo Lógico da Plataforma
.NET da Microsoft
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
EAD-750 - Tópicos Especiais de MQI - FEA/USP
19
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
O Modelo Físico da
Plataforma .NET
Comparação das Plataformas
J2EE X Microsoft .NET
Característica
J2EE
.NET
Tipo de Tecnologia
Padrão Aberto
Produto
Fornecedores
Mais de 30
Microsoft
Linguagem
Java
C#, J#, VB.NET, C++, JavaScript,
JScript
Interpretador
JRE (Java Runtime
Environment)
CLR (Commom Language
Runtime)
Páginas Ativas no Servidor
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
O Modelo Físico da
Plataforma J2EE
EAD-750 - Tópicos Especiais de MQI - FEA/USP
20
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
O Modelo Físico da
Plataforma .NET
Construção de Aplicativos Web
XML
Sun & Cia.
Microsoft
Bancos de Dados
Databases
Virtualmente todos os aplicativos interessantes exigem um
armazenamento de dados estruturado e persistente.
» E-Commerce: registrar um pedido, entregar um pedido etc.
» Recursos Humanos: dados de pessoal, salários e benefícios.
» Vendas: pedidos, produtos, cobranças e pagamentos.
» CRM: dados de e sobre clientes.
» Pesquisas: dados primários, dados secundários, resultados etc.
¾ As necessidades de armazenamento de dados variam de acordo
com o tipo de aplicativo:
» Processamento de Transações (Transaction Processing - OLTP)
» Processamento Analítico (Business Intelligence/Data
Warehouse - OLAP
» Web Sites e Enterprise Portals
¾
EAD-750 - Tópicos Especiais de MQI - FEA/USP
21
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Bancos de Dados Relacionais
Relacionamentos
1
∞
Os dados são duplicados aqui
1
1
∞
∞
Bancos de Dados Relacionais
Structured Query Language - SQL
¾
¾
¾
Linguagem padrão para acesso a um banco de dados
relacional, padronizada pelo American National
Standards Institute (ANSI); SQL-92
Aberta, mas não realmente:
» As funções mais comuns são geralmente as mesmas
entre os diversos produtos existentes.
» A maioria dos produtos têm extensões proprietárias.
Subconjuntos da SQL
» Data Definition Language (DDL)
» Data Manipulation Language (DML)
» Data Control Language (DCL)
Bancos de Dados Relacionais
DDL Exemplos
¾ Usada
para criar e modificar objetos de
banco de dados.
CREATE DATABASE Livraria
CREATE TABLE Livro
(
LivroID
INT IDENTITY(1,1) PRIMARY KEY,
Titulo
VARCHAR(40) NOT NULL,
DatPub
DATE NOT NULL,
Descricao
VARCHAR(80),
Genero
INT NOT NULL
)
EAD-750 - Tópicos Especiais de MQI - FEA/USP
22
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Bancos de Dados Relacionais
DML Exemplos
¾ Selecionar
dados a serem consultados.
SELECT * FROM Autor
SELECT AutorID, Nome, SobreNome
FROM Autor
SELECT AutorID, Nome, SobreNome, Telefone
FROM Autor
WHERE Cidade = ‘São Paulo’
SELECT Nome, SobreNome, Telefone
FROM Autor
WHERE AutorID = 249
Bancos de Dados Relacionais
DML Exemplos
¾ Inserir,
atualizar e excluir dados.
INSERT INTO Livro
(Titulo, DatPub, Descricao, Genero)
VALUES
(‘Projeto de Banco de Dados’, GETDATE(),
‘Como construir um Banco de Dados’, 3)
UPDATE Autor
SET Telefone = ‘3091-1234’
WHERE AutorID = 5
DELETE FROM Autor
WHERE AutorID = 5
Bancos de Dados Relacionais
DCL Exemplos
¾ Configura
opções de segurança em
objetos de banco de dados.
GRANT INSERT, UPDATE, DELETE
ON Autor
TO Maria, José
REVOKE CREATE TABLE FROM José
DENY ALL
ON Autor, Livro
TO Salete
EAD-750 - Tópicos Especiais de MQI - FEA/USP
23
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Bancos de Dados Relacionais
Views (Visões)
¾ Uma
view é uma tabela virtual.
¾ Abstrai as estruturas das tabelas
relacionadas.
¾ Abstrai uma consulta possivelmente
complexa.
¾ Fornece abstração quanto à segurança.
¾ Uma view pode ser:
»
»
Indexada
Atualizada (alteração e inserção de dados)
Bancos de Dados Relacionais
Exemplo de Definição de View
CREATE VIEW Pedidos AS
SELECT p.PedidoID, c.Nome
FROM Cliente c
INNER JOIN Pedido p
ON c.ClienteID = p.ClienteID
ORDER BY p.PedidoID
Bancos de Dados Relacionais
Exemplo de Utilização de Views
SELECT *
FROM Pedidos
WHERE Nome = 'Meu Melhor Cliente'
PedidoID
Nome
101
Meu Melhor Cliente
137
Meu Melhor Cliente
…
EAD-750 - Tópicos Especiais de MQI - FEA/USP
24
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Bancos de Dados Relacionais
Stored Procedures
(Procedimentos Armazenados)
¾
¾
¾
¾
¾
¾
¾
Um grupo de comandos SQL que é armazenado e
executado dentro do banco de dados.
Não faz parte do SQL padronizado.
Fornece grande desempenho.
Pode controlar acesso a dados.
Pode aceitar parâmetros.
Pode retornar diversos tipos de dados:
» Parâmetros de saída
» Valores de retorno
» Conjuntos de dados de retorno
Pode implementar Regras de Negócios
Bancos de Dados Relacionais
Triggers (Gatilhos)
¾
¾
¾
¾
¾
¾
Como as stored procedures, triggers são conjuntos de
comandos SQL que são armazenados e executados
dentro do banco de dados.
Porém, não são diretamente chamados por um usuário.
São executadas quando uma determinada modificação
de dados ocorrer (INSERT, UPDATE ou DELETE)
Garante a execução de regras de negócio.
FOR AFTER: a trigger é executada depois que a ação de
atualização especificada for completada.
FOR INSTEAD OF: a trigger é executada no lugar da
ação de atualização especificada.
Arquitetura de Sistemas WEB
EAD-750 - Tópicos Especiais de MQI - FEA/USP
25
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Funções das Camadas na
Arquitetura do Sistema
Camada
Responsabilidade
Funções
Aplicativos de
usuário
Prover interface
compreensível e
eficiente.
Apresentação,
entrada,
navegação e
análise de dados.
Regras de
negócio
Estabelecer a
política dos
negócios: regras e
heurística.
Preparar respostas
para o usuário.
Tomada de
decisões,
imposição da
política, cálculos,
coordenação de
recursos.
Fontes de dados
Manter dados
consistentes,
atualizados e
seguros.
Manutenção,
atualização,
integridade e
segurança de
dados
Ferramentas
Ferramentas
gráficas,
linguagem de
programação e
componentes.
Linguagem de
programação e
componentes.
Banco de dados,
linguagem de
banco de dados e
XML.
Arquitetura em Camadas
¾
¾
¾
¾
A arquitetura em camadas é lógica e não física.
Se preocupa com as funções do aplicativo e não
com sua implementação.
Essa mesma arquitetura pode ser usada para
elaborar sistemas distribuídos ou centralizados,
tradicionais, Cliente/Servidor ou para a Web.
Entretanto, a utilização dessa arquitetura facilita
a distribuição dos componentes do aplicativo,
quando for preciso por razões de negócios,
tecnológicas ou ambas.
Benefícios da
Arquitetura em Camadas
¾
¾
¾
¾
Estrutura para elaboração de aplicativos flexíveis que
possam ser alterados com facilidade para atender às
necessidades de negócios em constante mudança.
Alto nível de reutilização de software.
Desenvolvimento mais fácil de aplicativos grandes e
complexos em ambientes transacionais, Web e de
suporte à decisão.
Desenvolvimento mais fácil de aplicativos distribuídos
que dão suporte ao gerenciamento central, a equipes
auto gerenciadas e ao atendimento externo.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
26
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Detalhamento da Interface
entre as Camadas
Implementação das Camadas
com Componentes
Aplicativos Complexos Exigem
Divisão do Trabalho
¾
O desenvolvimento de um sistema aplicativo complexo
normalmente exige especialização em:
»
»
»
»
»
»
»
»
»
¾
Arquitetura de sistemas
Desenvolvimento de interface e design gráfico
Programação de negócios
Administração de dados
Administração de banco de dados
Programação componentes
Distribuição de aplicações e componentes
Administração de redes de comunicação
Gerenciamento de segurança
Formação de pequenas equipes, em geral de 3 a 6
pessoas por tipo de especialização.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
27
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Sistemas Distribuídos Complexos
Servidor do
Distribuidor
Cliente em
casa
Internet
Servidor do
Fornecedor
Internet
Rede do Distribuidor
Servidor da Loja
Rede do Banco
Cliente em
casa
Servidor do
Fornecedor
Mainframe Regional
do Banco
Mainframe Principal
do Banco
Terminais de Caixa do Supermercado
Empresas Digitais
Empresa A
Mobile
Employees
Empresa B
Consumers, Partners
Mobile
Employees
Consumers, Partners
Customers
Partners
Suppliers
Modelo para o Planejamento,
Projeto e Desenvolvimento
Conceitual
Lógico
Físico
Aplicativos de
usuário
Fluxo de
Trabalho
Seqüências de
páginas e
formulários
Páginas e
Formulários
Regras de
Negócios
Fluxo de
processos de
negócio
Modelo de
processos e
regras
Programas e
Componentes
Banco de dados Modelo de dados Esquema de
banco de dados
Tabelas, índices
e Procedimentos
Pontos
vulneráveis e
tipos de ataque
Firewall, controle
de acesso e
disciplina
Segurança
Esquemas de
defesa e
autenticação
EAD-750 - Tópicos Especiais de MQI - FEA/USP
28
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Do Modelo Conceitual ao
Modelo Físico
Conceitual
Modelo de
Negócios
Fluxo de
Processos
Fluxo de
Trabalho
Domí
Domínio do Problema: modelo do negó
negócio (REGRAS)
Lógico
Modelo de
Dados
Interação de
Processos
Seqüência de
Formulários
Domí
Domínio da Soluç
Solução: modelo do software (DESEMPENHO)
Físico
Banco de
Dados
Programas e
Componentes
Formulários
e Páginas
Aplicativo com Três
Camadas Físicas
Aplicativos com Múltiplas
Camadas
EAD-750 - Tópicos Especiais de MQI - FEA/USP
29
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Funcionamento de
Aplicativos Web
Fases Clássicas do
Desenvolvimento de Aplicativos
Definição de
Requisitos
Domínio do Problema
Análise
Projeto
Implementação
Teste
Domínio da Solução
Implantação
Metodologia Orientada a Objetos
¾
Uma metodologia de desenvolvimento de
sistemas é considerada Orientada a Objetos
se ela orienta a construção de sistemas a
partir do entendimento do mundo real como
um conjunto de objetos de software que
comunicam-se entre si de forma coordenada.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
30
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Paradigmas
Programa
Classe
Processos
Propriedades
Dados
Métodos
Tradicional
Objetos
Objetos de Software
¾
¾
¾
¾
Objetos são pacotes de software compostos por dados e
procedimentos, que atuam sobre estes dados.
Os procedimentos são também conhecidos como
métodos e determinam o comportamento do objeto.
Os dados são também conhecidos como propriedades
e determinam o estado do objeto.
Objeto = dado + procedimento
Objeto = estado + comportamento
Processo de Desenvolvimento
CONCEPÇÃO
Projeto Lógico
(Análise
Conceitual)
REQUISITOS
Revisão
de Processos
de Negócio
ELABORAÇÃO
Projeto Físico
(Projeto de
Software)
1
2
3
Interativo e Incremental
CONSTRUÇÃO
Implementação
(Desenvolvimento)
ITERAÇÕES:
•Análise
•Projeto
•Implementação
•Teste & Ajuste
•Treinamento
Domínio do Problema
Domínio da Solução
TRANSIÇÃO
Teste
Ajuste
Treinamento
EAD-750 - Tópicos Especiais de MQI - FEA/USP
31
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XML
eXtensible Markup Language
¾
¾
¾
¾
XML tem como propósito fundamental a
descrição de informações.
Permite colocarmos em um mesmo documento
dados e metadados (a descrição destes
dados).
Estabelece um formato textual que pode ser
facilmente entendido quando lido por uma
pessoa ou por um software.
Ao contrário dos formatos tradicionais, em XML
os dados são armazenados com a sua
descrição.
Formato Tradicional
¾
¾
¾
Uma maneira tradicional de se transmitir dados
de um sistema para outro é por meio de
arquivos texto delimitados.
Cada registro ocupa uma linha e cada coluna
de dados é separada das outras por um
delimitador.
Tanto o programa que gera, como o programa
que recebe e utiliza estes dados precisam
conhecer o formato exato dos registros.
Formato Tradicional
Coluna
CPF
Nome
Endereço
Etc.
Posição
1-14
15-55
56-100
....
Neste formato,
o deslocamento
de uma única
posição muda
todo o conjunto
de dados que
será lido por
um programa.
950.241.318-00Antonio Geraldo Vidal
Rua Bela Cintra
100.231.342-60José da Silva Santos
Rua Tiradentes
234.123.123-34Maria Aparecida dos Santos Paiva Av. Brasil, 231
.
.
.
.
.
.
.
.
.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
32
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Formato XML
<PESSOA>
<CPF>950.241.318-00</CPF>
<NOME>Antonio Geraldo Vidal</NOME>
<ENDEREÇO>Rua Bela Cintra, 2262</ENDEREÇO>
<CEP>01415-002</CEP>
</PESSOA>
<PESSOA>
<CPF>100.231.342-60</CPF>
<NOME>José da Silva Santos</NOME>
<ENDEREÇO>Rua Tiradentes, 2104</ENDEREÇO>
<CEP>05059-001</CEP>
</PESSOA>
¾
Em XML a adição ou a remoção de elementos tem
pequeno impacto sobre o software que estiver lendo as
informações contidas no documento.
Formato XML
¾
¾
¾
¾
Por ter uma estrutura simples e bem definida, XML
permite que um documento seja validado antes de ser
iniciado seu processamento.
XML é uma maneira simples, estruturada, flexível e
precisa para se descrever informações.
Na prática, XML habilita a comunicação com parceiros
de negócio, de um modo que não é possível com
qualquer outra tecnologia.
Em sistemas para transações eletrônicas, XML permite
a separação dos dados dos processos que agem sobre
esses dados.
Características de XML
¾
¾
¾
XML é uma linguagem padronizada,
originalmente direcionada para o
processamento de documentos.
Fornece uma sintaxe que permite definir cada
objeto de informação de um modo não
ambíguo.
Fazendo isso, pode-se capturar as informações
como sendo um objeto e então processá-lo
utilizando diferentes aplicativos, dependendo
dos requisitos de cada contexto de negócio.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
33
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Aplicações de XML
em Negócios Eletrônicos
¾
¾
¾
O principal propósito de uma aplicação
empresarial é gerar negócios.
Para isso, freqüentemente constrói-se um Web
Site de comércio eletrônico que faz uma
conexão com cadastros de produtos e serviços
que uma Empresa fornece.
Estes cadastros normalmente tomam a forma
de uma base de dados SQL.
Aplicativo Padrão para
Negócios Eletrônicos
Informações Externas
¾
¾
¾
¾
Dados externos podem ser uma rica fonte de
informações para os clientes ou funcionários de uma
Empresa.
Entretanto, as informações externas não estão em
bases de dados do seu próprio servidor.
Pode-se, porém, usar XML para solicitar e obter
informações como objetos XML, podendo processá-los
posteriormente.
O trabalho é, portanto, agregar certos tipos de
conteúdo de vários sites na Web e disponibilizá-los em
páginas do próprio site da empresa, para fornecer ao
visitante ou usuário toda informação que ele precisa.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
34
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Aplicativo XML
para Negócios Eletrônicos
Sites externos tornam-se,
portanto, parte da camada de
dados, e um aplicativo de
agregação é usado para integrar
estes novos dados na camada de
regras de negócio.
XML
Exemplo
¾
Um site de uma agência de viagens poderia
enviar uma requisição de informações
sobre a previsão do tempo através de um
pedido eletrônico em XML, como abaixo:
<weather_request days="5" temp="celsius" wind="mph">
<zipcode>80112</zipcode>
</weather_request>
Exemplo
¾
Em resposta, receberíamos um documento XML como a seguir:
<weather_response zipcode='80012' Updated='2000-01-07 21:49:06'>
<location>Aurora, CO</location>
<current>
<condition name='temp'>28</condition>
<condition name='wind chill'>12</condition>
<condition name='wind'>from the Southeast at 8 mph</condition>
<condition name='dewpoint'>18</condition>
<condition name='relative humidity'>66%</condition>
<condition name='visibility'>25 miles</condition>
<condition name='barometer'>30.02 inches</condition>
<condition name='Sunrise'>7:20 am MST</condition>
<condition name='Sunset'>4:50 pm MST</condition>
</current>
<forecast>
<day date='20000108 21:49:06'
High='49' Low='20' Sky='Partly Cloudy'/>
<day date='20000109 21:49:06'
High='46' Low='21' Sky='Partly Cloudy'/>
<day date='20000110 21:49:06'
High='51' Low='25' Sky='Partly Cloudy'/>
<day date='2000-01-11 21:49:06'
High='51' Low='19' Sky='Partly Cloudy'/>
<day date='2000-01-12 21:49:06'
High='53' Low='21' Sky='Partly Cloudy'/>
</forecast>
</weather_response>
EAD-750 - Tópicos Especiais de MQI - FEA/USP
35
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Exemplo
¾
¾
¾
Os documentos XML que a empresa fornecedora de
previsões do tempo enviar conterão apenas os dados
solicitados.
Poderão ser processá-los de diferentes formas,
dependendo do tipo de saída desejada, em cada
situação.
Os dados recebidos poderão ser apresentados ou
manipulados como desejado, pois teremos acesso aos
dados brutos e poderemos processá-los da maneira
mais apropriada às necessidades do negócio.
Protocolo de Comunicação
¾
¾
¾
SOAP - Simple Object Access Protocol é um protocolo
de comunicação padrão, via Internet, proposto pelo
IETF - Internet Engineering Task Force (IETF), que
permite invocar procedimentos em sistemas remotos
(RPC) usando um conjunto padrão de marcadores
(tags) XML.
O SOAP utiliza o HTTP das páginas HTML como seu
protocolo de requisição e resposta de dados.
Portanto, utilizando-se o SOAP pode-se obter dados de
forma simples, rápida e eficaz de um provedor de
conteúdo, ou de parceiros de negócio.
SOAP – Simple Object Access Protocol
EAD-750 - Tópicos Especiais de MQI - FEA/USP
36
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Aplicativos XML
para Negócios Eletrônicos
Vários parceiros de negócio (syndication
partners) fornecerão conteúdo baseado em
padrões, portanto, nós poderemos agregar
várias fontes de informações diferentes em uma
única base de assuntos correlatos.
XML/SOAP
XML/SOAP
Aplicativos XML
para Negócios Eletrônicos
Cada parceiro de negócio exige um
conversor especializado que transforma sua
estrutura particular de informações em uma
forma que nosso “site” pode usar.
Aplicativos XML
para Negócios Eletrônicos
Multiplique os
conversores
especializados pelo
número de “sites”
usando os
conteúdos
disponíveis.
Os problemas com
“sites” individuais
serão também
multiplicados.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
37
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Aplicativos XML
para Negócios Eletrônicos
Fornecendo dados em um
formato único e padronizado
elimina-se a necessidade de
software
de
conversão
proprietário
para
cada
provedor de dados.
Cada provedor precisa criar
um só filtro, para converter o
conteúdo do formato do
provedor para o formato
padrão (no exemplo NITF). A
partir daí, cada site pode
utilizar a informação em seu
formato padrão nativo ou
convertê-la mais uma vez
para a forma exigida para
seus sistemas de informação.
<?xml version="1.0"?>
<nitf>
<head>
<title>Technology Tools and Toys</title>
</head>
<body>
<body.head>
<headline>
<hl1>Pac-Man chomps its way toward 20</hl1>
<hl2>Seminal video game rose from humble
beginnings</hl2>
Exemplo
</headline>
<byline>
By<person>Steven Kent</person>
<bytag>MSNBC CONTRIBUTOR</bytag>
</byline>
<dateline>
<location></location>
<story.date>1999-09-03</story.date>
</dateline>
</body.head>
<body.content>
<p>He may have been a fixture in bars for
most of the last two decades, but Pac-Man,
one of the video game industry's greatest
living legends, is still a bit shy of legal
age.</p>
...
</body.content>
<body.end></body.end>
</body>
</nitf>
XML como Padrão
para Negócios Eletrônicos
¾ XML
é um padrão criado pelo
W3C - World Wide Web Consortium.
¾ O W3C é um consórcio das companhias
dedicadas a criar e manter tecnologias
essenciais para a Internet como o HTML
e o XML.
¾ XML é uma sintaxe poderosa que permite
às organizações criar estruturas para o
intercâmbio de eficiente de informações.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
38
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
EDI vs. XML
¾
¾
¾
Um grupo chamado XML/EDI está trabalhando
em uma versão mais aberta das especificações
de EDI.
Esperam que usuários tradicionais de EDI
adotem XML como sua sintaxe padrão para
intercâmbio de dados.
Muitos outros grupos estão trabalhando para o
mesmo fim:
»
Criar um modo universal de fazer negócios, usando
XML como a sintaxe de definição de dados.
ebXML
¾
¾
¾
¾
Um destes esforços é a iniciativa ebXML
("eb" de "electronic business“).
As Nações Unidas/CEFACT e a OASIS - Organization
for the Advancement of Structured Information
Standards - um grupo de indústrias XML - estão
trabalhando sobre o ebXML.
A meta do ebXML é usar um conjunto padrão de
objetos XML para facilitar o comércio internacional.
A iniciativa ebXML deve desenvolver uma infraestrutura técnica que habilitará o uso de XML de uma
maneira consistente para a troca de todo tipo de dados
de negócios de eletrônicos.
ebXML
„
¾
¾
¾
¾
¾
¾
A lista parcial de participantes deste
grupo parece a lista do quem é quem no
comércio eletrônico internacional:
¾ IBM
Ariba
¾ Microsoft
Amazon.com
¾ Oracle
Bank of America
¾ Sun
Boeing
¾ E muitas outras
CommerceNet
companhias ao redor
Dunn and Bradstreet
do mundo
EAD-750 - Tópicos Especiais de MQI - FEA/USP
39
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XML como Padrão
para Negócios Eletrônicos
¾
¾
¾
Assim como o ebXML, existem muitas outras
especificações e padrões sendo desenvolvidos por
outros grupos neste ambiente.
Estas especificações provavelmente resultarão em um
conjunto de padrões chamados esquemas, que
descreverão determinados documentos de negócio
como faturas, ordens de compra, registros médicos e
transações financeiras.
Neste ambiente, os esquemas serão componentes
críticos da solução de comércio eletrônico.
Onde XML se encaixa nos
Negócios Eletrônicos?
¾
¾
¾
¾
¾
Em todo lugar!
XML é apenas um conjunto de regras;
uma sintaxe - para marcar dados.
É uma sintaxe simples, padronizada e compacta,
porém, são exatamente estas qualidades que a
valorizam.
Para participar de qualquer transação de negócios,
uma empresa deve comunicar-se claramente com seus
parceiros de negócio.
XML, portanto, fornece uma sintaxe para se comunicar
de modo direto e preciso, identificando cada pedaço de
informação exigida para completar uma transação.
XML e Negócios Eletrônicos
¾
¾
¾
Assim como HTML se tornou a linguagem padrão de
apresentação de informações na Web, XML será,
provavelmente, a linguagem padrão para transações
eletrônicas através da Web.
XML propriamente não define o vocabulário das
transações, este é o trabalho do esquema.
XML será apenas a sintaxe usada para permutar os
dados e fazer as transações se realizarem entre
diferentes sistemas de diferentes organizações ao
redor do planeta.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
40
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
O padrão XML
¾
¾
¾
¾
XML é um padrão aberto.
Não pertence a uma única organização
Foi definida por um consórcio de organizações
altamente competitivas de diversos setores.
Elas perceberam o grande benefício para todos
na utilização de uma sintaxe simples e
padronizada para trocar informações.
O padrão XML
¾
¾
¾
Por ser um padrão aberto, XML trabalha sob
qualquer plataforma computacional com
qualquer linguagem de programação.
XML realmente não faz nada; ela é somente
uma sintaxe que fornece um modo estruturar e
representar dados e informações.
O benefício chave da XML é que ela permite
separar os dados dos processos que agem
sobre estes dados.
“Dupla Dinâmica”
XML & Java
¾ Você
provavelmente já ouviu muito sobre
a dupla XML e Java:
»
»
XML para representar dados e
Java para processá-los
¾ Esta
dupla faz muita sensação por serem
padrões abertos, independentes de
plataformas computacionais.
¾ Os desenvolvedores podem criar
aplicativos multi-plataforma em Java e
usar XML para trocar dados entre eles.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
41
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Origem de XML
¾
¾
¾
Está na SGML - Standard Generalized Markup
Language.
SGML é um padrão, pertencente à ISO, que foi
criado para permitir o compartilhamento de
informações entre as companhias que
poderiam possuir sistemas diferentes.
A IBM, a DEC, a Receita Federal (IRS) e o
Departamento de Defesa (DoD) dos EUA são
(ou eram) grandes usuários da SGML.
SGML e XML
¾
¾
¾
SGML foi a primeira tecnologia padrão que
permitiu que usuários separassem dados dos
processos que agiam sobre eles.
Usando SGML, pode-se executar um
processo, chamado análise de informações,
para descobrir a estrutura e o conteúdo dos
dados.
Um vocabulário chamado Document Type
Definition – DTD – ou definição de tipo de
documento, pode ser então desenvolvido a
partir daquela análise.
DTD
Document Type Definition
¾
¾
¾
Um DTD define uma classe de informações,
portanto, cada DTD é específico para cada
conjunto de dados.
Um DTD indica o conteúdo de objetos no
conjunto de informações usando uma sintaxe
precisa chamada modelo de conteúdo.
Uma vez que cada conjunto de informações
tem requisitos e objetos diferentes, o DTD para
descrever cada conjunto é diferente.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
42
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Surgimento da XML
¾
¾
Com a ampliação do uso da Internet para trocar
informações precisava-se de algo:
» Portável, barato, rápido e fácil como HTML;
» Extensível como SGML;
» Compatível com que já era conhecido, de
forma que pudéssemos usar as técnicas e
ferramentas já existentes.
Com esse objetivo, um grupo do W3C
trabalhou entre 1996 e 1997 até apresentar a
primeira definição de XML em 1998.
Essência da XML
¾
¾
¾
¾
XML é uma sintaxe que permite que usuários
criem linguagens de marcação.
As linguagens que são usadas para criar
linguagens de marcação são comumente
conhecidas como meta linguagens de
marcação.
XML é uma recomendação técnica do W3C
(http://www.w3c.org).
XML é um padrão multi-plataforma, aberto,
não-proprietário e gratuito.
Padronizadores da XML
¾
Organismos que de certa forma regulam os
padrões da XML:
»
»
»
»
»
»
¾
International Organization for Standardization (ISO)
American National Standards Institute (ANSI)
Organization for the Advancement of Structured
Information Systems (OASIS)
World Wide Web Consortium (W3C)
Internet Engineering Task Force (IETF)
Indústrias que definem esquemas XML
Capacidade de extensão do XML
»
Derivam-se do XML inúmeros padrões...
EAD-750 - Tópicos Especiais de MQI - FEA/USP
43
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Documentos XML
¾
¾
¾
¾
¾
Um documento XML é estruturado em forma de árvore.
Possui sempre um elemento raiz, a partir do qual outros
elementos vão se ramificar.
Essa estrutura de árvore estabelece como documentos
XML vão ser definidos e tratados.
O tratamento envolve principalmente encontrar um
determinado elemento, ou grupo de elementos a serem
processados.
Duas relações entre os elementos são importantes:
hierarquia e seqüência.
Hierarquia e Seqüência
¾ Hierarquia:
»
Estabelece relações pai/filho e
ancestral/descendente entre os elementos.
¾ Seqüência:
»
Estabelece a seqüência em que as
informações aparecem.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
44
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Exemplo
<?xml version=“’=1.0”?>
<Instruções>
<Titulo>
Lavar os Cabelos
</Titulo>
<Seqüência>
<Passo> Molhar os cabelos</Passo>
<Passo> Colocar xampu</Passo>
<Passo> Fazer espuma com as mãos</Passo>
<Passo> Esfregar bem</Passo>
<Passo> Enxaguar bem</Passo>
</Seqüência>
</Instruções>
Documentos XML
Bem Formados e Válidos
¾
¾
¾
Um documento XML pode estar em dois estados:
» Bem formado
» Válido
Um documento bem formado adere a várias regras ou
restrições de formação, detalhadas na especificação da
sintaxe do XML.
Um documento XML é válido se possuir uma
declaração de tipo de documento associada (DTD ou
XMLSchema) e se o documento estiver de acordo com
as regras e restrições nela expressas.
Documentos XML
Válidos
¾
¾
¾
¾
Um documento XML é válido se possuir uma
declaração de tipo de documento associada – DTD
Document Type Definition ou esquema XMLSchema –
e se estiver de acordo com as regras nela expressas.
A declaração de tipo de documento diz ao interpretador
XML onde achar um conjunto de regras contra as quais
um documento pode ser conferido e validado.
De onde vem este conjunto de regras? Do negócio!
Alguém precisa determinar a estrutura dos membros de
uma classe particular de documentos e tornar esta
descrição de estrutura disponível para o interpretador
XML.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
45
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
Exemplo
<?xml version=“1.0”?>
<!DOCTYPE PRECOS [
<!ELEMENT PRECOS (LIVRO+)>
<!ELEMENT LIVRO (TITULO,DISTRIBUIDOR?)>
DTD
<!ATTLIST TITULO VALOR CDATA #REQUIRED>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT DISTRIBUIDOR (#PCDATA)>
]>
<PRECOS>
<LIVRO>
<TITULO VALOR=“120”>Manual de Comercio Eletrônico</TITULO>
<DISTRIBUIDOR>Editora Choque</DISTRIBUIDOR>
</LIVRO>
<LIVRO>
<TITULO VALOR=“78”>Tudo sobre Negócios na Web</TITULO>
<DISTRIBUIDOR>Editora Teia</DISTRIBUIDOR>
</LIVRO>
</PRECOS>
Atributos
¾
¾
¾
¾
Cada item ou elemento de informação pode ter uma ou
mais propriedades ou atributos.
Cada atributo tem um nome único e possui possui uma
propriedade consistindo de zero ou mais caracteres.
Em HTML é normal o uso de atributos para qualificar
elementos: par nome+valor.
Em XML atributos podem ser usados para descrever ou
fornecer informações sobre um elemento.
<TITULO VALOR=“120”>Manual de Comércio Eletrônico</TITULO>
Visualização de Documentos
HTML e XML
¾
¾
¾
¾
Documentos XML que não precisam ser transformados
podem usar folhas de estilo em cascata – CSS –
usadas em HTML para serem apresentados.
Documentos XML que precisam de algum tipo de
transformação usam folhas de estilo XSL para serem
apresentados.
Esta transformação cria um conteúdo HTML por meio
de um processador XSL, que pode residir no navegador
do computador cliente ou no servidor Web.
XSL é uma linguagem de transformação declarativa,
que busca encontrar determinadas tags para aplicar
determinado tipo de estilo de formatação visual HTML
sobre elas.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
46
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XSL
Ferramentas para XML
¾
¾
¾
¾
¾
Navegadores: Internet Explorer 5.0 ou
posterior.
Editores: programas que permitem a criação e
edição de documentos XML.
Parsers: programas que verificam a sintaxe
XML e possibilitam o desenvolvimento de
aplicações para tratar documentos XML.
Processadores XSL: transformam documentos
XML em documentos HTML.
Banco de Dados XML: armazenam dados ou
retornam resultados de consultas como
documentos XML.
DTD vs. XML Schemas
¾ Encontra-se
em desenvolvimento no
W3C um padrão denominado XML
Schemas que deve substituir o DTD.
¾ Ou contrário do DTD, no XML Schemas
a definição do documento segue as
mesmas regras de XML.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
47
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XML Schemas
¾
¾
Desde que a recomendação XML 1.0 foi finalizada em
fevereiro de 1998, o W3C tem trabalhado em uma
especificação alternativa para substituir o DTD para
descrever esquemas.
O grupo de trabalho “W3C XML Schema” está focando
em três áreas de melhoria:
Os esquemas devem ser escritos usando a sintaxe XML, assim
nos permitindo usar as mesmas ferramentas que costumamos
usar para processar documentos XML.
» Deve ser definido um novo padrão de esquemas para suportar
tipos de dados comuns, como numérico, data e moeda; como
também tipos de dados definidos pelo usuário. Este novo tipo
de esquema moveria a tarefa de validação dos dados do
aplicativo para o interpretador XML, onde os dados são
acessíveis por todos os programas que lêem documentos XML.
» O novo padrão de esquemas deve suportar modelos de
conteúdo aberto.
»
Esquemas XML
<Schema name=“bookSchema_v_1.2”>
<ElementType name=“book”>
<element type=“id”/>
<element type=“price”/>
<element type=“author”/>
<element type=“title”/>
<element type=“grade.level”/>
</ElementType>
<ElementType name=“price”
dt:type=“float” required=“yes”/>
<ElementType name=“id”
dt:type=“string” required=“yes”/>
...
</Schema>
XML Web Services
¾ Evolução
»
»
»
»
das Aplicações Web:
Acessíveis por outros computadores, não
só por pessoas como os Web Sites;
Transformam “páginas Web” em
componentes reutilizáveis ou serviços;
Podem ser fornecidos e/ou consumidos;
Permitem transações seguras através de
parceiros de negócio.
EAD-750 - Tópicos Especiais de MQI - FEA/USP
48
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XML Web Services
¾
Nova metodologia de integração:
»
»
»
»
¾
Utiliza interações XML entre sistemas;
Baseados em padrões abertos, nativos da Internet;
Trabalham sob qualquer sistema operacional,
linguagem de programação ou rede de
comunicação;
É possível expor o sofware existente como um Web
Service.
Sistemas aplicativos distintos podem realmente
trocar dados entre si de forma automática.
XML Web Services
¾
¾
¾
¾
As informações da Web tradicional só podem
ser acessadas por usuários humanos;
XML Web Services são uma evolução para o
acesso a serviços e informações na Web, de
forma automática e programada;
XML Web Services trabalham como
componentes de software;
XML Web Services tornam possível que um
sistema aplicativo “converse” com qualquer
outro sistema aplicativo, sem requerer
nenhuma intervenção humana.
XML Web Services
¾
Padrão simples, aberto e largamente
suportado pela indústria:
Publicar, Localizar e Usar Serviços:
UDDI
Interações entre serviços:
SOAP
Formato universal de dados:
Padrão universal de comunicação:
XML
Internet
UDDI: Universal Description, Discovery and Integration
EAD-750 - Tópicos Especiais de MQI - FEA/USP
49
EAD-750 - Tópicos Especiais de MQI - Prof. Antonio Geraldo Vidal
XML Web Services
Ferramentas
Web Services
Servidores
Informações, Soluções e Negócios
Clientes
Endereços Interessantes
¾
¾
¾
¾
¾
¾
¾
¾
¾
Site do W3C: http://www.w3c.org/
Site sobre XML: http://www.xml.com/
Site sobre BizTalk: http://www.biztalk.org/
Site MS BizTalk: http://www.microsoft.com/biztalk/
Demo MS BizTalkServer 2000:
http://www.microsoft.com/biztalk/code/demo2002/frame.html
Demo IBM WebSphere: http://www3.ibm.com/software/webservers/studio/wsaddemo.html
Demos Oracle (vários, inclusive Web Services):
http://www.oracle.com/ip/index.html?think9i_appdev.html
Site da Sun: http://www.sun.com
Banco Central do Brasil – Sistema Brasileiro de Pagamentos http://www.bancocentral.gov.br
EAD-750 - Tópicos Especiais de MQI - FEA/USP
50

Documentos relacionados