sábado, 26 de maio de 2018

Programação Visual - PARTE II


Programação Visual - PARTE II



Share:

sexta-feira, 11 de maio de 2018

Computação nas nuvens


Computação nas nuvens


UP-FC Departamento de Ciências de Computação
Geraldo Carlos Nhadumbuque, José Alexandre Amorim e Paulo Vilares.
Porto, Março, 2010.


Abstract


Este trabalho aborda aspectos essenciais relacionados ao termo cloud computing(computação nas nuvens), começando por definir, caracterizar, e no final apresenta as respectivas conclusões. 

Keywords: Cloud, Computing


1. Introdução

O surgimento das redes de computadores representa um marco histórico bastante assinalável que veio inovar o mundo das TIC’s, criando a possibilidade de comunicação e compartilhamento de dados entre computadores independentemente da localização geográfica.
Como o mundo tecnológico não para de evoluir, novos cenários de trabalho tem sido criados com vista a optimização de resultados no processamanto de dados, o exemplo disso é o surgimento da computação grid, uma modelo de trabalho que permite a interacção entre os diferentes centros de computação geograficamente dispersos, executando tarefas pesadas de forma distribuída. Seguindo o ritmo das grandes inovações, passo a passo caminha-se para uma nova forma de trabalho designada
cloud computing em que o software, os dados e a plataforma ficam disponíveis através da internet como um serviço a ser explorado, sem necessidade de se instalar ou alocar localmente.
Mas como será isso possível ou seja o que é cloud computing. Quais são as suas princípais características? Ou ainda de que forma veio modificar e inovar o mundo das TIC’s? Como será
possível trabalhar numa máquinas sem necessidade de instalar programas, e efectuar backups?
No desenrolar deste trabalho terá-se como foco principal a resposta a essas e outras questões de género, introduzindo sempre que necessário, conceitos de relevância que serão naturalmente desenvolvidos.

2. Conceito de Cloud computing

O cloud computing projecta-se para uma nova forma de estar no mundo tecnológico em que o software, serviço, plataforma e os dados ficam disponíveis nas nuvens (internet). Esta nova abordagem pressupõe a existência de um Service Provider (Provedor de serviços), entidade que vela pela disponibilização do software, desencadeando todo o processo de desenvolvimento, armazenamento, manutenção, actualização, backup, escalonamento, etc.. Deste modo o utilizador poderá aceder a diversos serviços e dados, independentemente do local e plataforma de acesso bastando para isso ter uma máquina conectada a rede de internet que tenha um browser compatível.
Com o decorrer do tempo grandes empresas como o Amazon, Google, têm se apercebido que apenas uma pequena parcela de memória disponível para o armazenamento de dados esta a ser utilizada. Com isto tornou se prático o arrendamento da memória e do armazenamento de dados nas nuvens em
servidores remotos[3] (ver fig. a seguir).

                                                        Fig. 1 Computação em nuvens [3].
 
Informações e dados são armazenados temporariamente na memória cash de servidores remotos, notebooks, computadores de mesa, telefones celulares ou outros dispositivos. Empresas como a Amazon’s Amazon Elastic Computer Cloud (EC2) e Simple Storage Solution (S3) e Google representam o exemplo actual desta prática.

3. Cloud Service

Cloud computing define três níveis de serviços: Software as a Service (SaaS), Platform as a Service (PaaS), e Infrastructure as a service (IaaS) [1], [5].

3.1 SaaS

O software como serviço é uma modalidade de trabalho em que o software é disponibilizado ao utilizador como um serviço. Um provedor de SaaS normalmente encarrega-se pela hospedagem e gestão de aplicações em seu próprio centro de processamento de dados, e ainda fornece à vários nós e utilizadores conectados através de uma plataforma Web. Deste modo o utilizador apenas acede e explora as funcionalidades do software em causa, a instalação, actualização, segurança e verificação formal do software esta a cargo do Service Provider.

3.2 PaaS

PaaS significa plataforma como um serviço, é um paradigma utilizado para disponibilizar ferramentas de desenvolvimento de aplicações como um serviço através da internet sem necessidade de se efectuar o download ou instalação. Facilita o desenvolvimento e implantação de aplicações, gestão da
infrastutura disponibilizando um acompanhamento integral associado ao suporte do ciclo de vida das aplicações Web. Esta plataforma consiste numa infrastrutura de software, e integra uma base de dados, midleware e ferramentas necessárias para o desenvolvimento de aplicações. Algumas ofertas PaaS têm uma linguagem de programação específica ou API. Por exemplo, o Google tem uma oferta AppEngine PaaS onde os desenvolvedores podem programar em linguagem Python ou Java [1].
A alternativa desenvolve aplicações Web recorrendo a ferramentas de desenvolvimento desktop, como Oracle, Visual Basic para posteriormente implementarem manualmente em uma nuvem que providencia a hospedagem da plataforma, que pode ser a Amazon EC2 por exemplo[4]. Essa plataforma e aplicações desenvolvidas devem integrar a funcionalidade de suporte a múltiplos utilizadores e cada um com um projecto activo, ferramentas para o monitoramento e facturamento em
função de tempo de execução.

3.3 IaaS
IaaS é a disponibilização de um centro de recursos digitais (hardware e rede), software associado como um serviço a ser explorado por terceiros. Uma determinada empresa ou entidade singular (utilizadores de serviços) em vez de comprar servidores, licenças de software, equipamentos de rede, acedem esses elementos nas nuvens com vista a satisfazerem suas necessidades de processamento, como se os mesmos estivessem disponíveis em seus próprios centros de dados.
Organizações comprometidas com a investigação e desenvolvimento de softwares podem construir suas aplicações de forma bastante célere, sem necessidade de aquisição de um novo hardware ou ainda esperar pela sua configuração.
A aplicação popular desta modalidade consiste na hospedagem de sites das organizações.

4. Tipos de nuvens

As nuvens podem ser classificadas em três tipos nomeadamente:
públicas, privadas e híbridas. A escolha depende fundamentalmente das necessidades do utilizador [1].

4.1 Nuvens públicas

As nuvens públicas são aquelas que são executadas por organizações externas que se encarregam por disponibilizar a infra-estrutura e a gestão necessária para o funcionamento da nuvem. É disponibilizada ao público em geral e as aplicações são susceptíveis de se misturarem em servidores de nuvens.

4.2 Nuvens privadas

Corresponde a nuvens que são geridas e mantidas exclusivamente a entidades privadas como empresas. Caso o utilizadoro queira aumentar os recursos utilizados em sua nuvem privada, ele deve adquirir novos equipamentos, como sistemas de armazenamento, por exemplo, já que a sua nuvem
está limitada à capacidade de seu sistema físico [5].

4.3 Nuvens híbridas

Conteplam os dois tipo de nuvens descritos em secções anteriores, possuem dados em nuvens públicas e privadas. Aplicações críticas com preocupações significativas podem ser alocados em nuvens privadas e outras aplicações que requerem requisitos menos rigorosos, podem ser hospedados em nuvens públicas. Este tipo de nuvem requer uma coordenação minuciosa entre as infranstutura da nuvem privada e pública, e definição de políticas entre as entidades envolvidas.

5. Últimas considerações

Cloud computing garante uma maior disponibilidade da informação uma vez que os dados podem ser acedidos independentemente da máquina, local de acesso e devido a utilização do modelo baseado em “pay-per-use” (o utilizador paga apenas por aquilo que consome). Como este modelo é baseado na disponibilização de serviços terá como grande desafio manter as características principais de um serviço (maior segurança, maior disponibilidade, confiabilidade, escalabilidade e segurança).

6. Conclusão

Cloud computing é um modelo de computação onde produtos e serviços residem em grandes servidores virtuais, essa característica traz benefícios tanto a utilizadores, programadores, empresas e a toda comunidade, pois não haverá necessidade de se preocupar com a instalação, manutenção de software, e aquisição de servidores ou ainda na aquisição de máquinas velozes, e que tenham um grande potencial de hardware, pois estas responsabilidades são transferidas ao Service Provider.
Este modelo é eficaz apenas se os requisitos de segurança forem salvaguardados pelo Service Provider pois a indisponibilidade do serviço pode causar enormes prejuízos a todos utilizadores conectados a nuvem e principalmente a empresas. Para regiões em que o sistema de rede local dificulta a disponibilidade dos dados tal como nos países pobres poderá-se demorar mais tempo para o alcance deste modelo.
 

7. Bibliografia

[1] BENNETT, S., BHULLER, M., COVINGTON, R.: Architectural Strategies for Cloud Computing, 2009. http://www.oracle.com/technology/architect/entarch/pdf/archite ctural_strategies_for_cloud_computing.pdf

[2] ALECRIM, A.: O que é Cloud Computing (Computação nas Nuvens)?, 2010. http://www.infowester.com/cloudcomputing.php
 
[3] SRINIVASA, R. V., NAGESWARA, R. N. K., E KUSUMA, K.: Cloud Computing: An Overview, Jatitit, 2009. http://www.jatit.org/volumes/researchpapers/Vol9No1/10Vol9No1.pdf

[4] KEENE, C. : What Is Platform as a Service (PaaS)? 2009. http://www.keeneview.com/2009/03/what-is-platform-asservice-paas.html

[5] CHIRIGATI, F. S.: Computação em Nuvem, 2009. http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2009_2/seabra/arquitetura.html
Share:

quarta-feira, 9 de maio de 2018

Algoritmo Bubble sort



Algoritmo Bubble sort

Bubble sort é um algoritmo de ordenação usado para colocar os elementos em uma determinada ordem, é possivel usa-lo para colocar os elementos em ordem crescente ou decrescente.

Principio de funcionamento

Este algoritmo é baseado num processo de comparação dos elementos adjacentes, e troca de posições caso seja necessário. Se o objectivo é obter os valores de um vector na ordem crescente o processo começa da seguinte forma. Compara-se o elemento da primeira posição com o elemento da segunda posição, se o primeiro elemento for maior, haverá troca de posições, em seguida compara-se o segundo com o terceiro, caso o segundo elemento seja maior que o terceiro haverá troca de posiçãos, esse processo é repetido até obter todos valores do array na ordem desejada. A figura abaixo ilustra esse processo.



 

Exemplo de Bubble sort em C

#include <stdio.h>
#include <stdlib.h>
int main(){
    int au[6] ={1,3,2,5,6,4} ;
    int i, j,t;
        for(i=0;i<6;i++){
            for(j=0;j<6;j++){
                if (au[i] > au[i+1]){
                    t=au[i];
                    au[i]=au[i+1];
                    au[i+1]=t;
                   
                }
             
             }
                 
           
        }
        for(i=0;i<6;i++){
            printf(" %i ",au[i]);
        }
        system("pause");
        return 0;
   
   
}


Exemplo Bubble sort em Ruby

def bubble_sort(array)
  n = array.length
  loop do
    swapped = false

    (n-1).times do |i|
      if array[i] > array[i+1]
        array[i], array[i+1] = array[i+1], array[i]
        swapped = true
      end
    end

    break if not swapped
  end

  array
end
 
 

Bubble Sort em Java

 
 public static void main(String args[]){
 int[] vet = {8, 9, 3, 5, 1};
 int aux = 0;
 int i = 0;
 
 System.out.println("Vetor desordenado: ");
 for(i = 0; i<5; i++){
  System.out.println(" "+vet[i]);
 }
 System.out.println(" ");
 
 for(i = 0; i<5; i++){
  for(int j = 0; j<4; j++){
   if(vet[j] > vet[j + 1]){
    aux = vet[j];
    vet[j] = vet[j+1];
    vet[j+1] = aux;
   }
  }
 }
 System.out.println("Vetor organizado:");
 for(i = 0; i<5; i++){
  System.out.println(" "+vet[i]);
 }
}
 

Bubble sort em Pascal


Program vector_crescente;
  var i,j,aux: integer;
     vet : array[1..5]of integer = (8,6,3,5,4);
Begin
   for i:=1 to 5 do
   begin
        for j:=1 to 4 do
        begin
     if vet[j]>vet[j+1]  then
           begin
               aux := vet[j];
               vet[j]:=vet[j+1];
               vet[j+1]:=aux;
           
           end;
        
        end;
   
   
   end;

    
   for i:= 1 to 5 do
       write(vet[i]);
       
  readkey();
   
 
  
End.

 
 References
https://www.tutorialspoint.com/data_structures_algorithms/bubble_sort_algorithm.htm
http://www.thecshandbook.com/Bubble_Sort

Share:

segunda-feira, 30 de abril de 2018

TECNOLOGIAS DE ACESSO A REDE E CORE

TECNOLOGIAS DE ACESSO A REDE E CORE

Plano

Introduçâo

A Tecnologias de Rede de Acesso e Core visa fornecer formação fundamental e especializada em Redes de Computadores, promovendo o conhecimento e as aptidões dos alunos em tecnologias actuais e emergentes em ambientes reais de interligação em rede, tanto em contextos móveis como em contextos de ligação fixa.

Requitos prévios

Frequência a cadeira de redes de computadores(conhecimentos sobre)
- Modelo OSI/TCP
- Endereçamento IP
- Configuração de serviços básicos de rede
- Protocolos de comunicação

Objectivos

- Explicar os principais conceitos teóricos subjacentes às principais tecnologias de acesso e core;
- Discutir o uso das tecnologias existente em cenários de redes distintas;

Plano Temático

  • Introdução a redes de computadores
  • Padrões de redes
  • (IEEE 802.3, IEEE 802.5, IEEE 802.16, IEEE 802.11)
  • Configuração de serviços básicos de rede
  • Roteamento
  • DSL, xDSL
  • PPP
  • Token Ring e Token Base
  • Wi-Max
  • FDDI(ANSI X3T9.5)
  • Frame Relay
  • ATM Assynchrounous Transfer Mode
  • Physical framing: Digital Hierarchies e SONET


Distribuição de Temas para o seminário

Esse trabalho deve ser compilado tendo em cota o modelo do trabalho sobre BGP até dia 21 de Maio de 2018. Envie o trabalho no formato word ou pdf para o endereço geraldocnh@gmail.com.
Prazo de envio 21/04
Wimax
i. Abel Alberto José
ii. Abdul Eugénio Issufo Naface
iii. Prince Tómas Macopa

FDDI(ANSI X3T9.5)
i. Juliasse Lino da Silva Pacheco
ii. Abudo Abdurremane Braimo Conde
iii. Abdul Araújo Pihalique

Frame Relay
i. Jones Jõao Manuel
ii. Fabião Landela Cumbane
iii. Nuro Samuel Sarangue

ATM Assynchrounous Transfer Mode
i. Abudo Chaibo
ii. Dicson Domingos
iii. Domingos de Jesus

Physical framing: Digital Hierarchies e SONET
i. Elisio Paulo Francisco
ii. Sérgio Arlindo Olimpio Cataca
Tecnologias de acesso a rede e Core
Share:

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir