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