Buscar

DESENVOLVIMENTO DE SISTEMAS DISTRIBUÍDOS

Prévia do material em texto

DESENVOLVIMENTO DE SISTEMAS DISTRIBUÍDOS
*LISTA DE EXERCÍCIOS
1. AWS (Amazon Web Services) é uma plataforma de serviços de computação em nuvem, que abrange 66 zonas de disponibilidade em 21 regiões geográficas em todo. Um desses serviços com sigla S3 oferece qual tipo de serviço:
X a) Armazenamento de dados dentro de buckets.
2. O que é um arquivo XML e qual a sua finalidade? Linguagem de marcação, é um conjunto de códigos que podem ser aplicados a dados ou textos para serem lidos por computadores ou pessoas. Sua finalidade é padronizar uma sequência de dados com o objetivo de organizar, separar o conteúdo e integrá-lo com outras linguagens.
3. AWS (Amazon Web Services) é uma plataforma de serviços de computação em nuvem, que abrange 66 zonas de disponibilidade em 21 regiões geográficas em todo. Um desses serviços com sigla RDS (Relational Database Service) oferece qual tipo de serviço: X a) Operação e a escalabilidade de bancos de dados relacionais na nuvem.
4. O que é Cloud Computing? É uma rede global de servidores, cada um com uma função única. Não é uma entidade física, mas sim uma rede vasta de servidores remotos em todo o mundo que estão interligados. Estes servidores foram concebidos para armazenar e gerir dados, executar aplicações, fornecer conteúdo ou um serviço, como vídeos em transmissão de fluxo, webmail, software de produtividade para escritórios ou comunicação social. Em vez de acessar ficheiros e dados a partir de um computador local ou pessoal, basta acessar um computador online a partir de um dispositivo com Internet. A informação estará disponível onde quer que esteja. É uma rede global de servidores que disponibilizam o armazenamento de dados em “nuvem”, podendo acessar de qualquer lugar do mundo, apenas tendo em posse um dispositivo com internet.
5. O que é Devops? Conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações e de apoio envolvidas e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços. 
6. (PUC-PR - 2017) O MVC (Model-View-Controller) é um padrão de arquitetura de desenvolvimento que pode ser implementado em diversas linguagens de programação e tem o objetivo de trabalhar a construção em camadas separadas de um planejamento de sistema. Cada termo do MVC é responsável por uma etapa dentro da sua arquitetura. Desta forma, o termo MODEL se refere: 
X e) ao gerenciamento do comportamento e os dados do domínio do aplicativo.
7. O padrão de arquitetura MVC é um modelo de camadas que divide a aplicação em três componentes: Model (modelo), View (visualizador) e Controller (controlador). As funções de cada um destes três componentes são apresentadas abaixo:
I. interpreta eventos de entrada e envia requisições para o modelo de dados; em seguida, processa os dados carregados a partir do modelo e envia para o visualizador.
II. encapsula o acesso aos dados e funções básicas da aplicação, fornecendo ao usuário procedimentos que executam tarefas específicas.
III. exibe para o usuário os dados fornecidos pelo controle e estabelece uma interface para interação entre o usuário e a aplicação. A associação correta do componente do padrão MVC com sua função está expressa, respectivamente, em:
X a) I-Controller II-Model III-View
8. A sigla do padrão de projeto MVC vem do inglês modelview-controller. Assinale a alternativa correta.
a) Trata-se de um modelo conhecido por dificultar a documentação.
X b) A comunicação entre as interfaces e as regras de negócio é responsabilidade da camada controller.
c) A camada view é responsável pelas regras de negócio.
d) A maior desvantagem desse padrão é não ser aplicável a muitos contextos, o que diminui o reuso de código.
e) A camada model é responsável pela exibição de dados na tela.
9. Com relação ao padrão de arquitetura de software denominado MVC (Model-viewcontroller), é CORRETO afirmar:
X b) quando um evento é executado em uma interface gráfica, essa interface irá se comunicar com a camada denominado Controller, que por sua vez se comunica com a camada que contém as regras de negócios.
10. Em uma aplicação de votação online desenvolvida em três camadas do tipo MVC, o controller é responsável por:
X a) transformar eventos gerados pela view em ações de negócio, alterando o model.
11. PSR-4 = é uma recomendação da comunidade PHP para organização e carregamento de arquivos e classes PHP. Antes desta organização, cada desenvolvedor, bibliotecas e frameworks criavam a estrutura de pastas do jeito que queria, os nomes dos arquivos das classes e os nomes das classes do jeito que queriam. O que dificultava o uso e integrações já que cada um trabalha de um jeito.
12. Composer = é uma ferramenta para gerenciamento de dependências em PHP. Ele permite que você declare as bibliotecas dependentes que seu projeto precisa e as instala para você.
*RESUMO SLIDE 1:
ENIAC – foi o primeiro computador digital, utilizado para cálculos e decodificar código nazistas; não tinha software, as operações eram realizadas por válvulas(1ª), que depois de um tempo foram substituídas por transistores (2ª) (rápidos, mais confiáveis e baratos).
EDVAC – sucessor do ENIAC, não diminuiu de tamanho tem cem vezes mais memória;
Depois vieram os Circuitos integrados (3ª), microprocessador (4ª).
A evolução do HW e SW, contribuíram para o surgimento da Internet e protocolos.
• Rede Local (Local Area Network – LAN);
• Rede Global ( Wide Area Network – WAN);
Sistema Distribuído= os componentes de computadores autonômos interligados em rede se comunicam através de mensagens, permitindo compartilhar recursos do sistema. A falha de um, causa problema em todos. Ex: • Computação em Clusters; • Supercomputadores; • Computação em Nuvem (cloud Computing); • Computação em Grades (Grids); 
Sistemas de Informação Distribuídas = Vincula a rede de negócios, análise de dados, mineração de informações, para tomada de decisões;
CLOUD COMPUTING = é a virtualização de produtos e serviços computacionais, ou seja, armazena todas as informações em servidores virtuais chamados de “nuvem”. Ex: Google Cloud, a Microsoft (AZURE), AMAZON (AWS), IBM Cloud, etc.
Computação em Grades (Grids) = possui supercomputadores distribuídos geograficamente para o processamento de grandes massas de dados.
SMPs – Symmetric MultiProcceos – Multiprocessadores; MPPs – Massively Parallel Processors - Multicomputadores
Em ambientes de Computação nas Nuvens, podem-se ter três modelos de serviços que definem um padrão arquitetural:
• SaaS - (Software como Serviço) - software implantado como serviço hospedado.
• PaaS – (Plataforma como Serviço) - Disponibiliza servidores virtualizados, sem ter que se preocupar com a manutenção dos sistemas operacionais, servidores, balanceamento de cargas ou capacidade de computação. Facilita o desenvolvimento de aplicações, criando uma plataforma que agiliza esse processo.
• IaaS – (Infraestrutura como Serviço) - Disponibiliza grids, clusters ou servidores virtualizados, redes, armazenamento e software de sistemas desenhados para aumentar ou substituir as funções de um datacenter.
Computação móvel = torna o computador um dispositivo sempre presente.
Computação ubíqua = dispositivos conectados à internet em todos os lugares;
Computação Pervasíva = define que os meios de computação estarão distribuídos no ambiente de trabalho dos usuários de forma perceptível ou imperceptível.
EXEMPLO CLÁSSICO DE SISTEMAS DISTRIBUÍDOS
• Internet = vários servidores distribuídos, provendo serviços através de interface única (browser).
• Sistemas de caixas eletrônicos = cooperação de várias organizações (transferência bancária, impostos,etc), através de trocas de mensagens entre vários servidores para que possam consumir uma ação em comum.
Desafios do DSD: *Lidar com heterogeneidade de componentes: diferentes Sistemas operacionais, Hardwares e Linguagem de programação; *Sistema aberto – permite extensão; *Segurança de serviços e dados; *Tratamento de falhas; *Concorrência e Escalabilidade (recursoscompartilhados – suportar vários pedidos simultâneos); *Transparência (ocultar do usuário a infraestrutura existente)
Solução para a integração: *Middleware = camada de software que se encontra entre o sistema operacional e os aplicativos nele executados. Realiza a conversão de tipos entre sistemas diferenciados. Fornece uma abstração de programação, mascaramento da heterogeneidade de componentes. Protocolo SOAP, serviços Web, REST e JSON = estruturas de mensagens para que aplicativos possam se comunicar; *Virtual Machine = oculta diferenças de hardware; *Especificação de padrões para interação entre sistemas (HTTP, XML, SOAP)
CORBA = Arquitetura que simplifica a troca de dados entre sistemas distribuídos heterogêneos. Atualmente são substituídos por Web Services. É baseada em Middleware.
Tecnologias para construção de SD - WEB SERVICES = Componente acessível através de protocolo padrões de Internet (HTTP); Interface descrita via WSDL (que específica os métodos disponíveis). As mensagens são transmitidas via SOAP/XML utilizando a camada de transporte HTTP. Não suporta diretamente estado (stateless), não guarda informações de estado entre uma chamada e outra. Mensagens HTTP + SOAP consome mais banda.
RESUMO SLIDE 2:
SOA – Arquitetura Orientada a Serviço = é uma filosofia arquitetural que permeia a implementação de necessidades de negócio, refletida em diretrizes, políticas e metodologias corporativas, não necessariamente restritas à área de TI; SOA não é: Tecnologia. Metodologia. Não pode comprar ou instalar. Não cria nada.
Benefícios de SOA: • Facilidade de Manutenção; • Reuso; • Flexibilidade: sistemas podem ser substituídos com menor impacto; • Qualidade: garantia de homogeneidade de processos; • Menor tempo; • Menor custo: redução do custo de manutenção das aplicações; • Controle: conhecimento dos ativos existentes.
Serviço = unidade de software que executa uma função de negócio para resolver problemas da integração de sistemas. Esconde do consumidor detalhes de implementação. É autocontido, independente e modular;
Características de um Serviço: o contato com o serviço é feito através da sua interface; podem ser síncronos ou assíncronos; encapsulado, modular e reutilizável; 
Composição de um Serviço: • Consumidor: entidade interessada em utilizar o serviço; • Interface: acordo para interação entre consumidor e provedor; • Provedor do serviço: entidade responsável por oferecer o serviço; • Implementação: lógica de negócio para atingir os objetivos.
Exemplo de serviços: *Abrir nova conta *Receber pagamento *Submeter artigo *Publicar resultado *Cadastrar nota fiscal *Consultar faturamento *Validar CPF = A ação não é adequada para ser serviço, já que não é uma função de negócio por si só e sim um algoritmo, uma peça de software.
Definição completa de um serviço: • Ação: Verificar crédito do cliente • Nome do serviço: VerificarCreditoCliente • Comportamento Esperado: Receber o CNPJ do requisitante e do Cliente e retornar a situação cadastral e do seu crédito • Entrada: CNPJRequisitante (numerico), CNPJCliente (numerico) • Saída: CNPJRequisitante (numerico), CNPJCliente (numerico), ClienteAtivo (true/false), ValorCredito (numerico), UltimaAtualizacao (data) • Exceções: • Negócio: Requisitante Inválido, Cliente Inválido • Técnico: Serviço Inativo, TimeOut.
Processo de negócio = conjunto de tarefas estruturadas que produzem um serviço ou produto para os clientes.
BPM (Business Process Management) – Gerenciamento de processos de negócios, é uma ferramenta para analisar, controlar e gerenciar processos com o objetivo de melhorar a qualidade dos produtos e Serviços.
IBM WebSphere DataPower SOA Appliance = é um dispositivo que atua como Gateway e/ou Enterprise Service Bus (ESB) para ajudar a proteger, acelerar, transformar e rotear mensagens. Utilizado: Bancos, Data Center, etc.
XSLTs = afeta o desempenho, uma vez que é o local em que você escreve suas lógicas de transformação de negócios.
A arquitetura orientada a serviços foi facilitada pelo amadurecimento de padrões como XML e Web Services.
XML = Linguagem de marcação que se aplica a dados ou textos para serem lidos por computadores ou pessoas. Integra o conteúdo com outras linguagens. Ex: uma empresa desenvolve em Java e outra desenvolve em C # e, quando as duas decidem compartilhar informações, o XML entra em cena. 
Web Service = serve para que aplicações desenvolvidas em linguagens diferentes possam se comunicar por meio de serviços (métodos) que são expostos para que outros sistemas possam acessá-los por meio de mensagens XML.
W3C e OASIS = são as instituições responsáveis pela padronização dos Web Services. 
WSDL = descreve os serviços disponibilizados à rede e suas operações através de uma semântica XML. É dividida em 2 partes: • interface do serviço; • Implementação do serviço. 
XSD = descreve a estrutura dos dados: tipos, campos, restrição dos campos (como comprimento máximo ou um padrão de expressão regular).
SOAP (Simple Object Access Protocol) = protocolo para troca de informações em ambiente distribuído que permite comunicação, através de trocas de mensagens em XML, entre aplicações de forma simples e independente. Invoca, publica e localiza Web Services no registro UDDI; pode ser utilizado com outros protocolos, como HTTP, SMTP, FTP. Suporta Remote Procedure Call (RPC); oferece definições para string, integer, float, double e date.
Um pacote SOAP possui as seguintes partes:
• Envelope: define o início e o fim das mensagens, quem poderá tratá-las e se é obrigatório ou opcional; • Cabeçalho: atributos opcionais das mensagens; • Corpo: dados em XML; • Anexo: documentos anexados a mensagem principal; • RPC: define como o modelo RPC interage com o SOAP, com o objetivo de invocar procedimentos em um sistema remoto; • Codificação: define como representar dados simples e complexos a serem transmitidos nas Mensagens.
TECNOLOGIA UDDI = serve para localizar um serviço para que o cliente utilize. 
	REST
	SOAP
	Técnica de engenharia de software para sistemas distribuídos
	Especificação de protocolo estruturado em XML
	Abstrato: um estilo arquitetural
	Devido ao tamanho de suas mensagens, elas naturalmente ocupam mais rede, o que pode ser um problema para aplicações mobile
	Mais simples, ideal para utilização em dispositivos com capacidades limitadas. É formado por um conjunto de regras no topo do protocolo HTTP; tornou-se uma alternativa mais leve de comunicação entre computadores (cliente e servidor),
	
	As respostas do REST são cacheáveis. Isso dá um grande aumento de performance em clientes simples
	As respostas não são cacheáveis
	Pode se comunicar através de diversos formatos, sendo JSON o mais usado, pois causa uma carga menor na rede.
	Utiliza apenas XML
*APRESENTAÇÃO THARLEI
php – S localhost:8000 //inicializar o servidor php
Fazer git clone do projeto
Após baixar, executar o comando composer install para baixar as dependências do projeto.
Importante ajustar as configurações de banco de dados que estão no arquivo config.php
Kernel //todas as variáveis globais e funções. Ex: DB_USER
Config //conexão com o banco
Index //arquivo de rotas para um certo controller
PSR4 = instalação através do composer, instala as dependências//tem na lista de ex.
Sessão //é definida no loginController e é utilizada para autenticação do usuário
Função dd(); //imprimir na tela valores e da um exit(trava o resto do carregamento do servidor)
Regra de Negócio// trata os dados que entram e saem no banco
*TRABALHO JSON
JSON= é um modelo para armazenamento e transmissão de informações no formato texto. 
{
  “titulo”: “JSON x XML”,
  “resumo”: “o duelo de dois modelos de representação de informações”,
  “ano”: 2012,
  “genero”: [“aventura”, “ação”, “ficção”] 
 }
INSOMNIA= programa que serve para fazer requisições GET e POST
HTTP = é um protocolo de comunicação
GET = lista os produtos cadastrados.  Utiliza a própria URL para enviar dados ao servidor. GET = PEGA.
POST = cadastra um novo produto. Parasimular uma requisição POST deve ser usado um software específico. POST = ENVIA.
*TRABALHO MVC
Model = camada de manipulação lógica de dados 
View = camada da interface do usuário.
Controller = camada de fluxo da aplicação. Intermediária entre o View e o Model.
*TRABALHO SAD (FTP)
FTP = Protocolo de Transferência de Arquivos. 
Servidor FTP = oferece um serviço de acesso a um disco rígido ou servidor de arquivos criados através de um protocolo FTP. Armazena as informações enviadas por um usuário e que estarão acessíveis por qualquer membro da internet.
*PROJETO APS
*TRABALHO XML COM PHP (REST)
É uma rede global de servidores que disponibilizam o armazenamento de dados em “nuvem”, podendo acessar de qualquer lugar do mundo, apenas tendo em posse um dispositivo com internet.

Continue navegando