EAD-0750. Tópicos Especiais de Métodos M Quantitativos e Informática. Conteúdo Básico. Sistemas Monolíticos



Documentos relacionados
World Wide Web e Aplicações

UFG - Instituto de Informática

Noções de. Microsoft SQL Server. Microsoft SQL Server

UFG - Instituto de Informática

3 Serviços na Web (Web services)

Conteúdo Programático de PHP

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

UNIVERSIDADE. Sistemas Distribuídos

CAPÍTULO 2. Este capítulo tratará :

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Programação para Web Artefato 01. AT5 Conceitos da Internet

Curso de Aprendizado Industrial Desenvolvedor WEB

Ambientes Visuais. Ambientes Visuais

Sistemas para internet e software livre

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Desenvolvimento de Aplicações Web

Prof. Marcelo Machado Cunha

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

WWW - World Wide Web

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Programação Web Prof. Wladimir

XHTML 1.0 DTDs e Validação

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Introdução a Web Services

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Serviços Web: Introdução

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Rotina de Discovery e Inventário

O que são Bancos de Dados?

Prof.: Clayton Maciel Costa

Introdução ao SQL. O que é SQL?

Fundament n os s da platafo f rm r a. NE N T André Menegassi

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Web Services. Autor: Rômulo Rosa Furtado

18/04/2006 Micropagamento F2b Web Services Web rev 00

Banco de Dados. Prof. Antonio

Modelos de Arquiteturas. Prof. Andrêza Leite

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET

PHP INTEGRAÇÃO COM MYSQL PARTE 1

O sucesso da WWW. Atualização de Hiperdocumentos. Atualização de Hiperdocumentos. Cuidados. Exemplo. Passos. Motivos :

Desenvolvendo para WEB

Microsoft.NET. Desenvolvimento Baseado em Componentes

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Web Design. Prof. Felippe

SISTEMAS DISTRIBUIDOS

Autoria Web Apresentação e Visão Geral sobre a Web

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa

Aplicativos para Internet Aula 01

2 Conceitos relativos a Web services e sua composição

Sistemas Distribuídos

IV. Intercâmbio Eletrônico de Dados (EDI)

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Desenvolvimento Web TCC Turma A-1

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Disciplina: Tecnologias de Banco de Dados para SI s

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Introdução ao PHP. Prof. Késsia Marchi

Universidade da Beira Interior

Banco de Dados. Maurício Edgar Stivanello

2 Geração Dinâmica de Conteúdo e Templates de Composição

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

Disciplina de Banco de Dados Introdução

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Introdução ao Modelos de Duas Camadas Cliente Servidor

Programação WEB Introdução

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Programando em PHP. Conceitos Básicos

Modelo Cliente/Servidor Por HIARLY ALVES

J2EE TM Java 2 Plataform, Enterprise Edition

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Desenvolvendo Websites com PHP

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

Roteiro 2 Conceitos Gerais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

UFG - Instituto de Informática

Arquitetura de Banco de Dados

Service Oriented Architecture (SOA)

Transcrição:

EAD-0750 Prof. Antonio Geraldo da Rocha Vidal vidal@usp.br Tópicos Especiais de Métodos M Quantitativos e Informática Conteúdo Básico Tecnologia Cliente/Servidor» Processamento no Cliente» Processamento no 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» 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

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: Normalmente um microcomputador padrão PC.» Computador Servidor: 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).

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

Papel do Cliente Gerenciamento de apresentação:» Interação com o usuário (GUI)» Entrada e consulta de dados Lógica do aplicativo:» Funcionamento do interativo do aplicativo» Partes simples da lógica do negócio Aplicativos de produtividade pessoal:» Processador de textos, planilha etc.» Navegador Web, Cliente de E-mail etc. Papel do Servidor Atendimento a Usuários:» Autenticação e comunicação com usuários» Atendimento a solicitações 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:» 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

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

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 Apresentação Apresentação Apresentação Apresentação Rede CLIENTE 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 SERVIDOR 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 Gerenciamento de Dados Remoto Dados Distribuído 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

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

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.

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.

Tecnologias Internet Arquitetura WWW Cliente PC/Mac/Unix + Browser Request: http://www.msn.com/default.asp Rede TCP/IP Servidor Response: <html> </html> 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.

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.

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 Editores gráficos Geradores de animação Ambientes/Linguagens de programação Gerenciadores de banco de dados Administradores de Web Sites Servidores Web Navegadores (browser) 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

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 text password file radio button textarea select checkbox submit 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

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.

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.

Características da Plataforma J2EE Portabilidade: a linguagem utilizada é o JAVA. APIs JDBC TM : componentes para acesso a bancos de dados relacionais. CORBA (JavaIDL e RMI-IIOP): componentes para interação com sistemas internos da empresa. EJB (Enterprise JavaBeans TM ): componentes Java para implementar regras de negócios. APIs Java ServLets: componentes para interfaces com parceiros de negócios. JSP (Java Server Pages TM ): linguagem para a criar e gerenciar a interação com o usuário e utilização dos demais componentes. Modelo de Execução Java Disco Disco Bytecodes são uma linguagem intermediária independente de plataforma. Disco 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.

O Modelo Lógico da Plataforma J2EE Aplicativos Java em Múltiplas Camadas cliente servidor web servidor de aplicativos servidor base de dados browser HTML cookies XML api's web server application server data base server browser Java servlet Java VM Java applets DataBase driver JSP EJB beans Java VM middleware desktop sockets / object JDBC Java JRE beans double-tier XML lógica de apresentação lógica dos negócios triple-tier api's quadruple-tier <=processo=> objeto <=processo=> objeto <=processo=> objeto <=processo=> O Modelo Físico da Plataforma J2EE

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 No Servidor.NET.NET Oracle.NET Página HTML No Cliente COM.NET SQL Server COM Outros APRESENTAÇÃO REGRAS DE NEGÓCIOS DADOS

Modelo de Execução Plataforma.NET Código Fonte VB Compiler C# Compiler C++ Compiler MSIL Assembly Assembly Assembly Ngen Common Language Runtime JIT Compiler Código Nativo Managed Code CLR Services Managed Code CLR 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 Web Services Forms ASP.NET Windows Forms Data and XML Classes Base Framework Classes Common Language Runtime

O Modelo Físico da Plataforma.NET Comparação das Plataformas J2EE X Microsoft.NET Característica J2EE.NET Tipo de Tecnologia Fornecedores Linguagem Interpretador Páginas Ativas no Servidor Componentes de Negócio Acesso a Banco de Dados Suporte a SOAP, WSDL, UDDI Funcionalidade de interface Padrão Aberto Mais de 30 Java JRE (Java Runtime Environment) JSP (Java Server Pages) EJB (Enterprise Java Beans) JDBC SQL/J Sim Sim Produto Microsoft C#, J#, VB.NET, C++, JavaScript, JScript CLR (Commom Language Runtime) ASP.NET (Active Server Pages).NET Managed Components ADO.NET (Active Data Objects) Sim Sim O Modelo Físico da Plataforma J2EE

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

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 )

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

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 101 137 Nome Meu Melhor Cliente Meu Melhor Cliente

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

Funções das Camadas na Arquitetura do Sistema Camada Responsabilidade Funções Ferramentas Aplicativos de usuário Regras de negócio Prover interface compreensível e eficiente. Apresentação, entrada, navegação e análise de dados. Estabelecer a Tomada de política dos decisões, negócios: regras e imposição da heurística. política, cálculos, Preparar respostas coordenação de para o usuário. recursos. Ferramentas gráficas, linguagem de programação e componentes. Linguagem de programação e componentes. Fontes de dados Manter dados consistentes, atualizados e seguros. Manutenção, atualização, integridade e segurança de dados 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.

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

Do Modelo Conceitual ao Modelo Físico Conceitual Modelo de Negócios Fluxo de Processos Fluxo de Trabalho Domínio do Problema: modelo do negócio (REGRAS) Lógico Modelo de Dados Interação de Processos Seqüência de Formulários Domínio da 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

Funcionamento de Aplicativos Web Fases Clássicas do Desenvolvimento de Aplicativos Definição de Requisitos Domínio do Problema Análise Projeto Implementação Domínio da Solução Teste 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.

Paradigmas Programa Processos Classe 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) ELABORAÇÃO Projeto Físico (Projeto de Software) Interativo e Incremental REQUISITOS Revisão de Processos de Negócio 1 2 3 CONSTRUÇÃO Implementação (Desenvolvimento) Domínio do Problema ITERAÇÕES: Análise Projeto Implementação Teste & Ajuste Treinamento Domínio da Solução TRANSIÇÃO Teste Ajuste Treinamento

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

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.