| Linha 89: | Linha 89: | ||
Criptografia x IPSec x Sockets x Protocolos x Firewall x IP | Criptografia x IPSec x Sockets x Protocolos x Firewall x IP | ||
<br> | <br> | ||
*Criptografia: É o estudo e a aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais. É utilizada como uma medida de segurança para que apenas uma pessoa, ou um grupo recebam uma mensagem, protegendo-a contra demais invasores, protegendo assim a privacidade ao armazenarmos dados ou trocarmos informações com outras pessoas. Ela pode ser utilizada na transmissão de mensagens e informações mais simples e comuns até as mais complexas e extremamente importantes, como por exemplo no acesso à conta bancária | *Criptografia: É o estudo e a aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais. É utilizada como uma medida de segurança para que apenas uma pessoa, ou um grupo recebam uma mensagem, protegendo-a contra demais invasores, protegendo assim a privacidade ao armazenarmos dados ou trocarmos informações com outras pessoas. Ela pode ser utilizada na transmissão de mensagens e informações mais simples e comuns até as mais complexas e extremamente importantes, como por exemplo no acesso à conta bancária. | ||
<br> | <br> | ||
*IPSec: | *IPSec: | ||
Edição das 23h01min de 18 de junho de 2018
Pesquisa dos temas
Discussões sobre as tecnologias
- Orientações:
- Discuta com seus parceiros sobre cada tecnologia
- Escreva uma resumo rápido sobre cada uma
- Abaixo dos resumos, escreva uma parágrafo explicando a relação entre eles
- O item A - Hardware está pronto, utilize-o como modelo.
A - Hardware
CPU x Processadores x Memória RAM x DMA x Barramentos x Conectores x Sistemas Embarcados x Firmware
- CPU: É o processador e significa Central Process Unit, ou Unidade Central de Processamento e é é responsável por calcular e realizar tarefas determinadas pelo usuário sendo considerado o cérebro do computador. Não confundir com gabinete. É o principal item de hardware do computador e suas características influenciam diretamente na velocidade com que os programas vão rodar na máquina. Existem vários tipos de processadores no mercado: de 32 e 64-bits, com um ou múltiplos núcleos, e compatíveis com diferentes placas-mãe. As principais fabricantes são a Intel e a AMD.
- Processador: CPU
- Memória RAM: Tecnologia que permite o acesso aos arquivos armazenados no computador. Diferentemente da memória do disco rígido, a memória de acesso aleatório não armazena conteúdos permanentemente, ou seja, os dados são perdidos quando a máquina é desligada. Quando ativa, é responsável, no entanto, pela manipulação dos processados, de forma não-sequencial, por isso, a nomenclatura em inglês de Random Access Memory.
- DMA: Direct Memory Access, ou Acesso Direto à Memória permite que determinados subsistemas de hardware dentro do computador acessem a memória do sistema, sem depender da CPU sendo assim, como recurso da placa mãe, capacita os periféricos a terem acesso direto à memória RAM, sem sobrecarregarem o processador.
- Barramento: É um meio de transmissão de informações ou sinais, distinguidos por suas funções e existem porque os módulos lógicos de um sistema precisam se comunicar com a CPU. Na prática, muitos modelos de interconexão podem ser usados, geralmente através de barramentos. Os sistemas baseados em microprocessador ao menos três barramentos são fornecidos:
- Barramento de Dados (Data Bus) transmite dados entre as unidades.
- Barramento de Endereço (Address Bus) é usado para selecionar a origem ou destino de sinais transmitidos num dos outros barramentos ou numa de suas linhas.
- Barramento de Controle (Control Bus) sincroniza as atividades do sistema.
- Conectores: Interfaces que permitem conectar hardwares através de cabos, circuitos ou linhas físicas. Efetivamente efetua a ligação entre um ou mais pontos onde se necessita de comunicação de sinais (por exemplo, entre um computador e um periférico.
- Sistemas Embarcados: Um sistema embarcado é um sistema no qual o computador é exclusivamente dedicado ao dispositivo ou sistema que ele controla. O usuário final não tem acesso ao sistema interno. Um sistema embarcado realiza tarefas predefinidas , com requisitos específicos, assim através da engenharia é possível otimizar um projeto. O sistema também é executado com recursos computacionais limitados: sem teclado, sem tela e com pouca memória. Sua classificação é definida pela capacidade computacional do sistema para o qual foi desenvolvido.
- Resumo: O funcionamento superficial de um computador pode ser entendido da seguinte maneira: A partir de programas instalados na ROM ou no disco rígido de um computador, eles podem ser carregados para a memória para serem executados. Ao iniciarem, deverão usar dados que poderão também ser carregados da memória ou de algum dispositivo de entrada como teclado, tela, scanner, sensor, microfone, etc. Todos os cálculos deverão ser processados na CPU e a partir dos resultados obtidos poderão ser gravados, no disco rígido ou em outros dispositivos de saída como impressoras, telas, alto-falantes, emails, etc. O tráfego de dados internamente no computador é provido por barramentos que para acesso externa utilizam conectores como interfaces de rede, ide vídeo, de impressora, de dados (USB, HDMI, ...).
- O que faltou?
- Disco rígido: Disco Rígido é um sistema de armazenamento de alta capacidade que armazena todo o seu conteúdo digital e não o perde com o desligamento da máquina (como acontece com a memória RAM). Apesar de não parecer à primeira vista, o HD é um dos componentes que compõe um PC e é acomodado no gabinete e ligado à placa mãe através de um cabo. Todos os documentos, fotos, músicas, vídeos, programas, preferências de aplicativo e sistema operacional representam o conteúdo digital armazenado em um disco rígido e sua capacidade determina a quantidade de arquivos e programas que será possível armazenar, em termos de megabytes (MB), gigabytes (GB) e terabytes (TB).O disco rígido também exerce uma grande influência sobre a performance global do equipamento, já que determina o tempo de carregamento dos programas e de abertura e salvamento de arquivos.
- Periféricos:
- ROM:
B - Implementação
Algoritmos x Compiladores x Linguagens de Programação x IDE
- Algoritmos:
- Compiladores:
- Linguagens de Programação: É um método padronizado para comunicar instruções para um computador e permite que um programador especifique precisamente sobre quais dados um computador vai atuar; serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar ALGORÍTIMOS com precisão. O conjunto de palavras, composto de acordo com essas regras, constituem ao código fonte de um software. O mesmo é traduzido para um código de máquina que é executado pelo microprocessador. A este processo de “tradução” é dado o nome de COMPILAÇÃO.
- IDE: É um ambiente de desenvolvimento integrado que tem como objetivo proporcionar ao programador maior eficiência e produtividade no processo de codificação, através da integração de ferramentas em um único ambiente. Geralmente, uma IDE é composta por um editor de texto, um compilador e um depurador, que fornecem recursos como identação automática, conclusão automática de sentenças, identificação automática de erros, entre outras funcionalidades, que variam entre cada IDE.
- Resumo:
C - Desenvolvimento Integrado
API x ERP x Webservice x Web x PWA x Open Source
Web: A web foi crida no inicio dos anos 90 com o intuito de servir como uma rede segura de compartilhamento de arquivos, foi idealizada e construída por Tim Berners Lee, enquanto trabalhava no CERN. O funcionamento da web basicamente se dá por um conjunto de softwares que possibilitam que os documentos(páginas web) sejam compartilhados. Ela funciona numa relação cliente-servidor: o cliente(navegador web) acessa as páginas, que estão guardadas no servidor http. Geralmente o administrador da página é responsável por cuidar do conteúdo, mas conforme a tecnologia foi evoluindo, os usuários começaram a poder interagir e alterar o conteúdo das páginas.
D - Persistência de Dados
Banco de Dados x BigData x Data Mining x Mineração de Dados x SQL x NoSQL
- Banco de Dados: Banco de Dados são coleções de dados que podem relacionar-se entre si de diversas maneiras, gerando informações e/ou conhecimento, sendo operados por um SGBD (Sistema Gerenciador de Banco de Dados), são divididos majoritariamente em arquivos (conjunto de registros), tabelas (uma lista de registros ordenada) e registros (dados e seus tipos), esses SGBDs podem ser dos tipos: Relacionais, NoSQL, em Rede, hierárquico e orientado a objetos.
- Data Mining(Mineração de Dados) : A partir de um Banco de Dados podemos obter informações e conhecimentos, quando existe uma quantidade de dados colossal é quase impossível obter conhecimentos de forma prática manualmente, porém, com o uso de técnicas (Metodologias e tecnologias) é possível obter este conhecimento de forma mais prática, essas técnicas remetem ao conceito de Data Mining. As metodologias mais usadas para obter os padrões de dados (conhecimentos) são : Equações, Algoritmos, Regressão Logística, Redes Neurais Artificiais, Machine Learning.
- SQL: É a sigla para Structured Query Language, ou, em português, Linguagem de Consulta Estruturada. Suas utilizações incluem consulta selecionada e modificações (como deleção, inclusão ou atualização) de dados, principalmente em Bancos de Dados estruturais. SQL oferece grande flexibilidade ao usuário na manipulação de bancos de dados. Normalmente é executado através de uma interface que permite inserção de linha de comando, a qual utiliza cláusulas pré-determinadas para execução de suas ações. As cláusulas básicas de suas ações são SELECT para consulta, UPDATE para atualização, DELETE para exclusão e INSERT para inclusão de dados. Para utilização do SQL é necessário um Sistema de Gerenciamento de Banco de Dados (SGBD), com os quais é possível integrar os Bancos de Dados a sistemas dos mais diversos como Java, Web, dentre outros, organizando sistemas de forma multi-camadas para manipulação de grandes quantidades de informação.
- NoSQL: refere-se à um modelo de banco de dados não relacional que é alternativo ao sistema de banco de dados relacional que geralmente é utilizado. Devido a suas características, o NoSQL torna-se mais escalável para uso, ou seja, apresenta maior desempenho na estruturação e no manuseio de dados. Além disso, ele não é utilizado para tratamento de dados de altíssima importância, pois não apresenta uma boa consistência pelo fato de trabalhar com o modelo BASE e não ACID (utilizado pelo SQL). Dessa forma, a distribuição horizontal (Scale-Out) é facilitada quando tratamos de NoSQL e, por isso, torna-se um modelo de banco de dados de menor custo.
- BigData: Big Data é a tecnologia utilizada para tratar grandes quantidades de dados estruturados e não estruturados, que vão desde clicks de mouse até históricos de pesquisa. O grande diferencial desta tecnologia é poder utilizar desses dados e transforma-los em informações compreensíveis ao olho humano, insights que serão de extrema importância para determinada empresa. A Big Data é fundamentada em 4 V's: volume, refere-se à grande quantidade de dados; Velocidade, referente à rapidez com que os dados são tratados; Valor, explícito ou não, cada dado tem seu valor, que será obtido através de diversas técnicas quantitativas e investigativas; Variedade, referente aos mais variados tipos de dados, como já dito.
E - Engenharia de Software
eXtreme Programming x Integração Contínua x Scrum x Modelo Est x Mode OO x Canvas
App x Frameworks x Redes Sociais x BI x Inteligência Cognitiva
G - Computação em Nuvem
Cloud Computing x Plataformas x Virtualização x DNS x Internet x SO
H - Novas tecnologias
IA x Machine Learning x RA x Redes Neurais x Speech Recognition x Renderização
I - Segurança
Criptografia x IPSec x Sockets x Protocolos x Firewall x IP
- Criptografia: É o estudo e a aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais. É utilizada como uma medida de segurança para que apenas uma pessoa, ou um grupo recebam uma mensagem, protegendo-a contra demais invasores, protegendo assim a privacidade ao armazenarmos dados ou trocarmos informações com outras pessoas. Ela pode ser utilizada na transmissão de mensagens e informações mais simples e comuns até as mais complexas e extremamente importantes, como por exemplo no acesso à conta bancária.
- IPSec:
- Sockets:
- Protocolos:
- Firewall:
- IP:
J - Comunicação
Satélite x Modem x Redes de Computadores x Roteador
K - IoT
IoT x Portas x Arduino x CLP x Raspberry
- IoT: A Internet of Things (IoT) ou Internet das Coisas é simplesmente conectar e identificar objetos na Internet, por ex. dispositivos, carros, prédios, uma casa, etc, utilizando hardwares com sensores e softwares, conectados numa rede na Internet, coletando e processando esses dados.
- Portas: Portas quando se tratado em rede de computadores é um software que tem como objetivo direcionar todas as informações que chegam na máquina, através do IP, para suas aplicações corretamente. Fazendo com que todas os dados que estão entrando ou saindo da máquina trafeguem para seus destinos sem conflito.
- Arduino: Um Arduino é um pequeno computador que você pode programar para processar entradas e saídas entre o dispositivo e os componentes externos conectados a ele. O Arduino é uma plataforma de computação física ou embarcada, ou seja, um sistema que pode interagir com seu ambiente por meio de hardware e software. Ele é totalmente programável e open source, e é muito utilizado também na área de robótica e experimentação remota.
- CLP: É um dispositivo eletrônico de funcionamento similar ao computador. O CLP busca automatizar os processos, principalmente processos industriais. O funcionamento dele baseia-se em entrada de dados, processamento e saída de dados. As entradas recebem os sinais externos ao CLP pelos transdutores, em seguida faz a leitura dos dados e as salva na memória, o programa é executado, pega dos dados de entrada e gera os dados de saída de acordo com o programa.
- Raspberry: O Raspberry Pi é basicamente um micro-computador, que pode ser conectado, assim como um computador, a um monitor/TV, junto de periféricos, e utilizado da forma que o usuário quiser. Muito utilizada para aqueles que querem possuir uma Smart-TV, porem não querem adquirir a mesma. Ele é pequeno, fácil de usar e possui diversas funcionalidades, e por possuir conexão com a internet, existem milhares de possibilidades para sua utilização. Alem disso, também existem vários projetos variados que utilizam essa tecnologia, como os ligados à robótica e automação por exemplo.
- Resumo:
Algoritmos
- Conceito:
- Algoritmo é um termo antigo que se originou do nome do matemático iraniano al-Khwārizmī, que teve grande influência no crescimento da ciência. O conceito mais abrangente da palavra é “uma sequência de ações a serem feitas para resolver um problema ou atingir um objetivo”, e essa tecnologia já era usada até mesmo pelos antigos filósofos gregos, como Euclides e Erastóstenes. Existem vários tipos de algoritmos, e esses podem ser implementados por humanos, computadores e robôs: Um humano pode criar a lista de ações(o algoritmo em si) e, dependendo do tipo de ações requisitadas, ele mesmo ou outras pessoas podem seguir esses passos, ou atribuí-los ao computador, escrevendo um programa com base na lista. Exemplos de algoritmos cotidianos são manuais de instruções, receitas e coreografias.
- O algoritmo cotidiano, escrito como uma simples lista de tarefas que um humano é capaz de fazer, para cumprir determinado objetivo, como “fazer um bolo”, serve para organizar e ordenar o que deve ser feito para cumprir tal objetivo, além de direcionar a pessoa que deseja cumprí-lo. Para problemas ou objetivos mais complexos, como detalhar um plano para expansão de uma empresa ou negócio por meio de ações e processos mais longos, comumente são usados fluxogramas e gráficos para estabelecer o que deve ser feito.
- Na computação, o algoritmo também pode ser tratado de formas diferentes: os fluxogramas e o pseudocódigo são métodos de representação de algoritmos, que são usados principalmente nas primeiras etapas de desenvolvimento de um software antes de sua codificação. Servem como uma “planta” para que o programador analise e se direcione, assim tendo mais facilidade no cumprimento de sua tarefa, que, em vez de simplesmente codificar sem referência ou certeza do que deve ser feito e como deve ser feito, irá converter essas representações diretamente para uma das linguagens de programação. Não só isso: todo software é, essencialmente, um algoritmo.
- Funcionamento:
- É comum que seja feita uma analogia entre uma receita e um programa de computador(que como já foi dito, é também um algoritmo). Por exemplo, em uma receita de bolo simples, os ingredientes são os “dados” de entrada, que são “processados” ao serem misturados em uma tigela e durante o período em que a massa resultante estiver no forno. O resultado final, o bolo em si, é a "saída". Entretanto, é comum que um algoritmo também especifique condições e “sub-problemas” que devem ser resolvidos para que as próximas ações sejam efetuadas. Sendo assim, por exemplo, se a pessoa não possui algum ingrediente da receita, ela deverá ir ao supermercado comprá-lo, para só depois continuá-la. Tendo isso em vista, percebe-se que um algoritmo funciona como uma tecnologia de recebimento, processamento e envio de dados, gerando assim os resultados requeridos por aquele que o criou e\ou seus usuários. A seguir, um exemplo de algoritmo(receita):

- Existem também métodos de representação de algoritmos, com regras específicas para que a pessoa, robô ou computador(após o código ter sido escrito e compilado) possa interpretar claramente os passos a serem seguidos, pois a linguagem natural humana permite múltiplas interpretações diferentes para cada frase, e isso pode comprometer o cumprimento do objetivo. Na computação, as representações de algoritmo mais utilizadas são os fluxogramas e o pseudocódigo;
- Fluxograma: Fluxograma é uma representação gráfica de um algoritmo, construída usando-se símbolos geométricos e setas de fluxo. Esses símbolos possuem diferentes significados dependendo de quem está construindo o fluxograma, e no exemplo abaixo, os losangos representam os chamados desvios condicionais, que podem mudar a ordem das ações de acordo com a situação, as elipses verdes são processos, que são ações escritas na forma de verbo+substantivo, sendo o último processo também o fim do algoritmo, e a elipse vermelha indica o problema e o início do algoritmo. Outros símbolos podem ser usados para representar declarações, entrada e saída de dados, atribuições e etc.
- Fluxograma: Fluxograma é uma representação gráfica de um algoritmo, construída usando-se símbolos geométricos e setas de fluxo. Esses símbolos possuem diferentes significados dependendo de quem está construindo o fluxograma, e no exemplo abaixo, os losangos representam os chamados desvios condicionais, que podem mudar a ordem das ações de acordo com a situação, as elipses verdes são processos, que são ações escritas na forma de verbo+substantivo, sendo o último processo também o fim do algoritmo, e a elipse vermelha indica o problema e o início do algoritmo. Outros símbolos podem ser usados para representar declarações, entrada e saída de dados, atribuições e etc.
- É comum que seja feita uma analogia entre uma receita e um programa de computador(que como já foi dito, é também um algoritmo). Por exemplo, em uma receita de bolo simples, os ingredientes são os “dados” de entrada, que são “processados” ao serem misturados em uma tigela e durante o período em que a massa resultante estiver no forno. O resultado final, o bolo em si, é a "saída". Entretanto, é comum que um algoritmo também especifique condições e “sub-problemas” que devem ser resolvidos para que as próximas ações sejam efetuadas. Sendo assim, por exemplo, se a pessoa não possui algum ingrediente da receita, ela deverá ir ao supermercado comprá-lo, para só depois continuá-la. Tendo isso em vista, percebe-se que um algoritmo funciona como uma tecnologia de recebimento, processamento e envio de dados, gerando assim os resultados requeridos por aquele que o criou e\ou seus usuários. A seguir, um exemplo de algoritmo(receita):
- Pseudocódigo: É uma maneira de representar um algoritmo por meio de uma versão estruturada da linguagem nativa de seu escritor. Nessa linguagem estruturada, é utilizado um conjunto limitado de verbos no imperativo que representam as ações a serem executadas, e evita-se o uso de expressões longas, pois como já foi citado, a linguagem padrão humana é aberta a inúmeras interpretações, o que é inadmissível nesse processo. Um exemplo de pseudocódigo pode ser visto a seguir, que representa um algoritmo que compara dois números.

- Pseudocódigo: É uma maneira de representar um algoritmo por meio de uma versão estruturada da linguagem nativa de seu escritor. Nessa linguagem estruturada, é utilizado um conjunto limitado de verbos no imperativo que representam as ações a serem executadas, e evita-se o uso de expressões longas, pois como já foi citado, a linguagem padrão humana é aberta a inúmeras interpretações, o que é inadmissível nesse processo. Um exemplo de pseudocódigo pode ser visto a seguir, que representa um algoritmo que compara dois números.
- Estado da Arte:
- Alguns dos exemplos mais recentes e poderosos de algoritmos são o algoritmo de ordenação de páginas do motor de busca da Google, e os algoritmos de controle dos carros autônomos(um deles também da Google), assim como os diversos tipos de algoritmos usados para Machine Learning, um ramo tecnológico diretamente relacionado à Inteligência artificial.
- Integrações:
- Como já foi citado algumas vezes, os algoritmos interagem com várias tecnologias, devido à sua ampla funcionalidade: ao servirem como “plantas” para o desenvolvimento de software, interagem com as diversas linguagens de programação durante sua conversão em código, posteriormente interagindo com os respectivos compiladores. Além disso, pelo fato de que todo software é um algoritmo, eles inevitavelmente interagem com a internet, bancos de dados, APIs e etc. Um exemplo mais específico seria os também já citados carros autônomos, que possuem sensores que coletam e armazenam dados sobre o ambiente exterior aos veículos, que são imediatamente processados pelos seus algoritmos de controle, que por sua vez enviam as ordens finais para os atuadores: sistemas obedientes responsáveis pelas ações que normalmente seriam tomadas pelo motorista, como frenagem, direção e aceleração.
- Referências:
- http://www.univasf.edu.br/~marcelo.linder/arquivos_ap/material_semestre_passado/teorica/aula1.pdf
- http://www.univasf.edu.br/~marcelo.linder/arquivos_ap/material_semestre_passado/teorica/aula2.pdf
- http://www.univasf.edu.br/~marcelo.linder/arquivos_ap/material_semestre_passado/teorica/aula3.pdf
- https://pt.wikipedia.org/wiki/Algoritmo
- https://tekideia.com/carro-autonomo-entendendo-a-tecnologia/
- http://www.semantix.com.br/10-algoritmos-de-machine-learning/
- "Algoritmos e Programação - Teoria e Prática" por Rodrigo Cesar, Marco Medina e Cristina Fertig(amostra)
- "Arquitectura de um motor de busca: Exemplo do Google" por Vasco Nuno Sousa Simões Pereira
- Vídeo: Porta Lógica "E" ou "AND" CI. 7408-ETB: No vídeo é apresentada a porta lógica "and" num circuito integrado. É possível fazer uma analogia comparando a porta and com os desvios condicionais dos fluxogramas e as estruturas de condição do pseudocódigo, onde se o circuito estiver na posição "1-1", então o LED ficará aceso, mas se estiver na posição "1-0" ou "0-0", então ela ficará apagada. Um fluxograma também poderia ser usado para ilustrar o funcionamento dessa porta.
API
- Conceito:
- API's (Application Programming Interface, ou em Português, Interface de Programação de Aplicações) trata-se de um conjunto de rotinas (partes de códigos feitos para resolver problemas muito específicos) e padrões preestabelecidos por um software que permitem a utilização de parte de suas funcionalidades dentro de outro sistema. Basicamente, funciona como "ponte" entre diferentes aplicações, enviando e recebendo dados de um sistema a outro. Existem API's que buscam facilitar a vida do programador, por exemplo, automatizando tarefas que seriam muito complicadas e demoradas, como o Projeto Oxford, da Microsoft, que será citado adiante.
- Esta tecnologia tem grande utilidade, pois:
- Permite que sistemas criados utilizando tecnologias diferentes comuniquem-se sem que seja necessário se adequar ao sistema que deseja utilizar em sua aplicação.
- Reduzem o tamanho de aplicações, pois com a manipulação específica de dados de uma API, o sistema não necessita ser ocupado com dados desnecessários.
- Trazem grande segurança aos dados, já que apenas uma certa informação será disponibilizada pela empresa que gera certa API de seu sistema.
- Permitem a monetização por acesso (por exemplo, Netflix, que dispõe seu acervo apenas a seus assinantes.)
- Informam sobre quem acessou, quando acessou, de onde acessou e o que acessou. Isso permite melhorias no sistema, já que há uma visão detalhada do fluxo de dados.
- Um grande exemplo de API é o Google Maps, o qual é utilizado dentro de muitas aplicações para geolocalização e afins, sendo muito utilizados em sites de hotéis, por exemplo.
- Funcionamento:
- Uma API, como citado, é um conjunto de rotinas e padrões que permitem que funcionalidades de um software sejam acessadas por outro, como por exemplo o login por Facebook. Uma API é gerada quando uma empresa proprietária de determinado sistema deseja disponibilizar partes de suas funcionalidades a outros sistemas ou então quando determinada empresa busca facilitar tarefas complexas.O trabalho feito pela API é o de enviar ao servidor ao qual se refere (por exemplo, o servidor do Facebook) a solicitação feita pelo usuário. Após isso, a API recebe os dados que foram requisitados e os retorna ao cliente, ou usuário. Esse dado pode ser algum tipo de confirmação de login ou permissão para acesso, por exemplo.
- Utilizando-se de analogias, API's são como garçons que recebem o pedido dos fregueses (usuário) e o transmitem para o cozinheiro (servidor), retornando com o alimento (informação, dado) que foi solicitado pelo freguês.
- Estado da Arte::
- APIs atualmente conseguem até mesmo prover inteligências artificiais. Podemos citar o Projeto Oxford, da Microsoft, que provém uma série de serviços de Inteligencia Artificial, como Computer Vision, Reconhecimento Facial, Reconhecimento de Emoções, Text to Speech, Comandos por Voz, Spelling Check. Outra API que provê serviços de inteligência artificial é a IBM Watson, que possui um sistema de machine learning tão poderoso que conseguiu vencer até mesmo campeões mundiais de xadrez utilizando-se das lições aprendidas e é útil para várias tarefas, como organizar informações rápidamente, implantar chatbots e mais.
- Integrações:
- API's são adicionais que podemos utilizar em nossos sistemas. A mesma já é gerada com o objetivo de ser inserida em outro sistema, portanto, depende completamente destes. Inserida em outro sistema, a mesma depende do servidor de origem para coleta de dados e geração de informação. API's podem utilizar-se também do hardware do dispositivo onde está o sistema para realizar certas tarefas, dependendo de sua utilidade e objetivo. Existem API's que funcionam sem rede dentro de um smartphone, por exemplo, mas outras precisam de conexão para funcionarem efetivamente.
- Referências Bibliográficas:
- https://vertigo.com.br/o-que-e-api-entenda-de-uma-maneira-simples/
- https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5es
- https://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funciona/
- https://canaltech.com.br/software/o-que-e-api/
- https://www.tecmundo.com.br/programacao/1807-o-que-e-api-.htm
- https://becode.com.br/framework-biblioteca-api-entenda-as-diferencas/
- https://sensedia.com/blog/apis/apis-inteligencia-artificial/
- https://blogs.microsoft.com/ai/microsofts-project-oxford-helps-developers-build-more-intelligent-apps/
App
- Conceito:
- App's (abreviação de application) são conjuntos de códigos nos quais geram um software, geralmente responsáveis por determinada função como por exemplo enviar mensagens de um dispositivo a outro, reprodução de faixas presentes em uma biblioteca enorme, edição de fotografias e claro, as tão famosas redes sociais. No caso dos App´s Mobile, as funções tornam-se mais específicas pelo fator de memória reduzida e processamento ter de ser cada vez mais rápido, com facilidade para adquirir e excluir, cada vez mais o homem precisa de app's para trabalho e lazer.
- Funcionamento:
- Geralmente, os app´s são feitos para usos específicos, por isso tem sua interface direta e simplificada, principalmente para mobiles, como smartphones e tablets, os códigos de uma aplicação têm de ser reduzidos, geralmente são programados em Java, quanto mais rápido sua execução melhor pois cada vez mais o usuário necessita de praticidade e velocidade no uso de seu mobile, que hoje em dia, é um dos principais instrumentos de trabalho
- Estado da Arte::
- Se levado em conta o número de acessos e usuários, o estado da arte de um app seriam as redes sociais, como Facebook, Youtube, What´s App e claro, Google, todos os aplicativos citados possuem monetização própria, seja ela com propagandas, número de visitas, número de downloads, número de usuários, e cada vez mais buscam desenvolver projetos novos e abraçar empresas que precisam de ajuda como a ferramenta Google Support. Na indústria de jogos para mobiles temos diversas categorias como o jogo de tiro Free Fire, o competitivo Clash Royale, dentre outros, e também temos as ferramentas que cada vez mais facilitam serviços do dia-a-dia como Uber, Waze,Drive.
- Integrações:
- Geralmente os app's se interagem entre si, sendo o Facebook o mais utilizado dos citados é o principal no preenchimento de cadastros, se comunicam através de uma API, os app´s também têm saída na tela do dispositivo (porém totalmente simplificada, somente com informações úteis ao consumidor, sem nada de processamento ou de dados sobre a programação do mesmo), no áudio também e necessariamente com os dados em nuvem, pois para um consumidor adquirir um app basta apenas um clique, conectado à internet, na loja ou site ou qualquer seja a ferramenta que o consumidor utilize para realizar o download do mesmo, ele rapidamente acessa um banco de dados em nuvem extremamente seguro em sua maioria e realiza a instalação do mesmo. Também é muito comum a interação com outros dispositivos como um aplicativo para compartilhar o conteúdo acessado em um mobile em uma televisão por exemplo, e até mesmo o controle de outro dispositivo através de um app.
Referências: **http://blog.futurecom.com.br/o-que-sao-apps-e-para-que-eles-servem/ , https://blog.fabricadeaplicativos.com.br/fabrica/mas-afinal-o-que-e-um-app/ , https://exame.abril.com.br/tecnologia/os-25-aplicativos-mais-usados-dos-estados-unidos/ , https://www.youtube.com/watch?v=21mpGLef_jY , https://sbus.org.br/wp-content/uploads/2015/09/rbus-setembro-de-20141.pdf#page=17 , https://support.google.com/business/?hl=pt-BR#topic=4539639 , https://books.google.com.br/books?id=bBVoDQAAQBAJ&printsec=frontcover&dq=app+interagem&hl=pt-BR&sa=X&ved=0ahUKEwi3nLPOzr_aAhVHGpAKHfRWDYsQ6AEILTAB#v=onepage&q=app%20interagem&f=false
- Sobre o vídeo
- Como um App é um software responsável por determinada função, as funções que permitem troca de dados entre usuários, seja por vídeo, áudio ou chat instantâneo(mensagens de texto) estão presente no mesmo, a entrada, saída e "filtração" de spams e algo do tipo (presente no segundo vídeo Warriors of the Net (Portuguese)) além dos proxys de proteção também presentes, o mundo da internet e as suas ligações entre as redes que são o foco dos App´s e interfaces web
Arduino
- Conceito:
- Um Arduino é um pequeno computador que você pode programar para processar entradas e saídas entre o dispositivo e os componentes externos conectados a ele. O Arduino é uma plataforma de computação física ou embarcada, ou seja, um sistema que pode interagir com seu ambiente por meio de hardware e software. A interação com o ambiente pode ser feito através de Portas Analógicas (leitura e recebimento de dados) e Portas Digitais (portas de acionamento). Essa tecnologia pode ser usada para receber dados tais como o acionamento de um botão ou a temperatura ambiente, processar e devolver uma saída, sendo essa o acionamento de um motor ou o controle de temperatura de um ar condicionado.
.
- Funcionamento:
- Para controla-lá é necessário usar uma linguagem de programação Arduino denominada (baseada em Fiação) e o Software Arduino (IDE).
- Programas em Arduíno são referenciados como sketches e tanto o hardware quanto o software abertos.
- As Portas Analógicas são usadas para ler e receber dados de sensores, tais como sensor de luminosidade, temperatura, botões, etc.
- Após a placa Arduino ler os dados recebidos, ela os processa é devolve uma saída por meio de mensagem na tela (no caso do uso de um sensor de temperatura, onde ela exibe a temperatura por números) ou acionamento de uma Porta Digitais.
- Já as Portas Digitais são usadas para acionamento de motores, ligar e controlar LEDs, etc.
- As Portas Analógicas e as Portas Digitais podem interagir e ser controladas por comandos de teclado por meio de uma Porta Serial existente na placa, essa porta possibilita que o usuário interaja com a placa em tempo real.
- Estado da Arte::
- O Estado da Arte do Arduino está sempre se renovando, pois a cada dia surgem novas aplicações dessa tecnologia. Atualmente, o Arduino uno e o Arduino leonardo são os mais modernos. Essas placas possui um diferencial, esse diferencial é funcionalidades que as placas que antecederam essas não consegue executar, tais como leitores de sensores.
- Integrações:
- O Arduino interage com o Raspberry, porém o Raspyberry possui mais funcionalidades do que o Arduino.
- O Arduino interage com:
- Motores (Servo motor, Motor de Passo, Motor DC);
- Sensores (temperatura, luminosidade, presença);
- Módulo Bluetooth;
- Display LED;
- Botões de acionamento;
- Buzzer;
- Matiz Led;
- Experimentação Remota;
- Criação de impressoras 3D;
- Criação de Robôs.
- Referências Bibliográficas:
- McRoberts, Michael. Arduino Basíco. Edição original em Inglês publicada pela Apress Inc., Copyright © 2010 pela Apress, Inc.. Edição em Português
para o Brasil copyright © 2011 pela Novatec Editora. Todos os direitos reservados. São Paulo: Novatec Editora Ltda, 2011.
- Vídeo: Porta Lógica "E" ou "AND" CI. 7408-ETB
- No vídeo podemos ver o funcionamento de um CI (Circuito Integrado), o Arduino também possui um CI de controle, esse controla todas as entras da placa, tanto as portas Analógicas (recebem informações) quanto as portas Digitais (de acionamento). o CI do Arduino é responsável por tratar todas as informações lidas pelas portas e de executar os comando programados e salvos na sua memoria. Vemos também no vídeo a utilização de uma Protoboard (uma placa com ligações elétricas entre suas ranhuras) e Jumpers (fios elétricos com conectores nas pontas) que são usadas para fazer testes de circuitos com o Arduino por ser fácil o seu manuseio.
Banco de Dados
- Conceito:
- Bancos de dados são coleções de dados que se relacionam entre si criando informações, semelhante a um armário com gavetas, nas quais estão guardadas pastas contendo diversas informações que de alguma forma se relacionam, esta comparação era o modo o qual empresas e organizações armazenavam suas informações antes da criação dos bancos de dados, sendo pouco eficiente, visto que, com um grande número de informações organizadas deste modo, poderia levar um tempo significativo para encontrar uma específica devido ao grande volume de pastas e armários, além do custo de tal tipo de armazenamento.
- Nos bancos de dados estes armários são chamados de arquivos, as pastas de tabelas e as informações contidas nelas, registros.
- Sua principal função é a de armazenar e gerenciar dados de forma eficiente e digital, possibilitando maior velocidade e eficiência em pesquisas, estudos ou em uso empresarial (garantindo uma melhor comunicação entre as diversas áreas de uma empresa por exemplo), podendo ser usado para gerenciar os bens de uma empresa, informações sobre clientes, informações necessárias para o funcionamento de uma aplicação.
- Funcionamento:
- Sendo operados por um SGBD (Sistema de Gerenciamento de Dados), o qual é um conjunto de softwares que tem como responsabilidade o gerenciamento de um banco de dados,existem diversos modelos de bancos de dados, sendo os mais utilizados:
- O modelo relacional (que utilizam SQL) já está consolidado no mercado há muito tempo,são os mais famosos : Oracle, MySQL e SQL Server. Nestes bancos de dados,a interface é constituída por APIs ou drivers do SGBDR (Sistema de Gerenciamento de Dados Relacional) que executam comandos em SQL(Structured Query Language). Para um BD ser categorizado como relacional, precisa cumprir com as 13 Regras propostas por Edgar Frank Codd em 1985.
- O modelo NoSQL vem ganhando espaço no mercado devido a sua baixa exigência de hardware, a sua fácil manutenção e a seu baixo custo de investimento em termos de escalabilidade, são seus representantes mais famosos: Apache e MongoDB. Nestes bancos a interface pode ser simples, utilizando arrays associativos ou pares chave-valor (Key-Values pairs) , porém também pode utilizar o padrão XQuery.
- O modelo em rede permite, por meio do uso de apontadores, o uso simultâneo de várias tabelas, das quais algumas colunas possuem apontadores para outras tabelas, criando assim uma rede, visto que as tabelas são ligadas entre si por apontadores neste modelo. São bastante utilizados em sistemas de computadores de grande porte (mainframe).
- O modelo hierárquico é semelhante ao modelo em rede, com a diferença de que nele a estrutura é semelhante a uma árvore,possuindo tronco e galhos, criando assim um sentido de hierarquia entre os registros, se baseando em um Modelo de Entidades e Relacionamentos.
- No modelo orientado a objetos a informação é armazenada na forma de objetos, utilizando a orientação a objetos (estrutura de dados) para fazê-lo, geralmente os dados são manipulados pela aplicação, esta escrita em uma linguagem orientada a objetos, neste modelo o SGBD é denominado como ODBMS ou OODBMS.
- O funcionamento dos bancos de dados consiste basicamente em: armazenar e gerenciar dados, criando informações, por meio de um SGBD ou outros meios (nos bancos NoSQL e nos em rede), criar tabelas e regras, realizar alguns cálculos utilizando como base as informações contidas no mesmo e criar conexões entre os dados.
- Estado da Arte:
- Os bancos de dados mais recentes e mais utilizados atualmente são: Postgre, MariaDB, Firebird, MySQL, Oracle, SQL Server (Microsoft), CloudSQL, MongoDB e Cassandra (desenvolvido originalmente para o Facebook).Os bancos de dados NoSQL vem ganhando espaço no mercado já que conseguem responder melhor a um grande volume de dados do que os que utilizam SQL.
- Integrações:
- Depende das tecnologias: SQL, XQuery, SGBD, API, Hardware, SGBDR, ODBMS (OODBMS), Rede.
- Interage com as tecnologias: SGBD, SGBDR, ODBMS, SQL, XQuery.
- Referências:
- http://www.impacta.com.br/blog/2017/01/30/entenda-a-importancia-de-um-banco-de-dados-em-uma-organizacao/
- https://pt.wikipedia.org/wiki/Banco_de_dados
- https://dicasdeprogramacao.com.br/o-que-e-um-banco-de-dados/
- https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados
- https://www.youtube.com/watch?v=Ofktsne-utM
- https://becode.com.br/principais-sgbds/
- https://pt.wikipedia.org/wiki/NoSQL#Arquitetura
- https://pt.wikipedia.org/wiki/Banco_de_dados_orientado_a_objetos
- https://pt.wikipedia.org/wiki/Modelo_hier%C3%A1rquico
- https://pt.wikipedia.org/wiki/Banco_de_dados_relacional
- https://pt.wikipedia.org/wiki/Base_de_dados_em_rede
Barramentos
- Conceito:
- Componentes de computadores como; Placa de vídeo, processador, HD são conectados à placa-mãe a partir do que chamamos de barramento (bus),
são as linhas de transmissão que transmitem as informações entre componentes e todos os demais periféricos do computador. Basicamente é o encaixe
de que cada peça precisa para funcionar corretamente, sua principal ação é executar uma comunicação.
- Funcionamento:
- O Barramento é expresso em bits, existe um número de linhas físicas nas quais os dados são enviados simultaneamente.
As três principais funções desempenhadas por tal são:
- Barramento de endereços: (Address Bus) Mostra o local onde os processos devem ser extraídos e para onde devem ser enviados depois de
processados, é usado para selecionar a origem ou destino de sinais transmitidos nos outros barramentos.
- Barramento de dados: (Data Bus) Esse tipo de barramento desempenha a função de troca de dados no computador, dados enviados e recebidos.
O Barramento de Dados é bi-direcional, isto é, pode transmitir em ambas as direções.
- Barramento de controle: (Control Bus) Como o próprio nome já deixa a entender, ele é o que controla as outras funções e sincroniza as
atividades do sistema.
- Estado da Arte:
- Barramento "SATA", substituto da antiga tecnologia "ATA", encontrado no HD, essa nova tecnologia resolveu problemas de perdas de dados
ocasionadas por interferências. Outro exemplo a ser citado é o caso do Barramento PCI-Express, que é basicamente o substituto dos antigos
PCI e AGP, que são peças encontradas em Placa mãe, placa de vídeo de um computador que tem como ação a transferência de dados, a atual
tecnologia é capaz de trabalhar com taxa de transferência de dados com cerca de 4 GB por segundo, fazendo os antigos barramentos sair de linha.
- Integrações:
- Placa de Vídeo; É um componente de um computador que envia sinais deste para o ecrã.
- HD; É uma memória, que serve para armazenar arquivos, programas, jogos e todo tipo de conteúdo que se deseja manter no computador.
- Processador; a sua função é acelerar, endereçar, resolver ou preparar dados, dependendo da aplicação.
- USB; Permite a conexão de periféricos, tem função de transmitir e armazenar dados.
- Placa de rede; Responsável pela comunicação entre os computadores de uma rede
- Referências:
- http://www.cursosdeinformaticabasica.com.br/o-que-sao-barramentos/
- https://www.tecmundo.com.br/hardware/1736-o-que-e-barramento-.htm
- https://br.ccm.net/contents/368-barramento-de-computador
- http://blog.maxieduca.com.br/barramentos-entrada-e-saida/
- http://bloghardwaremicrocamp.com.br/manutencao/tudo-que-voce-precisa-saber-sobre-barramentos/
- http://www.di.ufpb.br/raimundo/ArqDI/Arq5.htm
- Relação vídeo [2]: A relação encontrada entre este "tema" e o vídeo apresentado na aula do dia 07/05/2018, é basicamente o papel que os barramentos
- fazem: à "comunicação", aonde o barramento dita o endereço, troca de dados e o controle.
BI
- Conceito:
- Conhecido tecnicamente como Business intelligence, BI é um processo de coleta, organização, análise, compartilhamento e monitoramento de informações. É um conjunto de técnicas e ferramentas para auxiliar na transformação de dados brutos em informações significativas e úteis. Sendo assim, facilita a análise para criação de projetos dentro de uma empresa.
- Procedimentos:
- Sistemas de BI funcionam da seguinte maneira:
- 1º - Data Warehousing: processo que ocorre a coleta massiva de dados internos e externos ao negócio, o que cria um armazém de dados (DW), que serão ser- utilizados futuramente.
- 2º - Data Mining: nesse processo são buscados padrões nos dados presentes no DW (armazém de dados), assim são criados novos dados e a partir desses são gerados relatórios.
- 3º - Benchmarking: é o processo onde implementa se práticas para o melhoramento do negócio, essas práticas que são criadas a partir de analises dos relatórios que são gerados na fase de DM (Data Mining).
- Sistemas de BI funcionam da seguinte maneira:
- Concorrentes:
- Uma metodologia que está entrando em destaque no mercado é a Data Analytics. Big Data Analytics é o trabalho analítico e inteligente de grandes volumes de dados, estruturados ou não-estruturados, que são coletados, armazenados e interpretados por softwares de altíssimo desempenho. Trata-se do cruzamento de uma infinidade de dados do ambiente interno e externo, gerando uma espécie de “bússola gerencial” para tomadores de decisão, em tempo reduzido.
- Criadores:
- O termo Business Intelligence® surgiu apenas na década de 80, pela empresa Gartner Group, segundo Primak (2008, pag. 5). O mesmo autor, ainda, definiu o Business Intelligence® “como o processo inteligente de coleta, organização, análise, compartilhamento e monitoração de dados contidos em Data Warehouse e/ou Data Mart, gerando informações para o suporte à tomada de decisões no ambiente de negócios”. Desde a década de 90 até a atualidade, foi presenciada uma grande evolução em todos os setores, inclusive no setor da tecnologia da informação e ambiente empresarial. Diante de tamanho progresso, as ferramentas de software ganharam maior abrangência e importância, e o próprio termo Business Intelligence ganhou reconhecimento mundial.
- Referências
BigData
- Conceito:
- Big Data é o termo utilizado para designar o gerenciamento do grande número de dados estruturados e não estruturados, integrando e gerenciando tais juntamente com dados convencionais. Seu grande diferencial é a possibilidade de cruzar esses diferentes tipos de dados para obter insights precisos de maneira eficiente. A partir desta tecnologia podemos saber o que: os usuários da rede estão pensando sobre tal coisa, suas satisfações e insatisfações sobre um determinado produto ou serviço; desejos e necessidade, ou seja, quando você entra em um site de compras como a Amazon, por exemplo, você busca um tipo de produto e isto se torna dados. Esses dados captados na rede serão cruzados com dados internos da empresa para criar insights, informações que dizem sobre o interesse do usuário para as mais diversas finalidades nos mais diversos setores.
- Um dos desdobramentos do Big Data é o Big Data Analytics, que refere-se aos softwares capazes de tratar essa grande quantidade de dados, facilitando a descoberta de certas oportunidades que estão além da compreensão humana.
- O Big Data também pode ser definido pelos seus 4 V's :
- Volume: Imensa quantidade de dados. São dados estruturados e não estruturados, de baixa densidade(por exemplo, fluxo de clicks, feed de dados em uma rede social) que serão convertidos em informações valiosas às empresas.
- Velocidade: O grande fluxo de dados que são recebidos e, se necessário, administrados. Muito importante em segmentos de IoT como de segurança e saúde, que necessitam de avaliações e ações em tempo real. No mercado digital, por exemplo, as aplicações buscam cruzar dados sobre as preferências pessoais do usuário e localização para gerar ofertas de marketing em tempo real para aquele único usuário.
- Variedade: Vários tipos de dados não estruturados. São dados como textos, áudio e vídeo que necessitam de um processamento adicional para que aquilo gere um significado para algo. Após tal processamento esses dados não estruturados passam a ter os mesmos requisitos que os dados funcionais.
- Valor: Todos os dados possuem seu valor, mesmo que esteja "escondido", porém sempre terá tal, que vai desde opinião do cliente até a situação de um hardware que está prestes a falhar. O valor de cada dado é obtido a partir de algoritmos e técnicas quantitativas e investigativas.
- Funcionamento:
- Segundo a Lei de Moore, de Gordon Earl Moore, que surgiu em meados de 1965, a capacidade de processamento dos computadores( entenda computadores como todas as tecnologias de hardware, não só os computadores pessoais) dobraria a cada 18 meses. Vale lembrar que Gordon pensou nisso tendo a sua empresa como referência, ele é co-fundador da Intel.
- Segundo a Lei de Parkinson, os programas e seus dados aumentam de forma a ocupar toda a memória disponível para conte-los, o que tem se tornado inviável com as ferramentas convencionais.
- A partir disso entram as ferramentas de análise de BigData, que possibilitam o tratamento de grande quantidade de dados, estruturados ou não.
- Para realizar a análise dessas grandes quantidades de dados são utilizadas de ferramentas, como o BigData Analytics, por exemplo. Tal ferramenta se refere ao trabalho analítico e inteligente do grande volume de dados, estruturados ou não. Esta interpretação de dados é feita em softwares de análise de altíssimo desempenho. Alguns desses dados utilizados por softwares de Big Data Analytics são:
- Dados extraídos de ferramentas de Inteligência de Negócios (Business Intelligence – BI);
- Arquivos de log de servidores web;
- Conteúdos de mídias sociais;
- Relatórios empresariais;
- Textos de e-mails de consumidores à empresa;
- Indicadores macroeconômicos;
- Pesquisas de satisfação;
- Estatísticas de ligações celulares capturadas por sensores conectados à “internet das coisas”;
- Bases de dados das empresas de cartão de crédito;
- Programas de fidelidade;
- Reviews de produtos nos sites das empresas.
- Quando os dados das fontes listadas nesses tópicos, e de mais várias outras fontes, se cruzam, soluções de Big Data Analytics geram informações que, diferentemente dos dados coletados, podem ser interpretadas e são extremamente úteis para melhorar o desempenho de qualquer tipo de empresa que tem no mercado. O processo se dá inicialmente pela análise de um público por região, para traçar o perfil do consumidor daquela área analizada.
- Estado da Arte::
- A Big Data está em constante evolução devido à grande demanda de dados que sempre deve tratar. Como já dito, ela atua em diversas áreas para contribuir sempre com o desenvolvimento e crescimento das mesmas, visando, também, antender sempre o público alvo da maneira mais eficiente. Dentre essas áreas temos:
- Saúde: Os dispositivos usados na área da saúde ampliam cada vez mais a quantidade de dados gerados, assim como os equipamentos de diagnóstico da saúde. O Big Data trabalha na análise de tais dados para que se possa identificar padrões de uma determinada doença, afim de desenvolver um tratamento mais específico para cada paciente, ou também gerar informações que possam ser compartilhadas entre organizações de saúde, para que se possa ajudar nos estudos de diversas doenças.
- Setor Financeiro: A Big Data pode gerar informações ao setor financeiro para ajudar a mitigar os riscos financeiros, evitar a perda de clientes, detectar fraudes, obter maior rentabilidade, realizar campanhas mais efetivas de produtos e serviços e migrar para canais de marketing mais adequados, seja para atender uma determinada clientela ou por questões de custo.
- Segurança: A partir de dados como histórico de visitação, ficha cadastral, textos de notícias e de conteúdos da web a Big Data os estruturam de modo que se possa detectar padrões de comportamento físico ou digital que oferecem algum tipo de risco.
- Educação: A Big Data ajuda as instituiçẽos de educação a classificar diferentes perfis de aprendizado visando a personalização da educação, fazer análises preditivas de evasão escolar, com dados como histórico escolar e de frequência em determinada região estudada.
- E-commerce: Muito importante nessa área, O Big Data utiliza de dados como cadastro do cliente, histórico de transações e de pesquisas afim de aumentar o faturamento por recomendações automáticas de produtos relacionados ao seu perfill e ao perfil do produto, melhorando a comunicação com o cliente, mostrando de forma fácil diversos produtos daquele tipo sempre com o menor tempo possível, nesse caso, praticamente em tempo real.
- A Big Data está em constante evolução devido à grande demanda de dados que sempre deve tratar. Como já dito, ela atua em diversas áreas para contribuir sempre com o desenvolvimento e crescimento das mesmas, visando, também, antender sempre o público alvo da maneira mais eficiente. Dentre essas áreas temos:
- Integrações:
- A tecnologia de Big Data interage com diversas outras tecnologias, pelo fato de ser muito ampla. Dentre elas temos os bancos de dados, softwares de altíssimo desempenho para análise e processamento de dados, como o Wavefront, Talent Open Studio, interações com BI, api's para coleta de dados, servidores dentre outras.
CanvAs
- Conceito:
- Canvas é uma ferramenta visual e prática que auxilia o empreendedor a elaborar um bom modelo de negócios para seu cliente, buscando compreender todos os passos do negócio para que ele seja aproveitado ao máximo.
- Procedimentos:
- O Canvas é composto por 9 blocos que integram as principais partes do negócio. Ele pode ser usado para abrir um novo negócio ou para melhorar um já existente, como por exemplo: reduzir processos, reduzir custos e conseguir aumentar sua margem de lucro. Os 9 blocos são:
1 - Seguimento de clientes. Esse bloco trata sobre o grupo de pessoas ou o tipo de clientes que a empresa pretende atender. Para poder obter as respostas sobre quem são seus clientes, você deve se perguntar "Quem são meus clientes de maior relevância?".
2 - Proposta de valor. Esse bloco diz sobre o porquê os clientes devem escolher sua empresa ao invés do concorrente. Ele deve retratar de maneira simples de que forma você irá satisfazer o consumidor. Atributos que podem fazer grande diferença na sua proposta são: preço, status e conveniência. Perguntas para lhe auxiliar em preencher esse bloco do Canvas podem ser: "Que necessidades estou satisfazendo?" e "Que problema você está auxiliando a resolver?".
3 - Canais. Os canais, são os pontos de contato entre a empresa e seus clientes. Os canais podem se basear em canais de comunicação, vendas e distribuição. Os canais permitem que a empresa realize sua função com êxito, que os clientes adquiram um conhecimento a respeito da empresa e até mesmo que a empresa realize suporte pós-venda. Para saber quais canais utilizar no empreendimento, você deve se perguntar "Por onde meus clientes querem ser contratados?", "Qual canal tem melhor funcionalidade pra situação?". Deve-se levar em consideração tbm o custo-benefício do canal.
4 - Relacionamento com clientes. Esse bloco vai definir que tipo de relação você terá com o cliente, elas podendo ser: pessoais (com interação humana), self-service (a empresa fornece o necessário para o cliente se auxilie sozinho) ou automatizada (é quase um self-service, porém com serviços automatizados). É importantíssimo que você escolha adequadamente a relação que você terá com o cliente, poia isso interfere diretamente com a relação que você terá com ele. Para saber qual relacionamento você deve ter com o cliente, se pergunte: "Qual relacionamento ele espera de você?" e "Qual o custo desse relacionamento?".
5 - Fontes de receita. O bloco da fonte de receita representa o dinheiro que a empresa gera a partir do seu segmento de cliente. Algumas maneiras de gerar fonte de receita são: vendas de produtos e serviços, aluguel, taxa de assinatura, etc. Para preencher melhor esse bloco, você deve se perguntar "Quanto seus clientes estão dispostos a pagar?", "Como vão pagar?", "Qual a preferência de pagamento deles?" e "Pelo o que eles pagam atualmente?".
6 - Recursos principais. Esse bloco descreve os recursos mais importantes que fazem seu modelo de negócios funcionar. Esses recursos podem ser financeiros, físicos, intelectuais e humanos. Podem ser necessários recursos diferentes para cada modelo de negócios. Para preencher adequadamente esse bloco você deve se perguntar: "Quais principais recursos sua proposta de valor necessita?".
7 - Atividades-Chave. As atividades-chave são as principais ações que devem ser realizadas para seu modelo de negócios funcionar. As atividades variam de acordo com cada modelo de negócio. Alguns exemplos são: desenvolvimento de software, marketing, vendas, etc. Para preencher adequadamente esse bloco se pergunte: "Que atividades-chave sua proposta de valor requer?".
8 - Parcerias principais. Podemos classificar como principais parceiros os fornecedores e parceiros que vão ajudar a manter o negócio funcionando. Esse bloco é fundamental, pois há casos em que as atividades-chave são diretamente ligadas aos parceiros. Para preencher adequadamente esse bloco se pergunte: "Quem são seus principais parceiros?, "Quem são os fornecedores principais?" e "Que atividades-chave são executadas por parceiros?".
9 - Estrutura de custo. Esse bloco deve informar quais são os custos envolvidos no seu modelo de negócios, incluindo gastos variáveis e fixos. Para preencher esse bloco adequadamente você deve se perguntar: "Quais os custos mais importantes no meu modelo de negócios?", "Que recursos principais são mais caros?".
Existem diversos jeitos de preencher sue Canvas, mas um muito usado e muito recomendado é imprimir seu quadro do Canvas usando anotações e post-its.
- Concorrentes:
- Seus principais concorrentes são o Lean e o 5W2H.
- Criadores:
- O criador do Canvas é o consultor/autor suíço Alexander Osterwalder.
FONTES: https://youtu.be/WUAQBV52bNU
http://www.arsenalempreendedor.com/canvas-o-que-e-o-canvas-e-como-funciona/
Cloud Computing
- Conceito:
Cloud Computing ou Computação na Nuvem é um termo que descreve um ambiente de computação, que possui a capacidade de armazenar e processar uma grande quantidade de aplicações, plataformas e serviços via internet, baseado em servidores virtuais ou físicos. Para utilizar esse recurso o usuário deve ter um terminal conectado a nuvem, ou seja, é necessário estar conectado à internet para usufruir dos serviços proporcionados por ele, que são baseados na necessidades dos usuários.
- Funcionamento:
Para este modelo de computação funcionar é necessário reunir todas aplicações e dados dos usuários em grandes centros de armazenamento, conhecidos como “data centers”. Ao serem reunidos são destinados à uma infraestrutura de comunicação, ou seja, a um conjunto de hardwares, softwares, interfaces, dispositivos de controle e de armazenamento que disponibilizam os serviços aos usuários. Outro ponto importante para o entendimento deste modelo de computação refere-se aos participantes e as técnicas utilizadas por eles para o funcionamento da nuvem. Estes podem ser divididos em três grandes grupos: Provedor de serviço, Desenvolvedor e Usuário. O provedor é responsável pela tarefa de disponibilizar, gerenciar e monitorar toda a infraestrutura da nuvem, garantindo o nível do serviço e a segurança adequada de dados e aplicações. Já o desenvolvedor deve ser capaz de prover serviços para o usuário final, a partir da infraestrutura disponibilizada pelo provedor de serviço. Enquanto o usuário final é o consumidor que irá utilizar os recursos oferecidos pela nuvem computacional.
- Estado da Arte:
A computação em nuvem é uma evolução dos serviços e produtos de tecnologia da informação, com o objetivo de fornecer serviços de fácil acesso, baixo custo e com garantias de disponibilidade e escalabilidade. Entretanto, atualmente a nuvem não se restringe a apenas ao armazenamento de dados. O OneLive é um exemplo da complexidade do “cloud computing” na atualidade, essa plataforma de jogos eletrônicos em computação em nuvens vai permitir que donos de máquinas mais modestas desfrutem de tecnologias avançadas, no qual os jogos são rodados em servidores remotos, enquanto o seu computador apenas reproduz a transmissão via streaming e envia os comandos que você der.
- Integrações:
Esta tecnologia depende de hardwares, softwares, interfaces, dispositivos de armazenamentos e de controle, data centers, internet, para poder disponibilizar os serviços aos seus usuários.
- Referências:
https://books.google.com.br/books?hl=pt-BR&lr=&id=mvir2X-A2mcC&oi=fnd&pg=PA1&dq=nuvem+&ots=CaGl8AQQZv&sig=4yVyyJshI5kHO5Qm8xUsEWihqHY#v=onepage&q=nuvem&f=false http://www.ic.unicamp.br/~ducatte/mo401/1s2011/T2/Artigos/G04-095352-120531-t2.pdf https://www.researchgate.net/profile/Javam_Machado/publication/237644729_Computacao_em_Nuvem_Conceitos_Tecnologias_Aplicacoes_e_Desafios/links/56044f4308aea25fce3121f3.pdf https://s3.amazonaws.com/academia.edu.documents/4660346/gerenciamento_dados_nuvem.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&Expires=1523642586&Signature=J4fT%2FJWfkLA%2FEphIshJ36IdcsQo%3D&response-content-disposition=inline%3B%20filename%3DGerenciamento_de_Dados_em_Nuvem_Conceito.pdf
- Relação com o vídeo:
No vídeo Warriors of the Net, mostra o desencadeamento de um fluxo de informações que são destinadas a uma sala pessoal de correio, a internet. Essa por sua vez, é utilizada pela nuvem para o armazenamento de dados.
CLP
- Conceito:
- O CLP (Controlador Lógico Programável) é um equipamento eletrônico digital de funcionamento similar ao computador que consiste em realizar funções específicas de um programa. Foi criado em 1968 na General Motors pelo grupo Bedford Associates, a pedido da própria GM que buscava automatizar o processo com um sistema computadorizado que fosse flexível como um computador, com preço competitivo ao de sistemas de controle a relé, de fácil programação e manutenção e de maior precisão.
- Com o advento da Web, com sua interface gráfica intuitiva e universal, passou a ser bastante indicado para a supervisão remota de processos de chão-de-fábrica.
- Funcionamento:
- Para facilitar o entendimento de como funciona o CLP, vamos dividi-lo em três partes, a entrada, o processador ou CPU e a saída. A entrada é o que representa a parte sensitiva que recebem os sinais externos ao CLP, onde são conectados os transdutores (dispositivos que informam eletricamente as variáveis do processo), ou seja a entrada de dados, podendo ser eles, sinal analógico ou sinal digital. Recebido os dados de entrada, o CLP faz a leitura das entradas verificando se alguma foi acionada e logo as armazena em sua memória que será consultada quando o programa estiver sendo executado. Ao executar o programa, o CLP vai ler as entradas que foram salvas e consequentemente gerar as saídas de acordo com as instruções do programa. As saídas ou cartão de saída, são responsáveis por acionar as cargas elétricas que o CLP irá comandar. Podendo ser elas digital ou analógica. Podemos então sintetizar o funcionamento dos CLPs da seguinte forma:
- Inicio (verificação do funcionamento do CLP) -> Verifica o do estado das entradas -> Transfere os dados para a memória -> Compara com o programa do usuário -> Atualiza das saídas
- Para facilitar o entendimento de como funciona o CLP, vamos dividi-lo em três partes, a entrada, o processador ou CPU e a saída. A entrada é o que representa a parte sensitiva que recebem os sinais externos ao CLP, onde são conectados os transdutores (dispositivos que informam eletricamente as variáveis do processo), ou seja a entrada de dados, podendo ser eles, sinal analógico ou sinal digital. Recebido os dados de entrada, o CLP faz a leitura das entradas verificando se alguma foi acionada e logo as armazena em sua memória que será consultada quando o programa estiver sendo executado. Ao executar o programa, o CLP vai ler as entradas que foram salvas e consequentemente gerar as saídas de acordo com as instruções do programa. As saídas ou cartão de saída, são responsáveis por acionar as cargas elétricas que o CLP irá comandar. Podendo ser elas digital ou analógica. Podemos então sintetizar o funcionamento dos CLPs da seguinte forma:
- Estado da Arte::
- Os CLPs, assim como a maioria das tecnologias, desenvolve-se cada vez mais, primeiramente criado apenas com as funções de contagem e temporização, hoje encontramos CLPs com um aporte muito maior de características, como a criação de um banco de dados, funcionamentos de linha de produção mesmo com o equipamento em manutenção, módulos de expansão, recursos para diagnóstico de falhas, software de programação em ambiente Windows, comunicação em rede, possuem display, interfaces gráficas.
- Integrações:
- Os CLPs interagem com as seguintes tecnologias:
- Fins de curso em máquinas de produção;
- Motores em geral;
- Atuadores;
- Pistões hidráulicos;
- Sensores;
- Computadores (Programação);
- Máquinas de usinagem;
- Esteiras industriais.
- Os CLPs interagem com as seguintes tecnologias:
- Relação com o vídeo
- Podemos relacionar o CLP com vídeo 1, Porta Lógica "E" ou "AND" CI. 7408 - ETB, que são semelhantes, até iguais, as portas de entradas e saídas do CLP, que são através de portas lógicas.
- Bibliografia
- Apostila - Curso de Controladores Lógicos Programáveis - Universidade do Estado do Rio de Janeiro - Faculdade de Engenharia
- Zancan, M. D.- Controladores Programáveis
- http://www.crkautomacao.com.br/pt-br/artigos/controlador-logico-programavel
Compiladores
- Conceito:
- Um compilador é um software complexo, que cumpre um papel de tradução, conversão e ligação entre um programa escrito em linguagem de programação ou linguagem fonte em um programa de linguagem de máquina ou linguagem objeto. Ou seja, converte um programa escrito em linguagem de programação para uma linguagem cuja o computador entenda. Nos primórdios, os compiladores não traduziam diretamente a linguagem fonte para a linguagem objeto, fazendo-se necessária a tradução em uma linguagem simbólica (Assembly), para que a partir de tal seja feita a tradução em linguagem objeto. Visto isto, fica claro que os compiladores são de suma importância nos tempos atuais, sabendo que cada vez mais há o estreitar da relação homem/máquina, sendo os compiladores hoje, peça fundamental de diálogo e aprimoramento das tecnologias que surgem atualmente.
- Operação:
- As atividades dos compiladores se resumem em duas tarefas, análise e síntese.
- Análise: Onde o compilador analisa o código fonte descrito, reconhecendo a estrutura e significado do programa. Dentro do processo de análise há algumas subdivisões, iniciando o processo pelo analisador léxico que verifica planamente o programa fonte e transforma o texto em um fluxo de tokens, sendo então criada a tabela de símbolos. Logo após a ação do analisador léxico é iniciada a análise sintática, que lê o fluxo de tokens e valida tal estrutura criando em seguida a árvore sintática. Logo esses passos executados entra em ação a análise semântica, que é responsável pela aplicação das regras semânticas.
- Síntese: Onde ocorre a síntese do programa equivalente em Assembly. Aqui ocorre a geração do código intermediário, que cria uma abstração do código, seguida da otimização do código, culminando então na geração do código objeto, que tem a finalidade de geral o código de baixo nível correspondente a arquitetura da máquina alvo.
- As atividades dos compiladores se resumem em duas tarefas, análise e síntese.
- Benchmarking::
- Diferente do compilador o interpretador recebe como entrada uma especificação executável e produz como saída, a execução dessa especificação. Linguagens como PHP, Scheme, Python são interpretadas. Um interpretador pode ser entendido como um processo que, ao invés de visar um conjunto de instruções de um processador, visa produzir o efeito de sua execução. Eles normalmente interpretam uma representação intermediária do programa fonte. Os compiladores e interpretadores possuem muitas características em comum pois podem executar as mesmas tarefas, como por exemplo, analisar um programa e determinar se ele é válido ou não, porém os interpretadores são um tipo de tradutor no qual, algumas fases do compilador são substituídas por um programa que executa o código produzindo o seu efeito.
- Desenvolvedores:
- Existem algumas empresas que desenvolvem compiladores como, IBM, Microsoft, GCC entre outros. CodeBlocks, IDE Visual Studio, Javac, são exemplos de compiladores disponibilizados por eles.
Conectores
- Conceito:
Conector, ou ficha, é um dispositivo que efetua a ligação entre um ou mais pontos onde se necessita de comunicação de sinais (por exemplo, entre um computador e um periférico), eles usam pinos e orifícios para fazer a ligação e transmissão.
Existem vários tipos diferentes de conectores. Os mais conhecidos são os RCA que são geralmente utilizados para fazer a ligação entre aparelhos de TV, videocassetes, DVD Players, e até mesmo placas de vídeo de computadores. Também existem conectores de cabos de rede de computador, conectores VGA (mais utilizados para conectar a placa de video de um computador a um monitor), conectores SVGA (também utilizados para conexão entre placas de vídeo de computadores e monitores, porém também pode conectar TV, projetores, DVD, etc).
Os conectores informáticos, chamados conectores de entrada/saída (E/S ou, em inglês, I/O para Input/Output) são as interfaces que permitem conectar hardwares através de cabos. Eles se compõem de uma tomada macho, com pinos salientes, que serão inseridos em tomadas fêmeas, geralmente constituídas de soquetes de entrada. No entanto, existem as tomadas ditas hermafroditas, que são simultaneamente macho e fêmea, e podem se inserir uma na outra.
No século XXI, os conectores começaram a ser substituídos graças à tecnologia wireless (interligação sem fio de equipamentos). Hoje encontram-se no mercado vários equipamentos com esta tecnologia, desde placas de rede, caixas de som, mouses, teclados, microfones, DVD, TV, videogames (console), etc.
- Funcionamento:
Como são os pinos na informática Os pinos e orifícios dos conectores estão geralmente ligados a fios elétricos que constituem o cabo. Assim, a associação dos pinos a cada fio do cabo chama-se pinagem (pin layout, em inglês). Cada pino numerado corresponde a um fio do cabo, mas pode acontecer que um deles não seja utilizado. Além disso, em certos casos, pode acontecer de dois pinos estarem ligados entre eles. Neste caso, fala-se de uma ponte. Caracteristicas dos conectores de entrada/saída A placa mãe do computador possui diversos conectores de entrada/saída reunidos no painel traseiro: Geralmente, as placas-mãe possuem os seguintes conectores: porta série, utiliza um conector DB9e permite conectar velhos dispositivos; porta paralela, utiliza um conector DB25 e permite, principalmente, conectar impressoras antigas; portas USB (1.1, de baixo débito, ou 2.0, de débito elevado), permitem conectar dispositivos mais recentes; conector RJ45, chamado também de LAN ou porta ethernet, permite ligar o computador a uma rede e corresponde a uma placa de rede integrada na placa-mãe; conector VGA (chamado SUB-D15), permite conectar uma tela e corresponde à placa gráfica integrada; tomadas Jack (entrada Line-In, saída Line-Out e microfone), permite conectar colunas acústicas, aparelhagem ou microfone e corresponde à placa de som integrada.
Entre os principais conectores devemos destacar alguns que estão muito presentes no cotidiano:
RCA - Os conectores RCA ou conectores de áudio e vídeo (AV) são conectores comumente utilizados em equipamentos eletrônicos , foram introduzidos no mercado em meados dos anos 40. Estes foram idealizados visando a minimizar a interferência em sinais de pequena amplitude. Normalmente são usados em conjunto com cabos blindados com uma malha externa que é aterrada. A parte externa do conector macho é soldada à malha, tornando-se como que uma continuação da blindagem, evitando a indução de parasitas no sinal.
HDMI - High-Definition Multimedia Interface é uma interface condutiva totalmente digital de áudio e vídeo capaz de transmitir dados não comprimidos, representando, por isso, uma alternativa melhorada aos padrões analógicos, tais como: Radio Frequência, Cabo coaxial, vídeo composto, S-Video, SCART, vídeo componente, Terminal D, e VGA. O HDMI fornece uma interface de comunicação entre qualquer fonte de áudio/vídeo digital - como Blu-ray, leitor de DVD, computador, consoles de videogame, Amplificadores Áudio/Vídeo, set-top box - para qualquer dispositivo de som ou vídeo digital, como monitor de computador e TV digital. O HDMI suporta através de um único cabo qualquer formato de vídeo TV ou PC, incluindo resoluções padrão (480i/p, 576i/p), alta definição(720p, 1080i/p) e na especificação 1.4, 4k x 2k (2160p), e até 8 canais de áudio digital, sendo o sinal (áudio/vídeo) codificado em TMDS (Transition Minimized Differential Signaling) para transmissão digital não comprimida através do cabo HDMI, de acordo com a norma do Consumer Electronics Control. O HDMI é também compatível com o High-bandwidth Digital Content Protection (HDCP) um sistema anti-pirataria.
8P8C - 8P8C é um conector modular usado em terminações de telecomunicação e popularmente denominado RJ45. Os conectores 8P8C são usados normalmente em cabo par trançado. Estes conectores são frequentemente associados ao conector RJ45 plug and jacks. Embora amplamente utilizado no mercado, a terminologia técnica RJ45 tecnicamente estaria incorreta, porque no padrão de especificação RJ45 a interface mecânica e o esquema de instalação elétrica são diferentes. Este conector é mais conhecido por ligar cabeamentos de Ethernet tendo cada um 8 condutores. Aproximadamente desde de 2000 é utilizado como conector universal para os cabos que compõem uma rede Ethernet, mas possui também outras utilizações. Os conectores 8P8C substituiram muitos outros velhos padrões por causa do seu menor tamanho e pela facilidade de conectar e desconectar. Os conectores antigos geralmente eram utilizados devido a antigos requisitos de corrente e tensão elevados. As dimensões e formato de um 8P8C são especificados pela norma ANSI/TIA-968-A. Esse padrão não usa o termo 8P8C e cobre mais do que o conector 8P8C. Para aplicações de comunicação de dados (LAN, cabeamento estruturado) a norma internacional IEC 60603 especifica nas partes 7-1, 7-2, 7-4, 7-5 e 7-7 não somente as mesmas dimensões, como também especifica os requisitos de blindagem para trabalho em alta-freqüência, versões que trabalham em até 100, 250 e 600 MHz.
USB - Universal Serial Bus é um tipo de conexão "ligar e usar" que permite a fácil conexão de periféricos sem a necessidade de desligar o computador. Antigamente, instalar periféricos em um computador obrigava o usuário a abrir a máquina; para a maioria das pessoas, esta era uma tarefa quase impossível, devido à quantidade de conexões internas que requeriam a configuração de jumpers e interrupções IRQs, tarefa dificultosa até para profissionais da área tecnológica. O surgimento do padrão PnP (Plug and Play ou ligar e usar) diminuiu toda a complicação existente na configuração desses dispositivos. O objetivo do padrão PnP foi tornar o usuário sem experiência capaz de instalar um novo periférico e usá-lo imediatamente sem mais delongas. Mas esse padrão ainda era suscetível a falhas, o que causava dificuldades para alguns usuários. O USB Implementers Forum foi concebido na óptica do conceito de Plug and Play, revolucionário na altura da expansão dos computadores pessoais, feito sobre um barramento que adota um tipo de conector que deve ser comum a todos os aparelhos que o usarem, assim tornando fácil a instalação de periféricos que adotassem essa tecnologia, e diminuiu o esforço de concepção de periféricos, no que diz respeito ao suporte por parte dos sistemas operacionais (SO) e hardware. Assim, surgiu um padrão que permite ao SO e à placa-mãe diferenciar, transparentemente:
• A classe do equipamento (dispositivo de armazenamento, placa de rede, placa de som, etc);
• As necessidades de alimentação elétrica do dispositivo a uma distância de ate 5 metros sem a necessidade de outro equipamento, caso este não disponha de alimentação própria;
• As necessidades de largura de banda (para um dispositivo de vídeo, serão muito superiores às de um teclado, por exemplo);
• As necessidades de latência máxima;
• Eventuais modos de operação internos ao dispositivo (por exemplo, máquina digital pode operar, geralmente, como uma webcamou como um dispositivo de armazenamento - para transferir as imagens).
Ainda, foi projetado de maneira que possam ser ligados vários periféricos pelo mesmo canal. Assim, mediante uma topologia em árvore, é possível ligar até 127 dispositivos a uma única porta do computador, utilizando, para a derivação, hubs especialmente concebidos, ou se, por exemplo, as impressoras ou outro periféricos existentes hoje tivessem uma entrada e saida USB, poderíamos ligar estes como uma corrente de até 127 dispositivos, um ligado ao outro, os quais o computador gerenciaria sem nenhum problema, levando em conta o tráfego requerido e velocidade das informações solicitadas pelo sistema. Estes dispositivos especiais (os hubs anteriormente citados) - estes também dispositivos USB, com classe específica -, são responsáveis pela gestão da sua subárvore e cooperação com os nós acima (o computador ou outros hubs). Esta funcionalidade foi adaptada da vasta experiência em redes de bus, como o Ethernet - o computador apenas encaminhará os pacotes USB (unidade de comunicação do protocolo, ou URB, do inglês Uniform Request Block) para uma das portas, e o pacote transitará pelo bus até ao destino, encaminhado pelos hubs intermediários.
- Estado da Arte:
USB-C - O USB-C é uma evolução do USB 3.0, que se diferencia esteticamente do 2.0 pela cor azul, sendo, portanto, um USB 3.1 com um conector Tipo C Uma das principais características que fizeram a Apple adotar o USB-C é seu tamanho compacto. O conector Tipo C é muito menor do que os Tipo A e Tipo B, medindo somente 2,5 mm de altura e 8,3 mm de largura, permitindo que o novo MacBook tenha a espessura mínima de 1,3 cm. Além de pequeno, o novo padrão ainda se tornou reversível, ou seja, pode ser plugado de qualquer lado na entrada de um computador. E ele é também perfeitamente compatível com as versões anteriores, bastando que o cabo correto seja utilizado – de USB-C para USB 3.0 ou USB 2.0 ou vice-versa. O USB-C traz consigo um aumento de desempenho considerável que o torna o substituto ideal para todas as conexões. Isso porque ele transfere dados a até 10 Gbps, o suficiente para transmitir vídeos em 4K para monitores externos ou rodar discos SSD com eficiência máxima – o USB 3.0 só é capaz de alcançar cerca de 80% a capacidade dos discos de estado sólido. O novo USB também é sinônimo de potência, já que é capaz de transferir até 100W para recarregar baterias de equipamentos mais robustos, como um computador inteiro, e não somente celulares e tablets. Principais Vantagens do USB-C • A entrada é simétrica. Com certeza isso já aconteceu algumas vezes com você: pegar o cabo ou o dispositivo USB, tentar encaixar na porta, não conseguir, virar o conector para o lado oposto, tentar conectar de novo, não conseguir e só na terceira vez obter êxito no encaixe do cabo USB em sua respectiva porta. O padrão USB tipo C visa, dentre outras coisas, acabar com esse tipo de problema, que nos faz perder alguns segundos de nossa vida. Os cabos USB do tipo C têm as mesmas medidas nas laterais (2,6 x 8,4 mm). Na prática, isso significa que o cabo vai encaixar de qualquer lado, sem fazer você perder tempo. Download grátis do app TechTudo: receba dicas e notícias de tecnologia no seu Android ou iPhone. • Carregamento rápido. O novo padrão USB-C possibilita que os smartphones sejam carregados com maior potência, isso significa que a bateria vai alcançar o 100% mais rápido. Os gadgets poderão ser carregados com até 3 Amperes e 5 Volts. Na prática, uma bateria com 2.500 mAh, como a do Galaxy S6, seria totalmente carregada em 50 minutos, apenas. Já uma bateria com 3.100 mAh, como a do XPeria Z3, levaria um pouco mais de uma hora para ir de 0 a 100%. • Alta durabilidade. De acordo com as especificações técnicas do padrão USB-C, ele foi feito para suportar até 10 mil conexões. Então, imaginemos o cenário que você carrega o seu smartphone uma vez por dia. Assim, você poderá usar o mesmo cabo durante 10 mil dias. Ou seja, isso corresponde a 27 anos, 4 meses e 18 dias. Claro, daqui pra lá o padrão USB já vai ter mudado e você já vai estar no seu décimo smartphone, mas é bom saber que da alta durabilidade. • Eles poderão carregar até mesmo notebooks. Já vimos que ele pode carregar nossos celulares mais rapidamente, mas você sabia que ele também poderá carregar a bateria de notebooks? Segundos suas especificações técnicas, o novo padrão USB-C pode suportar uma potência de até 100 Watts. Essa potência é usualmente encontrada em notebooks. Portanto, cabos do tipo USB-C proprietários poderão também ser usados para recarregar a bateria de notebooks, ultrabooks e outros dispositivos compactos. • Maior taxa de transferência. Os novos cabos USB-C possuem também velocidades de transferência maiores. O padrão de cabos USB 3.1, que atingem até 10 Gb/s. Isso significa passar um filme em 4K e com 60 quadros por segundo em poucos segundos.
Principais Desvantagens do USB-C • Ausência de adaptadores. Como mencionado no início deste artigo, o padrão USB-C passa por um processo de transição, onde os padrões antigos estão sendo substituídos. Por isso mesmo, a grande maioria de aparelhos ainda utilizam o padrão tradicional. Desta forma, ainda é difícil encontrar adaptadores para cabos USB-C. Quase nunca conseguimos encontrar e, quando encontramos, eles são bastante caros. Portanto, não parece ser uma vantagem adquirir um cabo desse tipo no momento. O cabo USB-C vai emplacar? Comente no Fórum TechTudo • Incompatibilidade. O padrão USB-C, infelizmente, ainda é incompatível com diversos acessórios utilizados em notebooks, smartphones e tablets. Apenas acessórios proprietários usam o padrão. Assim, usar um cabo USB-C se torna um ato bastante caro. • Riscos. Se você quiser fugir dos custos e comprar cabos USB-C não certificados ou de baixa qualidade (basta ver os preços), pode acabar colocando o seu equipamento e você mesmo em risco. Um engenheiro da Google, Benson Leung, ao testar um cabo USB-C de baixa qualidade em seu Chromebook, viu o equipamento literalmente fritar em sua frente. Assim, ao se comprar cabos muito baratos, submetemos nossos aparelhos eletrônicos a um risco desnecessário. • Perigo nos cabos de dois tipos. Alguns cabos possuem uma ponta no padrão USB-C e a outra no padrão antigo. Isso pode ser perigoso pois as duas usam tensões e correntes elétricas bem diferentes. Cabos de baixa qualidade podem tentar fazer com quê a porta USB tradicional trabalhe numa tensão para a qual ela não foi projetada. Desta forma, o resultado pode ser desastroso, como o exemplo da explosão do notebook que citamos acima.
Assim, embora o novo padrão USB-C seja realmente promissor e, em pouco tempo, se torne a maioria no mercado, ele ainda guarda algumas desvantagens e riscos.
DisplayPort - Lançado em 2006 pela VESA (Video Electronics Standards Association — a associação que define os padrões de vídeo) e aprimorado em 2008, o DisplayPort vem ganhando atenção de diversos fabricantes. Com suporte para alta resolução de 2560 x 1600 pixels (na versão 1.1), transmissão de dados de até 10.8 gigabits e suporte para áudio digital de até oito canais, o DisplayPort mostra-se um padrão de alta capacidade.
Enquanto o HDMI e o DVI necessitam de tensões acima dos 3V (volts), o DisplayPort funciona bem com apenas 2V. Para nós, consumidores, isto pode não significar absolutamente nada, mas para os fabricantes de placas de vídeo, tal aspecto é interessantíssimo. A baixa tensão necessária para o funcionamento do DisplayPort é fantástica nas novas placas gráficas que utilizam tecnologia de 45nm. Por não requisitar alto nível de tensão, as placas com DisplayPort podem dispensar a utilização de uma série de circuitos que são necessários para controle das tensões nas placas que usam o DVI.
Todos os aspectos levam a crer que o DisplayPort tem muita chance de competir e até superar o HDMI. Ambos suportam resoluções impressionantes (acima dos 1080p — padrão das TVs mais modernas), áudio digital de oito canais, possuem proteção, banda extra e conectores quase idênticos. Então o que pode levar o DisplayPort substituir o HDMI? Para que um fabricante possa utilizar o HDMI em seu produto é necessário pagar royalties para os criadores do conector. Como o DisplayPort foi criado pela VESA, uma associação que não tem como objetivo principal os lucros, ele consegue ser um padrão que não possui custos. As empresas interessadas na adição do novo padrão em seus dispositivos não precisam pagar royalties, o que significa que a nova conexão tem um grande trunfo neste aspecto.
A resolução máxima do DisplayPort é 2560 x 1600 pixels, a qual funciona perfeitamente nos cabos comuns — que possuem o comprimento máximo de três metros. Quando é necessário utilizar um cabo mais longo, a resolução diminui automaticamente apara 1920 x 1080 pixels (o padrão 1080p).
- Integrações:
Hardwares; Protocolos; Barramentos; Modens; Portas; Roteadores; Sockets.
- Referências:
https://pt.wikipedia.org/wiki/Conector_el%C3%A9trico
https://br.ccm.net/contents/193-cabos-e-conectores-na-informatica
https://pt.wikipedia.org/wiki/Conector_RCA
https://pt.wikipedia.org/wiki/High-Definition_Multimedia_Interface
https://pt.wikipedia.org/wiki/8P8C
https://pt.wikipedia.org/wiki/Universal_Serial_Bus
https://www.tecmundo.com.br/conectores/3147-displayport-um-concorrente-para-o-hdmi-.htm
- Relação com o Vídeo:
Para que exista a transmissão de dados é necessário que tenha conectores para isso. O principal conector que faz a ligação entre os diversos computadores e servidores é o 8P8C, também comumente chamado de RJ45, é um conector modular usado em terminações de telecomunicações, normalmente usado em cabo par trançado.
CPU
- Conceito:
Acrônimo para Central Processing Unit (Unidade Central de Processamento). É o cérebro do computador, onde é feito o processamento de dados, a maior parte dos cálculos, onde interpreta e executa programas. É composta basicamente por: ULA (Unidade lógica-aritmética), UC (Unidade de Controle) e registradores.
ULA: Executa as operações lógicas e aritméticas determinadas pela UC. Podem incluir adição, subtração e manipulações de bits.
UC: É o elemento que extrai instruções da memória, decodifica e executa, requisitando a ULA quando necessário. Busca dados que devem ser processados, interpreta quais operações devem ser realizadas e envia para outros hardwares com as instruções do código para execução da tarefa.
Registradores: Local onde os dados para o processamento são armazenados temporariamente.
- Funcionamento:
A CPU trabalha em dois ciclos, Ciclo de Busca e Ciclo de Execução.
Logo que o computador é ligado, a CPU entra no Ciclo de Busca, em seguida passa para o Ciclo de Execução e volta para o Ciclo de Busca. Ela continua nesse processo até que precise ser desligada, saindo do Ciclo de Execução para o estado final.
Durante o Ciclo de Busca, é a Unidade de Controle que atua. Uma nova instrução é buscada da Memória para que possa ser decodificada. Nessa fase os registradores PC (Contador de Programas) e IR (Registrador de Instrução) são utilizados.O PC é logo lido para se saber que instrução será executada, essa instrução é trazida para o IR e, finalmente, é decodificada pela Unidade de Controle. Assim que esse processo termina, caso a instrução não diga respeito à um laço, ou à uma repetição, o conteúdo de PC é incrementado. Ou seja, PC recebe PC + 1. Assim, no próximo Ciclo de Busca a instrução do endereço seguinte será carregada da memória e executada. Esse comportamento garante a característica de execução sequencial dos programas.
No passo seguinte a CPU entra em Ciclo de Execução. Agora a Unidade de Controle já sabe exatamente que operação será executada, com quais dados e o que fazer com o resultado. Essa informação é passada para a ULA e os registradores envolvidos. Durante o Ciclo de Execução há cinco possíveis tipos de operação que podem ser executadas. (Citadas no item Integrações)
- Estado da Arte::
Todos os componentes pertencentes a CPU estão integrados em um único chip titulado microprocessador.
Intel e AMD são desenvolvedoras de microprocessadores.
Memória Cache: Atualmente, para melhorar o desempenho, os processadores possuem uma memória de velocidade maior comparada a memória RAM ou disco rígido, para arquivar os dados de maior utilização, evitando acessos constantes à memória.
- Integrações:
As estruturas internas (UC, ULA, Registradores) interagem entre si. Podem se interagir externamente também, como por exemplo:
1.Processador e memória
Trata simplesmente da transferência de dados entre CPU e memória principal;
2.Processador e Entrada e Saída
Diz respeito à transferência de dados entre a CPU e um dispositivo de Entrada e Saída, como teclado, mouse, monitor, rede, impressora etc.;
3.Processamento de Dados
São operações simplesmente de processamento dos dados, como operação aritmética ou lógica sobre os registradores da CPU;
4.Controle
São instruções que servem para controlar os dispositivos do computador, como para ligar um periférico, iniciar uma operação do disco rígido, ou transferir um dado que acabou de chegar pela Internet para a Memória Principal;
5.Operações compostas
São operações que combinam uma ou mais instruções das outras em uma mesma operação.
- Referências:
- https://books.google.com.br/books?hl=pt-BR&lr=lang_pt&id=95KoBQAAQBAJ&oi=fnd&pg=PT3&dq=cpu+computador&ots=06sLj7VMNm&sig=JOfVw1ka_uXqZMGD2X053MDZHBE#v=onepage&q=cpu%20&f=false
- http://www2.ufba.br/~romildo/downloads/ifba/so.pdf
- http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_org_arq_comp.pdf
- https://www.tecmundo.com.br/intel/209-voce-sabe-o-que-e-uma-cpu-.htm
- http://producao.virtual.ufpb.br/books/edusantana/introducao-a-arquitetura-de-computadores-livro/livro/livro.chunked/ch02s03.html
- http://www.assis.pro.br/public_html/davereed/14-DentroDoComputador.html
- http://www.sourceinnovation.com.br/wiki/Conceito_de_Hardware_%E2%80%93_CPU
- Relação com os vídeos:
O circuito visto no vídeo "Porta Lógica "E" ou "AND" CI. 7408 - ETB" é o que acontece no processador, onde foi demonstrado apenas um circuito e no processador ocorre milhares, milhões de circuitos. O processador recebe sinais elétricos por meio das portas, and, or ou not. Sistema binário: 0 = 0 1 = 1 2 = 10 3 = 11 4 = 100 5 = 101 6 = 110 ...
Criptografia
- Conceito:
- Criptografia é o estudo e a aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais. É utilizada como uma medida de segurança para que apenas uma pessoa, ou um grupo recebam uma mensagem, protegendo-a contra demais invasores, protegendo assim a privacidade ao armazenarmos dados ou trocarmos informações com outras pessoas. Ela pode ser utilizada na transmissão de mensagens e informações mais simples e comuns até as mais complexas e extremamente importantes, como por exemplo no acesso à conta bancária.
- Funcionamento:
- Existem diversas maneiras de criptografar uma mensagem, mas a maioria gira em torno de aplicação de uma chave em um texto puro ou plano, que é aquele legível para toda e qualquer pessoa. Essa mesma chave é utilizada por um receptor para desencriptar o texto que agora está cifrado, encriptado. O processo de criptografar uma informação por meio de chaves utiliza o algoritmo de criptografia (cifra), que é o método matemático empregado. Geralmente são utilizados uma operação entre números primos em que é muito difícil, até mesmo para os computadores mais modernos fazer a operação reversa para encontrar as chaves. Existem três tipos de criptografia básicas, são elas: Criptografia de Chave Privada ou Simétrica , Criptografia de Chave Pública ou Assimétrica e Funções de Hash . Na Criptografia Simétrica utiliza-se apenas uma chave privada, que tanto o remetente quanto o receptor devem possuir para criptografar e desencriptar a mensagem. Não é muito seguro utilizar esse método pois se um estranho descobrir essa chave ele terá acesso às informações trocadas. DES, 3DES, Blowfish, AES, OTP (One-Time-Pad) são exemplos de algoritmos conhecidos desse método.
A segunda também utiliza do conceito de chaves, mas cada pessoa possui duas chaves, uma pública, que todos sabem qual é e outra privada que somente a pessoa que a possuí a conhece, dessa forma dificulta as possíveis invasões à mensagem. Por exemplo: Bob quer se comunicar com Ana de forma segura. Então, Bob encripta a mensagem com a chave pública de Ana, de modo que a mensagem só pode ser aberta usando-se a chave privada de Ana – que só ela possui. DAS, RSA, GPG são exemplos desse método.
E por último, temos as Funções de Hash que é uma técnica que não utiliza chaves como as anteriores e sim um valor de hash de tamanho fixo, o qual é computado sobre o texto plano, que é o legível, sem ter sido criptografado. É utilizado para verificar a integridade de dados, para ter certeza de que não foram alterados em algum momento. Utilizados também na verificação de senhas. São exemplos de funções de hash utilizadas atualmente: MD5, SHA1 e SHA2.
- Estado da Arte::
- Sobre as novas tecnologias de criptografia fala-se em criptografia quântica, que ao invés de usar conceitos matemáticos utiliza conceitos físicos. Consistindo no uso de fótons, que permite que 2 pessoas possam trocar uma chave secreta sem jamais terem trocado alguma mensagem. Suas principais características são:
- Não necessita de um segredo ou contato prévio entre os interlocutores.
- Verifica se não existe intrusos tentando interceptar o envio das chaves.
- É mais segura
- Sobre as novas tecnologias de criptografia fala-se em criptografia quântica, que ao invés de usar conceitos matemáticos utiliza conceitos físicos. Consistindo no uso de fótons, que permite que 2 pessoas possam trocar uma chave secreta sem jamais terem trocado alguma mensagem. Suas principais características são:
- Integrações:
- A criptografia depende de sistemas de hardware e software e interage com diversos tipos de dados e informações, estando presente em nossa vidas diariamente. "De fato, sua utilização está em boa parte dos dados e informações que geramos em nosso consumo diário da internet. Dados criptografados tornam nossas informações mais seguras, e aplicações diárias podem ser mais confiáveis em função dessa opção."
- Relação com o vídeo aprensentado
A criptografia se relaciona com o segundo vídeo "Warriors of the Net" uma vez que ela modifica as informações, do fluxo de informações (ou pacotes de dados) explicado no vídeo. Essa modificação é feita para encriptar os dados que serão transmitidos e recebidos pelos endereços de origem e destino.
- Referências:
- https://www.youtube.com/watch?v=cWld3rMD7Wk&list=PLucm8g_ezqNred_fII4GzZxMi91PKbney&index=1
- https://www.gta.ufrj.br/grad/07_1/ass-dig/Introduo.html
- https://pt.wikipedia.org/wiki/Criptografia#Criptografia_Qu%C3%A2ntica
- http://www.apertef5.com.br/criptografia-o-que-e-e-para-que-serve/
- http://www.bosontreinamentos.com.br/seguranca/criptografia-tipos-simetrica-assimetrica-e-funcoes-de-hash-02/
Data Mining
- Conceito:
- Atualmente armazenamos uma enorme quantidade de dados diariamente, e a tendência é armazenarmos cada vez mais, pois, boa parte do que nós fazemos gera dados. Sabemos que podemos obter informações e conhecimentos a partir de dados e devido a complexidade para operadores humanos realizarem este processo a partir de uma quantidade colossal de dados, foi desenvolvido as técnicas de Data Mining (Mineração de dados,MD), que é o uso de métodos matemáticos, para realizar o processo de obtenção de padrões(conhecimentos) a partir da análise de dados. Podemos obter resultados importantíssimos que são utilizados em diversas áreas, seja para motivos comerciais, de pesquisas, e desenvolvimento de organizações.(KDD: Knowledge Discovery in Databases, tem este mesmo principio de extração de conhecimento apartir de dados, alguns definem MD e o conceito como sinônimos, outros como MD sendo um subtópico de KDD)
- Funcionamento:
- É importante ressaltar que, geralmente a análise de dados através da mineração de dados não é um processo automático, por isso, para que tudo ocorra corretamente é necessário, além das técnicas matemáticas realizadas pelo responsável da aplicação (Equações, Algoritmos, Regressão Logística, Redes Neurais Artificiais, Machine Learning, entre outros), podemos seguir determinados procedimentos fundamentais para a obtenção de um conhecimento importante e útil, planejados pelos especialistas em MD e os especialistas do domínio (organização que vai usar os conhecimentos obtidos, pesquisadores, comerciantes, produtores, entre outros). Existem muitos procedimentos, e nesta abordagem vamos seguir este:
- 1 - Conhecimento do domínio: É o procedimento de definição de objetivos e metas que a análise deve seguir e estudo das exigências e limitações do domínio. No caso de ser bem detalhado e planejado, os próximos procedimentos vão ser mais claros e fáceis de realizar.
- 2 - Pré-processamento:É necessário a aplicação de métodos para a limpeza, organização, união e redução de volume dos dados do domínio para posteriormente serem aplicados às técnicas matemáticas.
- 3 - Extração de padrões:Nessa etapa os especialistas em MD buscam analisar os objetivos e metas que foram planejadas, definir quais técnicas usar e com isso realizam a extração dos padrões por agrupamentos. As metodologias das técnicas usadas são:
- Associações: Busca relações entre itens ocorridas com maiores frequências. Ex, se cliente compra item A ele tem chance de comprar o item B em 60% das vezes, com uma promoção, ele compra o item B em 70% das vezes.
- Classificações: Processo de classificação usando dados para definição de valores a outro dado. Ex se cliente X realiza A e B então classificação de X é determinada.
- Agrupamentos: São estabelecidas relações de um grupo para um item com maior frequência. Ex, uma pessoa A tem um grupo de características x1,x2,x3,x4, portanto, A pode fazer X.
- 4 - Pós-Processamento: Após o processo de extração é obtido diversos padrões, alguns não são tão relevantes, por isso, é necessário realizar questionamentos afim de selecionar os conhecimentos úteis.
- 5 - Utilização do conhecimento: O usuário final do conhecimento decide como vai aplicar o conhecimento obtido.
- É importante ressaltar que, geralmente a análise de dados através da mineração de dados não é um processo automático, por isso, para que tudo ocorra corretamente é necessário, além das técnicas matemáticas realizadas pelo responsável da aplicação (Equações, Algoritmos, Regressão Logística, Redes Neurais Artificiais, Machine Learning, entre outros), podemos seguir determinados procedimentos fundamentais para a obtenção de um conhecimento importante e útil, planejados pelos especialistas em MD e os especialistas do domínio (organização que vai usar os conhecimentos obtidos, pesquisadores, comerciantes, produtores, entre outros). Existem muitos procedimentos, e nesta abordagem vamos seguir este:

- Estado da Arte::
- A mineração de dados pode ser usada em diversas finalidades na atualidade, como por exemplo, na parte de negócios, os conhecimentos podem ser usados para estratégias de possíveis investimentos em determinados produtos, métodos organizacionais da empresa, clientes e funcionários, realizar previsões de mercado, ajudar em realização de contratos com outros negócios ao fazer classificações, estratégias de vendas, estratégias de anúncios e muitos outros.
- Pode ser usado na parte de educação para classificações de métodos de ensino e a qualidade de seus materiais, na parte da saúde para classificar a eficácia de determinados tratamentos ou até descobrir possíveis problemas de saúde que um paciente possui ou poderá possuir caso medidas não sejam tomadas. Já foi usado em ações sociais, em um projeto de reintegração de moradores de rua, usando a metodologia de agrupamento, foi definido qual era a melhor forma de reintegração para cada morador de rua.
- Integrações:
- Oracle Data Mininig ,Weka, Mahout,Orange Data Mining, são algumas ferramentas usadas para MD.
- KDD, sinônimo ou tópico.
- Big Data, Banco de Dados, Data Warehouse e outras formas de armazenamento de dados.
- BI, Data warehousing,KM (Knowledge Management: Gestão do conhecimento) são relacionados.
- Equações, Algoritmos, Regressão Logística, Redes Neurais Artificiais, Machine Learning são métodos/tecnologias matemáticas usadas.
- Relação com o vídeo 2:
- Além da mineração de dados focada em base de dados, existe também a mineração de dados focada na web, conhecida como Web Mining, a diferença como o nome já cita, é que a analise é realizada em dados da web afim de obter conhecimento útil. Este processo de analise também realiza comparações, percepção de padrões e de relações.
- Referências Bibliográficas
- http://computerworld.com.br/exemplos-de-aplicacoes-de-data-mining-no-mercado-brasileiro
- https://www.youtube.com/watch?v=R-sGvh6tI04
- https://pt.wikipedia.org/wiki/Minera%C3%A7%C3%A3o_de_dados
- https://link.springer.com/article/10.2165/00002018-200730070-00010
- http://www.sourceinnovation.com.br/wiki/Pesquisa_de_Temas_Tecnológicos
- http://www.lbd.dcc.ufmg.br/bdbcomp/servlet/Trabalho?id=8427
- http://www.lbd.dcc.ufmg.br/colecoes/enia/2005/0102.pdf
- http://revistas.ufpr.br/atoz/article/view/41340/25333
- http://professor.ufabc.edu.br/~ronaldo.prati/DataMining/webmining.pdf
DNS
- Conceito:
- DNS é a sigla em inglês para Domain Name System(Sistema de Nomes e Domínios), uma ferramentas RELEVANTE responsável por descodificar os nomes dos domínios dos sites que usuários de internet digitam, ou seja, são responsáveis por localizar e traduzir para números IP os endereços digitados nos navegadores
- Funcionamento:
- O DNS vai funcionar para qualquer tipo de serviço que necessite da internet para funcionar. Praticamente, são enormes bancos de dados que estão estabelecidos em servidores em inúmeras partes do mundo.
- Para o Domain Name System fica o trabalho de traduzir para números de IP todo e qualquer site (nome de domínio), que procuramos, ao tentar acessá-los na barra de endereço.
- Bem como, através de outras funcionalidades dos nossos equipamentos digitais que procuram por informações em servidores na internet.
Resumindo, é por causa do DNS que o acesso à internet é nos dias de hoje tão democrático e possível para a grande maioria da população mundial
Exemplo de dominios para tornar mais fácil o entendimento
- .COM Organizações comerciais
- .EDU Instituições educacionais
- .GOV Instituições governamentais
- .MIL Grupos/instituições militares
- .NET Centros de suporte das redes principais. Relacionadas com redes??
- .ORG Outras organizações
- .INT Organizações internacionais
- Integrações:
- Sendmail (utiliza os serviços do DNS para ajudá-lo a realizar a entrega de mensagens)
- IP
- Fontes:
DMA
- Conceito:
- O Direct Memory Access (DMA), também conhecido como Acesso Direto à Memória, é o nome dado à funcionalidade aplicada em certos hardwares que promove o acesso das portas de entrada e saída à memória de um sistema, sem a necessidade de se utilizar um processador para essa tarefa (FREITAS; MARTINS, 2001, 32). Por mais que pareça algo simples, essa funcionalidade pode ser considerada bastante útil, pois, ao resguardar o processador de mais uma tarefa, ela o livra de uma sobrecarga em operações de recepção e envio de mensagens, e faz com que a comunicação entre o hardware e o sistema seja mais rápida e eficaz (SILVA et al., 2009, p. 2-3).
- Funcionamento:
- De acordo com Maziero (2011, p. 24), o mecanismo de DMA possui um funcionamento simples, e o mesmo autor sugere a seguinte sequência de passos para escrever dados de um buffer em memória RAM para o controlador de um disco rígido:
Passo 1. O processador acessa os registradores do canal DMA associado ao hardware desejado, para informar o endereço inicial e o tamanho da área de memória RAM que contém os dados que serão escritos no disco;
Passo 2. O DMAC (Controlador de Acesso Direto à Memória) reivindica a transferência de dados da memória RAM ao disco, e, em seguida, aguarda essa operação ser concluída. Tal reivindicação é feita ao controlador do disco;
Passo 3. Os dados da memória são enviados para o controlador do disco;
Passo 4. Se a quantidade de dados a serem transferidos for maior do que o tamanho aceitável para que cada transferência ocorra pelo controlador de disco, a pode haver uma repetição da operação anterior;
Passo 5. Após a transferência de dados ser realizada, o próprio DMAC, através de uma interrupção, informa o processador que a operação foi concluída.
- Estado da Arte:
- Os canais de DMA são muito lentos, e, em decorrência disso, são utilizados somente por hardwares mais lentos, tais como placas de som, portas paralelas (padrão ECP) e drivers de disquetes. Os periféricos considerados mais rápidos, por sua vez, utilizam um tipo de versão “aprimorada” do DMA, chamada de Bus Mastering (MORIMOTO, 2002).
- Integrações:
- O DMA possui uma interação direta com a CPU de um periférico, uma vez que ele auxilia na transferência de dados. Além disso, o DMA está presente em alguns modelos de Arduino, que consiste em uma plataforma eletrônica de código aberto baseada em hardware e software fáceis de usar.
- Relação com o vídeo:
- O vídeo Porta Lógica "E" ou "AND" CI. 7408 - ETB, como o próprio nome remete, fala sobre as portas lógicas, e, através de uma pequena demonstração, explica todo seu funcionamento e o seu lado funcional. O DMA se trata de uma funcionalidade que permite que as portas de entrada e saída (portas lógicas) tenham acesso direto à memória de um sistema, por isso esse vídeo é o que mais se encaixa com o tema.
- Referências:
- FREITAS, H. C.; MARTINS, C. A. P. S. Processador de Rede com Suporte a Multi-protocolo e Topologias Dinâmicas. In: Workshop em Sistemas Computacionais de Alto Desempenho, 2, 2001, Pirenópolis. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2001. p. 31-38.
- SILVA, V.; GUEDES, S.; BENTES, C.; SILVA, G. Arquitetura e Avaliação do Cluster de Alto Desempenho Netuno. In: Simpósio em Sistemas Computacionais de Alto Desempenho, 10, 2009, São Paulo. Anais... São Paulo: WSCAD, 2009. p. 1-8.
- MAZIERO, C. A. Sistemas Operacionais: gerência de entrada e saída. 2011. Disponível em: <http://files.francielamorim.webnode.com.br/200000056-7bb657cb1a/SisOper%2007%20-%20Gerencia%20Ent_Saida.pdf>. Acesso em: 13 abr. 2018.
- MORIMOTO, C. E. Manual de Hardware Completo. 3 ed, 2002. Disponível em: <http://www.guiadohardware.net>. Acesso em: 13 abr. 2018.
- http://www.sourceinnovation.com.br/wiki/Conceito_de_Hardware_%E2%80%93_DMA
- http://www.sourceinnovation.com.br/wiki/Tecnologia_Ardu%C3%ADno
- https://www.arduino.cc/en/Guide/Introduction#
ERP
- Conceito:
- ERP é uma ferramenta tecnológica formada por um sistema integrado composto por um banco de dados que facilita o fluxo de informações em todos os setores, possibilitando melhorias nas atividades empresarias, auxiliando as empresas a atingir seus objetivos e tomar decisões. Os ERPs também integra os dados e processos de vários departamentos, possibilitando a automação e armazenamento de todas as informações do negócio.
- Operação:
- Automatização de tarefas manuais;
- Otimização de processos;
- Controle sobre as operações da empresa;
- Disponibilidade de informações seguras;
- Redução de custos;
- Menores riscos da atividade empresarial;
- Obtenção de informações e resultados.
- Benchmarking::
- ADC - Coleta automatizada de dados = Automatizam a coleta de dados na origem, como código de barras, biometria, visão de máquina, tarja magnética;
- API - interface de programação de aplicativos = Usada por um programa para se comunicar com programas de outros sistemas;
- DLL - biblioteca de links dinâmicos = É uma biblioteca exigida pela arquitetura do Windows, contém todas as funções e definições necessárias para se comunicar com um programa em tempo de execução;
- EAS - software aplicativo corporativo = Projetado para ajudar as organizações a gerenciar processos importantes;
- ERO - Otimização de recursos corporativos = Amplia a solução de ERP fornecendo funcionalidade estratégica que permite às empresas otimizar e entregar produtos personalizados em todo o mundo, em menor prazo;
- OLAP - Processamento analítico online = Multidimensional de dados de aplicativos, realizada de forma interativa;
- Desenvolvedores:
- Diversos tipos de empresa podem utilizar um ERP, veja alguns exemplos:
- Pequenas e Médias Empresas;
- Construtoras e Incorporadoras;
- Indústrias;
- Diversos tipos de empresa podem utilizar um ERP, veja alguns exemplos:
- Referências
eXtreme Programming
- Conceito
- A eXteme Programming (Programação Extrema, em Português), também conhecida como XP, é uma metodologia ágil aplicada como processo de desenvolvimento de softwares. É, majoritariamente, atribuída a equipes de pequeno e médio porte, que baseiam seu trabalho em requisitos vagos e que se modificam rapidamente. Como características conceituais, a XP traz consigo um foco desenvolvimentista em sistemas orientados a objeto e em enquadramento de projeto incremental (ou iterativo), no qual o sistema começa a ser implementado logo no início e vai ganhando novas funcionalidades ao longo do tempo.
- Classificação Metodológica e "Manifesto Ágil"
- Em relação à classificação metodológica, como já mencionado, a eXtreme Programming se encaixa no grupo das metodologias ágeis. É importante ressaltar e esclarecer esse ponto, pois a definição e o funcionamento da XP são altamente ligados ao contexto histórico e ao surgimento das inovadoras metodologias ágeis. O marco principal desse contexto é nomeado como "Manifesto Ágil", pois, embora as práticas da XP já existissem desde 1996, foi somente cinco anos depois que seus líderes, através do manifesto, definiram seu conceito atualizado, formalizado e completo, composto pelas premissas originais de Kent Beck (criador da metodologia), incrementadas pelos valores do documento, eventualmente, redigido.
- No ano de 2001, no resort Snowbird, nas montanhas nevadas do estado de Utah, EUA, foi realizada uma reunião que contou com a presença de 17 líderes da comunidade de métodos de desenvolvimento de software, como eXtreme Programming, Scrum e outros - na época denominados por métodos leves. Nessa reunião, foram observados pontos em comum, entre as ideias de Beck, Shwaber e Sutherland (criadores do Scrum), e outros desenvolvedores da área, fato que levou à decisão de documentar e registrar tais pontos, dados em quatro valores (filosofia) e doze princípios (prática), intitulados por "Manifesto Ágil". Esse movimento abriga e considera metodologias que propõem os seguintes valores:
- Indivíduos e interação entre eles mais que processos e ferramentas;
- Software em funcionamento mais que documentação abrangente;
- Colaboração com o cliente mais que negociação de contratos;
- Responder a mudanças mais que seguir um plano.
- Procedimentos, Princípios e Práticas
- A metodologia é composta por uma série de princípios e práticas, que possuem a finalidade de conferir maiores eficiência e rendimento nos aspectos de rapidez, qualidade do produto e, bom e constante relacionamento com o cliente. A origem dos conceitos das práticas da XP é o conjunto de princípios constados no "Manifesto Ágil", em um número de doze. Essa lista pode ser encontrada no seguinte endereço: http://www.manifestoagil.com.br/principios.html
- Além das bases conceituais, existem também algumas práticas específicas da eXtreme Programming que se notabilizam pela dinâmica e o encaixe às características para desenvolver em períodos e movimentos que economizam tempo. São elas:
- Cliente Presente: O XP trabalha com a premissa de que o cliente deve conduzir o desenvolvimento a partir do feedback que recebe do sistema.
- Jogo do Planejamento: No início de cada iteração ocorre o jogo do planejamento. Trata-se de uma reunião onde o cliente avalia as funcionalidades que serão
implementadas.
- Stand Up Meeting: A equipe se reúne a cada manhã para avaliar o trabalho que foi executado no dia anterior e priorizar aquilo que será implementado no dia que se
inicia.
- Programação em Par: Os desenvolvedores implementam as funcionalidades em pares, ou seja, diante de cada computador, existem sempre dois desenvolvedores que trabalham juntos para produzir o mesmo código.
- Desenvolvimento Guiado para Testes: Testes são escritos para cada funcionalidade antes de codificá-las. Fazendo isso, eles aprofundam o entendimento das
necessidades do cliente.
- Refactoring: O refactoring é o ato de alterar um código sem afetar a funcionalidade que ele implementa. O objetivo é tornar o software mais simples de ser mantido.
- Código Coletivo: Os desenvolvedores têm acesso a todas as partes do código e podem alterar aquilo que julgarem importante sem pedir autorização de outra pessoa.
- Código Padronizado: Para facilitar a manutenção no código por parte de toda a equipe, padrões de codificação são definidos tornando o sistema mais homogêneo e permitir que qualquer membro da equipe tenha condições de dar manutenção no sistema.
- Design Simples: Para que o cliente possa obter feedback logo, a equipe precisa ser ágil no desenvolvimento, o que a leva a optar pela simplicidade do design.
- Metáfora: Para facilitar a criação de um design simples, a equipe de desenvolvimento utiliza metáforas, já que elas têm o poder de transmitir ideias complexas de
forma simples.
- Ritmo Sustentável: Para garantir que a equipe tenha sempre o máximo de rendimento e produza software com melhor qualidade possível, o XP recomenda que os
desenvolvedores trabalhem apenas oito horas por dia e evitem fazer horas-extras, visto que é essencial estar descansado a cada manhã, de modo a utilizar a mente na sua plenitude.
- Integração Contínua: Prática utilizada com o objetivo de checar/testar toda a aplicação, sempre que uma nova funcionalidade é implementada, seja de forma manual,
ou automática, forma esta, que se utiliza de ferramentas especializadas para tal.
- Releases Curtos: O XP tem como objetivo gerar um fluxo contínuo de valor para o cliente. Sendo assim, ele trabalha com releases curtos, ou seja, a equipe produz
um conjunto reduzido de funcionalidades e coloca em produção rapidamente.
- 40 Horas Semanais*: a XP assume que não se deve fazer horas extras constantemente. Caso seja necessário trabalhar mais de 40 horas pela segunda semana
consecutiva, existe um problema sério no projeto que deve ser resolvido não com aumento de horas trabalhadas, mas com melhor planejamento, por exemplo.
Fonte: TELES (2006)/Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software *[3]-pdf disponível para download
- Outras Metodologias Concorrentes
- As metodologias ágeis cresceram muito ao longo dos anos, desenvolvendo instituições diversas e organizações que definem originalmente tais conceitos. Abaixo estão, portanto, algumas das principais metodologias concorrentes da eXtreme Programming. Os endereços, que seguem, são para maiores informações específicas sobre as concorrentes, dadas em sítios oficiais das empresas que gestacionam suas aplicações:
- Scrum - https://www.scrumguides.org/scrum-guide.html
- MSF - Microsoft Solutions Framework - https://msdn.microsoft.com/pt-br/library/jj161047(v=vs.120).aspx
- DSDM - Dynamic System Development Model - https://www.agilebusiness.org/
- LSD - Lean Software Development - https://www.lean.org.br/o-que-e-lean.aspx
- As metodologias ágeis cresceram muito ao longo dos anos, desenvolvendo instituições diversas e organizações que definem originalmente tais conceitos. Abaixo estão, portanto, algumas das principais metodologias concorrentes da eXtreme Programming. Os endereços, que seguem, são para maiores informações específicas sobre as concorrentes, dadas em sítios oficiais das empresas que gestacionam suas aplicações:
- Criadores
- Em 1996, o programador e consultor em T.I, Kent Beck, idealizou e introduziu as primeiras primeiras práticas da eXtreme Programming, que eram frutos de anos de experiência e trabalho em métodos leves, ao lado de seu parceiro Ward Cunningham. Na ocasião, a empresa Chrysler solicitou os serviços de Beck, para unificar quatro sistemas de softwares legado, com 20 anos de uso. O trabalho era um tanto complicado, pois a função do sistema era controlar a folha de pagamento de quase 86 mil funcionários da empresa. Para atingir o objetivo, Kent não apenas avaliou e orientou diversas pessoas da grande equipe disponível, como distribuiu funções e dividiu, em pequenos grupos, o contingente de responsáveis pela tarefa, introduzindo, pela primeira vez, sua metodologia. No fim, com 14 meses de trabalho, o resultado foi um grande sucesso e a XP começou a ser adotada por diversos times de desenvolvimento pelo mundo.
- Referências
- https://www.ft.unicamp.br/liag/Gerenciamento/monografias/monogafia_metodos_ageis.pdf
- https://www.culturaagil.com.br/manifesto-agil-como-tudo-comecou/
- http://www.forscience.ifmg.edu.br/forscience/index.php/forscience/article/view/117/134
- https://channel9.msdn.com/posts/Entrevista-com-Ken-Schwaber--criado-do-Scrum--na-Microsoft-Brasil
- http://brodtec.com/kenji-jeff
- https://hiperbytes.com.br/xp/metodologia-xp-extreme-programming-breve-historico-da-xp/
- https://www.devmedia.com.br/introducao-ao-extreme-programming-xp/29249
- http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/143120.pdf
- http://infocomp.dcc.ufla.br/index.php/INFOCOMP/article/view/68 (download arquivo do em pdf)
- https://www.lean.org.br/o-que-e-lean.aspx
- https://www.agilebusiness.org/
- https://msdn.microsoft.com/pt-br/library/jj161047(v=vs.120).aspx
- https://www.scrumguides.org/scrum-guide.html
Firewall
- Conceito:
Com o passar dos anos e o desenvolvimento da tecnologia as pessoas começaram a armazenar dados em inúmeros dispositivos e a segurança deles se tornou algo imprescindível. Firewall foi criado com o intuito de ser uma ferramenta de proteção para computadores e redes, sendo baseado em hardware ou software, sendo a segunda opção o mais comum. Seguindo as regras e instruções ele impede que Malwares como, por exemplo, os vírus afetem o computador e ele continue funcionando normalmente.O firewall cria um ambiente seguro de conectividade, assim ele monitora a troca de informação permitindo ao usuário uma navegação tranquila e segura.
- Operação:
O Firewall determina quais operações de transmissão ou recepção de dados podem ser executadas, para isso ele é constituído de regras e instruções, como podemos ver no exemplo a seguir:
1-(regra 1, ação 1) 2-(regra 2, ação 2) 3-(regra 3, ação 3) 4- etc.
Ao receber uma quantidade de dados, o firewall executa as regras na ordem ate encontrar uma que corresponde aos dados. Caso ele encontre ele poderá executar ações como aceitar pacote, encaminhar pacote e caso não encontre ele executará ações como recusar pacote, ignorar pacote.
- O firewall poderá ser configurado de diversas maneiras, alguns exemplos a seguir:
-Bloquear totalmente o tráfico no computador ou rede, assim isola completamente o computador ou rede.
-Criar uma regra para que o aplicativo aguarde autorização do Usuário ou administrador
- Autorizar o tráfego de determinados tipos de dados e bloquear outros.
- Tipos de Firewall:
-Filtragem de Pacotes (packet filtering): Este tipo é focado na análise de pacotes, ele analisa regras (exemplo citado anteriormente) e determina se o pacote terá a permissão de entrada ou não.
-Firewall de Aplicação (proxy services): Ele é o intermédio entre o usuário e o endereço de destino, o proxy possibilita que todo o fluxo passe por ele, assim, pode se determinar regras que impeçam o acesso de endereços externos.
-Inspeção de Dados (Stateful Inspection): Ele analisa o atual estado das comunicações e aplicações, a partir disto ele cria uma tabela de estado que ao ser consultada gera um resultado e este é decisório para permitir ou eliminar um pacote.
- Benchmarking::
Hoje no mercado podemos encontrar diversos software e hardwares focados na segurança do computador ou rede, a seguir alguns exemplos:
Zone Alarm Firewall, Comodo Firewall, AVG Internet Security, Firewall do Windows, Norton 360.
Além deles existe os chamados 'antivírus", alguns exemplos abaixo:
Avast Free Antivirus,Windows Defender,Kaspersky Anti-Vírus, Bitdefender Antivirus Plus, F-Secure Anti-Virus, McAfee AntiVirus Plus.
- Desenvolvedores:
No mundo atual encontramos inúmeros desenvolvedores voltado para a segurança de uma rede ou computador, dentre os principais desenvolvedores do mundo estão:
Intel Security, Avast, Cisco, RSA, Symantec, Palo Alto Networks, Fortinet.
- Vídeo: No vídeo "Warriors of the Net" a ferramenta firewall é citada inúmeras vezes, em um primeiro momento ele cita o firewall de uma empresa onde ele atua como um protetor de dados confidenciais, não deixando que os mesmos se dirijam para a internet. Ele também faz com que os dados recebidos que foram aceitos nas "regras(operação)" se encaminhem para o roteador. Logo após, o vídeo cita um firewall trabalhando com as portas 80(pacotes de internet) e 25(pacotes de correio), onde ele realiza uma "Filtragem de pacotes", determinando se aquele pacote de dados se encaixa no critério. Dentro do firewall funciona tipo uma "alfandega", barrando dados de internet dos chamados "pings mortais". E por fim os dados as retornarem passa por todos os firewall novamente e ficam prontos para fornecer ao navegador web as informações desejadas.
- Referências
Google Acadêmico:
https://www.infoteca.cnptia.embrapa.br/infoteca/bitstream/doc/1048186/1/Doc139.pdf
http://www.esj.eti.br/IFTM/Disciplinas/Grau02/OCS/OCS_Unidade_03.pdf
http://repositorio.ufu.br/bitstream/123456789/12466/1/Edmo.pdf
Demais sites: http://www.sourceinnovation.com.br/wiki/Firewall
https://www.tecmundo.com.br/seguranca/3329-como-funciona-o-firewall-.htm
https://br.ccm.net/faq/12083-o-que-e-um-firewall-como-funciona
https://www.infowester.com/firewall.php
Firmware
- Conceito: Existem algumas instruções operacionais que já são inseridas nos hardwares de equipamentos eletrônicos. O Firmware é um hardware de armazenamento permanente que já possui um “sistema operacional”, esse sistema é instalado direto no chip de memória do hardware, mais especificamente nas memórias PROM e * EPROM, memória de leitura programável e memória de leitura apagável, respectivamente. Esses softwares podem ser chamados de Firmware ou Softwares Embarcados, na segunda definição especificamente, significa que o software já vem com suas definições e funções programadas de fábrica, podendo serem atualizados, como pode ser visto em tutoriais usando aparelhos celulares como material didático.
- Funcionamento: Firmwares funcionam como um manual de instruções pré-definidas de um aparelho eletrônico. Ele possui quatro componentes: BIOS, SETUP, CMOS, POST.
- BIOS: “Conhecida como Sistema Básico de Entrada e Saída, é responsável por ensinar ao processador do computador a operar com dispositivos básicos como o HD e a unidade de DVD.
Ou seja, a BIOS funciona como espécie de “instrutor” para o processador, passa as instruções iniciais para fazer o processador funcionar.”
- SETUP: “responsável por alterar os parâmetros armazenado na memória de configuração (CMOS). Como vimos acima, a BIOS vêm com as instruções. O SETUP é o programa que permite ao usuário de fazer alterações em algumas dessas instruções permitidas pela BIOS.”
- CMOS: “As informações manipuladas e alteradas no SETUP são armazenadas única e exclusivamente na CMOS (memória de configuração) do computador.
Exemplo de informações que são armazenadas na memória ROM: Hora e data do computador.”
- POST: “Power On Self Test ou em português sem tradução precisa, “auto teste”, é o programa responsável pelo teste que é executado toda vez que ligamos o computador. Todos os componentes principais do computador são testados pelo POST, tais como Memória RAM, processador e teclado.”
- Estágio de evolução: Como o firmware é um software inserido em um hardware de armazenamento de funções pré-definidas e é encontrado em variados tipos de eletrônicos, podem ser citadas as várias atualizações para o console do PlayStation3 que ganhou várias funcionalidades ao longo de sua estadia no topo do mercado. Mas não podemos deixar de citar outros exemplos como os packs de atualização de firmware de modens/roteadores que podem até influenciar na qualidade do sinal de internet que sai do modem/roteador.
- Integrações: Como o Firmware é parte de alguns eletrônicos, ele pode ser encontrado em vários, como por exemplo: calculadoras, celulares, televisores, videogames e principalmente computadores. As memórias em que ele é instalado são PROM e EPROM, memória de leitura programável e memória de leitura apagável, respectivamente.
- Referências:
Frameworks
- Conceito:
- Framework, palavra em inglês para estrutura, é um conjunto de classes inter-relacionadas, códigos-fonte, funções, técnicas e metodologias que facilitam o desenvolvimento de softwares. Em outras palavras, framework é como se fosse uma "fonte" de onde se pode desenvolver algo mais específico e complexo. A utilização dos frameworks em softwares, está diretamente relacionada à economia de tempo que o mesmo providencia, já que o usuário não precisaria começar tudo do zero. Além disso, os frameworks podem ser úteis para que o programador foque diretamente no processo de desenvolvimento de seu projeto, já que não gastaria muito tempo e pensamento programando o que é sempre comum nesses mesmos projetos.
- Operação:
- A utilização de um framework depende de um conhecimento de pelo menos nível básico da linguagem que aquele framework aborda, por exemplo, javascript, PHP, entre outras linguagens. Após feita a análise de requisitos de um projeto de software e instalado um framework, o programador poderá fazer seu código normalmente e, quando necessário, chama uma classe presente no framework que já teve seu código desenvolvido. Os frameworks costumam disponibilizar um documento em seus sites que contém informações para como utilizar-lo, já que, diferentemente das bibliotecas, os frameworks possuem módulos estruturados que seguem algum padrão (como por exemplo o MVC - Model View Controller, que faz a separação entre um modelo de dados, a interface do usuário e o controlador de tudo operando junto), e que se esses padrões não forem seguidos, torna-se quase impossível construir uma aplicação.
- Benchmarking:
- Toolkits: Os toolkits podem ser confundidos com frameworks, porém se compararmos os dois, veremos que os toolkits parecem mais como bibliotecas que funcionam interagindo entre si. Além disso, eles funcionam de uma forma mais tradicional, onde você deve chamar apenas o que precisa.
- SDKs: Os Softwares Development Kits (SDKs) se difere dos frameworks e dos toolkits pois podem oferecer ferramentas adicionais além de bibliotecas. classes. exemplos de códigos. Os SDKs ainda podem assumir a forma dos toolkits ou dos frameworks, além de fornecer tudo o que é necessário para programação sobre uma plataforma.
- Além desses outros 2 tipos de frameworks, há também um framework especializado para aplicações de web em que consiste sendo um framework de software porém feito para suportar o desenvolvimento de sites, aplicações de web, entre outras coisas.
- Frameworks atuais:
- Alguns exemplos de frameworks de algumas linguagens:
- Frameworks para C++:
- CollEntRes -> Versão mais recente: 1.1.0, lançada em 20/02/2018;
- Poco -> Versão mais recente: 1.9.0, lançada em 08/03/2018;
- CppCMS -> Versão mais recente: 1.2.0, lançada em 16/01/2018;
- Frameworks para C++:
- Alguns exemplos de frameworks de algumas linguagens:
- Frameworks para Java:
- Spring -> Versão mais recente: 5.0.4, lançada em 19/02/2018;
- Google Web Toolkit -> Versão mais recente: 2.8.1, lançada em 24/04/2017;
- Apache Wicket -> Versão mais recente: 7.9.0, lançada em 19/09/2017;
- Frameworks para PHP:
- CodeIgniter -> Versão mais recente: 3.1.8, lançada em 23/03/2018;
- CakePHP -> Versão mais recente: 3.5.14, lançada em 19/03/2018;
- Yii -> Versão mais recente: 2.0.14, lançada em 19/02/2018;
- Desenvolvedores:
- Algumas empresas grandes trabalham bastante com frameworks e por estarem ligadas ao mundo de desenvolvimento de softwares, disponibilizam muitos frameworks para os outros usuários. Algumas dessas empresas são: Google, Apache, MIT, GPL. A importância de disponibilizar esses frameworks para todo mundo é que facilita a compartilhação de informação entre os usuários, visto que torna-se possível o "upgrade" desses frameworks.
IA
- Conceito:
- A palavra inteligência, vem do latim inter (entre) e legere (escolher), e a artificial vem do artificiale em latim, ou seja, juntando os significados dessas palavras pode-se chegar à conclusão que a Inteligência Artificial é uma tecnologia criada pelo homem para fazer com que as máquinas possam ter a capacidade de pensar como seres humanos, por exemplo a de tomar decisões, comunicar-se, aprender e armazenar. Além disso, pode ser definida também como um ramo da Ciência da Computação que visa em desenvolver dispositivos e mecanismos que simulem a capacidade humana, enfim, esse termo IA, criado pelo professor universitário John McCarthy, descreve o mundo onde as máquinas poderiam resolver problemas que atualmente são designados aos humanos.
- A Inteligência artificial é e/ou pode ser usada para diversas formas de auxiliar as pessoas, como: a ferramenta de pesquisa do Google que preenche as buscas utilizando esse recurso; a robô Sophia criada para ajudar nos cuidados da saúde, terapia, educação e atendimento de clientes que consegue conversar, andar e fazer expressões faciais mesmo, por enquanto, com suas limitações; o Facebook utilizando o reconhecimento de imagem para reconhecer as pessoas que estão na foto para marca-las; carros automáticos desenvolvidos para tentar evitar colisões e engarrafamento; a assistente pessoal Siri, que utiliza processamento de voz para conversar com seus usuários; entre outros exemplos.
- Funcionamento:
- Para a Inteligência Artificial funcionar necessita de uma combinação de diversas tecnologias, e várias áreas da ciência da computação compõe o que é IA, como:
- Machine Learning (aprendizado de máquina): é o conceito de uma máquina de aprende com um mínimo de informação possível, no qual através dos dados recebidos possa decidir em qual alternativa é melhor ser tomada, dependendo menos de ajustes, como, por exemplo, as recomendações personalizadas na Netflix e na Amazon. Sendo o fundamental impulsionador da IA.
- Deep Learning (aprendizado profundo): trabalha com algoritmos mais complexos imitando as redes neurais do cérebro humano, permitindo que as máquinas possam aprender com pouca ou nenhuma supervisão.
- Processamento de Linguagem Natural (PLN): ao utilizar os conceitos de Machine Learning faz com que a máquina detecte padrões em grandes conjuntos de dados puros e reconheça a linguagem natural, sendo capaz de compreender sentimentos, como em análise de publicação nas redes sociais.
- Uma das primeiras áreas a utilizar IA foram as indústrias, utilizando desde as matérias-primas até os produtos propriamente dito, realizando funções básicas que não precisam de ajuda manual.
- Primeiramente um desenvolvedor para desenvolver algo que envolva IA deve-se criar leis no qual a máquina criada deverá seguir para saber quais decisões seguir ou não tomar sobre certas situações ou atitudes, conhecidas como Leis de Asimov ou Leis de Platina. Dentre essas leis se encontra a proibição de auto replicação, proibição de expedição, proibição de acesso remoto, confidencialidade e entre outras.
- Para a Inteligência Artificial funcionar necessita de uma combinação de diversas tecnologias, e várias áreas da ciência da computação compõe o que é IA, como:
- Estado da Arte::
- Atualmente a Inteligência Artificial se encontra em desenvolvimento constante e acelerado, trazendo diversos avanços ou possíveis consequências, como se dizia Stephen Hawking em uma entrevista à BCC, "o desenvolvimento da inteligência artificial total poderia significar o fim da raça humana".
- Dentre os exemplos atuais podemos citar:
- Robô Sophia: criada pela empresa Hanson Robotics e ligada em 2015, faz 62 expressões faciais e de pescoço, consegue interagir com pessoas e andar e contém câmeras nos olhos para “ler” as reações faciais e tentar corresponder da melhor forma possível. Para isso ela possui três interações: uma plataforma de pesquisa em IA, para responder perguntas simples; um programa que recita frases pré-carregadas; e um “chatbot”, que olha e ouve para as pessoas e escolhe uma resposta apropriada para a situação e dar dados retirados da internet. Além disso, conseguiu uma cidadania na Arábia Saudita.
- Placa de vídeo Titan V: criada pela empresa de hardware NVIDIA, para área científica voltada a aplicações da Inteligência Artificial para tentar ultrapassar os limites tanto da IA quanto da computação de alto performasse, de acordo com o presidente e fundador Jensen Huang.
- Integrações:
- A Inteligência Artificial só é possível com a interação de big data (acesso a processo de dados não identificados, para continuar seu aprimoramento), computação em nuvem (grande potência com custo acessível, para um processamento rápido e eficiente) e bons modelos de dados (processando, classificando e analisando de forma inteligente).
- Referências:
- https://www.salesforce.com/br/products/einstein/ai-deep-dive/
- http://www.sourceinnovation.com.br/wiki/Intelig%C3%AAncia_Artificial
- http://www.dca.fee.unicamp.br/~martino/disciplinas/ia369/trabalhos/t4g1
- https://www.youtube.com/watch?v=eqvmNhqdD38
- https://www.tiespecialistas.com.br/2010/09/como-funciona-uma-inteligencia-artificial/
- https://tecnologia.uol.com.br/noticias/redacao/2018/01/10/robo-sophia-ja-sabe-andar.htm
- http://www.bbc.com/portuguese/noticias/2014/12/141202_hawking_inteligencia_pai
- http://www.teratime.com.br/blog/2017/12/08/nova-nvidia-titan-v-placa-de-video-para-inteligencia-artificial/
IDE
- Conceito:
- IDE, do inglês, Integrated Development Environment, é definido como um ambiente de desenvolvimento integrado que reúne diversas ferramentas associadas ao ato de programar em um único software, com o objetivo de tornar o processo de codificação mais ágil e eficiente. Apesar de existirem um grande número de IDE’s disponíveis, todas elas irão conter pelo menos, editor, compilador e depurador. Algumas IDE’s são específicas para alguma linguagem de programação, enquanto outras possuem suporte para diversas linguagens.
- Operação:
- Com o intuito de garantir um maior aproveitamento e produtividade para o desenvolvedor, uma IDE integra diversos ambientes, que podem ser operados de maneira conjunta pelo usuário, através de um interface gráfica, que pode ser manipulada através de botões ou atalhos de teclado. Os ambientes que geralmente estão presentes na maioria das IDE’s disponíveis atualmente são:
- O editor de código fonte, que é um editor de texto que possui algumas características para agilizar e facilitar o processo de escrita do código, como destaque de sintaxes, indentação automática, fechamento de chaves e até mesmo conclusão automática de palavras. É um componente muito importante, pois através dele é possível identificar erros no código fonte de maneira rápida.
- Um compilador, que realiza o processo de tradução do código fonte em código binário, o empacotamento do código binário e a geração de uma prévia para a execução de testes.
- Por último, um depurador, utilizado para rodar o programa e realizar testes, a fim de encontrar problemas no código. Geralmente, os depuradores de IDE’s apresentam algumas funcionalidades, como execução linha-a-linha, examinação de determinado estado do código e monitoramento de variáveis.
- Algumas IDE’s modernas também apresentam outros recursos a serem operados, como por exemplo um ambiente de construção de interface gráfica, como existe no Visual Studio para a construção de aplicativos para sistemas Windows. Controle de versão, que mantém controle sobre as alterações do código e guarda a documentação e arquivos de configuração do código. E por último, algumas IDE’s que possuem suporte a linguagens de programação orientada a objetos integram também recursos que facilitam na visualização e navegação de classes de um projeto.
- Com o intuito de garantir um maior aproveitamento e produtividade para o desenvolvedor, uma IDE integra diversos ambientes, que podem ser operados de maneira conjunta pelo usuário, através de um interface gráfica, que pode ser manipulada através de botões ou atalhos de teclado. Os ambientes que geralmente estão presentes na maioria das IDE’s disponíveis atualmente são:
- Benchmarking:
- Existem alguns softwares que possuem o mesmo propósito de uma IDE, ou seja, também integram ambientes para tornar a tarefa de codificação mais fácil, porém possuem outros fins além de apenas codificar eficientemente. Entre eles, existem:
- Ambiente de desenvolvimento colaborativo, ou CDE (do inglês, ‘’Collaborative development environment’’), que realiza as mesmas funções que uma IDE, porém tem o foco no trabalho em equipe entre desenvolvedores, permitindo que estes se encontrem online para discutir e desenvolver projetos.
- IDE’s para jogos são ambientes de desenvolvimento integrado especializados para a criação e o desenvolvimento de jogos. Geralmentes, estas IDE’s são integradas com um motor de jogo, que é responsável por possuir funcionalidades exclusivas para o processo de criação, como visualização e edição de 2D e 3D, renderização em tempo real, geração e detecção de colisões e manipulação de áudio.
- Existem alguns softwares que possuem o mesmo propósito de uma IDE, ou seja, também integram ambientes para tornar a tarefa de codificação mais fácil, porém possuem outros fins além de apenas codificar eficientemente. Entre eles, existem:
- Desenvolvedores:
- Existem diversos softwares IDE disponíveis atualmente, entre os mais populares, estão o Eclipse, um software de código aberto, que suporta múltiplas linguagens. O NetBeans, distribuído pela Apache Software Foundation, que também realiza programação em múltiplas linguagens. O Visual Studio, distribuído pela Microsoft, que é dedicado ao .NET Framework e às linguagens Visual Basic, C, C++, C#, e J#. E o Dev-C++, que é de código aberto e é dedicado para C e C++.
Integração Contínua
- Conceito:
- Integração contínua consiste em uma prática de desenvolvimento que permite a disponibilização de uma interface a qual possui um código-fonte central, possibilitando adicionar novas partes ou alterações de algum código já integrado. Essa técnica visa a rapidez para disponibilização/atualização do software e simplifica a comunicação entre a equipe de desenvolvimento que não precisa estar no mesmo lugar para colaborar o projeto, além de facilitar a detecção e correção de bugs do conjunto.
- Funcionamento:
- O código-fonte(central) é disponibilizado em um ambiente onde permite a integração de novas partes de código para complementar a central e, durante o processo de adição, a central é capaz de testar se o código-fonte em conjunto ao código adicionado são compatíveis. Dependendo do ambiente, é possível parametrizar requisitos para a validação da nova adição.
- Estado da Arte:
- Existem serviços(centrais) pagos, exemplo: Amazon CodeBuild e GitHub; e serviços gratuitos opensource: TortoiseCVS e Apache Subversion. Os serviços gratuitos possuem a característica de serem OpenSource, permitindo que a ferramenta de repositório(central) seja evoluída assim como o projeto que utiliza a ferramente.
- Integrações:
- A integração contínua precisa de um repositório central que será hospedado em um ambiente que permite acesso de qualquer lugar de forma segura, logo será necessário internet e proteção para a conexão e compartilhamento de arquivos. O repositório central deve estar dotado de um controle de alterações, sistema de rollback(ponto de restauração) e automatização de testes.
- Referências:
Inteligência Cognitiva
Conceito: Primeiramente vamos definir o que é cognição,que seria o processo de adquirir o conhecimento incluindo estados mentais como raciocínio, atenção, juízo entre outros.Sendo assim a Inteligência Cognitiva pode ser resumida em novos pensamentos, que são adquiridos através da sua atividade ela traz o novo e pode transformar as situações em novas perspectivas diferentes das experiências anteriores.Por isso é muito importante sair da zona de conforto e buscar novos conhecimentos novas experiências,que estimulem todas as habilidades envolvidas e uma dica para isso seria com o aprendizado de programação e robótica, desta forma seria possível assimilar todas elas.
Funcionamento: A inteligência cognitiva é estruturada em duas categorias: atividade criativa e atividade reprodutiva, a criativa, a pessoa cria novas condições e situações que ainda não teve experiência, é elaborado pela criatividade de cada um. Já a atividade reprodutiva é o processo de identificação e reprodução das condições e situações já estabelecidas através do ambiente, das relações com outras pessoas, meios de informações, experiências já vivenciadas, entre outros.
Estado da Arte:
Hoje esta tecnologia vem sendo usada na área da saúde ajudando na agilidade e na mobilidade e na segurança do paciente, e também ajudando na transição entre computador e se humano, esta tecnologia vem avançando cada dia mais e auxiliando diversas empresas da área tecnológica.A tecnologia já está sendo aplicada em diversos países para solucionar diferentes desafios, principalmente nas áreas de engajamento com clientes, suporte à decisão clínica e apoio à descoberta científica.
Integrações: Internet das coisas, Inteligencia artificial, Linguagens de programação entre outros.
Referências.' http://saudebusiness.com/noticias/computacao-cognitiva-na-saude-revolucao-da-inteligencia-artificial/
http://www.ctrlplay.com.br/blog/o-que-e-inteligencia-cognitiva-e-como-a-criatividade-pode-ajudar/
Video:
Se tratando de uma tecnologia e colocando em pratica toda a parte logica e racional, creio que se encaixa melhor no video que fala sobre portas logicas, onde se baseia todo o funcionamento de uma tecnologia e mostrando o lado funcional dela.
Internet
Conceito:
- A Internet é a rede mundial que liga milhões de computadores em todo o mundo. É uma forma fácil e barata de fazer com que computadores separados por longa distância possam estar conectados.
- Se revela como um grande fator de comunicação, interatividade social, banco de informações de todos os tipos e mercado de produtos.
- Além de computadores comuns, a internet é formado por servidores, máquinas de alta capacidade, com grande poder de processamento e conexões velozes, controladas por universidades, empresas e órgãos do governo.
- Uma maneira de entender a Internet é pensar nela como uma rede de redes.
Funcionamento:
- Não há nenhum gerenciamento centralizado para a Internet. Pelo contrário, é uma globalização de milhares de redes e organizações individuais, cada uma delas é administrada e sustentada por si. Cada rede ajuda com outras redes para dirigir o funcionamento da Internet, de forma que as informações possam chegar ao destino final. Juntas, todas essas redes e organizações formam o mundo da Internet. Para que redes e computadores cooperem dessa forma, é preciso que haja um senso sobre alguns itens como procedimentos na Internet e padrões para protocolos. Esses procedimentos e padrões encontram-se em RFCs (requests for comment ou solicitações para comentários) sobre os quais os usuários e organizações estão de acordo.
- O TCP/IP é a coleção de protocolos desenvolvida para e utilizada pela Internet. O TCP/IP pode também ser utilizado como padrão de rede por infraestrutruras desconectadas da Internet mundial, como por exemplo uma pequena rede local doméstica, a LAN de uma pequena empresa ou ainda uma grande WAN corporativa.
- O conjunto de protocolos TCP/IP é independente de plataforma, e foi implementado em inúmeros tipos diferentes de computadores e sistemas operacionais, desde handhelds até mainframes. O TCP/IP vem se afirmando como o padrão de fato de comunicação digital no mundo todo, em detrimento de outros padrões que em maior ou menor grau apresentam equivalência funcional com ele.
Estado da arte:
- O resultado atual torma a internet um recurso muito importante para a troca de informações.
É verdade dizer que a internet ainda não é algo para uma parte da população mundial e acredito que este será um dos próximos desafios, conceder o acesso à rede para todos. O escopo da web reside na criação de um instrumento capaz de explorar fronteiras geográficas e ideológicas, de forma a possibilitar que uma pessoa só viaje virtualmente pelo mundo e o conheça a fundo em qualquer das áreas de conhecimento humano. A web é o instrumento responsável por facilitar o avanço humano, sendo uma das peças principais para a globalização, sem ela a comunicação mundial seria uma tarefa complicada.
Integrações:
- Existe uma rede chamada "A internet das coisas" (IoT, na sigla em inglês) são objetos que estão conectados à internet e, por meio de sensores instalados nesses objetos, é realizada a captura, o armazenamento e a administração de dados para transforma-los em informação onde se pode tomar decisões e automatizar atividades e processos. Atualmente, o custo de conexão é menor, o que facilita incrementar o número de coisas conectadas para criar redes inteligentes em qualquer lugar e para qualquer atividade.
Essa tecnologia já é utilizada em várias empresas como de automóveis, animais, aviões e segurança social, entre outras, onde se vê de forma significativa como são melhoradas as atividades e os benefícios gerados para as pessoas físicas e juridicas. A tecnologia que está sendo desenvolvida e aplicada hoje já consegue combinação de dados, inteligência de análise e interpretação e apresentação da informação para as tomada de decisões, trazendo melhorias, eficiência e qualidade. Alguns casos de IoT já se encontram em uso e começam a mostrar resultados, enquanto outros se encontram em fase de testes, mas seguramente facilitarão a vida de muitos.
Referências:
http://www.ufpa.br/dicas/net1/int-apl.htm
https://brasilescola.uol.com.br/informatica/internet.htm
IoT
- Conceito:
- "Internet das Coisas é um conceito em que o real e o virtual se conectam para criar um mundo mais inteligente em diferentes segmentos da sociedade." Renata Rampim.
- A Internet of Things (IoT) ou Internet das Coisas é simplesmente conectar coisas na Internet, por ex. dispositivos, carros, prédios, uma casa, etc, utilizando hardwares com sensores e softwares, conectados numa rede na Internet, coletando e processando esses dados.
- A IoT permite que objetos coletem dados e enviem para uma central e que sejam controlados remotamente pela Internet. Criando, assim, oportunidades entre o mundo físico e o digital.
- Portanto, isso resulta em melhoria de eficiência e precisão de objetos, com impacto na economia, como economizar tempo e dinheiro usando IoT.
- Funcionamento:
- Precisa-se apenas de um hardware e um software, alguns casos são simples, outros mais complexos. O hardware que é a parte física, por ex. um Arduino, um Raspberry Pi, ou hardware proprietário. Já a parte de software que é a programação, em geral é usado C, C++ e Python.
- É conectado alguns sensores no hardware, programa a leitura desses sensores para acionar algum botão e/ou motor, em seguida, esses dados são enviados a um servidor central e processados.
- Estado da Arte:
- Atualmente, estão surgindo muitos outros produtos de IoT em uma escala comercial, acessível a quase todos, por ex. o Nest, que foi comprado pelo Google, é um termostato inteligente que controla temperatura de ambientes, muito popular na América do Norte. O principal diferencial do Nest é um sensor de temperatura conectado a uma inteligência artificial, que lê a temperatura do ambiente e conforme regulado no uso do dia a dia, começa a configurar-se automaticamente.
- Outro exemplo, é o Philips Hue que são lâmpadas Leds coloridas, colocadas num soquete normal de lâmpada e interligado a um Hub conectado à Internet, e a um App no smartphone consegue configurar a luz de toda a casa.
- E também, tem os SmartThings, que transforma a casa em Smart Home, permite controlar remotamente objetos de toda casa, conectados e centralizados por um aplicativo de celular. Através de um Hub conectado à Internet e a todos os dispositivos nele, por ex. Philips Hue, fechadura digital, lâmpada, controlador de temperatura, sensor de presença, sensor de movimento, etc.
- Atualmente, estão surgindo muitos outros produtos de IoT em uma escala comercial, acessível a quase todos, por ex. o Nest, que foi comprado pelo Google, é um termostato inteligente que controla temperatura de ambientes, muito popular na América do Norte. O principal diferencial do Nest é um sensor de temperatura conectado a uma inteligência artificial, que lê a temperatura do ambiente e conforme regulado no uso do dia a dia, começa a configurar-se automaticamente.
- Integrações:
- Inteligência Artificial, Machine Learning, Linguagens de Programação, Redes, Arduino, etc.
- Em relação aos vídeos:
- Todos os vídeos apresentados tem a ver com IoT. O primeiro vídeo fala sobre portas lógicas e o segundo vídeo fala sobre como caminha os dados pela Internet. A Internet das Coisas depende do hardware e da rede para funcionar. Pois um sistema embarcado é preciso ser muito bem configurado pelas portas lógicas. Pela Internet os dados enviados e recebidos necessitam de alto padrão de segurança ou uma criptografia adequada, o IP é um protocolo ideal para reforçar essa segurança de informação.
- “Se você acha que a internet mudou a sua vida, pense novamente. A Internet das coisas está prestes a mudar tudo de novo!” — Brendan O’Brien, cofundador, Aria Systems
- Referências
- https://nest.com/thermostats/nest-learning-thermostat/overview/
- https://www2.meethue.com/pt-br
- https://www.smartthings.com/
- https://create.arduino.cc/projecthub/projects/tags/iot
- https://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-sdk-setup.html
- https://www.amazon.com.br/Internet-das-Coisas-Sem-Mist%C3%A9rios-ebook/dp/B01LWKBDGS
- https://www.youtube.com/watch?v=-EA9UBEahDY
- https://www.geocaching.com/geocache/GC770G2_iot-internet-of-things
IP
- Conceito:
- Um Protocolo da Internet ou do inglês Internet Protocol (IP) é uma identidade única para cada dispositivo (computador, impressora, Smartphone,tablet, etc) conectado a Internet, além de um protocolo de comunicação entre todas as maquinas em rede para encaminhamento de dados. Um Endereço de IP na versão IPv4 é definido por uma sequencia de dígitos na forma x.x.x.x com números de 0 a 255, já na sua versão mais nova IPv6 que vem começando a ser utilizada é definido por oito sequências de até quatro caracteres separado por ':' (sinal de dois pontos), mas considerando o sistema hexadecimal. O IP é responsável pela elaboração e transporte de pacotes (datagramas)
- Funcionamento:
- O protocolo IP funciona basicamente com o transporte de datagramas IP (pacotes de dados), esse protocolo determina o destinatário da mensagem graças a três campos, quais sejam o campo endereço IP, que é o endereço do computador, o campo máscara de sub-rede, que permite ao endereço IP determinar a parte do endereço que se refere à rede e o campo gateway estreita por padrão, que permite ao protocolo Internet saber qual o computador que vai receber o datagrama, caso o computador de destino não esteja na rede local. Alem disso exitem os IPs Dinâmicos que são IPs que mudam constantemente por vezes quando desligam ou ligam o moldem ou o próprio provedor o muda, esse IP é mais comum e usado em residencias por exemplo, por não precisaram de muitos conhecimentos para configura-lo e usa-lo, já os IPs Fixos como o nome já diz são fixos, ou seja, não mudam, eles são menos usados do que os Dinâmicos e são usados em empresas, por exemplo, que precisam ter total certeza sobre seu endereço de rede na Internet.
- Estado da Arte:
- Atualmente o IPv6 é a versão mais atual, ele substituiu o antigo IPv4 que já estava esgotando o numero de endereços já que esse é feito por uma sequencia de 32 bits ( quatro conjuntos de 8 bits) essa forma levava a criação de de até 4.294.967.296 endereços. Com o aumento do uso da Internet os endereços IPv4 começaram a diminuir dessa forma surge o IPv6 que a sequencia de 128 bits, assim tendo que aplicar uma sequencia de 16 grupos de números devido a isso utiliza-se oito sequencias de quatro números para defini-lo.
- Integrações:
- VPN(Virtual private network)
- DNS(Domain Name System)
- IPSec
- Video: “Warriors of the Net”:
- O tema IP tem ligações com o segundo vídeo apresentado em aula, no vídeo ele demonstra todo o funcionamento do protocolo IP, desde o partimento dos pacotes até seu envio, mostrando o uso do endereço IP no qual define de onde o pacote sai e para onde o pacote vai, mostra também o que acontece quando existe a perda de pacotes no caminho já que o protocolo IP não garante a chegada de cada pacote e quando isso ocorre esse protocolo faz o envio de um novo.
- Fontes:
- https://br.ccm.net/contents/276-o-protocolo-ip
- https://pt.wikipedia.org/wiki/Endere%C3%A7o_IP
- https://pt.wikipedia.org/wiki/IPv6
- https://pt.wikipedia.org/wiki/Protocolo_de_Internet
- https://br.ccm.net/contents/276-o-protocolo-ip
- https://www.infowester.com/ip.php
- https://www.infowester.com/ipv6.php
- http://www.techtudo.com.br/listas/noticia/2016/08/ip-fixo-e-dinamico-saiba-vantagens-e-desvantagens-de-cada-configuracao.html
IPSec
- Conceito:
- Internet Protocol Security (IPSec) é uma tecnologia que ajuda a manter a segurança de operações entre IP’s por meio de codificações.
- Serve como defesa contra ataques de outros computadores, roubo e corrupção de dados, roubo de credencial do usuário e de controle de administrativos de servidores, computadores e rede.
- Funcionamento:
- O funcionamento do IPSec se dá pela troca de dados entre os servidores pelo Active Directory-based IPSec policy ou Authentication Header (AH), como na figura abaixo:
- O administrador constrói as políticas do servidor interno, bloqueando assim conexões inapropriadas na rede de perímetro (DMZ).
- A conexão entre os servidores é feita somente quando estes obedecem todas as regras impostas pelo administrador. Ao ser feita, os dados são trocados por meio da gestão por chave ou Internet Key Exchange (IKE), que gera atualizações automáticas das chaves criptográficas, enquanto o IPSec codifica os dados.
- Isto permite que o IPSec seja implementado em vários tipos de organizações, pois os dados permitidos, ou Group Policy objects (GPOs), podem ser mudados e aplicados em sites, domínios e unidades organizacionais (OUs).
- Estado da Arte:
- A imagem acima mostra como é dada a conecção de uma empresa com outros sites que requerem comunicação pelo modo túnel.
- Nesse caso, o IPSec ( demonstrado como L2TP Tunnel) cria uma conexão Virtual Private Network (VPN) para ajudar na proteção de dados entre os sites. O túnel é criado a partir dos roteadores (gateways).
- Integrações:
- Webservice, pois utiliza a comunicação via web.
- Banco de dados, devido a utilização de banco de dados na criação das regras entre as redes, além de fornecer a segurança entre a troca entre dois bancos de dados diferentes.
- IKE (Internet Key Exchange)
- AH ( Authentication Header)
- VPN ( Virtual Private Network)
- Video: “Warriors of the Net”:
- O tema IPSec relaciona-se com o vídeo quando ele demonstra a proteção dos dados transmitidos pelos pacotes. Também é demonstrada a confiabilidade do sistema em alguns IPs já autorizados pelo administrador e a destruição de pacotes de IPs suspeitos.
- Referências:
Linguagens de Programação
- Conceito:
- É um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.
- O conjunto de palavras, compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo microprocessador.
- Uma das principais metas das linguagens de programação é que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.
- Funcionamento:
- Ao usarmos uma linguagem de programação você cria o chamado “Código Fonte”. Um código fonte é um conjunto de palavras escritas de acordo com as regras sintáticas e semânticas de uma linguagem. Regras sintáticas dizem respeito à forma de escrita e regras semânticas ao conteúdo. O importante para sabermos agora é que o código fonte não é executado pelo computador. O computador não entende o código fonte, mas sim o código que representa seu programa e dados em memória (nos nossos exemplos o código é binário). Assim, é preciso traduzir o código fonte para o formato que o computador entenda. Este formato compreensível pelo computador é chamado de “Código de Máquina”. A este processo de “tradução” é dado o nome de Compilação.
- Estado da Arte:
- Existem várias linguagens de programação; de acordo com o Índice Tiobe, as 20 mais populares são:
- 1.Java
- 2.C
- 3.C++
- 4.Python
- 5.C#
- 6.JavaScript
- 7.Visual Basic .NET
- 8.R
- 9.PHP
- 10.MATLAB
- 11.Swift
- 12.Objective-C
- 13.Assembly
- 14.Perl
- 15.Ruby
- 16.Delphi / Object Pascal
- 17.Go
- 18.Scratch
- 19.PL/SQL
- 20.Visual Basic
- As linguagens de programação podem ser classificadas e sub-classificadas de várias formas. Classificação da ACM - Association for Computing Machinery
- A ACM mantém um sistema de classificação com os seguintes sub-itens:
- Linguagens aplicativas, ou de aplicação
- Linguagens concorrentes, distribuídas e paralelas
- Linguagens de fluxo de dados
- Linguagens de projeto
- Linguagens extensíveis
- Linguagens de montagem e de macro
- Linguagens de microprogramação
- Linguagens não determinísticas
- Linguagens não procedurais
- Linguagens orientadas a objeto
- Linguagens de aplicação especializada
- Linguagens de altíssimo nível
- Kotlin(2016/2017)
- É uma Linguagem de programação que compila para a Máquina Virtual Java e que também pode ser traduzida para JavaScript e compilada para código nativo. É desenvolvida pela JetBrains, seu nome é baseado na ilha de Kotlin onde se situa a cidade russa de Kronstadt, próximo à São Petersburgo. Apesar de a sintaxe de Kotlin diferir da de Java, Kotlin é projetada para ter uma interoperabilidade total com codigo Java, permitindo que as empresas possam fazer uma migração gradual de Java para Kotlin.
- Compatibilidade: Kotlin é totalmente compatível com o JDK 6, garantindo que os aplicativos possam ser executados em dispositivos Android mais antigos, sem problemas. A ferramenta Kotlin é totalmente suportada no Android Studio e compatível com o sistema de compilação do Android.
- Desempenho: um aplicativo Kotlin é tão rápido quanto um Java equivalente, graças a uma estrutura de bytecodes muito semelhante. Com o suporte da Kotlin para funções inline, o código usando lambdas geralmente é executado ainda mais rápido que o mesmo código escrito em Java.
- Interoperabilidade: o Kotlin é interoperável a 100% com Java, permitindo usar todas as bibliotecas Android existentes em um aplicativo Kotlin.
- Tempo de compilação: o Kotlin suporta compilação incremental eficiente, por isso, enquanto há algumas sobrecargas adicionais para construções limpas, as compilações incrementais geralmente são tão rápidas ou mais rápidas do que com o Java.
- Curva de aprendizado: para um desenvolvedor Java começar com o Kotlin é muito fácil. O conversor automático Java para Kotlin incluído no plugin Kotlin ajuda com os primeiros passos.
- Integrações:
- Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código fonte para código de máquina.
- Um compilador é um programa de computador (ou um grupo de programas) que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto. Classicamente, um compilador traduz um programa de uma linguagem textual facilmente entendida por um ser humano para uma linguagem de máquina, específica para um processador e sistema operacional.
- Interpretadores são programas de computador que leem um código fonte de uma linguagem de programação interpretada e o converte em código executável. Seu funcionamento pode variar de acordo com a implementação. Em alguns casos, o interpretador lê o código fonte linha a linha e o converte em código objeto (ou bytecode) à medida que o executa, em outros casos, converte o código fonte por inteiro e depois o executa.
- Na verdade, em princípio, pode-se implementar compiladores e interpretadores para qualquer linguagem de programação. Mas, dependendo da necessidade, pode ser melhor criar um interpretador ou um compilador.
- Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.
- Se o texto do programa é executado à medida que vai sendo traduzido, como em JavaScript, BASIC, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente.
- Referências:
- https://www.treinaweb.com.br/blog/kotlin-a-nova-linguagem-oficial-para-desenvolvimento-android/
- https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o
- https://pt.wikipedia.org/wiki/Interpretador
- https://s3.amazonaws.com/academia.edu.documents/45886476/LIVRO_PROPRIETARIO_-_Linguagem_de_Programa.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&Expires=1523835859&Signature=DrDv7hCUUQzvtCHyGVJEMDut5UY%3D&response-content-disposition=inline%3B%20filename%3DLIVRO_PROPRIETARIO_-_Linguagem_de_Progra.pdf
- https://www.tiobe.com/tiobe-index/
- https://pt.wikipedia.org/wiki/Association_for_Computing_Machinery
- https://www.jetbrains.com/
- https://kotlinlang.org/
- https://www.youtube.com/watch?v=tPTzQ_eGKgk&t=206s
Machine Learning
- Conceito:
- Machine Learning(ML) ou Aprendizado de Maquina(AM) é um subcampo de Inteligencia Artificial(IA) que busca fazer com que as maquinas possam agir e tomar decisões, dessa forma é preciso a utilização de algoritmos mais flexíveis, pois as maquinas irão coletar os dados, analisa-los e então tomar alguma decisão ou realizar alguma ação, ou seja, não é preciso programar a maquina para realizar uma tarefa especifica, alem disso com o passar do tempo a maquina ira adquirir mais conhecimento tornando assim mais fácil operar ou tomar decisões quando encontrar novos dados.
- Aprendizado de Maquina pode ser utilizado de varias formas, um exemplo comum e a filtração de dados onde a maquina ira olhar em um certo conjunto de dados e separá-los, por exemplo em emails decidindo quais são importantes e quais podem ser excluídos, outro exemplo é a utilização de Machine Learning para separar itens de acordo com outras visualizações do usuários que é um sistema utilizado por exemplo na Netflix e na Amazon.
- Funcionamento:
- Aprendizagem Supervisionada:Neste tipo de aprendizado o programador coloca exemplos de entradas e de possíveis saídas para que a maquina durante o seu funcionamento busque dados semelhantes aos apresentados, ou seja, de acordo com dados pré-determinados a maquina ira procurar dados semelhantes, alem disso os problemas de aprendizado de maquina podem ser separados em dois tipos, problemas de classificação e problemas de regressão.
- Classificação: neste problema as entradas(Atributo) são divididas em duas ou mais classes que são determinadas pelo programador,alem disso as saídas(Classes) são discretas, um exemplo disso seria um programa que analisa tumores e os classifica como benignos ou malignos.
- Regressão: neste problemas tentamos prever as saídas que por sua vez são continuas em vez de discretas, um exemplo seria dada uma imagem de uma pessoa o programa tenta prever sua idade com base em dados da imagem ou baseado em um grupo de dados o programa tenta prever o índice da inflação.
- Árvores de Decisão: é um fluxograma com a estrutura semelhante a de uma arvore na qual haverá Nós que basicamente são testes e dependendo das entradas ira gera uma saída.exemplo de uma arvore de decisão no link: [[[4]]]
- Aprendizagem Supervisionada:Neste tipo de aprendizado o programador coloca exemplos de entradas e de possíveis saídas para que a maquina durante o seu funcionamento busque dados semelhantes aos apresentados, ou seja, de acordo com dados pré-determinados a maquina ira procurar dados semelhantes, alem disso os problemas de aprendizado de maquina podem ser separados em dois tipos, problemas de classificação e problemas de regressão.
- Aprendizagem Não Supervisionada: neste tipo de aprendizado o programa analisa os dados que não são classificados e busca agrupa-los de alguma maneira, ou seja, forma agrupamentos ou clusters, pode se dizer que essa aprendizagem nos permite abordar problemas com os quais temos pouca ou nenhuma ideia de seus resultados
- Clustering: técnica na qual se consiste em juntar um grupo de dados que possuem alguma semelhança(clusters)
- Aprendizagem Não Supervisionada: neste tipo de aprendizado o programa analisa os dados que não são classificados e busca agrupa-los de alguma maneira, ou seja, forma agrupamentos ou clusters, pode se dizer que essa aprendizagem nos permite abordar problemas com os quais temos pouca ou nenhuma ideia de seus resultados
- Aprendizado por reforço:neste aprendizado a maquina interage com um ambiente dinâmico e deve aprender com ele, ou seja, a maquina deve aprender como o ambiente trabalha.um feedback é enviado ao programa para mostrando se suas ações estão corretas ou errôneas.
- Modelo Gerador:este modelo gera valores de dados quando a a falta de alguns parâmetros, em machine learning eles são usados para modelagem de dados de forma direta ou como um avanço para a formação de funções de densidade de probabilidade condicional.
- Modelos Condicionais:frequentemente usado em aprendizado supervisionado, pois pode modelar a dependência de uma variável y em uma variável x ou seja esse modelo tenta calcular probabilidades condicionais.
- Aprendizagem Profunda (Deep Learning):neste aprendizado há múltiplas camadas que processam os dados em uma rede neural artificial. Esta abordagem tenta modelar abstrações de alto nível de dados usando grafo profundo com várias camadas de processamento, dessa forma a aprendizagem profunda consegue reconhecer imagens e ate sons com capacidade semelhante a de um humano.
- Estado da Arte:
- Google: Atualmente a Google lançou uma atualização no Google Fotos que utiliza o machine learning reconhecer o seu animal de estimação nas fotos e criar álbuns de fotos automaticamente, outra funcionalidade desse programa é a capacidade de reconhecer a raça do seu animal utilizando o Google lens alem de obter mais informações sobre tais animais, alem disso o app conseguira escolher as melhores fotos do animal de estimação e também poderá criar um "filme" com tais fotos
- Uber: Atualmente a Uber investiu em machine learning para auxiliar na segurança das viagens, esse programa se utiliza dos dados fornecido pelas milhões de viagens feitas todos os dias, por exemplo comentários ,estrelas e mensagens trocada por ambas as partes, para verificar quais locais tem maior probabilidade de serem inseguros e bloqueando tais viagens a menos que o usuário forneça detalhes adicionais de identificação
- Overwatch: atualmente a Blizzard, uma empresa de jogo, esta se utilizando de machine learning para verificar as partidas de Overwatch , um de seus jogos, e encontrar jogadores tóxicos,jogadores que utilizam uma linguagem ofensiva contra os outros jogadores, tantos pelo chat de voz quanto pelo chat de texto e assim diminuir a toxidade de sua comunidade e tornar o jogo mais divertido e com menos stress
- Integrações:
- Aprendizado de Maquina tem ligação com varias tecnologia, por exemplo Deep Learning, IA, Big Data, Banco de Dados, Business inteligencie, Mineração de Dados e Estatísticas.
- Referências Bibliográficas:
- https://pt.wikipedia.org/wiki/Aprendizado_de_m%C3%A1quina
- http://www.cienciaedados.com/conceitos-fundamentais-de-machine-learning/
- https://medium.com/data-science-brigade/a-diferen%C3%A7a-entre-intelig%C3%AAncia-artificial-machine-learning-e-deep-learning-930b5cc2aa42
- http://www.sourceinnovation.com.br/wiki/Conceito_de_Machine_Learning
- http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06102003-160219/en.php
- https://br.udacity.com/blog/post/aplicacoes-machine-learning
- http://www.inf.ufg.br/~cedric/ia/grad/AI-Aula10-Aprendizagem.pdf
- http://www.revistabw.com.br/revistabw/aprendizagem-de-maquina-aprendizado-supervisionado/
- https://www.ime.unicamp.br/~wanderson/Aulas/Aula9/MT803-AprendizadoMaquina-ArvoreDecisao.pdf
- https://medium.com/opensanca/aprendizagem-de-maquina-supervisionada-ou-n%C3%A3o-supervisionada-7d01f78cd80a
- http://edirlei.3dgb.com.br/aulas/ia_2011_2/IA_Aula_18_Aprendizado_Nao_Supervisionado.pdf
- https://paulovasconcellos.com.br/competicao-kaggle-titanic-tutorial-5b11993774f7
- https://pt.wikipedia.org/wiki/Aprendizagem_profunda
- http://computerworld.com.br/qual-diferenca-entre-machine-learning-e-deep-learning
- https://jovemnerd.com.br/nerdbunker/blizzard-esta-usando-machine-learning-para-combater-toxicidade-de-overwatch/
- https://canaltech.com.br/apps/google-fotos-usa-machine-learning-para-criar-albuns-com-seu-pet-111714/
- http://computerworld.com.br/uber-adota-machine-learning-para-reforcar-seguranca-de-servicos
Memória RAM
- Conceito:
- A memória RAM (Random Access Memory - Memória de Acesso Aleatório) é um hardware de armazenamento randômico e volátil, que permite o acesso direto a qualquer um dos endereços disponíveis para o gerenciamento de dados e informações circunstancialmente com programas e softwares, e de forma bastante rápida, pois o processador não necessita procurar os dados diretamente do HD. Diferentemente da memória do HD, a RAM é uma memória que não armazena conteúdos permanentemente, uma vez que perde energia, as informações são apagadas. Comparando a uma analogia com a memória humana, ela funciona como a sua memória quando você precisa lembrar de um número de telefone para uma única ligação que ocorrerá em seguida. Você repete o número algumas vezes para lembrar imediatamente e digita-o no telefone e, rapidamente o esquece, pois não será necessário. A memória RAM faz isso, sem a necessidade de ficar repetindo os dados para si mesma, nem precisar digitar algo no telefone!
- Funcionamento:
- Quanto maior a memória RAM, maior sua capacidade, logo, maior seu fluxo de bits suportados. Para ter acesso a uma grande quantidade de memória no HD de uma só vez, é necessário uma grande quantidade de memória RAM. São estes, portanto, os megabites ou gigabites que aparecem nas configurações. As memórias desta índole podem ser dividas em estáticas e dinâmicas. As primeiras mantêm seu conteúdo inalterado desde que exista uma fonte de energia. As segundas, ao contrário, envolvem uma "leitura destrutiva", ou seja, a informação é perdida ao ser lida e para evitar isso deve-se restaurar os dados com uma operação de "refresco". A memória RAM é um chip semelhante a um micro-processador, composto por milhões de transistores e capacitores. O capacitor é uma peça capaz de armazenar elétrons. Quando ele está carregado, o sistema faz uma leitura com base no famoso código binário de “zeros e uns”. Cada leitura dessa em zero ou um significa um bit de informação. Essa leitura é feita de forma muito rápida, são muitas em poucos milésimos de segundos. É assim que a memória RAM processa todas as ações executadas pelo usuário.
- Estado da Arte::
- A DRAM (Memória de Acesso Aleatório Dinâmico) é o padrão de memória que perdura até hoje, mas para chegar aos atuais módulos, a história teve grandes reviravoltas. A partir da metade da década de 70, a memória DRAM foi definida como padrão mundial, dominando mais de 70% do mercado. Nesse ponto da história, a DRAM já havia evoluído consideravelmente e tinha os conceitos básicos que são usados nas memórias atuais. Enquanto os computadores evoluíram baseados nas memórias DIMM SDRAM, outros dispositivos aderiram a memórias alternativas. É o caso do Playstation 3, que aderiu à linha de memórias XDR DRAM. O padrão XDR é como se fosse um sucessor das antigas memórias baseadas no RIMM (também conhecida como memória Rambus DRAM). Atualmente, as memórias são do tipo SGRAM (RAM de sincronia gráfica). Todas elas são baseadas na memória RAM, mas têm certas diferenças. O modelo mais atualizado no memória RAM para computador atualmente é a DDR4. Possui mais potência em Mhz que sua antecedente(DDR3), e reduz o consumo de energia de todo o seu ambiente de computação, mas consequentemente, tem seu tempo de resposta menor, assim tornando sua parelha a sua anterior, mas ainda sim sendo mais potente.
- Integrações:
- A memória RAM é um componente essencial não apenas nos PCs, mas em qualquer tipo de computador. Por mais que exista espaço de armazenamento disponível, na forma de um HD ou memória flash. Processadores, placas mãe, discos rígidos, ventoinhas, placas de som são exemplos de tecnologias, metodologias e softwares que interagem com a memória RAM. A memória RAM, essencial no processamento e armazenamento dos seus programas, atuando em conjunto principalmente com o seu processador e seu HD.
- Referências::
- http://www.techtudo.com.br/artigos/noticia/2012/02/o-que-e-memoria-ram-e-qual-sua-funcao.html
- https://www.hardware.com.br/termos/memoria-ram
- https://www.infoescola.com/informatica/memoria-ram/
- http://queconceito.com.br/memoria-ram
- http://www.apertef5.com.br/o-que-e-e-como-funciona-memoria-ram/
- https://www.tecmundo.com.br/memoria-ram/12781-memorias-quais-os-tipos-e-para-que-servem.htm
- https://www.youtube.com/watch?v=UpXgcum8dOw
- https://www.youtube.com/watch?v=fFN9tKUJ81E
- https://www.youtube.com/watch?v=TtpOVyhIiP8
- Relação do tema com vídeos apresentados:
- O circuito mostrado no video "Porta Lógica "E" ou "AND" CI. 7408 - ETB" ocorre também na memória RAM, a memória RAM usa capacitores ligados a circuitos combinacionais (transistores) para manter os valores 0 ou 1 (armazenar as informações binárias), uma forma mais barata mas podem fazer o mesmo trabalho dos circuitos lógicos.
Mineração de Dados
- Conceito:
- Mineração de dados(ou Data Mining, MD, DM) consiste em um processo para explorar e analisar grandes quantidades de dados (tipicamente relacionados a negócios, mercado ou pesquisas científicas), na busca de padrões com a finalidade de que, esses dados, sejam usados para alguma tomada de decisão e/ou avaliação de resultados;
- As ferramentas de Data Mining analisam os dados, descobrem problemas ou oportunidades escondidas nos relacionamentos dos dados, e então diagnosticam o comportamento dos negócios, requerendo a mínima intervenção do usuário. Assim, ele se dedicará somente a ir em busca do conhecimento e produzir mais vantagens competitivas.
- Funcionamento:
- Etapa de seleção: Nessa etapa são definidas as fontes de dados relevantes, ou seja, as bases de dados que importam para o problema em questão que estamos tentando resolver.
- Etapa de pré-processamento: Nessa etapa, os dados escolhidos na etapa de seleção serão tratados, pois, como esses dados podem ser de diversas fontes diferentes, eles podem conter divergências de valores ou serem inconsistentes.
- Etapa de transformação: Nessa etapa, os dados pré-processados na etapa anterior serão convertidos em uma estrutura que seja compatível ao algoritmo de mineração escolhido.
- Etapa de mineração: Chegamos no objetivo do processo, a mineração dos dados. Nessa etapa, é escolhida e executada a técnica e algoritmo de mineração de acordo com problema sobre regra de negócio escolhida, com o objetivo de encontrar padrões e gerar dados para a próxima etapa.
- Etapa de Análise/Assimilação Nessa última etapa, o conhecimento gerado é utilizado para tomada de decisão e/ou avaliação de resultado.
- Estado da Arte:
- O processo de mineração de dados pode ser aplicado em diversas áreas, incluindo marketing, finanças, detecção de fraudes, manufaturas e telecomunicações. Um exemplo clássico de utilização de MD é o conhecimento descoberto nos dados da rede de supermercados Walmart. Foi descoberto que a maioria dos pais que iam comprar fraldas para seus filhos acabavam comprando cerveja. Em uma jogada de marketing, as fraldas foram colocadas próximas da cerveja, sendo que as batatas fritas estavam entre elas. Consequentemente, houve um aumento das vendas dos três produtos.
- O data mining também pode ser utilizado nas áreas de educação para obter métodos que aumentem a qualidade do ensino de acordo com esses dados, e é utilizado na área biológica, como na biotecnoligia e análise de DNA.
- Integrações:
- Extração de conhecimento (também conhecido como processo KDD, do inglês knowledge-discovery in databases).
- Business Inteligence(BI) é uma profissão que utiliza esses dados para a tomada de decisão.
- Big Data, banco de dados.
- KEEL, KNIME, Neural Designer, OpenNN, Orange, SAS, R, SPSS, Weka, são alguns exemplos de ferramentas de software para o desenvolvimento de modelos de mineração de dados. Algumas dessas são opensource(OpenNN, R, KEEL), outras comercias(SAS).
- Referências:
- O'brien, James A. (2005). Sistemas de Informação e as decisões gerenciais na era da internet 2º ed. São Paulo: Saraiva. p. 143. ISBN 9788502044074
- Laudon, Kenneth; Laudon, Jane (2011). Sistemas de Informações Gerenciais: Fundamentos da inteligência de negócios:gestão da informação e de banco de dados. 9º ed. São Paulo: ABDR. p. 159
- O'brien, James A.; Marakas, George M. (2007). Administração de Sistemas de Informação: uma introdução 13º ed. São Paulo: McGraw-Hill. p. 171. ISBN 8586804770
- Mineração de Dados: Uma Introdução» (PDF). www.lnlm-sbic.org. Consultado em 29 de junho de 2015
- https://docs.microsoft.com/pt-br/sql/analysis-services/data-mining/data-mining-concepts
- https://www.devmedia.com.br/
Modelo estruturado
- Conceito:
- O modelo estruturado é considerado uma metodologia, ou seja, uma forma de se programar computadores. O foco principal da metodologia estruturada é a utilização de subtarefas, estruturas de laços de repetição, estruturas condicionais e em bloco. O modelo estruturado, também pode ser definido por alguns métodos correspondentes, que são: Análise Estruturada, Projeto Estruturado, Programação Estruturada, Análise Essencial, além de ser conhecido como um paradigma de programação. O modelo estruturado orienta o desenvolvimento de algoritmos que deixa mais fácil o entendimento dos programas por meio das limitadas técnicas de controle do andamento dos programas. É possível desenvolver qualquer algoritmo para diversas aplicações, e independente da linguagem de programação a qual será utilizada, utilizando essas técnicas essenciais.
- Procedimentos:
- A razão fulcral da programação estruturada é que um programa deve ser modularizado, ou seja, separar o programa em partes de código que sejam fundamentais e que se relacionam entre si através de três procedimentos básicos, que são sequência, seleção e iteração. Na sequência são implementados os passos de tratamento indispensáveis para relatar qualquer programa. Abaixo segue um exemplo de uma denotação desse procedimento por meio de um algoritmo, expressado por duas tarefas sendo executas em sequência, ou seja, uma seguida de outra.

- Na seleção, é especificado a viabilidade de escolher o curso de andamento do processamento tendo como base fatos lógicos. Existem duas estruturas básicas de condição. O if que permite simbolizar os fluxos da seguinte forma: "se a condição logica a for verdadeira, faça a Tarefa a, do contrário, faça a tarefa b. Outra estrutura de condição, é o switch, que é capaz de mostras ps fluxos da seguinte forma: "se a variável x tem o valor 1, faça a tarefa a; se x tem um valor 2, faça a tarefa b, assim por diante, e se nenhum valor dos retratados forem atingidos, então existe uma tarefa padrão que é executada.
- Na iteração, é permitido rodar segmentos do programa de forma repetida, ou seja, é possível executar um loop desde que um condição lógica seja verificada. Após a verificação desta condição, caso verdadeira, o conjunto de instruções que está associado ao comando é executado. Ao final, essa condição para novamente pela avaliação, e da mesma forma que anteriormente, se satisfazer ao teste, então o bloco de comandos novamente é executado, e assim até que a condição seja falsa.
- O modelo estruturado é mais indicado para alguns casos particulares, pois tem um escopo mais abrangente, que muitas vezes é conveniente. Nesse modelo, é possível criar alguns diagramas que facilitam o entendimento do problema, para a implementação. Alguns desses diagramas são: DFD (Diagrama de fluxo de dados e DER (Diagrama entidade relacionamento).
- Concorrentes:
- O modelo estruturado concorre diretamente com o modelo orientado. O modelo orientado à objetos, conhecido como programação orientada à objetos (POO) preza a reutilização de partes de programa, ou de programas inteiros, isso para ter melhores resultados. Entretanto, cada modelo tem suas particularidades e melhores casos para aplicação. Alguns casos, é necessário utilizar o modelo orientado, em outros o modelo estruturado, entretanto, é necessário verificar quais das estratégias são as melhores para casa um dos casos.
- Criadores:
- O modelo estruturado, ou paradigma estruturado, surgiu no final de 1950, juntamente com as linguagens ALGOL 58 e ALGOL 60, e acabou sendo bastante alimentado pelos benefícios que o paradigma das linguagens procedimentais ou procedurais. Não há registros de um criador do paradigma, mas pela pesquisa, conseguimos dizer que o modelo de programação estruturada foi impulsionado pelo "teorema do programa estruturado", que foi chamado também de Böhm-Jacopini, e também pela carta de Dijkstra, que era aberta "Go to Statement Considered Harmful". O modelo estruturado dominou no desenvolvimento de software, até surgir o modelo orientado a objetos.
- Referências:
- WIKIPEDIA, Programação estruturada. Disponível em: <https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_estruturada>. Acesso em: Abril de 2018.
- RIBEIRO, Osvaldo. Um Estudo Sobre Análise Estruturada de Sistema. Disponível em: <http://www.computacao.unitri.edu.br/downloads/monografia/28581143166332.pdf>. Acesso em: Abril de 2018.
- TAGLIARI, Marilan. Ferramenta de apoio ao mapeamento de especificação estruturada para especificação orientada a objetos. Disponível em: <http://campeche.inf.furb.br/tccs/2002-I/2002-1marilanricardotagliarivf.pdf> Acesso em: Abril de 2018.
- BUGMANN, Regiane. Protótipo de sistema de informação para o plantio de árvores frutíferas usando raciocínio baseado em casos. Disponível em: <http://dsc.inf.furb.br/arquivos/tccs/monografias/2001-1danieljonasheinrichvf.pdf>. Acesso em: Abril de 2018.
- HEINRICH, Daniel. Sistema de apoio para o diagnóstico de defeitos em equipamentos eletrônicos aplicado a oficinas eletrônicas utilizando raciocínio baseado em casos. Disponível em: <http://dsc.inf.furb.br/arquivos/tccs/monografias/2001-1danieljonasheinrichvf.pdf>. Acesso em: Abril de 2018
Modelo Orientado a Objeto
- Conceito:
- O Modelo Orientado a Objetos é um paradigma de programação que busca aproximar o mundo real do virtual, para isso é usado o objeto, uma vez que o nosso mundo é composto de objetos. Os objetos se assemelham bastante ao conceito de objeto que temos no mundo real, possuindo atributos (características) e sendo capazes de executarem métodos (ações), o conceito de objetos será melhor abordado na secção "Funcionamento", logo após essa. As linguagens Orientadas a Objetos (baseadas no paradigma Orientado a Objetos) atuam como ferramentas para o desenvolvimento de softwares, esses que são utilizados nos mais diversos aparelhos, como computadores, smartphones, aparelhos domésticos, servidores e diversos outros. A Oracle, proprietária do Java (uma linguagem de programação Orientada a Objetos), afirma que mais de 3 bilhões de aparelhos utilizam Java, o que da uma boa dimensão do quanto o Modelo Orientado a Objetos esta difuso no mundo atual.
- Funcionamento:
- Como foi citado na secção anterior, o modelo orientado a objetos tem como foco central os objetos. Os objetos tentam ao máximo se assimilar aos objetos do mundo real, possuindo características (atributos) e sendo capazes de realizar ações (métodos). A seguir serão elucidados alguns conceitos da Orientação a Objetos:
- Classes: Todo objeto está atrelado a uma classe. Classes são conceitos abstratos a respeito de um conjunto de objetos semelhantes, definem as características e ações básicas que todos os objetos derivados dessa classe possuirão. Para explicar melhor o conceito de uma classe pode-se imaginar um grupo de cachorros, todos pertencem a classe dos cachorros, possuindo portanto as características básicas de um cachorro (4 patas, focinho, calda, pelo cobrindo o corpo, cor do pelo) e podem realizar todas as ações básicas de um cachorro (latir, correr, pular), entretanto, os cachorros desse grupo podem se diferenciar um dos outros, tanto em características (cor do pelo, por exemplo) ou em ações (tom do latido, por exemplo). Dessa forma, uma classe é, ao mesmo tempo, um conjunto de objetos e também a estrutura básica para todos o objetos que dela derivam.
- Objetos: Os objetos são estruturas pertencentes a uma classe, possuem atributos e métodos derivados da classe a qual pertencem, no entanto podem ser diferentes entre si. São o pilar básico da orientação a objetos e frequentemente utilizados para representar partes de um problema durante o desenvolvimento do código
- Atributos: Atributos são as variáveis de um objeto, geralmente são utilizadas para armazenar dados relacionados ao objeto, dados esses que podem ser utilizados pelos métodos do objeto ao qual estão atrelados ou acessados por outros objetos
- Métodos: Os métodos são os comandos que o objeto é capaz de executar, são trechos de código definidos na classe a qual o objeto pertence e que podem ser executados pelo objeto a qualquer momento. Métodos são como funções (uma vez que podem receber argumentos/métodos), mas são especificas de cada classe.
- Agora que os conceitos centrais da orientação a objetos foram esclarecidos podemos dar inicio ao funcionamento da mesma, que consiste basicamente em dividir um problema em partes menores (os objetos e classes aos quais eles pertencem) que contribuirão individualmente, ou em conjunto, para a resolução do problema. Por exemplo, imagine que um banco queira cadastrar seus clientes, poderíamos criar uma classe banco e uma classe clientes, a classe banco teria um método responsável por criar um objeto cliente e esse objeto por sua vez seria preenchido com os dados do cliente. Da mesma forma o objeto clientes também possuiria seus métodos, como realizar um saque, por exemplo. Esse processo poderá se repetir quantas vezes forem necessárias e com uso de pouco código, uma das vantagens de se utilizar o modelo orientado a objetos. Observe que no exemplo anterior os dois objetos do mundo real (banco e cliente) foram recriados em um ambiente virtual por meio da orientação a objetos e podiam realizar ações semelhantes a que realizariam no mundo real, essa é a ideia da orientação a objetos, representar o real em um contexto virtual de modo a facilitar a resolução de problemas, tanto no que tange ao entendimento do problema, quanto a escrita do código.
- Estado da Arte:
- A primeira linguagem a utilizar o modelo orientado a objetos foi a Simula, criada entre 1962 e 1968. Atualmente existem diversas outra linguagens que se utilizam desse paradigma sendo as mais conhecidas: Java, Python e C++. Pode-se dizer que o estado mais atual dessa tecnologia são as modernas linguagens de programação que a utilizam, entretanto, uma vez que linguagens de programação são ferramentas utilizadas para a construção de softwares, inúmeras aplicações desenvolvidas no modelo orientado a objetos podem ser citados como a forma mais atual dessa tecnologia, como, por exemplo o YouTube, que é desenvolvido em Python
- Integrações:
- O Modelo Orientado a Objetos depende de diversas tecnologias, ferramentas e softwares, são elas: Computadores, Compiladores, Interpretadores, Editores de Texto, Interfaces, IDE's, entre outras.
- O Modelo Orientado a Objetos ainda interage com outras tecnologias, ferramentas e softwares, são elas: Linguagens de Programação, WebServices, Banco de Dados, Algorítimos, IDE's, Compiladores, Interpretadores, API's, Frameworks, entre outras.
- Fontes:
- https://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetos
- https://pt.wikipedia.org/wiki/Simula
- https://www.hardware.com.br/artigos/programacao-orientada-objetos/
- https://www.youtube.com/watch?v=qWpGxnMtog4&list=PLfCKf0-awunOu2WyLe2pSD2fXUo795xRe&index=59 (O vídeo é voltado para python, mas traz conceitos fundamentais para o entendimento da orientação a objetos)
- http://javarevisited.blogspot.com.br/2014/12/where-does-java-used-in-real-world.html
- http://www.javaprogressivo.net/2012/09/parametros-e-argumentos-passando.html
- http://srvd.grupoa.com.br/uploads/imagensExtra/legado/M/MACHADO_Rodrigo_P/Desenvolvimento_Software_III/Lib/Amostra.pdf
Modem
- Conceito: O Modem é responsável por realizar uma ligação física com a PSTN(Rede pública de telefonia comutada) e uma conexão lógica com a internet, sem necessidades de um servidor físico, através de métodos que serão exemplificados abaixo.
- Funcionamento: Os modems transferem dados através de linhas telefônicas na maior velocidade disponível nas mesmas, sendo de extrema eficiência nas transmissões de dados básicos e necessários atuais. Eles funcionam transformando o sinal digital em analógico, pois como a rede PSTN tem uma banda limitada, é necessário modular este sinal digital em forma binaria, para conseguir transportar os dados pela linha. Quando os dados chegam no destino, o modem é capaz de remodular o sinal analógico de volta para o digital, explicando assim sem nome mo(modulator - modulator) - dem(demodutator - remodulador).
- Estado da Arte: Os modems atuais possuem roteadores já embutidos, fazendo a função de um outro aparelho em conjunto, facilitando o processo. Além deste detalhe, alguns aparelhos vêm com as seguintes tecnologias: VoIP, VPN, possibilidade de uso de fibras ópticas, WIFI, FireWall, QoS, entre outros.
- Integrações: Os modems são de extrema importância atualmente, pois ainda é utilizada a rede PSTN, que como dito antes, tem uma transferência de dados limitada, por ser analógica. Com isso, os modems são os principais remoduladores de dados analógicos existente atualmente, sendo capaz de unificar as informações entre todos os dispositivos conectados no mesmo modem.
- Referências: https://patents.google.com/patent/US20020199003A1/en
http://www.pd3.com.br/tecnologias.html
Normalização (BD)
- Conceito:
- Normalização é o procedimento usado para ordenar dados em um devido banco de dados, essa organização acontece por meio de tabelas e a conexão entre elas de acordo com as regras criadas para a maior proteção dos dados, para tornar o banco de dados mais ágil e eliminando dados supérfluos. Esses dados ocupam espaço e geram problemas na manutenção. A organização desses dados facilita na atualização e alteração de dados que estão em uma mesma tabela e em mais nenhum outro lugar do Banco de Dados .
- Procedimentos:
- A metodologia tem como base 3 regras de normalização de banco de dados, cada regra tem o nome de “forma normal”. Essas regras são necessárias para garantir a maior proteção dos dados e informações. As regras(formas normais) possuem uma ordem de precedência onde você só estará executando a segunda forma normal se passar e respeitar todos os requisitos da primeira forma,dentre essas regras a terceira forma normal é considerada a de maior nível por suprir as maiores necessidades da maioria dos aplicativos. As três regras são:
- Primeira Forma Normal (1FN) : A primeira forma é definida e orientada para não autorizar o uso de propriedades com mais de um valor, é necessário que os
valores sejam únicos,com isso, estaremos cumprindo com o os requisitos dessa forma normal.
- Segunda Forma Normal (2FN) : Para cumprir com os requisitos da 2FN é necessário que cumpra também os requisitos da 1FN e não conter nenhum tipo de dependência parcial. Para estar dentro dos requisitos da 2FN os atributos não-chave devem depender de toda a chave primária e não só de algumas partes.

- Terceira Forma Normal (3FN) : Para cumprir com os requisitos da 3FN é necessário que cumpra também os requisitos da 2FN e nenhuma propriedade que não faça
parte da chave tiver uma dependência transitiva. Para estar dentro dos requisitos da 3FN um atributo não-chave não pode ter uma funcionalidade determinada por outro atributo não-chave.
Concorrentes:
- Além desse método que é a normalização, existem alguns outros processos que podem ser usados no processamento de dados como o DER e o IDEF1X .
- DER significa Diagrama Entidade Relacionamento e é uma metodologia que é usada principalmente na representação gráfica para mostrar e facilitar de visualizar as informações e auxilia no entendimento dos desenvolvedores.Exemplo de DER:

- IDEF1X significa (Integrated Definition for Information Modelling) essa metodologia foi desenvolvida no final da década de 1970 para o uso das forças militares americanas. Essa metodologia é utilizada para a modelação completa de um Sistema, e dentro desses quesitos estão o processamento e absorção de dados para melhor leitura de informação.Exemplo de um DER em forma de IDEF1X:

Criadores:
O método de normalização BD foi proposto por Codd na década de 70,criado para organizar e melhorar a alterações em uma tabela para que os valores colocados nessa tabela atenda os requisitos da Forma normal (FN)
NoSQL
- Conceito:
- NoSQL refere-se à um modelo de banco de dados não relacional alternativo ao sistema de banco de dados relacional comumente utilizado. Este modelo é bastante reconhecido por priorizar maior escalabilidade, disponibilidade e, principalmente, desempenho na estruturação e manuseio dos dados.
- Funcionamento: O funcionamento será mostrado de acordo com uma comparação feita entre o banco de dados relacional e o banco de dados não relacional.
- Banco de dados tradicional (relacional):
- Possui um modelo estrutural tabular pré-definido, logo é conveniente apenas quando há poucas alterações no registro de estrutura de dados.
- Demanda de um alto custo e complexidade para alcançarem escalabilidade, pois para aumentar sua infraestrutura é necessário:
- Distribuição vertical ou scale-up: quanto maior a quantidade de dados, mais configurações físicas serão necessárias, ou seja, é algo limitado. Esse recurso de distribuição é o mais comum nesse modelo de banco de dados.
- Distribuição horizontal ou scale-out: quanto mais dados, mais servidores serão necessários (não há necessidade de serem computadores de alto nível).
- De primeiro momento, o scale-out parece ser um processo bem simples e eficaz, porém a grande problemática é que o processo usado para uma configuração se integrar com os demais servidores existentes no sistema de banco de dados relacional é caro, demorado e muito complexo.
- O armazenamento e a recuperação de dados é feito através de consultas ao Structured Query Language (SQL), realizadas por um sistema de gerenciamento de banco de dados RDBMS.
- Utiliza o modelo ACID (atomicidade, consistência, isolamento e durabilidade) em sua estrutura.
- Atomicidade: uma transação tem de ser concluída ou não, ou seja, não pode "ficar pela metade".
- Consistência: quando uma transação é concluída, os dados devem estar de acordo com os do schema do banco de dados.
- Isolamento: transações simultâneas devem ser executadas separadas uma das outras.
- Durabilidade: é a capacidade do sistema de recuperar de alguma falha, seja interna ou externa.
- Devido ao modelo ACID, as transações podem ser feitas com segurança, garantia da atomicidade, isolamento e consistência dos dados, porém assegurar isso tudo gera muito custo, pouco desempenho e requer uma configuração de alto processamento. Logo, é melhor usado quando os dados são de altíssima importância, por exemplo, em sistemas de transações financeiras.
- Banco de dados não relacional (NoSQL):
- Criado a partir do modelo BASE (como se fosse um ACID, mas com alterações). Nesse modelo, não há muita consistência de dados, mas em contrapartida há maior facilidade de particionamento (dados permanecem inalterados caso o sistema de banco de dados seja implantado em servidores diferentes), assim o sistema torna-se mais escalável, eficiente em questão de desempenho e de menor custo.
- Maior facilidade na distribuição horizontal scale-out, tornando a utilização mais eficiente e econômica.
- Grande diversidade quanto ao tipo de modelos de banco de dados, garantindo muitas opções para uso do desenvolvedor de acordo com suas necessidades. Alguns modelos mais comuns são:
- Baseado em documentos (document-store);
- Baseado em chaves/valores (key/value);
- Baseado em grafos (Graph).
- A inserção e recuperação de dados são feitos através de chaves de partição que permitem que os aplicativos procurem pares de chave-valor, documentos semi-estruturados ou grafos na memória.
- Devido a suas características, o uso do NoSQL é viável para bancos de dados que necessitam de ter alta escalabilidade, desempenho e que possam ter tolerância a algumas falhas.
- Banco de dados tradicional (relacional):
- Estado da Arte:
- Devido a suas características, o uso de um banco de dados não relacional (NoSQL) é muito comum nos dias atuais. Algumas empresas, por exemplo, a Google e a Amazon fazem o uso do NoSQL juntamente com a distribuição horizontal scale out. Além disso, a boo-box faz o uso de um sistema híbrido, em que há presença de sistemas de bancos de dados relacionais atuando em conjunto com NoSQL. Outrossim, outras empresas e softwares utilizam essa tecnologia com modelos de dados específicos, por exemplo:
- Baseado em documentos (document-store): utilizado pelo CouchDB.
- Baseado em chaves/valores(key/value): utilizado pela Amazon Simple DB.
- Baseado em grafos(Graph): utilizado pelo software Neo4j.
- Devido a suas características, o uso de um banco de dados não relacional (NoSQL) é muito comum nos dias atuais. Algumas empresas, por exemplo, a Google e a Amazon fazem o uso do NoSQL juntamente com a distribuição horizontal scale out. Além disso, a boo-box faz o uso de um sistema híbrido, em que há presença de sistemas de bancos de dados relacionais atuando em conjunto com NoSQL. Outrossim, outras empresas e softwares utilizam essa tecnologia com modelos de dados específicos, por exemplo:
- Integrações:
- A tecnologia NoSQL, além de depender, faz interações com diversas outras tecnologias, por exemplo:
- API;
- Linguagem de programação;
- Sistemas Operacionais;
- SQL.
- A tecnologia NoSQL, além de depender, faz interações com diversas outras tecnologias, por exemplo:
- Referências:
- Para realização dessa pesquisa, foram utilizados os seguintes links:
- [1] Renato Molina Toth – “Abordagem NoSQL – uma real alternativa ”. Disponível em: http://www.dcomp.sor.ufscar.br/verdi/topicosCloud/nosql_artigo.pdf
- [2] Site: https://aws.amazon.com/pt/nosql/
- Para realização dessa pesquisa, foram utilizados os seguintes links:
- Relação do tema com vídeos apresentados
- O vídeo "Warriors of the Net (Portuguese)" se relaciona com este tema (NoSQL) porque é citado durante sua apresentação que uma página web solicitada está em um computador servidor, ou seja, mesmo não sendo especificado o tipo de banco de dados usado nesse servidor, sabemos que há possibilidade de ser um banco de dados relacional ou um banco de dados não relacional (NoSQL), e isso irá variar de acordo com o tipo de dado que está sendo tratado.
Open Source
- Conceito
- O Código livre (Open Source) é um método de disponibilização de software por meio de código aberto, ou seja, todos podem ler, interpretar e modificar o código. Existem certos requisitos para que um a licença de software seja considerada de código aberto, que são:
- [1]: Qualquer pessoa pode ler, interpretar ou modificar o código.
- [2]: Qualquer companhia ou pessoa pode utilizar do código. Não pode ser restrito e voltado para um público somente, e sua distribuição deve ser livre (gratuito).
- [3]: Qualquer outro software que vá fazer uso do código fonte deve também deixar seu programa em modelo open source, já que a restrição do mesmo inviabilizaria a licença de um software Open Source.
- [4]: O programa deve seguir a integridade do código fonte do autor. A licença Open Source só deve restringir a distribuição do código caso seja distribuído junto algum software que vá modificando o código fonte por si mesmo, não sendo fiel ao código fonte Original Licenciado.
- [5]: A licença deve ser distribuída junto ao software de modo livre também, não sendo necessário outros tipos de licença extra para que o código seja considerado OS.
- [6]: A licença deve ser aberta para quaisquer tipos de tecnologia ou interface.
- [7]: A licença não pode ser restrita a um produto. Todos e quaisquer outros produtos que façam uso da licença OS. devem também disponibilizar todos os códigos que façam uso do mesmo.
- O Código livre (Open Source) é um método de disponibilização de software por meio de código aberto, ou seja, todos podem ler, interpretar e modificar o código. Existem certos requisitos para que um a licença de software seja considerada de código aberto, que são:
- Procedimentos
- Para que um software seja considerado de código aberto, é necessário que ele passe por uma série de requisitos disponibilizados pela empresa que faz a manutenção da licença OS: A OSI (Open Source Initiative). Quaisquer softwares que não se enquadrem nos requisitos não podem obter a licença de OS, não podendo ser disponibilizados com essa etiqueta.
- Concorrentes
- Um possível concorrente ideológico do software de código aberto é o software livre(FSF – Free Software Foundation). Comumente confundidos como sendo de mesma espécie. A diferença entre o software de código aberto e o software livre é que o software livre é um movimento social, que visa a criação de softwares gratuitos, que sejam de acesso público. Já o Código aberto é disponibilizado o código fonte, mas não garantido que seja gratuito para uso público.
- Criadores
- A empresa criadora do conceito de Código aberto foi a OSI (Open Source Foundation) em Fevereiro de 1998 em Pablo Alto, Califórnia . Seus fundadores são Eric Raymond e Bruce Perens.
- Referências
- History. Open Source Initiative. Set.2012. Disponível em: <https://opensource.org/history> . Acesso: 14 Abr. 2018.
- The Open Source Definition. Open Source Initiative. Mar. 2002. Disponível em: <https://opensource.org/docs/osd> . Acesso: 14 Abr. 2018.
- Free Software Foundation. Disponível em: <https://www.fsf.org/> . Acesso: 16 Abr.2018
- Porque o código aberto não compartilha dos objetivos do software livre. Richard Stallman. Disponível em:<http://www.gnu.org/philosophy/open-source-misses-the-point.pt-br.html>. Acesso: 16 Abr. 2018.
Plataformas
- Conceito:
- No mundo da computação, o conceito de Plataforma consiste em um ambiente capaz de prover infraestrutura, ferramentas, bibliotecas entre outros recursos a fim de suportar aplicações e outros serviços. As Plataformas podem se diferir de acordo com a finalidade à qual elas serão empregadas, dentre estas, podemos considerar plataformas que são responsáveis por prover um ambiente para a implantação de aplicações, fornecendo assim recursos e serviços para que estas aplicações sejam suportadas e possam ser colocadas em produção. Também podemos levar em conta plataformas que forneçam recursos para o desenvolvimento de aplicações, dentro deste conceito é possível notarmos a diferença entre uma Plataforma e um Framework, onde a principal diferença é que o Framework fornece apenas recursos de software para o desenvolvimento de aplicações, enquanto a plataforma também oferece recursos de Hardware, sendo assim é possível criar ambientes de testes e homologação dentro de uma plataforma a fim de simular situações reais.
- Além de todas as características que foram citadas acima, podemos ressaltar também alguns pontos importantes que uma plataforma busca trazer, como, escalabilidade, que consiste em permitir que se cresça ou reduza o ambiente de acordo com as necessidades demandadas. Também podemos citar a disponibilidade, esta visa que o sistema esteja sempre acessível e provendo suas funções esperadas mesmo que ocorram falhas dentro do ambiente. Redundância, que consiste em termos um ambiente espelho pronto para assumir a função do ambiente principal caso algum problema ocorra. E por fim um ponto de muita importância que é a segurança e privacidade da informação manipulada. É imprescindível que as informações que são processadas dentro de um sistema sejam totalmente sigilosas, pois o vazamento ou perda delas pode impactar até no fim das atividades de uma empresa.
- Funcionamento:
- O funcionamento de uma plataforma é descrito basicamente de um conjunto de softwares que interligam com uma infraestrutura e podem ser configurados de acordo com protocolos e padrões adotados pela empresa que irá utilizar o recurso. Podemos evidenciar o protocolo SOAP que é muito utilizado quando falamos de plataformas, uma vez que ele é destinado a ambientes distribuídos. Além do SOAP existem outros protocolos que são utilizados de acordo com a complexidade do produto final que se espera inserir em uma plataforma, dentre estes padrões, podemos evidenciar o REST e JSON.
- Estado da Arte::
- Quando pensamos no conceito de Plataformas é inevitável que se leve em consideração os custos para se obter um ambientes que agrega tanto uma infraestrutura quanto um conjunto de softwares para prover serviços específicos. Em vista disso, novas tecnologias são criadas a fim de contemplar o conceito de Plataformas e uma delas são as Clouds. Com a utilização de Clouds é possível criar ambientes munidos de recursos de Hardware e Software de maneira muito mais barata e sem a necessidade de se preocupar com a alocação física de tais recursos. Quando uma Plataforma criada em cloud é disponibilizada para comercialização nos deparamos com o surgimento de um novo conceito dentro da computação, sendo este o conceito de PAAS (Platform as a Service).
- Integrações:
- Uma Plataforma pode ser interligada com diversas tecnologias, podemos evidenciar alguns exemplos como: Clouds, Protocolos de rede, IOT, Bancos de dados, etc.Basicamente uma Plataforma pode acabar por englobar quase todos os conceitos da computação, pois, de acordo com a finalidade que a mesma terá, ela irá abordar tecnologias dos mais variados tipos.
- Referências:
Portas
- Conceito:
- Porta pode ser compreendido de três maneiras, uma de forma física (hardware), de forma lógica (dispositivos eletrônicos) ou em rede de computadores (software) que será abordado no texto. As portas no conceito de rede de computadores (software) tem como principal função o ponto final de uma transmissão de dados. O maior propósito é identificar o tipo de aplicação e processo no computador, fazendo que todos os dados que estão "entrando" em um desktop funcionem sem conflito, por exemplo, um programa de e-mail, um navegador, downloads via bittorrent e outros programas que geram informações. Hoje existem mais de 65000 portas, e uma das portas mais conhecida é a porta 80 que é a http, ou seja, paginas de internet, é por essa porta que "entram" as informações da Internet. É importante entender também que as portas estão diretamente ligadas ao IP da máquina, as informações chegam na máquina através do IP mas só são devidamente entregues em seus "pontos finais" em virtude das portas.
- Funcionamento:
- As portas possuem um número associado a um tipo de aplicação que quando adicionado ao IP, determina a aplicação que funciona em determinada máquina. Resumidamente, é possível chegar informações em uma determinada máquina através do IP dela, mas essas informações só conseguem ser corretamente direcionadas em suas devidas aplicações através das portas. Por exemplo, supondo uma máquina que após a conexão com a internet gerou um IP 200.130.20.8, todas as informações vão chegar na máquina através desse IP, porém, se não fosse a função das portas todas essas informações estariam completamente bagunçadas. Imaginando uma informação que chegou pelo google chrome, a porta que foi responsável por aquele tipo de informação (porta 80) agiu naquele dado e enviou para a aplicação correta. A porta sempre fica após o IP, no caso dessa informação ficaria: 200.130.20.8:80. Existem várias analogias a esse tipo de processo, um dos que chamam a atenção é a seguinte analogia: Imaginemos um funcionário em um prédio com vários andares e apartamentos, esse funcionário tem a função de entregar as correspondências para os moradores daquele prédio. As correspondências chegam na mão do funcionário, para isso, o correio deve possuir o endereço do prédio, o CEP, o número, cidade, bairro, enfim, uma variedade de informações (isso seria o IP da máquina), chegando as correspondências na mão do funcionário agora ele tem o dever de entregar cada correspondência em seu devido apartamento, isso só sera possível se ele tiver o nome de cada correspondência ligado ao apartamento (isso seria a porta), com o nome da pessoal da correspondência e o apartamento ele pode entregar para a pessoa a correspondência dela.
- Estado da Arte:
- Esse tipo de software pode ser considerado padrão em computadores, sendo difícil de se tratar sobre alguma função que evoluiu ou anda evoluindo em relação as portas. Portanto, não tratarei sobre o estado da arte em relação as portas.
- Integrações:
- Como dito anteriormente, as portas estão completamente ligadas ao valor do IP (Internet Protocol ou Protocolo da Internet), sem o valor do IP não existira função para as portas, pois as informações nem chegariam na máquina. Um diagrama que podemos adotar seria:
Máquina -> Internet -> IP -> Informações -> Porta -> Aplicação
REFERÊNCIAS
FOROUZAN, B. Data Communications and Networking. 4th Edition. New York: The McGraw-Hill Companies, 2007.
https://www.youtube.com/watch?v=h70939yYgXM&t=1s
https://pt.wikipedia.org/wiki/Porta_(redes_de_computadores)
- Video:
- Warriors of the Net (Portuguese) - Nesse vídeo podemos ver o funcionamento das portas bem nítido, quando vemos as animações manipulando as informações para suas respectivas aplicações. No vídeo até há o exemplo das portas 80 e 25, deixando bem claro o funcionamento das portas e sua importância para um sistema de redes de computadores funcionar adequadamente.
Processadores
- Conceito:
- Um processador é um circuito eletrônico que executa operações de processamento e controle a partir de instruções específicas, geralmente armazenadas em memória. O termo é comumente usado para se referir à CPU (Unidade de Processamento Central) de um computador, mas também se aplica a diversos processadores especializados, como os processadores de um disco rígido ou uma GPU (Unidade de Processamento Gráfico).
- Todo processador é construído de modo a ser capaz de realizar algumas operações:
- Somar, subtrair, multiplicar ou dividir números;
- Fazer operações lógicas;
- Movimentar dados entre a memória e o processador;
- Transferir um valor para um dispositivo de Entrada/Saída;
- Interpretar instruções de um programa.
- Funcionamento:
- O processador é responsável pelo processamento e execução de programas armazenados na memória principal, buscando suas instruções, examinando-as e, então, executando uma após a outra. O processador é composto por várias partes distintas, entre elas: registradores, Unidade de Controle (UC) e Unidade Lógica Aritmética (ULA). Ele age sob o controle de um programa armazenado em memória, executando operações aritméticas, lógica booleana, tomada de decisão, além de entrada e saída, permitindo a comunicação com outros dispositivos periféricos.
- Com base na proposta de arquitetura de Von Neumann, a execução de programas num processador utiliza a seqüência de passos busca-decodifica-executa, da seguinte forma:
- 1. Busca a próxima instrução da memória para o registrador de instrução;
- 2. Atualiza o contador de programa para que ele aponte para a instrução seguinte;
- 3. Determina o tipo de instrução;
- 4. Se a instrução utiliza dados na memória, determina localização;
- 5. Busca os dados, se houver algum, para os registradores internos da CPU;
- 6. Executa a instrução;
- 7. Armazena os dados em locais apropriados;
- 8. Volta para o passo 1.
- Estado da Arte::
- Um dispositivo lógico programável em um único circuito integrado é chamado de microprocessador. Em 1971, foi lançado o primeiro microprocessador comercial, o Intel 4004, e este é o design prevalente para processadores até os dias atuais. Quando há duas ou mais unidades de processamento (núcleos) em um único componente, este é chamado de processador multinúcleo. Atualmente, microprocessadores projetados para sistemas-em-um-chip, computadores pessoais e servidores utilizam até 32 núcleos operando a uma frequência de até 4 GHz, enquanto sistemas embarcados e supercomputadores se utilizam de processadores manycore, contendo um grande número de núcleos independentes projetados para um alto grau de capacidade de computação paralela.
- Integrações:
- Barramentos: acessados por diversos dispositivos, realizam também a transferência de dados entre processador e memória;
- Memória: é onde são armazenadas as instruções a serem executadas pelo processador;
- Placa-mãe: é a peça onde se localizam os barramentos necessários para comunicação com o processador;
- Dispositivos de Entrada e Saída: enviam instruções através da controladora, que dá acesso ao barramento do computador;
- Sistema Operacional: camada de software entre o hardware e software do computador, gerencia processador, memória e dispositivos, além de outros componentes.
- Relação com o vídeo 1 (Porta Lógica “E” ou “AND” CI. 7408 - ETB):
- São considerados circuitos lógicos dispositivos como ULAs, UCs, registradores, processadores, até microprocessadores completos, podendo estes conter mais de 100 milhões de portas lógicas. A quantidade de portas lógicas influencia o aquecimento do processador.
- Relação com o vídeo 2 (Warriors of the Net - Portuguese):
- O processamentos dos pacotes de dados enviados pela rede pode ser realizado tanto por um circuito integrado de aplicação específica quanto pela CPU, de acordo com a necessidade de processamento da tarefa.
- Dispositivos roteadores contém uma quantidade significativa de poder de processamento, dada a quantidade considerável de pacotes de dados que deverá ser processada além das operações rotineiras do computador.
- Referências:
- http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_org_arq_comp.pdf
- http://www2.ic.uff.br/~boeres/slides_FAC/FAC-conceitos-basicos-UCP.pdf
- https://books.google.com.br/books?id=yFcaBQAAQBAJ
- http://www2.ufba.br/~romildo/downloads/ifba/so.pdf
- http://iris.sel.eesc.usp.br/sel433a/Micros.pdf
- http://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/089065-t2.pdf
- http://revista.universo.edu.br/index.php?journal=1reta2&page=article&op=view&path%5B%5D=1197&path%5B%5D=901
- http://www.edilms.eti.br/uploads/file/infrahdw/Hdw_Unidade03-2-Processador-UCP.pdf
Protocolos
- Conceito:
- Conjunto de regras que permite a conexão, comunicação e transferência de dados entre dois sistemas computacionais, sendo implementados pelo hardware,
software, ou pela combinação de ambos. Protocolo é a "língua" dos computadores, ou seja, uma espécie de idioma que segue normas e padrões determinados. É através dos protocolos que é possível a comunicação entre um ou mais computadores. Os protocolos de rede nasceram da necessidade de conectar equipamentos de fornecedores distintos, executando sistemas distintos, sem ter que escrever a cada caso programas específicos.
- Funcionamento:
- Com base no modelo OSI (Open System Interconnection) que divide as redes de computadores em 7 camadas (Em ordem decrescente: Application > Presentation > Session > Transport > Network > Data Link > Physical), os protocolos estão divididos, associados e atuando em cada uma dessas camadas. O objetivo de cada camada 'n' é fornecer informações ás camadas superiores, trocando essas informações com a camada 'n' correspondente em outras máquinas.
Dentre as principais funções dos protocolos estão a especificação clara do ponto de destino de mensagens e dados, estabelecimento de conexão entre a fonte e o destino, controle de fluxo e de erros, retransmissão de dados, e confirmação da recepção destes dados. Os protocolos são divididos em dois tipos principais: Abertos (Podem se comunicar com outros protocolos independente da plataforma (Windows, Linux, e etc) e Proprietários (Comunicam-se apenas com uma plataforma padrão), e executam dois tipos de serviços diferentes: Orientados á conexão (Onde ocorre o processo de handshaking, que confere se os pacotes de dados serão enviados e recebidos com segurança e sem perdas) e os Não Orientados á conexão (Onde não há handshaking, e portanto, não há garantia da chegada de todos os pacotes de dados). Apenas protocolos mais simples são executados de maneira independente, com a maioria deles sendo executadas em duplas ou conjuntos maiores, formando as chamadas "Pilhas de Protocolos". A pilha de protocolos mais conhecida é chamada TCP/IP, cujo nome é derivado dos protocolos Transmission Control Protocol (que em português é literalmente Protocolo de Controle de Transmissão) e IP (Internet Protocol, o Protocolo da Internet). Essa pilha, por sua vez, segue um modelo próprio de 4 camadas (Application > Transport > Web > Interface) e os principais protocolos que a compõe são:
1)HTTP - Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto, que transforma os códigos em HTML em Hípermídia, que consiste não só em texto mas em imagens, vídeo, e outros recursos visuais.
2)FTP - File Transfer Protocol ou Protocolo de Transferência de Arquivos, por trás dos processos de upload e download.
3)ARP - Adress Resolution Protocol ou Protocolo de Resolução de Endereços, que relaciona o endereço lógico (IP) ao endereço físico (MAC) das máquinas.
4)ICMP - Internet Control Message Protocol ou Protocolo de Mensagem de Controle da Internet, permite gerenciar as informações relativas aos erros nas máquinas conectadas.
5)IP - Internet Protocol ou Protocolo da Internet, atribui um endereço numérico a cada dispositivo conectado á uma rede de computadores.
6)TCP - Transfer Control Protocol ou Protocolo de Controle de Transferência, permite gerenciar os dados vindos ou destinados á outra camada.
7)UDP - User Datagram Protocol ou Protocolo de Datagrama do Usuário, envia pacotes de dados sem garantia de que cheguem seguros ou completos.
8)SMTP - Simple Mail Transport Protocol ou Protocolo de Transporte de Emails Simples, usado para envio de Emails.
9)DNS - Domain Name System ou Sistema de Nome de Domínio, converte o endereço de um site em IP, permitindo assim a identificação e acesso ao mesmo.
- Estado de Arte e Integrações:
- Os protocolos são fundamentais e indispensáveis se tratando de rede e comunicação de sistemas e computadores modernos, estando integrados em todas as áreas das tecnologias de informação e representando um padrão seguido por elas na atualidade.
- Referências Bibliográficas
- Extra:
No vídeo Warriors of Net (https://www.youtube.com/watch?v=e6SU42eP7e4&feature=youtu.be), vemos os protocolos representados como a série de regras e exigências seguidas pelos pacotes de dados, que permitem um encaminhamento o mais próximo possível de seguro e sem perdas até o destino final.
PWA
RA
- Conceito:
- Realidade Aumentada é uma tecnologia que permite a imersão do usuário ao meio virtual, possibilitando que haja maior interação com um ambiente criado por meio de computação. Esta faz possível a interação dos mundos físico e os desenvolvidos virtualmente.
- Funcionamento:
- Essa tecnológia não se restringe a apenas uma maneira de realização, ou seja, pode ser executada de inúmeras formas. Algumas delas são por meio de etiquetas QR e rastreamento de imagem.
- O primeiro deles, a etiqueta serve como porta de entrada ao software, onde é lida e as informações referentes são transmitidas ao usuário e o aplicativo é responsável pela leitura e processamento do código contido na mesma.
- Essa tecnológia não se restringe a apenas uma maneira de realização, ou seja, pode ser executada de inúmeras formas. Algumas delas são por meio de etiquetas QR e rastreamento de imagem.
- No segundo caso o software é programado por meio de objetos, imagens e sinais capturados por câmeras, ou seja, são informações obtidas do mundo real. Assim que as recebe, o programa apenas as processa, interpreta e exibe os resultados.
- Estado da Arte:
- Devido ao grande avanço nessa tecnologia, podemos vê-la atualmente integrada à dipositivos e aplicativos, exemplos destes são o HoloLens e Google Glass, sendo atualmente sinônimos de tecnologia de ponta.
- Integrações:
- A Realidade Aumentada depende de três componentes básicos para existir, sendo eles:
- Um objeto real com uma marca de referência, para que seja possível interpretar e criar sua versão virtual;
- Dispositivo que transmita a imagem do objeto a ser virtualizado;
- Software capaz de interpretar o sinal de imagem transmitido pelo pelo dispositivo
- A Realidade Aumentada depende de três componentes básicos para existir, sendo eles:
- Fontes:
Raspberry
- Conceito:
- O Raspberry Pi é basicamente um micro-computador, que pode ser conectado, assim como um computador, a um monitor/TV, junto de periféricos, e utilizado da forma que o usuário quiser. Muito utilizada para aqueles que querem possuir uma Smart-TV, porem não querem adquirir a mesma. Neste caso, é comum a utilização de um Raspberry ou algum variante do mesmo.
- Ele é pequeno, fácil de usar e possui diversas funcionalidades. Alem disso, também existem vários projetos variados que utilizam essa tecnologia, como os ligados à robótica e automação por exemplo.
- Funcionamento:
- A estrutura do Raspberry é muito similar a de um computador, com Chip, CPU, Memória Ram, GPU, Wireless e Bluetooth. Apenas ligando em uma fonte de energia e os periféricos básicos, ele já vem integrado com um S.O. próprio chamado Raspbian, baseado em Debian (Linux).
- A partir disso, é possível criar ilimitadas possibilidades de sua utilização, desde a transformação de uma TV em Smart-TV, até incríveis automações.
- Dado o tipo de hardware de baixo consumo, o Raspberry não é o computador ideal para games e para softwares mais complexos, por exemplo. Ao contrário de um computador comum, ele conta com processadores construídos a partir dos designs ARM, que são ideais para máquinas genéricas, sistemas de controle e unidades que geram menos calor e ao mesmo tempo, gastam menos energia.
- Estado da Arte::
- A última versão do Raspberry, é o Raspberry Pi 3 lançado no dia 29 de fevereiro de 2016. Este é o primeiro modelo que utiliza um Chip Broadcom BCM2837 que contem um processador 1.2GHz 64-bit quad-core ARMv8 CPU, 1 GB de RAM e Bluetooth 4.1.
- Atualmente o Raspberry possui seu sistema operacional oficial, chamado Raspbian, entretanto este também é compatível com sistemas operativos baseados em GNU/Linux e Windows 10 IoT versão gratuita e adaptada para IoT.
- A partir deste ultimo modelo, ainda são criadas inúmeras variedades de utilização da tecnologia, como robôs e ate mesmo video-games, como por exemplo, a versão miniatura do Nintendo 64.
- Integrações:
- O Raspberry possui relação com o famoso Arduino, sendo também muito utilizado na área da robótica. Entretanto, o Raspberry tenta ser bem mais moderno, com suas pré-instaladas portas de acesso USB, saídas de vídeo e entre várias, isso porque ele tenta ser um computador pessoal barato e simples, diferente do Arduino. Porem eles possuem uma grande relação, o Raspberry teve suas raízes no mesmo microcontrolador que o Arduino utiliza, o ATmega.
- Muito utilizado no desenvolvimento de soluções envolvendo Internet das Coisas.
- Fontes:
- Relação com o vídeo da aula:
- O tema Raspberry possui relação com o primeiro e o segundo vídeo passados em aula. No primeiro vemos o exemplo da porta lógica "E", algo que está presente no micro processador ARM nos Raspberrys, porem de uma forma bem mais reduzida e numerosa. Alem disso, a relação com o segundo vídeo é a que o Raspberry possui conexão com a rede, e dessa forma, é capaz de enviar e receber pacotes, através de suas portas, assim como qualquer outro computador.
Redes Sociais
Definimos sites de redes sociais como serviços baseados na Web que permitem aos indivíduos: (1) construir um perfil público ou semi-público dentro de um sistema limitado, (2) articular uma lista de outros usuários com os quais compartilham uma conexão e (3) visualizar e percorrer sua lista de conexões e aquelas feitas por outras pessoas dentro do sistema. A natureza e a nomenclatura dessas conexões podem variar de site para site. O modelo matemático para mostrar as conexões entre os usuários se chama Grafos. A teoria dos grafos serve para mostrar a relação de dois subconjuntos, vértices (no caso das redes sociais os vértices representam os usuários) e as arestas (que representam as conexões entre os usuários). Existem vários tipos de redes sociais portanto as representações podem necessitar de tipos diferentes de grafos, como Grafos simples, onde cada aresta conecta um par de vértices, grafos dirigidos, onde cada cada par de vértices ( nós terminais) pode ser conectado por mais de uma aresta direcionada, entre outros tipos de grafos.
O que torna os sites de redes sociais únicos não é o fato de permitirem que os indivíduos encontrem estranhos, mas sim de permitir que os usuários articulem e tornem visíveis suas redes sociais. Isso pode resultar em conexões entre indivíduos que, de outra forma, não seriam feitos, mas esse nem sempre é o objetivo, e essas reuniões são freqüentemente entre “laços latentes” (Haythornthwaite, 2005) que compartilham alguma conexão offline. Em muitos dos grandes SNSs, os participantes não estão necessariamente “em rede” ou procurando conhecer novas pessoas; em vez disso, eles estão se comunicando principalmente com pessoas que já fazem parte de sua rede social estendida. Para enfatizar essa rede social articulada como um recurso crítico de organização desses sites, os rotulamos de "sites de redes sociais".
Enquanto os SNSs (redes sociais) implementaram uma ampla variedade de recursos técnicos, seu backbone consiste em perfis visíveis que exibem uma lista articulada de "amigos" que também são usuários do sistema. Os perfis são páginas únicas onde se pode “digitar” (Sundén, 2003, p. 3). Depois de ingressar em um SNS, um indivíduo é solicitado a preencher formulários contendo uma série de perguntas. O perfil é gerado usando as respostas a essas perguntas, que geralmente incluem descritores como idade, localização, interesses e uma seção sobre "sobre mim". A maioria dos sites também incentiva os usuários a fazer upload de uma foto de perfil. Alguns sites permitem que os usuários aprimorem seus perfis adicionando conteúdo multimídia ou modificando a aparência de seu perfil. Outros, como o Facebook, permitem que os usuários adicionem módulos (“Aplicativos”) que melhorem seu perfil.
A visibilidade de um perfil varia de acordo com o site e de acordo com a discrição do usuário. Por padrão, os perfis no Friendster e no Tribe.net são rastreados pelos mecanismos de pesquisa, tornando-os visíveis para qualquer pessoa, independentemente de o espectador ter ou não uma conta. Alternativamente, o LinkedIn controla o que um espectador pode ver com base em se ele ou ela tem uma conta paga. Sites como o MySpace permitem que os usuários escolham se querem que seu perfil seja público ou “Somente amigos”. O Facebook adota uma abordagem diferente - por padrão, os usuários que fazem parte da mesma “rede” podem visualizar os perfis uns dos outros, a menos que sejam proprietários de perfis decidiu negar permissão para aqueles em sua rede. Variações estruturais em torno da visibilidade e do acesso são uma das principais formas pelas quais os SNSs se diferenciam uns dos outros.
Sites de Redes Sociais - Vantagens
1. Obtenha um feedback instantâneo: empresas, organizações e indivíduos podem receber feedback imparcial da massa. Isso permite que muitos produtos sejam apresentados, enriquecidos com base em insumos valiosos do mercado.
2. Mundos Virtuais: Muitas pessoas gostam de retratar uma imagem diferente na net diferente da sua vida real. Mundos virtuais (secondlife, twinity, smallworlds etc.) podem permitir as pessoas realizarem suas fantasias em ambientes construtivos e controlados.
3. Razões Pessoais: O fato básico de que alguém entra em uma rede social é que ele quer ficar conectado com seus amigos, independentemente de onde quer que ele viaje ao redor do mundo.
4. Pesquisa de emprego: as pessoas podem pesquisar na sua rede para encontrar mais desafios e realização de trabalhos com base em suas habilidades e experiência.
5. Pesquisas: Consenso pode ser obtido por meio de pesquisas on-line para diversos tópicos em que as opiniões e as visualizações podem ajudar a tomar decisões.
6. Negócios; a.Marketing: Com o marketing na internet sendo um buzz hoje, sites de redes sociais têm se tornado um importante centro de vendas de produtos e serviços e também para divulgar seu produto. Isto pode ser feito através de anúncios e / ou banners, etc. As empresas podem ter teasers em um espaço específico antes do lançamento de qualquer novo produto em tais sites de redes sociais. b. Conectando-se com os clientes: as empresas podem entrar em contato diretamente com seus clientes através de sites de redes sociais. 7 Data mining.
Sites de Redes Sociais - Desvantagens
1. Segurança: A segurança é uma das principais preocupações dos sites de redes sociais. Desde os usuários exibir suas informações pessoais; nome, localização, idade, sexo, fotografias, etc. há uma probabilidade de que esta informação possa ser mal utilizada ou possa ser usada para cometer crimes on-line ou Atividades ilegais. Portanto, todos esses sites devem ser protegidos contra hackers e devem ter o tipo certo de níveis de acesso definidos. Apenas o tipo certo de pessoas pode acessar o conteúdo.
2. Assédio on-line e perseguição: Como as informações pessoais sobre os usuários estão facilmente disponíveis em sites de redes sociais, existe o risco de postagens mal-intencionadas.
3. Identidade falsa: Além disso, muitas pessoas fingem ser outra pessoa e preparam seus perfis on-line com informações falsas, de modo a enganar os desavisados.
4. Data mining
Fake news; a disseminação de noticias falsas para causar confusao ou influenciar as pessoas.
Fontes;
https://academic.oup.com/jcmc/article/13/1/210/4583062
http://samvad.sibmpune.edu.in/index.php/samvad/article/viewFile/98234/71371
Redes de Computadores

- Conceito:
- As redes de computadores podem ser definidas como duas ou mais máquinas conectadas, por estruturas físicas (equipamentos) e lógicas (programas, protocolos), de forma que possam compartilhar informações entre si. Elas são projetadas com o objetivo de compartilharem recursos de hardware e software e viabilizar a troca de informações entre os seus usuários. Os meios mais comuns para a transmissão dos dados são por cabos, via satélite e redes sem fio (wireless).
- Funcionamento:
- Cada rede de computadores possui características próprias como, quantidade de máquinas conectadas, tecnologias utilizadas, alcance e finalidade. Para facilitar a criação de redes, elas são separadas por categorias e podem ser classificadas pelo meio físico de transmissão de dados, a dimensão da rede, a capacidade de transferência de informação.
- Quanto à dimensão da rede, ela pode ser classificada como LAN, WAN, MAN, CAMPUS, WLAN, VLAN, SAN, VPN, PAN.
- As LAN's (Local Área Network) são redes pequenas, que podem variar entre 10 metros à 1 Km de distância. São muito utilizadas em residências, empresas de pequeno porte.
- WAN (Wide Area Network) são redes de longa distância e podem ligar desde um país a todo o planeta, como a Internet por exemplo.
- MAN (Metropolitan Area Network) são redes com um alcance um pouco maior que a LAN e menor que a WAN. Normalmente liga várias LAN's dentro de uma mesma cidade, como diferentes pontos de uma mesma empresa.
- WLAN (Wireless Local Area Network) são redes de curta distância sem fio.
- SAN (Storage Area Network) são redes de armazenamento, usados para ligações de curta distância entre dispositivos e servidores de massivo armazenamento.
- Para que haja uma rede que permita a comunicação, são necessários, no mínimo, 2 itens. O primeiro é um meio para a propagação dos dados, como os cabos para as redes com fio, ou a própria atmosfera para as redes sem fio. O segundo item são os chamados protocolos, eles são códigos ou padrões específicos que são emitidos por um sistema de perguntas e respostas. Esses padrões definem o formato e a ordem das mensagens trocadas entre duas ou mais entidades em uma rede, bem como as ações que são realizadas na transmissão e/ou no recebimento de uma mensagem. Todas as atividades na Internet que envolvem duas ou mais entidades que se comunicam, são governadas por um protocolo. Um exemplo é: HTTP

- Há outra classificação para as redes, que são suas topologias. Elas são as estruturas físicas do componentes, cabos e computadores. Existem dois tipos de topologias, a lógica e a física. A primeira representa o modo que os dados trafegam na rede, já a segunda possui mapas que mostram a localização de cada um dos componentes presentes na rede.
- A Topologia de Anel é um modelo em que os computadores são interligados em forma de anel e os dados são transmitidos de máquina em máquina até chegar ao computador de origem. Ele é muito utilizado atualmente em automação industrial e foi muito utilizado também na década de 1980 pelas redes Token Ring da empresa IBM.
- A Topologia Ponto-a-Ponto são máquinas interconectadas por pares por meio de um roteamento de dados.
- A Topologia de Estrela consiste em um ponto central para a localização dos dados, geralmente um hub ou um switch.
- A Topologia de Barramento foi muito utilizada no início das redes Ethernet, e consiste nos computadores ligados de maneira linear, em que o cabeamento é feito de maneira sequencial.

- Estado da Arte::
- Atualmente tem-se como estado mais avançado das redes de computadores os cabos de fibra óptica, para redes com fio, que são feixes de "fios de vidro" revestidos em duas camadas de plástico reflexivo. Uma fonte de luz é ligada e desligada rapidamente em uma das extremidades do cabo, essa luz viaja pelo fio utilizando o princípio físico da reflexão total da luz. As vantagens de utilizar esse tipo de cabeamento é que a transmissão ocorre de maneira bem mais veloz que nos cabos de cobre, são imunes às interferências eletromagnéticas, tem maior segurança de sinal e uma instalação facilitada. Em contrapartida, o custo é elevado, as fibras são mais frágeis, tem maior dificuldades para ramificações.
- Para as redes sem fio, o estado elevado que se tem atualmente são as redes wireless, ou popularmente conhecida wifi, são redes que não necessitam de um meio físico para a propagação dos dados, o meio utilizado é a atmosfera.
- Integrações:
- As redes de computadores dependem de várias outras tecnologias para seu funcionamento como, switchs, hubs, placas de rede, roteadores, servidores, etc, e cada um desses exercendo uma função diferente em um ambiente específico.
- Os hubs, por exemplo, são dispositivos são dispositivos que captam e concentram os dados da rede e depois os distribui entre as outras máquinas, durante esse processo nenhuma máquina consegue enviar algum sinal até que a distribuição dos dados tenha sido finalizada. Os hubs são mais utilizados em redes domésticas, podendo ter de 8 a até 32 portas, e existindo com 4 modelos diferentes, os ativos, passivos, empilháveis e inteligentes.
- Os switchs são aparelhos semelhantes aos hubs, porém funcionam como pontes, ou seja, ele envia dados apenas para a máquina que o solicitou. Possui também muito mais portas de entrada e um melhor desempenho, fazendo com que dessa forma, seja possível sua utilização em redes maiores.
- As placas de rede são dispositivos que permitem a comunicação entre os computadores pertencentes àquela rede. Como cada rede tem uma arquitetura, então elas dependem de placas específicas, sendo as mais comuns, placas do tipo Ethernet e Token Ring (rede em anel).
- As redes de computadores dependem de várias outras tecnologias para seu funcionamento como, switchs, hubs, placas de rede, roteadores, servidores, etc, e cada um desses exercendo uma função diferente em um ambiente específico.
- Referências:
- https://www.algosobre.com.br/informatica/redes-de-computadores-nocoes-basicas.html
- http://www.okconcursos.com.br/apostilas/apostila-gratis/130-informatica-para-concursos/1658-introducao-a-redes-de-computadores#.WtNsg4jwaUl
- http://docente.ifrn.edu.br/moisessouto/disciplinas/infraestrutura-de-redes-de-computadores/slides/slides/aula-01-conceitos-de-redes-de-computadores/view
- http://redesecomunicacaonuno11i.blogspot.com.br/2012/11/classificacao-das-redes-de-computadores.html
- https://www.oficinadanet.com.br/artigo/redes/o-que-e-fibra-otica-e-como-funciona
- No vídeo Dawn of the Internet, é possível notar que as redes de computadores estão em todo o vídeo, visto que são elas juntamente com suas interações o caminho utilizado pelos pacotes desde a LAN até o servidor web e no caminho de volta.
Redes Neurais
- Conceito:
- Redes Neurais são processadores que são projetados baseando-se na estrutura do cérebro humano, elas podem ser criadas virtualmente (como um software) ou fisicamente (como um processador que simula a estrutura cerebral), para simular um cérebro uma grande quantidade de “neurônios artificiais”, que são basicamente unidades de processamento, são associados e distribuídos de forma paralela, o que permite que uma rede neural possa processar grandes quantidades de informação simultaneamente, ou então processar uma mesma informação de várias formas diferentes ao mesmo tempo.Esse processamento em paralelo permite que as redes neurais desenvolvam certas características como:
- Aprendizagem e Adaptabilidade: uma Rede Neural, diferente de um processador comum, não tem uma programação definitiva que define qual será sua utilidade desde o início, em vez disso ela passa por um processo de aprendizado mediado por uma fonte externa (algoritmo de aprendizagem) que irá definir o que fazer em determinada situação, mas que não irá limitar ela a fazer somente aquilo que foi inicialmente aprendido, o que permite que uma rede neural possa futuramente passar por outro processo de aprendizado, que a permitirá realizar novas ações, sem a necessidade de passar por um processo de reprogramação.
- Tolerância a Falhas: uma rede neural física pode potencialmente resistir a falhas que seriam muito graves para um processador comum, como um curto circuito em uma unidade de processamento, essa resistência é possível devido ao processamento em paralelo das redes neurais, que faz com que a informação que passa por ela seja transmitida por vários canais diferentes, por causa disso, caso ocorra uma falha a rede apenas sofrerá uma queda de desempenho em vez de uma falha total, vale dizer que uma rede neural ainda pode ser inutilizada por falhas desse tipo, mas para isso a falha teria que ocorrer em uma escala muito maior.
- Devido a seu processamento e às várias características inerentes de uma rede neural, as redes neurais podem ser aplicadas em várias tecnologias que precisem de uma programação adaptável ou que exijam o processamento de uma grande quantidade de informação em um período reduzido de tempo, como programas de Data Mining, de reconhecimento de voz, ou na programação de uma Inteligência Artificial.
- Redes Neurais são processadores que são projetados baseando-se na estrutura do cérebro humano, elas podem ser criadas virtualmente (como um software) ou fisicamente (como um processador que simula a estrutura cerebral), para simular um cérebro uma grande quantidade de “neurônios artificiais”, que são basicamente unidades de processamento, são associados e distribuídos de forma paralela, o que permite que uma rede neural possa processar grandes quantidades de informação simultaneamente, ou então processar uma mesma informação de várias formas diferentes ao mesmo tempo.Esse processamento em paralelo permite que as redes neurais desenvolvam certas características como:
- Funcionamento:
- O funcionamento de uma rede neural irá depender inicialmente de seu aprendizado, um algoritmo de aprendizagem ira simular uma situação desejada que será processada por todos os neurônios artificiais presentes na rede neural, e dependendo da resposta dada pelo neurônio artificial será gerado um sinal de erro ou de acerto, se o sinal retornado for um erro, um mecanismo de controle irá realizar ajustes no neurônio em questão para que o seu sinal de saída seja algo mais próximo da resposta desejada, esse processo se repetirá várias vezes até que o sinal enviado pelo neurônio retorne um acerto consistentemente.
- Após o processo de aprendizado a rede neural estará pronta para executar a função desejada, toda informação será processada simultaneamente pelos vários neurônios artificiais, caso seja desejado que a rede neural em questão realize outra função ela irá passar por outro processo de aprendizado, mas caso ocorra uma mudança inesperada na informação recebida pela rede neural, ela poderá realizar um processo de generalização, que irá permitir que a rede neural possa gerar uma resposta correta para uma situação que não foi inclusa no processo de aprendizado.
- Vale dizer que: o processo de generalização só é possível se a informação recebida ainda se encaixar nos resultados já aprendidos pela rede neural, e também que as redes neurais ainda necessitam de outros sistemas para que possam funcionar tal como o algoritmo de aprendizagem e o mecanismo de controle.
- Estado da Arte:
- Um exemplo recente de aplicação de redes neurais seria o Xulia, que é um programa de reconhecimento de voz que traduz a língua portuguesa para a interface de comandos de voz da Microsoft (que não é adaptada à língua portuguesa originalmente), o que permite que os brasileiros que não sabem falar as línguas suportadas pelo programa original possam utilizá-lo.
- Integrações:
- Data Minig
- IA
- Machine Learning
- Algoritmos
- Referencias:
- http://www.sourceinnovation.com.br/wiki/Temas_GSI003_-_2018-1
- https://books.google.com.br/books?hl=pt-BR&lr=&id=bhMwDwAAQBAJ&oi=fnd&pg=PP1&dq=redes+neurais&ots=07soNIRXJq&sig=dPh8J1c-ujc2RnKKgw_hZcqha7g#v=onepage&q=redes%20neurais&f=false
- http://www.novoser.org.br/xulia.html
- https://www.koreatimes.co.kr/www/tech/2018/02/133_244641.html
Renderização
- Conceito:
- O termo "renderizar" (do inglês to render) vem sendo usado na computação gráfica, significando converter uma série de símbolos gráficos num arquivo visual, ou seja, "fixar" as imagens num vídeo, convertendo-as de um tipo de arquivo para outro, ou ainda "traduzir" de uma linguagem para outra. Dessa forma, renderizar é o ato de compilar e obter o produto final de um processamento digital qualquer, na qual este processo é aplicado em programas de modelagem de edições.
- Funcionamento:
- Basicamente a principal característica da renderização é deixar o projeto mais realista, seu funcionamento depende inicialmente de qual processamento o indivíduo escolhe, dessa forma a renderização é muito importante, pois o processo de tratamento de vídeos, imagens e sons consomem muitos recursos dos processadores e da memória. Dessa forma, o funcionamento ocorre através de um software que trabalha com uma baixa resolução para mostrar uma visão "parcial" do resultado, para depois que estiver concluído ocorrer a renderização de todas as edições e tratamentos.
- Renderização de dimensões: a renderização de imagens ou vídeos com variações de dimensões (2D ou 3D) podem editar fotos em vídeos, passando elas de segunda dimensão para terceira dimensão. Para renderizar um cenário é fundamental definir os pontos de iluminação, os tipos de textura, sua cor, reflexão e transparência. Após isso, o software calcula pela renderização as sombras e a luz do objeto, além das perspectivas do plano.
- Renderização de áudios: muitos softwares permitem que o áudio seja editado para realizar tarefas como normalização, adição de ambiência por exemplo sons de natureza, animais, e efeitos como ecos,distorções e delays .Depois dessas edições nos softwares é feita a renderização e o trabalho é colocado em alta qualidade e assim concluído.
- Renderização de uma página web: a renderização de uma página web é um pouco complexa e para entende-la é necessário ter conhecimento de como cada browser renderiza sua página, pois ela depende da estrutura do código HTML e também das instruções do CSS, pois os dois são analisados pelo browser e transformados em "árvores" respectivamente que são as DOM e CSSOM, que são os processos já analisados dos códigos e instruções . A partir disso, o browser cria uma nova árvore chamada render tree que representa os elementos visuais da página, assim renderizando a página web.
- Estado da Arte:
- Existem centenas de programas de softwares, mas os mais populares no ramo da renderização é o Sony Vegas que tem uma série de versões, Cinema 4D, Adobe After Efects que são editores de vídeos, imagens e sons. Mas também, existem renderizadores no âmbito da arquitetura que é o Mental - Ray, V-Ray que produzem as edições de fotografias em vídeos que vem sendo inovadores.
- Integrações:
- Browser
- Algorítmos
- HTML
- CSS
- Referências:
- https://oprofessorweb.wordpress.com/2013/12/10/o-que-e-renderizar/
- https://blog.taller.net.br/entendendo-processo-renderizacao-pagina-web/
- https://pt.wikipedia.org/wiki/Renderiza%C3%A7%C3%A3o
- https://www.youtube.com/watch?v=6ZIVmk5IUHE
- http://tonka3d.com.br/blog/os-melhores-renders-usados-para-programas-3d/
Roteador
*Conceito: Seu nome é atribuído por conta de quando conectado à um modem ele é responsável por pegar os sinais do modem da sua banda larga e dividi-lo entre os dispositivos,o roteador ira “criar” uma rede interna, podendo assim compartilhar tal rede com outros diferentes dispositivos e consequentemente obtendo acesso à internet.Roteador tem como função primordial enviar e receber pacotes de dados, por meio de protocolos, de aparelhos diversos, como: smartphones, tablets e computadores, por uma rede interna que tenha conexão com internet.
*Video "Warriors of the net: Segundo o video "Warriors of the net", o roteador é um simbolo de controle,sendo ele metódico e bastante preciso, ademais, o roteador local lê p endereço dos pacotes, e quando necessário, ele recolhe tais pacotes e os lança em outra rede.Fora isso, uma vez passado pelo Firewall, o roteador ira recolher os pacotes e ira lançar eles em uma "Banda larga", muito mais criteriosa, e só depois disso estaremos prontos para adentrar o "mundo da internet".
*Funcionamento: O roteador,multiplica conexões, ademais,realiza o processamento das melhores rotas para enviar pacotes de dados, garantindo que seus sinais cheguem ao destino final de maneira mais rápida. É um equipamento usado para fazer a ligação de protocolos, a comunicação entre diferentes redes de computadores provendo a comunicação entre computadores distantes entre si. Uma característica estética muito comum em roteadores é a posse de antenas em sua construção, e que têm uma função muito importante em relação à amplificação de sinal, em contrapartida, a quantidade de antenas não irá trazer benefícios muito significativos em relação ao alcance do roteador à outros dispositivos, o beneficio maior será na precisão do sinal. Uma ressalva muito importante é lembramos que o sinal wifi emitido pelo roteador dual band, opera em 2 frequências divergentes,cada uma com uma com funcionalidadade especifica, sendo essas frequências de 2.4GHz e 5 GHz respectivamente, onde a de menor frequência possui mais interferência com outros aparelhos eletrônicos sem fio,por conta de usarem a mesma freqüência, e seu carro chefe é disponibilizar um alcance maior, entretanto com uma velocidade menor,já a de maior frequência possui uma velocidade maior em relação à de 2,4 GHz e sofre menos com o problema de interferência, pois menos aparelhos utilizam- a, no entanto com um alcance bastante reduzido.Vale lembrar também que existem dois tipos de roteadores, os estáticos e os dinâmicos. Os estáticos são aparelhos mais baratos, que funcionam priorizando a rota mais curta para o envio de pacotes de dados,sendo assim, não levando em conta possíveis congestionamentos na transmissão nas redes, já os dinâmicos são mais caros e sofisticados, funcionam fazendo uma avaliação prévia das condições das rede, ademais, priorizam as rotas mais eficientes,deste modo, conseguem evitar vias de acesso que encontram-se congestionadas pelo excesso de dados. Roteadores possuem diferentes valores em suas potencias de transmissão, estesvalores indicam a potência (ou capacidade) de transmissão do roteador e isso influenciará diretamente com a velocidade da sua conexão, este valor tambem indicará qual o limite da capacidade do roteador transferir e manusear dados baseado na velocidade da sua internet. Para calcular a real capacidade do roteador, é necessário dividirmos por 8 o valor de Mbps (megabit por segundo) que é informado pelo fabricante, pois assim teremos o valor em Megabytes por Segundo. Em um âmbito que tange a segurança nas redes, é extremamente importante citar o papel do roteador nessa efera. Praticamente todos os roteadores usam os mesmos padrões de segurança ,o que realmente faz difença na segurança da sua conexão é o protocolo (criptografado) de segurança adotado e a “força” da senha escolhida pelo usuário.Os protocolos mais comuns são: WEP, WPA e WPA2, indubitavelmente o mais usado é o WPA2, por possuir o famoso AES(Advanced Encryption Standard), que seria um padrão de criptografia avançado,mesmo que o invasor já tenha acesso a rede ele irá levar de 2 à 14 horas no mínimo para conseguir realmente invadir a rede.
*Estado da Arte: O roteador RT-AC5300 da ASUS é hodiernamente considerado o melhor do mercado ele trabalha em três bandas: capaz de entregar velocidades de até 1 Gbps na banda de 2,4 GHz e até 2,167 Gbps em cada uma das duas bandas 5 GHz. Portanto o roteador possui 5,3 Gbps no total. As oito antenas do roteador da ASUS estão montadas num esquema 4×4 MIMO com tecnologia AiRadar. desta forma cobrindo uma área de cerca de 500 m².
*Integrações: O roteador é altamente dependente do Modem, pois ele seria a “ponte” entre a conexão local e a internet basicamente. O roteador pode ter interação com inúmeras tecnologias, sejam elas wireless ou não,desde que tenham conectividade com a internet,isso é, desde uma impressora até um celular ou câmera de segurança.
https://www.howtogeek.com/234233/whats-the-difference-between-a-modem-and-a-router/
https://patents.google.com/patent/US5309437A/en
https://www.hardware.com.br/artigos/basico-entendendo-rotesdores-wireless/
https://www.makeuseof.com/tag/10-crucial-features-use-wireless-router-setup-home/
https://geek360.com.br/melhores-roteadores-wifi/
http://www.fazfacil.com.br/manutencao/roteador/
https://www.magazineluiza.com.br/portaldalu/roteadores-o-que-sao-pra-que-servem/308/
http://www8.hp.com/br/pt/campaigns/wireless-printing-center/wireless-network-help4.html
Satélite
- Conceito:
Satélite é um corpo que orbita,de maneira natural ou artificial, outro corpo de massa maior. Podemos definir os satélites artificiais como artefatos feito pelo homem e que orbitam nosso planeta e outros corpos celestes, como a Lua, o Sol ou outros planetas.
Existem diversos tipos de satélites, cada um com sua função. Por causa da cobertura global dos satélites, grande parte dos satélites que estão em funcionamento se destinam aos meios de comunicação. Os satélites de comunicação são utilizados para a transmissão do sinal de rádio, televisão e telefone, de internet e outros serviços.
Os satélites meteorológicos têm como função principal fornecer dados e imagens que permitem monitorar e prever as condições meteorológicas do planeta.
Os satélites astronômicos servem para observar os objetos celestes sem a interferência da atmosfera terrestre, que são basicamente telescópios colocados no espaço e que permitem a observação dos fenômenos do Universo em diversos comprimentos de onda (como luz visível, raios X, infravermelho e raios gama). Isso permite que eles sejam usados para fotografar os planetas do sistema solar, descobrir a composição das estrelas e estudar fenômenos que acontecem muito distante de nós, como buracos negros e quasares, dentre outras aplicações.
As estações espaciais, que também são um tipo satélite, são espaçonaves capazes de suportar uma tripulação no espaço durante um período estendido de tempo, onde outras espaçonaves podem ancorar. Elas são utilizadas para estudar os efeitos causados pela longa permanência de seres humanos no espaço e servem como plataforma para diversos estudos que não seriam possíveis em outras naves ou na Terra, como, por exemplo, experimento na microgravidade.
Os satélites militares são utilizados para captar e retransmitir a comunicação entre as forças bélicas (como aviões, navios e submarinos). Os satélites de reconhecimento são tipos de satélites militares utilizados para fornecer informação de inteligência sobre outros países. Basicamente existem quatro tipos de satélites de reconhecimento. O primeiro utiliza imagens do território inimigo para detectar eventuais áreas de lançamentos de mísseis e movimentação de armas. O segundo tipo é o satélite que funciona como radar, detectando movimentação mesmo através das nuvens. O terceiro são satélites super sofisticados que permitem capturar o sinal de rádio e microondas emitido em qualquer parte do mundo. E por fim os satélite militares de comunicação que fazem a comunicação muito mais rápido transmitindo dados de satélites espiões para estações de recepção na Terra.
- Funcionamento:
Como as ondas eletromagnéticas viajam em linha reta, a curvatura da Terra não permite que duas regiões distantes do globo se comuniquem diretamente. Por isso, o sinal é transmitido para o satélite que realiza a recepção e transmissão de dados através de um aparelho chamado transponder. Este aparelho recebe o sinal enviado da Terra, o amplifica, processa e então retransmite de volta para outras regiões, permitindo, assim, a comunicação global. Para fazer a cobertura simultânea de praticamente todos os pontos do globo foi criado o conceito de "constelação de satélites", que formam uma espécie de rede que envolve todo o mundo.
Dependendo da função, os satélites são colocados em órbitas de diferentes altitudes. A maioria se encontra em uma órbita geoestacionária, em que sua rotação acompanha a rotação da Terra. Os satélites meteorológicos estão geralmente localizados nessas órbitas, de onde se tem uma visão constante da mesma área, que também é bastante utilizada nos meios de comunicações. Os satélites do Sistema de Posicionamento Global (GPS) fazem órbitas semissíncronas, uma órbita praticamente circular na qual o satélite leva doze horas para completar uma revolução. Por isso, a cada 24 horas o satélite passa sobre o mesmo ponto no Equador duas vezes.
- Estado da Arte:
Atualmente os satélites artificiais conseguem receber e transmitir dado pelo todos os pontos do planeta, facilitando, assim, os meios de comunicação, científico, militar e também de posicionamento. Exemplos de aplicações recentes são o GLONASS que é um sistema de navegação global por satélite (GNSS) russo e o NAVSTAR/GPS dos Estados Unidos. Atualmente são os dois únicos sistemas GNSS completamente operacionais.
- Integrações:
Os satélites artificiais interagem com os meios de comunicação como a televisão, rádio, a internet, com as redes de computadores, redes militares e no meio científico.
Todo satélite depende de um controle de posição, antenas para que ocorra a transmissão e recepção de dados, um sistema operacional que controle as funções do satélite e uma fonte de energia, que geralmente é obtida a partir do Sol por painéis solares.
- Referências:
https://pt.wikipedia.org/wiki/Sat%C3%A9lite_artificial
http://www.scielo.br/pdf/rbef/v30n1/a11v30n1
https://pt.wikipedia.org/wiki/GLONASS
Scrum
- O que é
Scrum é um framework simples e ágil para gerenciamento de projetos complexos. Normalmente é usado quando há pouco conhecimento dos requisitos e/ou uma tecnologia complexa, difícil de ser dominada, havendo a formação de um cenário caótico, no qual o Scrum é melhor aplicado. Possui 3 pilares fundamentais, sendo eles: transparência, inspeção e adaptação. A transparêcia é bem nítida no Scrum, possibilitando a todos terem conhecimento dos requisitos, dos processos e do andamento dos projetos. A inspeção também é algo constante, tanto em reuniões diárias como em sprint reviews (momento e quem o Scrum Team inpeciona a ultima Sprint e cria um plano de melhorias para a próxima), para detectar indesejáveis variações, porém não pode ser frequente a ponde de atrapalhar o andamento dos processos. E a adaptação pode ser vista de duas formas: a primeira é que o produto a ser construído sofre adaptção constante conforme as mudanças vão acontecendo e sendo necessárias e a segunda é que, preservando valores e práticas, pode-se adaptar o Scrum à realidade da empresa.
- Como funciona
- No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints.
- O Time Scrum (composto por um Product Owner, uma Equipe de desenvolvimento e um Scrum Master) é auto-organizável e multifuncional, ou seja, escolhe a melhor forma para realizar seu trabalho e possui todas as competências, não dependendo de outros fora da equipe.
- O Product Owner é responsável por maximizar o valor do produto e o trabalho da equipe, além de ser o único que pode gerenciar o Product Backlog (lista contendo todas as funcionalidades desejadas para um produto). A equipe de desenvolvimento reporta-se somente a ele.
- Na Equipe de desenvolvimento ou Scrum Team, não há função específica para seus integrantes, todos são desenvolvedores independente da tarefa que realizem. Deve conter entre 3 e 9 integrantes, de modo a não ser pequena a ponto de haver restrições de habilidades, nem tão grande a ponto de ser complicada de gerenciar, embora haja casos que são formadas equipes maiores.
- Já o Scrum Master, age com um facilitador do Daily Scrum (reunião diária feita pela equipe para transmitir o que foi foi no dia anterior), e deve garantir que o Scrum seja entendido e aplicado. Deve comunicar claramente os objetivos e itens do Product Backlog, treinar a equipe em autogerenciamento e remover impedimentos ao longo do processo.
- A partir do Product Backlog, é feito um Sprint Backlog que contém todo o trabalho a ser realizado durante o Sprint, com duração entre 2 e 4 semanas geralmente.
- Concorrentes
Embora o Scrum realmente bem ágil e produtivo, não se pode considerá-lo a melhor metodologia, pois não existe uma perfeita, e sim a que mais se adequa à sua necessidade. Além dele, temos outras metodologias ágeis as quais uma equipe pode aderir. São elas:
XP (eXtremeProgramming): embora seja dos anos 90, XP ainda é usada dentre os métodos ágeis por buscar agilidade no desenvolvimento e a satisfação do cliente. Sua utilização baseia-se em três pilares, sendo agilidade no desenvolvimento, economia de recursos e qualidade do produto final, que, juntos, formam uma excelente metodologia. Além disso, uma equipe de XP deve se basear em valores para obter o sucesso, isto é, um conjunto organizado de comportamentos e atitudes, evolvendo respeito, simplicidade, comunicação, coragem e feedback.
Lean: baseia-se no sistema Toyota de produção e, se bem executado, pode obter excelente qualidade e baixos custos. Nesse método a qualidade é responsabilidade também da equipe, e não só dos gestores, portanto isso resulta em uma notável melhora no projeto final. O Lean é caracterizado pelo cuidado em evitar desperdícios, tais como códigos incompletos, defeitos e excesso de processos, os quais podem acarretar numa grande perda de tempo de desenvolvimento.
FDD (Feature Driven Development): valoriza mais o todo de uma produção do que as partes separadamente e busca desenvolver um projeto por suas funcionalidades. Por ter foco no desenvolvimento e grande capacitação de se adaptar às inevitáveis mudanças, pode-se facilmente aliar ao Scrum. A programação em FDD consiste primeiramente na visão global do projeto, seguida de sua divisão em áreas, que também são divididas, resultando na descrição de cada funcionalidade.
MSF (Microsoft Solutions Framework): tem como propósito identificar as falhas mais comuns em projetos de tecnologia, aumentando assim suas taxas de sucesso e, para isso, utiliza-se de equipes mais reduzidas, focando na diminuição de riscos e um aumento na qualidade final do produto. Portanto deve-se ter um escopo bem estudado e rico em detalhes, um alto gerenciamento dos riscos e a adaptação a mudanças, possuindo respostas rápidas caso ocorram.
- Quem criou
O Scrum foi criado por dois participantes do Manifesto Ágil, Ken Schwaber e Jeff Sutherland. O nome Scrum foi inspirado em uma jogada de Rugby e tem origem na expressão inglesa scrimmage, que se formos fazer uma tradução literal significa escaramuça, isto é, uma breve luta durante uma investida militar entre pequenos grupos de soldados, sem grandes proporções. O termo “Scrum” foi retirado de uma referência dos autores Hirotaka Takeuchi e Ikujiro Nonaka em sua publicação, o The Game Development New New Product, no qual os autores usaram o Rugby para descrever de maneira perfeita a importância de equipes em conjunto e unidas para resolver problemas complexos em geral. Em sua essência, seja no rugby ou como metodologia de desenvolvimento de produtos e serviços, o Scrum sempre vai procurar representar o trabalho em equipe, a sincronia, força e inteligência utilizadas juntas para algum objetivo.
Fontes
- http://www.scrumguides.org/scrum-guide.html
- https://books.google.com.br/books?hl=pt-PT&lr=lang_pt&id=gbgpDwAAQBAJ&oi=fnd&pg=PP1&dq=scrum&ots=LJbDtoSYfV&sig=eOl0ZjDf-YEzxZKR7y_2dfLV8m8#v=onepage&q=scrum&f=false
- https://www.scrum.org/resources/what-is-scrum?gclid=Cj0KCQjwqsHWBRDsARIsALPWMEM0IR6XjzuufD3qzMuNBO2I4ViiEzHcbMZPuHK2dvsuqwFKTqZo5sYaAh4FEALw_wcB
- http://www.mindmaster.com.br/scrum/
- https://www.researchgate.net/profile/Carlos_Mello5/publication/262656547_Implementation_of_scrum_agile_methodology_in_software_product_project_in_a_small_technology-based_company/links/55757d8408ae753637500d73.pdf
- http://algol.dcc.ufla.br/~terra/publications_files/students/2010_fumec_diniz.pdf
- https://www.ri.ufs.br/bitstream/riufs/7030/2/Joao_Gabriel_Leite_Lima.pdf
- https://www.mhprofessionalresources.com/sites/myerson/content/Meyerson_Lean_TOC.pdf
Sistema embarcado
- Conceito:
Um sistema embarcado é um sistema no qual o computador é exclusivamente dedicado ao dispositivo ou sistema que ele controla. O usuário final não tem acesso ao sistema interno, somente através de interfaces , entradas do sistema. Diferentemente dos computadores convencionais , um sistema embarcado realiza tarefas predefinidas , com requisitos específicos, assim através da engenharia é possível otimizar um projeto, reduzindo custos , tamanho , entre outros.
Portanto, sistemas embarcados são desenvolvidos para realizar uma tarefa unica, específica para uma determinada situação ou processo. O sistema também é executado com recursos computacionais limitados: sem teclado, sem tela e com pouca memória. Sua classificação é definida pela capacidade computacional do sistema para o qual foi desenvolvido.
- Funcionamento:
Existem dois modos de funcionamento do sistema embarcado , que são determinantes para programação e o comportamento para a qual foi desenhado.
Reativo: o funcionamento é através de resposta a eventos externos, que podem ser periódicos ou assíncronos ( acionamento do usuário).Existe uma necessidade de entrada de dados para que aconteçam as ações de funcionamento.
Controle em tempo real: existem limites de tempo para executar cada tarefa (leitura de sensor, emissão de sinais para um atuador, atualização de display, etc.). Por isso mesmo, nem sempre tempo real é igual ao modo mais rápido de executar uma tarefa, esse modo é capaz de tomar decisões mesmo com a ausência do usuário.
- Estado da Arte:
Exemplo de aplicações: Computadores de bordo automotivos, Smartphones , Sistemas de controle de acesso biométrico, Controle de temperatura de ar-condicionado, Impressoras, Equipamentos de rede, Equipamentos portáteis de medição, Sistemas de monitoramento médico. A evolução mais recente é o desenvolvimento de aplicações embarcadas para chip. o PSoC (Programmable System on Chip), um microcontrolador desenvolvido pela Cypress. Um CI que poderá ser customizado pelo usuário final , graças as diversas entradas e periféricos disponíveis.
- Integrações:
Os sistemas Embarcados dependem do quão avançada está a tecnologia, pois o tamanho e peso são fatores decisivos na competitividade do produto. Além disso, durante o desenvolvimento de um sistema embarcado é necessária a análise do ambiente ao qual o sistema ficará exposto, ou seja , a robustez do equipamento interfere diretamente em seu desempenho.
- Portas Lógicas:
Os sistemas Embarcados estão relacionados com as portas lógicas desde sua criação. Na verdade sistemas embarcados , computadores e sistemas digitais foram desenvolvidos e baseados na lógica booleana , "true" e "false" , ou 1 e 0 , em eletrônica. Exemplo que confirmam isso é o Apollo Guidance Computer , considerado o primeiro Sistema Embarcado moderno, cujo seu circuito era um arranjo de portas lógicas. Após isso, a tecnologia vem se desenvolvendo e atualmente os sistemas embarcados são controlados por microprocessadores ou microcontroladores , que ,por sua vez, são bilhões de portas lógicas conectadas que são capazes de executar cálculos e processamentos específicos para que o sistema execute a tarefa desejada.
- Referências Bibliográficas
http://files.comunidades.net/mutcom/ARTIGO_SIST_EMB.pdf
ftp://143.54.11.3/pub/flavio/cmp231/jai2003.pdf
http://www.cin.ufpe.br/~vba/periodos/8th/s.e/aulas/STP%20-%20Intro%20Sist%20Embarcados.pdf
SO
- Conceito:
- O Sistema Operacional (SO) é formado por um conjunto de softwares encarregados de fazer de comunicação entre os softwares executados pelo usuário e a máquina, isto é, os programas e o hardware, dentre eles os dispositivos de entrada e saída.
- Funcionamento:
- O Sistema Operacional é em sua essência formado por vários processos diferentes, cada um desses responsáveis por gerenciar alguma tarefa. O SO se encarrega de gerenciar a memória usada pelos softwares executados pelo usuário, além de servir como uma ponte de comunicação entre o software e o hardware, sendo encarregado de gerenciar o uso do hardware pelo software.
- Estado da Arte:
- Atualmente os Sistemas Operacionais estão presentes nas mais variadas formas de plataformas além do computador convencional, como smartphones, tablets e até smartwatchs. Os SOs mais modernos possuem características variadas, a maioria contendo a maioria (se não todas) das características listadas, como:
- Multiusuário: podem ser usados por vários usuários diferentes simultaneamente;
- Multitarefa: capaz de executar várias tarefas ao mesmo tempo;
- Na nuvem: rodam inteiramente em servidores dedicados na nuvem;
- Atualmente os Sistemas Operacionais estão presentes nas mais variadas formas de plataformas além do computador convencional, como smartphones, tablets e até smartwatchs. Os SOs mais modernos possuem características variadas, a maioria contendo a maioria (se não todas) das características listadas, como:
- Integrações:
- O Sistema Operacional pode conter uma abrangente variedade de integrações, mas mais comumente o hardware e os periféricos locais no qual o SO roda.
- Referências:
Sockets
- Conceito:
- Sockets são o meio de dois processos se comunicarem, podendo ser por redes, hardware, ou software.
- Utilizando se de portas que geram o IP e protocolos como TCP para poderem se comunicarem, sem errar o caminho.
- Funcionamento:
- Funcionamento de um socket e fazer um ponto final de um link de comunicação bidirecional entre dois host em execução na rede. Por exemplo um computador/servidor tem portas que contem endereços diferentes, a função dele e fazer uma ligação entre o numero da porta com a chamada TCP para ver qual dados serão enviados para o aplicação, e seria basicamente isso: o http://192.168.0.01:9090, onde o protocolo é o HTTP, o IP é o 192.168.0.01 e a porta é a 9090. isso tudo seria o socket.
- Estado da Arte::
- A versão mais recente do socket é Release 4 (SVR4).
- Integrações:
- Socket interage bastante com a tecnologia de Protocolos e portas, pois utilizasse TCP e portas para fazer ligação entre as aplicações, sem errar o caminho.
- Fontes:
- Video Dawn of the Net:
- Percebe-se que no vídeo esquecerem de mencionar o socket de rede, fundamental em um link de comunicação entre 2 host, ou computadores. Na parte de endereçamento, era primordial; pois todo o conjunto de endereçamento é um socket.
Speech Recognition
- Conceito:
- Speech recognition (reconhecimento de fala em português, a não ser confundido com reconhecimento de voz) é uma tecnologia que permite a tradução da linguagem oral para texto que computadores poderam ler.
- Ela pode ser usada, entre outros, para controlar aparelhos com a voz humana, facilitar documentação em vários campos e para aprender novas linguagens.
- Funcionamento:
- Para transcrever nossas palavras para texto ou comandos, um ADC (abreviação de conversor analógico-digital em inglês) precisa traduzir as vibrações criadas pela nossa fala em data. Para fazer isso, o ADC digitaliza o som pegando medidas em curtos intervalos da onda criada pelas vibrações no ar. Depois, o sinal ê dividido em vários segmentos de alguns centésimos de segundos, e então o programa associa os segmentos aos fonemas que correspondem na linguagem escolhida pelo usuário. Finalmente, o programa determina o que o usuário está falando examinando cada fonema no contexto dos outros fonemas em volta dele e compara o resultado com uma livraria de palavras e livros para determinar a frase certa.
- Estado da Arte::
- No passado, speech recognition era somente algo com o qual pessoas brincavam de tanto que o reconhecimento era ruim. Hoje, em certos produtos como 'Alexa', objeto que deixa o usuário controlar várias coisas apenas usando à voz, o reconhecimento é extremamente bom. Podemos controlar casas inteiras com ele, o objeto possui várias outras funções como comandar comida, etc...
- Especialistas estão prevendo que no futuro, mouse e teclado não serão úteis, porque já será possível controlar tudo com a voz graças à speech recognition.
- Integrações:
- A tecnologia interage principalmente com computadores e outros objetos que possuam microfone, como smartphones e 'Alexa'.
SQL
- Conceito:
- SQL é a sigla para Structured Query Language, ou, em português, Linguagem de Consulta Estruturada. Suas utilizações incluem consulta selecionada e modificações (como deleção, inclusão ou atualização) de dados, principalmente em Bancos de Dados estruturais.
- Funcionamento:
- SQL oferece grande flexibilidade ao usuário na manipulação de bancos de dados. Normalmente é executado através de uma interface que permite inserção de linha de comando, a qual utiliza cláusulas pré-determinadas para execução de suas ações. As cláusulas básicas de suas ações são SELECT para consulta, UPDATE para atualização, DELETE para exclusão e INSERT para inclusão de dados.
- Cada uma das cláusulas possui as suas normas de sintaxe para seleção de quais tabelas terão seus dados atualizados, quais campos dessas tabelas serão selecionados e há, inclusive, possibilidade de utilização de ordenação específica dos dados.
- Estado da Arte:
- Devido à grande popularização de sua utilização, em 1986 foi necessária padronização pela International Organization for Standardization (ISO) e o American National Standards Institute (ANSI). Desde então, 8 revisões dessa padronização já foram feitas por esses órgãos, realizadas a intervalos médios de aproximadamente 4 anos, sendo a mais atual a SQL:2016.
- Integrações:
- Para utilização do SQL é necessário um Sistema de Gerenciamento de Banco de Dados (SGBD), com os quais é possível integrar os Bancos de Dados a sistemas dos mais diversos como Java, Web, dentre outros, organizando sistemas de forma multi-camadas para manipulação de grandes quantidades de informação.
Virtualização
- Conceito:
- Basicamente, é a técnica de separar aplicação e sistema operacional dos componentes físicos. Por exemplo, uma máquina virtual possui aplicação e sistema operacional como um servidor físico, mas estes não estão vinculados ao software e pode ser disponibilizado onde for mais conveniente. Uma aplicação deve ser executada em um sistema operacional em um determinado software. Com virtualização de aplicação ou apresentação, estas aplicações podem rodar em um servidor ou ambiente centralizado e ser deportada para outros sistemas operacionais e hardwares.
- Funcionamento:
- O gerenciamento de memória nestes sistemas portáveis de virtualização inicia-se num nível superior de abstração que num caso típico de máquina física. Alguns programas de virtualização, como a popular JVM, gerem os endereços de memória numa determinada maneira, que requerem um seguro gerenciamento automático da memória permitindo à maquina virtual manter registos de referências indicativas, e não permitir que o código fonte possa construir novas referências indicativas na memória. Outros tipos de software de virtualização como os LLVM, são mais parecidos como uma computador tradicional, permitindo o uso e manipulação de indicadores de memória. A CIL oferece uma solução híbrida entre as soluções apresentadas, oferecendo os dois tipos de controle da memória (como o JVM, que permite gestão de memória automática), e também um modo "inseguro" que permite manipulação de indicadores num modo que pode violar os constrangimento dos tipo e suas permissões.
- Estado da Arte::
- Adobe Flash Player, JVM, LLVM, CPython entre vários outros
- Integrações:
- Compilador just-in-time ou JIT, refere-se ao método de compilação do código nativo diferindo para o último momento possível, de preferência mesmo antes ou durante a execução do programa. A dificuldade do JIT têm haver mais com a implementação que arquitetura da máquina de virtualização, mesmo assim, novas teorias e implementações começaram a ter em conta a eficiência. A técnicas mais simples de JIT, simplesmente executam a compilação para um fragmento-código de maneira similar a um compilador tradicional. As técnicas mais utilizadas, têm em conta o tipo de código especializado aos parâmetros que só são conhecidos na altura da execução.
Web
- Relação com o video sobre o funcionamento de portas, protocolos, firewall, etc.
O video fala exatamente da arquitetura por trás de uma pagina Web. Os pacotes são como os veículos da informação e eles trafegam indo e voltando o quanto for necessário. No video é tratado como é feita uma requisição http, onde é enviado uma informação para o servidor e ele retorna uma página web, em detalhes. O mais importante é observar toda ordenação que é necessária para que as coisas funcionem bem. A Internet é uma vasta rede de fios, onde trafegam milhões de informações ao mesmo tempo. Sem pacotes, protocolos, métodos, portas, firewall, roteadores, switchs, etc., seria impossível usar a web como usamos hoje.
- O que é
A ideia inicial da World Wide Web era prover um ambiente onde era possível acessar uma vasta gama de documentos que são ligados entre si, daí o nome "Web" que significa teia. Foi idealizada por Tim Berners-Lee, enquanto trabalhava no CERN, com o intuito de criar um modo mais fácil para o compartilhamento de documentos de pesquisas entre seus colegas. Esses documentos estão em forma de hipermídia.
- Para entendermos o que é hipermídia, primeiro é preciso definir o conceito de hipertexto, que significa um texto que não está preso em ser linear, dentro deste texto existem hiperligações(geralmente chamadas de links) que tem o objetivo de conectar um texto com outro. A hipermídia serve para estender o conceito de hipertexto, e permitir que se inclua gráficos, videos ou som.
A web pode ser acessada por um web browser(navegador web), um software que tem a função de acessar esses documentos e exibi-los na tela do computador e permitir que o usuário siga as hiperligações, possibilitando assim partir de um documento para outro e assim sucessivamente "navegar na Web".
Nesta primeira fase, a web era muito semelhante a uma wiki, porém ainda não dava o poder de edição para o usuário, era somente leitura, quem tinha o dever de adicionar, remover ou modificar conteúdo era o administrador da página.
A evolução natural da web foi permitir que o usuário interagisse com a página, podendo postar comentários, enviar imagens, sons ou videos e arquivos, criando uma web colaborativa, podemos considerar que estamos nesta fase da Web, evoluindo para um tipo de Web de Dados, que não se limita a hipertexto mas de maneira similar procura relaciona os dados entre si, extravasando-os para além das aplicações. Esses são os objetivos da chamada Web semântica.
- Funcionamento
A Web funciona basicamente em uma relação cliente-servidor:
- Quem acessa a Web através de um navegador em casa ou pelo Smartphone é considerado cliente;
- Quem armazena as páginas Web, é o servidor. Quando o cliente precisa acessar uma página ele pede para o servidor lhe enviar uma cópia da página para sua máquina(baixar) para ser exibida na tela do computador. Para que esse acesso dê certo é preciso levar em conta outros componentes que trabalham junto para o funcionamento da Web:
- Acesso a internet;
- DNS;
- URI;
- HTTP;
- Arquivos do componente:
- Arquivos de código;
- Assets.
Sem o acesso a internet é impossível alcançar qualquer conteúdo Web, ela age como uma ponte: se em algum ponto ela estiver obstruída, não é possível acessar a um servidor web.O DNS, Domain Name System ou Sistema de Nomes de Domínio é capaz de dar nome a um endereço de IP específico, facilitando assim para que o usuário não tenha que decorar a sequencia de números específica para cada página, porém ainda não é tudo, cabe a URI fazer a tradução e descobrir o endereço exato do servidor HTTP, onde está de fato a página, essa solicitação é feita através do protocolo HTTP, que é a unica forma do servidor entender que aquela página em específico está sendo requerida. A função do servidor HTTP é devolver a página web, solicitada pelo usuário. Esta página contém arquivos de código, que são em HTML, CSS e JavaScript e outras tecnologias, esses códigos são como as "engrenagens" da página: eles que definem o aspecto visual e funcional da mesma. Por fim as páginas podem conter Assets, que são arquivos, imagens ou videos que podem ser acessados pelo usuário.
- Estado da arte
A Web hoje está em um estágio bem refinado desde que foi idealizada. Tenologias como o HTML 5 e JavaScript são responsáveis por prover um nível altíssimo de interatividade. Estamos numa fase da web onde os usuários estão interagindo muito com a web, inflando-a com dados e mais dados. Exemplos de sites da web atuais:
- https://www.youtube.com
- https://www.google.com
- https://www.facebook.com
- https://www.citymapper.com/sao-paulo (exemplo do nível de refinamento das páginas web atuais)
- Integrações
A Web depende e/ou interage com tecnologias como:
- Servidor Web, local onde o conteúdo é armazenado;
- PHP, linguagem interpretada que atua do lado do servidor, podendo coletar dados, gerar páginas, etc;
- HTML e CSS (HyperText Markup Language) que são linguagens para representar as páginas;
- JavaScript é uma linguagem interpretada criada para Web, que permite que se rode scripts ao lado do cliente, evitando assim que seja necessário se comunicar com o servidor para por exemplo alterar o conteúdo exibido;
- Navegador Web, é um software que serve para exibir o conteúdo web. Ele se comunica com o servidor web, enviando e recebendo informações.
Referências
- https://pt.wikipedia.org/wiki/Sistema_de_Nomes_de_Dom%C3%ADnio
- https://pt.wikipedia.org/wiki/URI
- https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web/Como_a_Web_funciona#Ent%C3%A3o_o_que_acontece_exatamente
- https://www.w3.org/2001/sw/SW-FAQ#relweb2
- https://www.w3.org/People/Berners-Lee/Longer.html
- https://pt.wikipedia.org/wiki/World_Wide_Web
- http://info.cern.ch/hypertext/WWW/TheProject.html
Webservice
- Conceito:
- É uma solução que permite a integração de sistemas e comunicação entre aplicações, possibilitando que novas aplicações consigam "conversar" de forma compatível com sistemas existentes e que foram desenvolvidos em plataformas diferentes.
- Para as empresas o Web Service pode trazer agilidade para os processos e eficiência na comunicação entre cadeias de produção. Toda e qualquer comunicação entre sistemas passa a ser dinâmica, rápida e segura, pois não há intervenção humana.
- Funcionamento:
- O Web Service faz com que os recursos da aplicação estejam disponiveis sobre a rede de forma normalizada. Em outras palavras o Web Service permite a chamada de tarefas simples ou complexas mesmo que as duas aplicações estejam em diferentes sistemas e escritas em linguagens diferentes.
- Cada aplicação pode ter sua própria "linguagem" que é traduzida pra uma linguagem, um formato intermediário para aquele contexto sendo XML, Json, CSV as opções mais comuns.
- Estado da Arte:
- Existem varias linhas de novos desenvolvimentos sobre essa tecnologia variando de metodologias de segurança da informação que trafega entre o contexto das aplicações a novas estruturas baseadas em tecnologias mais recentes e/ou que sofreram melhora significativas (Qos, Posicionamento Geográfico)
- O exemplo mais comum são os browsers da Internet, eles acessam as páginas Web disponíveis usando por norma as tecnologias da Internet, HTTP e HTML
- Integrações:
- A base para a construção de um Web Service são padrões XML SOAP; A transferência de dados são realizados via protocolos de acesso HTTP, HTTPS e REST.
- No geral um Web Service pode interagir com diversas tecnologias e aplicações porem seguindo as limitações de comunicação do protocolo SOAP já que o encapsulamento e envio das requisições feitas á um Web Service esta construída sobre esse protocoloco
- Referencia ao vídeo:
- Por ser uma solução web assim como diz o nome, web services utiliza de toda a estrutura de entregas e envios de pacotes pela rede. Para isso os protocolos de remessa e endereçamento do destino e do remetente são altamente vinculados ao desempenho de um web service
- A padronização dos envios e toda a estrutura de segurança de envio também são fatores importantes para um web service, dado que esse tipo de solução pode variar sobre um protocolo em especifico caso seja preferível.
Agora que cada um já possui seu tema, acesse http://www.sourceinnovation.com.br/wiki/Template_Temas Avalie se seu tema se enquadra em Metodologia, Tecnologia ou Software e escolha um dos templates Utilizando basicamente Google Academic, Revistas, Livros ou sites de fornecedor, realize sua pesquisa e responda aos itens Seu conteúdo deve ser escrito abaixo do link no final da página. Exemplo: Algoritmos
Temas x Pesquisador
| Tema | Aluno |
|---|---|
| Algoritmos | Vitor Manoel Gonçalves Teixeira |
| API | Paulo Reis dos Santos Junior |
| App | Carlos Augusto Dantas Marquez |
| Arduino | João Vitor Santos Izidoro |
| Banco de Dados | Otávio Augusto de Oliveira |
| Barramentos | Leonardo Henrique Rodrigues Montes |
| BI | Daniella Goncalves dos Santos |
| BigData | Vinícius Carvalho Cazarotti |
| BlockChain | Victor Hugo |
| CanvAs | Vinicius Stachechen Machado |
| Cloud Computing | Vitória Caroline de Paulo |
| CLP | Caio Rafael dos Santos |
| Compiladores | Mauricio Silva Neto |
| Conectores | Marcel Felipe de Paiva Maciel |
| CPU | Marcus Vinicius Marchiori |
| Criptografia | Igor de Castro |
| Data Mining | Vinicius Calixto Rocha |
| DMA | Vinicius Alves Martins |
| DNS | Felipe Fernandes Nascimento |
| ERP | Emerson Martins dos Santos |
| ETL | Gabriel Pires Dias |
| eXtreme Programming | Gabriel Alcântara da Costa Batista |
| Firewall | Caio Marcio Santos |
| Firmware | Agilson Jr |
| Frameworks | Paulo Victor Silva Mello |
| IA | Estela Rezende Goulart |
| IDE | Matheus Ferreira Riguette de Souza |
| Inteligência Cognitiva | Bruno Henrique Rodrigues dos Reis |
| Integração Contínua | Joao Victor Johanson Cecilio Marchetti Ferreira |
| Internet | Pietro Henrique Emiliano de Oliveira |
| IoT | Helton Pereira de Aguiar |
| IP | Vitor Bidutti Marcondes de Faria |
| IPSec | Hugo Borges Oliveira |
| Linguagens de Programação | Frederico Marques Fulgêncio |
| Machine Learning | Diego Batistuta Ribeiro de Andrade |
| Memória RAM | Railson da Silva Martins |
| Mineração de Dados | Murilo Marquez de Oliveira Filho |
| Modelo Estruturado | Gabriel Victor Duarte Pereira |
| Modelo Orientado a Objeto | Guilherme Bartasson Naves Junker |
| Modem | Klesley Silva de Oliveira |
| Normalização (BD) | Estevão |
| NoSQL | César Ricardo Salomão Junior |
| Open Source | Guilherme Daisuke Assakura |
| Plataformas | Alexandre Mariano Lopes de Deus |
| Portas | Matheus Candido Ferreira de Faria |
| Processadores | Nicolas de Melo Proença |
| Protocolos | Gabriel Dal Belo Gomes Santos |
| PWA | Heldson Luiz da Silva |
| RA | Luiz Fellipe Silva Lima |
| Raspberry | Henrique Tornelli Duarte |
| Redes Sociais | Alex Julio Silva de Abreu |
| Redes de Computadores | Victor Silva Santos |
| Redes Neurais | Matheus Fagundes |
| Renderização | Pedro Eduardo |
| Roteador | Matheus Negrisolli Rosa Seixas |
| Satélite | Fernando Toshiharu Akamine |
| Scrum | Artur Amaro Vicente |
| Sistema embarcado | Pedro Henrique Silva Medeiros |
| SO | Gabriel Hernandes de Oliveira Bogás |
| Sockets | Eduardo Silvestre Gonçalves |
| Speech Recognition | Gabriel Vieira |
| SQL | Max Pereira Ziller |
| Virtualização | Vitor Hugo Celio Machado |
| Web | Isaque dos Reis |
| Webservice | Wallyson Pedrosa Ferreira |



































