| Linha 667: | Linha 667: | ||
<br> | <br> | ||
[[Arquivo:MachineSportify.png| | [[Arquivo:MachineSportify.png|centre]] | ||
<br> | <br> | ||
Edição das 18h22min de 1 de maio de 2019
Debate
| Tópico | Tema 1 | Tema 2 | Tema 3 | Tema 4 | Tema 5 | Tema 6 | Tema 7 | Data |
|---|---|---|---|---|---|---|---|---|
| Hardware | Barramentos | Periféricos | Processadores | Portas | Memória RAM | Disco Rígido | Memória ROM | 09/05 |
| Software | App | ERP | Sistema Embarcado | Frameworks | Firmware | SO | Web | |
| Development | Algoritmos | API | Compiladores | IDE | Linguagens de Programação | Open Source | Webservice | |
| DataBase | Banco de Dados | Normalização | SQL | BigData | ETL | Data Mining | NoSQL | |
| Methods | Canvas | eXtreme Programming | Integração Contínua | Modelo Orientado a Serviço | Scrum | UML | FDD | |
| Net | Firewall | Internet | IP | Protocolos | Redes de Computadores | Roteador | DNS | |
| Cloud | Virtualização | Modem | DNS | Criptografia | Cloud Computing | Plataformas | SaaS | |
| Internet of Things | RFId | Raspberry | IPSec | IoT | CLP | Arduino | Sensores | |
| State of the Art | BlockChain | IA | Inteligência Cognitiva | Machine Learning | RA | Bots | Redes Neurais |
Tabela de Temas
| Nro | Tema | Tópico | Aluno |
|---|---|---|---|
| 01 | Algoritmos | Development | Giovana Campioto |
| 02 | API | Development | Gabriel Rodrigues |
| 03 | App | Software | Elton |
| 04 | Arduino | Internet of Things | Fábio |
| 05 | Banco de Dados | Database | Guilherme Rodovalho |
| 06 | Barramentos | Hardware | Pablo Pierre da Nóbrega |
| 07 | BigData | Database | Pedro Henrique Chagas |
| 08 | BlockChain | State of the Art | Arthur Maia |
| 09 | Bots | State of the Art | Mateus Gonçalves Canavieira |
| 10 | Canvas | Methods | Prof. Luiz Cláudio |
| 11 | Cloud Computing | Cloud Computing | Mateus Ferreira Silva |
| 12 | CLP | Internet of Things | Nathaly V |
| 13 | Compiladores | Development | Carlos Erivelton |
| 14 | Criptografia | Cloud Computing | Guimarães |
| 15 | Data Mining | Database | Samantha |
| 16 | Disco Rígido | Hardware | Marcello |
| 17 | DNS | Cloud Computing | Luís Fellipe de Souza |
| 18 | ERP | Software | Esdras |
| 19 | ETL | Database | Vinicius Prado |
| 20 | eXtreme Programming | Methods | Murilo Medeiros |
| 21 | FDD | Methods | Francisco dos Santos |
| 22 | Firewall | Net | João Pedro Silva Mendes |
| 23 | Firmware | Software | Pedro Henrique Zardini De Souza |
| 24 | Frameworks | Software | Lucas Henrique Couto |
| 25 | IA | State of the Art | Tonus |
| 26 | IDE | Development | Arthur Rodrigues Cardoso |
| 27 | Inteligência Cognitiva | State of the Art | Igor Medeiros |
| 28 | Integração Contínua | Methods | Carlos Henrique Duarte de Carvalho |
| 29 | Internet | Net | Brunno Viegas |
| 30 | IoT | Internet of Things | Nicolli Freitas |
| 31 | IP | Net | Gustavo Alves |
| 32 | IPSec | Internet of Things | Piedro Hammer |
| 33 | Linguagens de Programação | Development | Luís Humberto Rodrigues |
| 34 | Machine Learning | State of the Art | Rick Ricarte |
| 35 | Memória RAM | Hardware | Luiz André |
| 36 | Memória ROM | Hardware | Bryan Ernanes |
| 37 | Modelo Orientado a Serviço | Methods | Dyany |
| 38 | Modem | Cloud Computing | Pedro Alexandre |
| 39 | Normalização (BD) | Database | Wilson Santos |
| 40 | NoSQL | Database | João Victor |
| 41 | Open Source | Development | Fernando Daniel Silva |
| 42 | Periféricos | Hardware | Matheus Gonçalves Coelho de Resende Silvano |
| 43 | Plataformas | Cloud Computing | Augusto Cesar de Barros Silveira |
| 44 | Portas | Hardware/Net | Marco Túlio Candeo |
| 45 | Processadores | Hardware | Victor Buiatti |
| 46 | Protocolos | Net | Rafael Dutra |
| 47 | RA | State of the Art | Lucas Mezencio Santana |
| 48 | Raspberry | Internet of Things | Gabriel Ferreira de Souza |
| 49 | Redes de Computadores | Net | Gabriel Rafah |
| 50 | Redes Neurais | State of the Art | Thalison Henrique |
| 51 | RFId | Internet of Things | Henrique Matheus |
| 52 | Roteador | Net | Tiago Gomes |
| 53 | SaaS | Cloud | Rogério Aguilar Silva |
| 54 | Scrum | Methods | Gustavo Augusto Ferreira |
| 55 | Sensores | Internet of Things | Matheus de Camargo Martins |
| 56 | Sistema embarcado | Software | murilo ferreira |
| 57 | SO | Software | Marco Antonio da Silva Rodrigues |
| 58 | Speech Recognition | State of the Art | Igor Lourenço |
| 59 | SQL | Database | Ramon Maximo |
| 60 | UML | Methods | Bruno Giamatei Bertoco |
| 61 | Virtualização | Cloud Computing | Lucas Capra |
| 62 | Web | Software | Gabriel Marques |
| 63 | Webservice | Development | Vinicius Pereira |
Descrição dos temas
Algoritmos
API
App
- Conceito
- Aplicativo é um software desenvolvido para executar várias sequencias de comandos para realizar determinado objetivo pela qual foi projetado. Portanto, esses aplicativos podem ser desenvolvidos para desktops, smartphones, tabletes, smartrelogios, smart TVs, etc.
- Ações executadas por aplicativos em sua maioria são para agilizar algum processo, diminuir custos ou substituir mão de obra.
- Ferramentas de desenvolvimento
- Para o desenvolvimento dessas aplicações são utilizados algumas ferramentas como: editor de texto, IDE, framework, API, compilador, etc.
- Para cada um dos desenvolvimentos são utilizadas ferramentas diferentes. O desenvolvimento de aplicações mobile, por exemplo, são utilizadas as IDEs, pois elas possuem uma enorme quantidade de componentes para a criação de um software.

- Ferramentas mais utilizadas
- Desenvolvimento Web: Wordpress, Bootstrap, AngularJS, Adobe XD e Sublime Text
- Desenvolvimento Mobile: Android Studio, Ionic, React Native e Xamarin
- Desenvolvimento Desktop: Visual Studio, Eléctron, Fiddler e Hibernate
- Referências bibliográficas
- https://conceito.de/software-aplicativo
- https://king.host/blog/2018/06/editor-de-codigo-gratuito-7-opcoes-para-voce-escolher-o-seu/
- https://medium.com/@renato.groffe/soluções-gratuitas-para-desenvolvimento-em-net-e-asp-net-parte-3-16daf0de4d19
- https://ferramentasinteligentes.com.br/marketing/desenvolvimento/
- http://micreiros.com/9-frameworks-de-desenvolvimento-multiplataforma-movel/
- https://msdn.microsoft.com/pt-br/ff380143.aspx
Arduino
Banco de Dados
- O que é?
- Um banco de dados é uma forma de armazenar informações em disco de uma forma estruturada. Banco de dados são conjuntos organizados de dados, que se relacionam com outros para criar uma informação e dar mais eficiência durante uma pesquisa ou estudo. Atualmente, os bancos de dados são a principal parte de um sistema de informação, pois é nele que está toda a informação que o sistema é alimentado. Os bancos costumam perdurar por vários anos ou até décadas sem alteração na sua estrutura. A principal aplicação é no controle de operações empresariais e no gerenciamento de informações de estudos.

- Principais ferramentas:
- Sistemas Gerenciadores de Banco de Dados (SGBD’s) ou em inglês Data Base Management System (DBSM), que como o nome sugere, são softwares de Gerenciamento de Banco de Dados, que são utilizados pelos programadores ou DBA’s, para consultar os bancos de dados. Com a evolução desses softwares, vários modelos de armazenamento de dados foram criados, como o Modelo hierárquico, Modelo em rede, modelo orientado a objetos e outros, cada um com suas particularidades, vantagens e desvantagens.

- Abstração de dados
- O sistema de banco de dados deve oferecer uma visão abstrata dos dados que lá estão armazenados, por exemplo, o usuário não precisa saber qual criptografia está sendo usada ou se está sendo usada, ele não precisa saber a normalização do banco, ele não precisa saber qual unidade de armazenamento está sendo utilizada, contando que quando ele precisar o dado esteja disponível para ele quando precisar. A abstração se dá em 3 níveis:
- Nível de visão do usuário: as partes do banco que o usuário tem acesso, de acordo com a necessidade individual.
- Nível Conceitual: aqui é definido quais dados estão armazenados, e qual o relacionamento entre eles.
- Nível físico: aqui define efetivamente como os dados estão armazenados, o nível mais baixo de abstração.
- Projeto de Banco de Dados
- Todo sistema de banco de dados deve apresentar um projeto da forma que os dados estão sendo armazenados a sua organização, e as técnicas utilizadas na produção do banco, para que no futuro facilite as possíveis manutenções. Esse projeto de banco de dados se dá em duas partes: projeto lógico e modelo conceitual. Essas fases são aplicadas na documentação de um banco de dados não implementado, no caso de ser um banco de dados já implementado, é utilizado a técnica de engenharia reversa para deduzir quais as técnicas que foram utilizadas para a produção desse banco.
- Referências bibliográficas
Barramentos
BigData
BlockChain
- O que é?
- Blockchain, uma das tecnologias por trás do Bitcoin, a maior criptomoeda já inventada. Basicamente um banco de dados online, público e descentralizado, criado para tornar a distribuição de informações transparente e confiável, não dependendo assim de um agente externo e/ou centralizador que valide o processo.
- Rede Peer-to-Peer (P2P)
- Formado por uma rede de computador interligados, conhecido como rede peer-to-peer. Cada criptomoeda possui sua própria Blockchain. Como dito antes, a tecnologia Blockchain é formada por uma rede peer-to-peer, que é nada mais que uma arquitetura de redes de computadores onde cada um dos pontos ou nós da rede funciona tanto como cliente quanto como servidor, permitindo compartilhamentos de serviços e dados sem a necessidade de um servidor central, como pode ser visto na imagem abaixo.

- Como funciona?
- Nesta tecnologia revolucionaria, os computadores da rede são responsáveis por validar as transações. No caso do Bitcoin, toda vez que uma transação é realizada, é verificada pelos membros da rede registrada no blockchain correspondente. Por intervalos regulares de tempos (o tempo varia sobre as criptomoedas, no caso da bitcoin, 10 minutos), essas novas transações são reunidas em blocos, criptografadas e adicionadas a uma cadeia de blocos (blockchain) que guarda e registra também as transações passadas.

- Vantagens
- Eliminação de troca por intermediário e falta de confiança;
- Empoderamento dos usuários;
- Alta qualidade de dados;
- Durabilidade, confiabilidade e longevidade;
- Integridade de processo;
- Transparência e imutabilidade;
- Simplificação de ecossistema;
- Transações mais rápidas;
- Menor custo por transação;
- Digital.
- Desvantagens
- Tecnologia nascente;
- Estado regulatório instável;
- Grande consumo de energia;
- Controle, segurança e privacidade;
- Questões de integração;
- Adoção cultural;
- Custo;
- Referencias Bibliográficas
Bots
Canvas
- O Business Model Canvas é uma ferramenta estratégica que contribui de forma significativa para a construção rápida e visual de novos produtos ou serviços. Sua aplicação consiste no uso de um painel dividido em nove grandes blocos, como mostra a figura abaixo, que representam os elementos fundamentais (building blocks) que compõem um modelo de negócio.
- O objetivo central do preenchimento do painel é extrair propostas de valor que atendam e potencializem os principais objetivos desejados do negócio, antes de partir de fato para a formatação do produto ou serviço.
- Abaixo apresentamos a dinâmica de montagem do Modelo Canvas sugerida por Osterwalder.

- Para aplicar o Canvas, pode-se utilizá-lo impresso em um tamanho A4 ou A3 para facilitar o trabalho colaborativo; ou desenhá-lo em um quadro, pois seu layout é simples de ser replicado. Para preencher o Canvas é recomendado utilizar post-its, pois são fáceis de manipular.
- O Canvas, que apresentamos na figura abaixo, pode ser subdividido em duas grandes dimensões, como nos lados direito e esquerdo do cérebro, sendo a dimensão mais à direita os elementos mais subjetivos e "emocionais" e os elementos da parte esquerda os mais estruturais e lógicos. Sugere-se preencher o Canvas da direita para a esquerda, pois assim é possível conhecer primeiro os anseios e desejos dos envolvidos para, em seguida, começar a defini-los de forma mais concreta.
- Segmentos de Clientes
- Começamos preenchendo o bloco Segmentos de Clientes (Customers Segments), buscando mapear para quem se está criando valor e quem são os potenciais clientes para os objetivos pretendidos.
- Exemplos de segmentos de clientes:
- Consumidores da classe C
- Mulheres
- Idosos
- Consumidores de uma cidade
- etc.
- Proposta de Valor
- No bloco Proposta de Valor (Value Proposition) são criadas propostas que atendam a determinadas necessidades dos potenciais clientes, sempre tendo os objetivos de negócio norteando a dinâmica.
- Exemplo de propostas de valor:
- Conveniência
- Personalização
- Apoio a decisão
- Rapidez
- Redução de custos
- entre outros.
- Os Segmentos de Clientes e as Propostas de Valor são os principais elementos, sobre os quais todo o restante do Canvas se apoiará.
- Canais de Distribuição
- Uma vez que já se tem uma prévia de clientes potenciais e propostas de valor, é necessário pensar em como fazer com que estes dois elementos fundamentais se encontrem.
- Logo, são definidos e sugeridos os Canais de Distribuição (Channels), como:
- Entrega à domicílio
- Site de conteúdo
- Newsletter
- Atendimento presencial
- entre outros
- através dos quais será possível distribuir e entregar as propostas de valor.
- Uma vez que já se tem uma prévia de clientes potenciais e propostas de valor, é necessário pensar em como fazer com que estes dois elementos fundamentais se encontrem.
- Relacionamentos com os Clientes
- Também é preciso entender como se dará os Relacionamentos com os Clientes (Customer Relationships), que deve ter o propósito de fortalecer o envolvimento do cliente com o negócio.
- São exemplos de relacionamentos com clientes:
- Canal de perguntas e respostas
- Ouvidoria
- SAC
- Atendimento pós-venda
- Serviços automatizados.
- Receita
- Por fim, na dimensão direita, temos as Linhas de Receita (Revenue Stream), que registram como a solução em construção pretende gerar receitas, tendo como base as propostas de valor sugeridas.
- Alguns exemplos:
- Venda de assinaturas mensais
- Venda direta
- Retorno em publicidade paga
- Aluguel.
- Recursos-Chave
- Na dimensão esquerda do Canvas encontramos algumas definições mais objetivas, que irão sustentar os elementos mapeados na dimensão direita.
- Os Recursos-Chave (Key Resources) são os recursos ligados diretamente ao funcionamento do modelo de negócio.
- Podem ser:
- Equipes
- Máquinas
- Investimentos
- Plataformas de tecnologia
- Atividades-Chave
- As Atividades-Chave (Key Activities) são todas as atividades sem as quais não seria possível atender as propostas de valor, construir os canais necessários e manter os relacionamentos.
- Podem ser atividades-chave:
- Acompanhar redes sociais (uma atividade interessante para contribuir com o relacionamento com os clientes)
- Construir uma loja (que pode se relacionar com as propostas de valor e canais específicos)
- Aprender uma tecnologia que serve de base para o desenvolvimento de uma solução
- Monitorar outras soluções para avaliar se a sua está dentro dos padrões;
- Parceiros-Chave
- Já os Parceiros-Chave (Key Partners) são todos aqueles que podem contribuir tanto com as Atividades-Chave quanto com os Recursos-Chave.
- Algumas parcerias:
- Fornecedores de Tecnolologia, podem disponibilizar máquinas para atender a algum Recurso-Chave.
- Algumas parcerias podem contribuir com pessoas ou realizando diretamente alguma das Atividades-Chave, como Monitorar redes sociais
- Outras podem fornecer uma plataforma que se conecta com a sua para prover o serviço final.
- Custos
- Representando os custos necessários para se manter e construir toda a solução proposta, há o bloco Estrutura de Custos (Costs Structure), que indica, por exemplo:
- a necessidade de se Pagar a manutenção das máquinas previstas,
- Pagamentos dos parceiros contratados,
- Custo recorrente de infraestrutura
- Custo das equipes envolvidas
- e assim por diante.
- Representando os custos necessários para se manter e construir toda a solução proposta, há o bloco Estrutura de Custos (Costs Structure), que indica, por exemplo:
- Exemplo de projeto:

- Referências bibliográficas:
- A Osterwalder, Y Pigneur, G Bernarda, A Smith - 2014 - books.google.com
- Professor Dale Brant
Cloud Computing
- Definição
- Cloud Computing ou Computação em nuvem é um termo para descrever um ambiente de computação baseado em uma imensa rede de servidores sejam estes virtuais ou físicos. Uma definição simples pode ser "um conjunto de recursos como capacidade de processamento, armazenamento, conectividade, plataformas, aplicações e serviços disponibilizados na Internet". O significado de nuvem hoje é certamente ligado a um lugar onde se pode armazenar dados e onde aplicações podem usar recursos computacionais da nuvem ou elas podem ser executadas lá.
- Vantagens
- Elasticidade: a computação em nuvem oferece elasticidade permitindo que as empresas usem o recurso na quantidade que forem necessários, aumentando e diminuído a capacidade computacional de forma dinâmica.
- Pagamento: o pagamento dos serviços em nuvem é pela quantidade de recurso utilizados (pay-per-use). Nesse estilo de pagamento a conta é cobrada de acordo uso de dados e com o número de acessos que seus dados armazenados na nuvem foram usados.
- Comodidade: muitas empresas utilizam da computação em nuvem para evitar a dor de cabeça de ter um data center próprio e seus próprios servidores, sendo assim tendo que se preocupar com detalhes como segurança, preservação, manutenção dos servidores.
- Segurança: a segurança da empresas que oferecem serviços de computação em nuvem utilizam de vários métodos de segurança, valendo destacar entre eles os backups das informações. Uma analogia interessante de se fazer seria com um banco, "Você entrega seu dinheiro pra o banco pois sabe que ele estará mais seguro no banco de que com você e quando necessita dele é só ir saca-lo"
- Referências bibliográficas:
- https://books.google.com.br/books?hl=pt-BR&lr=lang_pt&id=mvir2X-A2mcC&oi=fnd&pg=PA1&dq=cloud+computing+&ots=CaJo6HLNUq&sig=zC8_RdJfBYXgHZVU-LjeNiMeLQI#v=onepage&q&f=true
- http://seer.upf.br/index.php/rbca/article/view/3084
CLP
- O que é CLP ?
CLP é a sigla ara Controladores Lógicos Programados ou Programmable Logic Controllers (PLC) em inglês, são computadores responsáveis por executar funções especificas utilizando um programa carregado. CLPs se assemelham muito com Computadores comuns, porem são desenvolvidos para operar em ambientes agressivos, suportando vibrações, poeira e outras condições que poderiam danificar uma CPU normal, alem de permitir várias inserções de módulos de entrada e saída. Basicamente ele opera utilizando sinais analógicos ou digitais, sensores, módulos, chaveamentos, entre outros e sua estrutura é composta por 4 patamares: entradas e saídas, CPU, Backplane ou Rack com fonte de alimentação e seção de programa e é composto por CPI, Memoria RAM e RUN e Portas de Comunicações (COM).
- Sinais analógicos e digitais
Sinais digitais são sinais que possuem apenas 2 (duas) variações de status (botões que permitem que o aparelho seja ligado ou desligado por exemplo), são sinais mais simples também chamados de contínuos por serem específicos e darem resultados previsíveis. Já os sinais analógicos possuem uma configuração mais complexa que permite um status variante com valores intermediários entre um minimo e um máximo ( como um termômetro de medição que emite valores diversos, não se atendo somente a 0 ou 100). Em uma CLP, esses sinais são cruciais na decisão do tipo de entrada e saída que irá ocorrer.
- Backplane ou Rack com fonte de alimentação
O RACK têm a função de interconetar todas as partes da CLP e permitir a alimentação e comunição entre elas, ele fornece montagem física para as In/Out (entradas e saídas) e conexão eletrica dos barramentos entre modulos(barramentos de dados que estabelecem um link de comunicação entre todos os modulos de In/Out AAbaixo pode-se ver um RACK com expansão e logo abaixo um Rack com CPU;


- Cartão de Entradas e Saidas (In/Out)
O Cartão de entradas é qualquer coisa que possa permitir a entrada de um sinal ao CLP e permitir a execução do programa, podendo ser de sinal analogico ou digital
- veja um exemplo abaixo:

As Saídas tambem podem ser de sinais analogicos ou digitais: ao se ter uma entrada analogica ela vai converter o sinal para digital que ao ser processado será enviado para um cartão de saida analogica que transformara esse sinal em analogico ou vice versa. eles servem para fazer acionamento simples como ligar lampadas ou valvulas etc.
- veja um esquema de entradas e saidas abaixo:

- CPU
É basicamente o cerebro da CLP e atua em quatro modos: Programação, Run, Stop e Reset
- No modo Programação a CPU faz o carregamneto da logica do programa desenvolvido por uma pessoa
- Após entra em modo Run em que está completamente operante com as funções do programa
- No modo Stop a CPU está parada e náo opera, desligando todas as saidas e checando as entradas
- No modo Reset a CPU é reiniciada para as configurações iniciais, caso seja feito sem eliminar os dados registrados é chamado de Warm Reset, caso os dados sejam apagados é chamado de Cold Reset
- Programa
é desenvolvido por uma pessoa em um computador proprio para CLP, a maioria das CLPs usa a linguagem Ladder, desenvolvida para facilitar a programação. O programa define oque será feito pela CLP
- Referencias
- https://alfacompbrasil.com/2019/02/11/clp-o-que-e-e-como-funciona/
- https://www.citisystems.com.br/clp/
- https://www.youtube.com/watch?v=RnYqTpuLWAA
- http://saladaautomacao.com.br/clp/
- https://www.saladaeletrica.com.br/o-que-e-clp/
Compiladores
Definição
- O que são compiladores ?
Um compilador nada mais é que uma aplicação com a função traduzir programas. Basicamente ele pega programa desenvolvido em uma linguagem de alto nível e o transforma em seu correspondente em baixo nível.
Um compilador é um software complexo, que cumpre o papel de traduzir, converter e ligar 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. No início, 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. Concluímos então 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.

- Referências:
- Santos ,Pedro Reis; Langlois ,Thibault. Compiladores - da teoria à prática. 1° edição, FCA editora, 2014.
- https://www.dicio.com.br/compilador/
- http://www.dca.fee.unicamp.br/~eleri/ea876/04/cap3.pdf
- http://producao.virtual.ufpb.br/books/tautologico/compiladores-livro/livro/livro.pdf
Criptografia
- Conceito
- Ferramenta de segurança digital utilizada em programação com o objetivo de proteger as informações de um arquivo. Tal instrumento de proteção garante quase por completo o bloqueio do acesso de terceiros ou usuários indesejados. Outrossim, o termo criptografia não é recente, pois surgiu na Grécia Antiga, kryptós (oculto/escondido) e gráphein (escrita/textos). Porém, como toda sociedade evolui e moderniza, tanto o instrumento como a sua definição passou por aprimoramento, portanto, a preservação de dados é crucial nos dias atuais.
- Tipos de Criptografia
- Criptografia Simples (SSL)
- Programa de proteção simples que garante a validação de medidas de segurança de um domínio, tal programa é recomendado para todo site mesmo que próprio não armazene dados do usuário. A maneira mais fácil de reconhecer se o site utiliza o SSL é procurar pelo ícone de um cadeado verde ao lado da URL, isso significa, criptografia simples ativa.
- Criptografia de Validação Estendida (SSL EV)
- Uma versão aprimorada do SSL extremamente recomendada para sites de comércio eletrônico.
- Certificado WildCard
- Diferente do SSL o WildCard protege não só o domínio principal, como também os sub-domínios em um só certificado. Essa criptografia é destinada a administradores de várias páginas ou sites.
- Certificado Multidomínio (MDC)
- Direcionado para empresas que possuem diversos domínios, pois o MDC assegura a defesa digital de até 210 domínios em um só certificado (SSL), sobretudo, todos são validados com HTTPS.
- Certificado Multidomínio EV (MDC EV)
- Uma versão aprimorada do MDC com enfoque na razão social da empresa.
- Certificado Multidomínio SAN (UCC)
- O UCC funciona apenas para aplicações Microsoft, no mais, não há diferenças notórias em relação a certificado de proteção.
- Certificado CodeSign
- Criptografia para e-mails (S/MIME)
- Criptografia simétrica
- Criptografia assimétrica
- Hashing
- Criptografia Simples (SSL)
- Como Criptografar?
Data Mining
Disco Rígido
DNS
ERP
ETL
eXtreme Programming
FDD
Firewall
Firmware
Frameworks
IA
IDE
Integração Contínua
Inteligência Cognitiva
Internet
IoT
- Conceito
O conceito de IoT (Internet of Things) ou em português Internet das Coisas, pode ser definido como uma enorme rede de dispositivos conectados. Sensores são embutidos nesses dispositivos, que engloba diversos objetos do dia-a-dia, como geladeira, máquina de lavar, termostato, alarme de incêndio, sistema de som, lâmpadas, entre outros, afim de coletar dados e tomar decisões baseadas nesses dados em uma rede.
A ideia é que essa conectividade torne a vida mais confortável, produtiva e prática. Nesse sentido, uma geladeira com internet pode avisar quando um alimento está perto de acabar e, ao mesmo tempo, pesquisar na web quais mercados oferecem os melhores preços para aquele item. A geladeira também poderia pesquisar e exibir receitas para você.
- Importância e uso real
A Internet das Coisas é mais do que apenas uma conveniência para os consumidores. Ela oferece novas fontes de dados e modelos de operação de negócios que podem aumentar a produtividade de diversas indústrias.
Alguns exemplos:
- Saúde: pode ajudar no monitoramento de atividades físicas, sono e outros hábitos – e esses itens estão apenas arranhando a superfície do quanto a IoT pode impactar a área da saúde. Aparelhos de monitoramento de batimentos cardíacos ou pressão sanguínea, registros eletrônicos e outros acessórios inteligentes podem ajudar a salvar vidas.
- Agropecuária: sensores espalhados em plantações podem dar informações bastante precisas sobre temperatura, umidade do solo, probabilidade de chuvas, velocidade do vento e outras informações essenciais para o bom rendimento do plantio.
- Manufatura: uma das indústrias que mais se beneficiam da Internet das Coisas. Sensores embutidos em equipamentos industriais ou prateleiras de armazéns podem comunicar problemas ou rastrear recursos em tempo real, aumentando a eficiência do trabalho e reduzindo custos.
Em geral, se um objeto é um eletrônico, ele tem potencial para ser integrado à Internet das Coisas. Assim, não é difícil de perceber por que esse assusto tem sido tão comentado atualmente.
De forma a ilustrar melhor o impacto da IoT, vamos usar um exemplo do nosso dia-a-dia. Vamos dizer, por exemplo, que você tem uma reunião de manhã cedo; seu despertador, conectado com o seu calendário, te acorda na hora certa. As luzes do seu quarto se acendem, a cortina abre automaticamente. Antes disso, sua cafeteira já começou a fazer o café, e a torradeira começa a esquentar o seu pão. Quando você entra no carro, a sua música favorita começa a tocar. Seu carro também pode ter acesso ao seu calendário e contatos, e automaticamente saberá a melhor rota a ser tomada para atingir seu destino. Se estiver muito trânsito, seu carro enviará uma mensagem aos envolvidos, notificando eles de seu possível atraso.
Dentro do carro, você poderá ir lendo ou dormindo mais um pouco, pois ele também faz parta da Internet das Coisas, e como um veículo autônomo, pode dirigir sozinho de forma segura, comunicando-se com outros carros e com a infraestrutura da cidade.
Quando os objetos passam a antecipar as nossas necessidades, as tarefas rotineiras do dia-a-dia serão otimizadas.
- Possíveis riscos:
A maior preocupação é em relação à segurança e privacidade dos sensores usados em IoT e dos dados que eles armazenam. E mais do que isso, a integração de dispositivos para transferir todos os dados críticos também apresenta problemas.
Segundo o The CommLaw Group, entre junho e novembro de 2016, mais de 100 milhões de dispositivos relacionados à Internet das Coisas foram afetados por malwares em todo o mundo. Não se trata apenas de perder dados ou de tê-los comprometidos, mas de que essas pessoas acessem áreas fundamentais para a companhia, afetando serviços como até mesmo a energia elétrica. Os ataques de hackers têm um custo alto para boa parte das empresas: estima-se algo em torno de US$ 280 bilhões ao ano.
A indústria precisa, portanto, definir e seguir critérios que garantam disponibilidade dos serviços (incluindo aqui a rápida recuperação em casos de falhas ou ataques), proteção de comunicações (que, nas aplicações corporativas, deve incluir protocolos rígidos e processos de auditoria), definição de normas para privacidade, confidencialidade de dados (ninguém pode ter acesso a dados sem a devida autorização), integridade (assegurar que os dados não serão indevidamente modificados), entre outros.
- Referências bibliográficas:
IP
IPSec
- Conceito
- Protocolo de Segurança IP (IPsec) é uma extensão do protocolo IP que visa a ser o método padrão para o fornecimento de privacidade do usuário (aumentando a confiabilidade das informações fornecidas pelo usuário para uma localidade da internet, como bancos), integridade dos dados (garantindo que o conteúdo que chegou ao seu destino seja o mesmo da origem) e autenticidade das informações ou prevenção de identity spoofing (garantia de que uma pessoa é quem diz ser), quando se transferem informações através de redes IP pela internet.O IPSec pode ser definido como uma plataforma formada por um conjunto de protocolos que fornecem os seguintes serviços de segurança:
- Controle de acesso;
- Integridade dos dados (pacotes);
- Autenticação do host origem;
- Privacidade nos dados (pacotes);
- Privacidade no fluxo dos dados (pacotes);
- Reenvio de pacotes;
- Protocolo de Segurança IP (IPsec) é uma extensão do protocolo IP que visa a ser o método padrão para o fornecimento de privacidade do usuário (aumentando a confiabilidade das informações fornecidas pelo usuário para uma localidade da internet, como bancos), integridade dos dados (garantindo que o conteúdo que chegou ao seu destino seja o mesmo da origem) e autenticidade das informações ou prevenção de identity spoofing (garantia de que uma pessoa é quem diz ser), quando se transferem informações através de redes IP pela internet.O IPSec pode ser definido como uma plataforma formada por um conjunto de protocolos que fornecem os seguintes serviços de segurança:
- Funcionamento
- O IPSec trabalha em dois modos, modo de Transporte e modo Túnel:
- Modo Transporte:
- No modo de Transporte, apenas o segmento da camada de transporte á processado, isto é, autenticado e criptografado. Este modo é aplicável para implementações em servidores e gateways, protegendo camadas superiores de protocolos, além de cabeçalhos IP selecionados. O cabeçalho AH é inserido após o cabeçalho IP e antes do protocolo de camada superior (TCP, UDP, ICMP), ou antes de outros cabeçalhos que o IPSec tenha inserido. Os endereços de IP de origem e destinos ainda estão abertos para modificação, caso os pacotes sejam interceptados.
- Modo Transporte:
- O IPSec trabalha em dois modos, modo de Transporte e modo Túnel:
- Modo Tunel:
- No modo Túnel todo o pacote IP é autenticado ou criptografado, ficando apenas o cabeçalho IP externos (como o último endereço de destino e origem) visível, informando o destino do gateway (roteador, firewall, etc), permanecendo todo o conteúdo interno criptografado.Este método pode ser usado para evitar a análise de tráfego. Devido ao fato de o cabeçalho IP conter o endereço de destino e possivelmente as diretivas de roteamento e informação proveniente da opção hop-by-hop, não é possível simplesmente transmitir o pacote IP criptografado utilizando prefixo de cabeçalho ESP, pois roteadores intermediários seriam incapazes de processar tal pacote.Desta forma, é necessário encapsular o bloco inteiro (cabeçalho ESP mais pacote IP criptografado) com um novo cabeçalho IP que deverá conter informações suficientes para roteamento, mas não para análise de tráfego. Enquanto o modo de transporte é adequado para proteger conexões entre estações que suportam o modo ESP o modo túnel é útil numa configuração que inclua um firewall ou outro tipo de gateway de segurança que protege uma rede confiável das redes externas. No segundo caso, a criptografia acorre apenas entre uma estação externa e o gateway de segurança, ou entre dois gateways de segurança. Isto libera as estações da rede interna do processamento de criptografia e também simplifica a tarefa de distribuição de chaves pela redução do número de chaves necessárias. Além disso, inibe a análise de tráfego baseada no destino final.
- Modo Tunel:
- Vantagens
- Teremos uma grande proteção ataques feitos à uma rede, seja privada ou não. Obtem-se com ele uma interessante política de proteção à captura de dados. O IPSec não é de complexa configuração.Utilizamos sistemas de criptografia e protocolos de segurança, que são os grandes diferencias e que torna o IPSec tão atrativo quando falamos em uma conexão segura.Apenas os Hosts destino e origem deve “conversar” IPSec, todos os hops da rede apenas encaminharão o pacote IP ao seu destino.
- Bibliografia
Linguagens de Programação
Linguagem de programação, como fiz o nome, é uma linguagem usada para programar. Mas o que isso quer dizer? Quer dizer que, é uma maneira da qual nós humanos conseguimos "conversar" com dispositivos, podendo ser computadores ou até mesmo uma televisão. Esta conversa ocorre por meio de uma série de instruções e regras, que são usados para gerar softwares; tais softwares são quem fazem o intermédio desta conversa entre os programadores e os hardwares, as peças dos dispositivos.
Assim como ocorre no mundo, existem diversas linguagens de programação, dentre elas existem os tipos de linguagens:
- Programação estruturada: Uma forma de programar baseada em uma tríade: sequência, decisão e repetição. Exemplo de linguagem: Haskell.
- Programação Modular: No desenvolvimento das rotinas de programação, tal ação é feita por meio de módulos. Exemplo de linguagem: Modula-2
- Programação orientada a objetos: Programação, que seu principal paradigma é a orientação a objeto. Atualmente, 90% das linguagens tem suporte a este recurso.

- As linguagens também são classificadas em níveis (alto ou baixo). Existem aquelas em que a sintaxe se aproxima a uma linguagem humana, por isso entram na categoria das linguagens de alto nível. E também, existem as linguagens que possuem sintaxe e semântica próximas ao código de máquina, portando, classificadas como linguagens de baixo nível.
- Exemplo de linguagem de baixo nível: Assembly
- Exemplo de linguagem de alto nível: C
- Aqui segue uma tabela que mostra o TOP 20 linguagens de programação no mês de abril de 2019, comparado com o mesmo mês do ano de 2018, segundo o Tiobe Index.
- Logo abaixo, um TOP 10 das linguagens que mais se destacaram nos respectivos anos.
- Referências:
- https://www.tiobe.com/tiobe-index/
- SEBESTA, Robert W. Conceitos de Linguagens de Programação - 11.ed. [S. l.]: Bookman Editora, 2018. Disponível em: book.google.com.br. Acesso em: 15 abr. 2019.
- https://universidadedatecnologia.com.br/o-que-e-linguagem-de-programacao/
Machine Learning
- O que é?
- Uma ramificação da área de Inteligência Artificial, enquanto essa se baseia em “imitar” atitudes humanas, a Machine Learning em si, como o nome sugere, é o procedimento em que a máquina realmente aprende, por meio de análise de dados e identificação de padrões, a tomar decisões teoricamente conscientes, com o mínimo possível de intervenção humana.
- Desde muito tempo atrás, os computadores não eram capazes de realizar nada mais, nada menos do que o que fora programado para fazer, mas por que tratar as máquinas somente como máquinas? Logo no começo de tal estudo, pesquisadores focados em IA demandaram tempo e trabalho submetendo testes de reconhecimento de padrões, visando saber se os computadores realmente poderiam aprender – independentemente – quando expostos a novos dados.
- Por quê?
- É socialmente aceito o fato de que acertar 60% das vezes alguma suposição é considerado um sucesso. Mas se podemos prever como as pessoas agirão, não deveríamos sempre acertar? Ou seja, não estamos fazendo algo de forma errada?
- Ensinando as máquinas a agirem por si só, contaremos com o apoio de alguém cuja capacidade e paciência de aprender podem se sobressair a qualquer outro sujeito já visto na história. A cada dia estamos mais perto de atingir algum resultado realmente satisfatório, diminuindo a porcentagem de erros pouco a pouco, fazendo com que 60% nunca mais seja sinônimo de sucesso.
- Como a máquina aprende?
- Já previamente citado acima, o processo de aprendizagem de uma máquina se baseia na análise de massivas quantidades de dados, principalmente nos resultados anteriormente obtidos em testes. Testes esses que são gerados pelos softwares, que constroem previsões de aplicação, mesmo sem alterar seu código fonte.

- Como desenvolver uma aplicação de Machine Learning?
- Coletar dados
- Você pode coletar dados procurando manualmente por websites ou livros, pegar informações de alguma API, possuir um sistema previamente programado para procurar e enviar tais dados para você, o leque de possibilidades é imenso.
- Preparar os dados de entrada
- Não basta só obter os dados necessários, é preciso também fazer com que os mesmos passem a possuir um formato utilizável, que ajude você a construir e manusear de forma prática o algoritmo.
- Analisar os dados de entrada
- Tendo como objeto os dados da tarefa anterior, é necessário analisar os dados, em busca de qualquer padrão óbvio, se esse existir – como, por exemplo, um conjunto de dados específico que difere muito do resto.
- É cabível, também, separar o objeto a ser analisado em diferentes camadas (ou dimensões), para facilitação da análise. Entretanto, na maioria das vezes você vai se deparar com bem mais do que três características a serem divididas, tornando difícil fazer uma análise precisa de primeira.
- Para ajudar, nesses casos, podem ser usados métodos avançados que filtram múltiplas dimensões, a fim de diminuí-las para um número confortável para ser analisado.
- Treinar o algoritmo
- Nesse passo realmente a Machine Learning começa a tomar conta. Você alimenta o algoritmo com dados e extrai informação ou conhecimento. É necessário que você armazene tal conhecimento de uma forma legível para a máquina usar nos próximos passos.
- Testar o algoritmo
- Agora a informação obtida e armazenada no último passo será utilizada. Ao testar e avaliar o algoritmo, você verá o quão bem ele faz o que fora proposto pra fazer. Se for uma “supervised learning” (aprendizagem supervisionada), você pode colocar valores e casos que conhece para serem testados, e se for uma “unsupervised learning” (aprendizagem não supervisionada), você terá de usar outros métodos para obter o sucesso.
- Usar o algoritmo
- Aqui, após revisar todos os passos, você realmente possui um programa com uma determinada função.
- Coletar dados
- Por que Python?
- Para realmente construir um sistema que utilize Machine Learning, é necessária a utilização de alguma linguagem de programação popular, de fácil entendimento e com um grupo ativo de desenvolvimento. Tendo isso em vista, Python está no topo ao analisar tais exigências como um todo.
- Python possui uma sintaxe muito simples, além de ser bem acessível para qualquer tipo de pessoa, pois oferece também um enorme leque de possibilidades, podendo ser utilizada para programação procedural, orientada a objeto, funcional e etc.
- A linguagem conta também com um número imensurável de bibliotecas – de fácil localização e instalação também –, além da fácil e intuitiva manipulação de texto.
- O que difere Python das demais populares linguagens? Exemplos como Java e C são bem-vindos: ambas contam com um grande número de linhas de código para qualquer tipo de problema, desde a declaração de variáveis até a saída de dados. Python é concisa e fácil, tanto para ler quanto codificar, o que a torna bem mais acolhedora, até mesmo para quem nunca programou na vida.
- Por que Python?

- Exemplos
- Carros autônomos
- Recomendações de sites como a Amazon ou aplicações como o Spotify
- Análise de cotações da Bolsa


- Referências bibliográficas
- Conceito e exemplos
- Conceito, importância e processos de desenvolvimento
- Livro Machine Learning in Action, de Peter Harrington (Caps. 1.1; 1.5; 1.6)
- Imagens usadas
- adelaide.edu.au
- bleepingcomputer.com
- startupi.com.br
- news.allaboutjazz.com
Memória RAM
- Conceito
- Memória de Acesso Aleatório ou RAM, é o hardware físico dentro de um computador que armazena dados temporariamente, servindo como a memória "de trabalho" do computador.
- Adicionar mais RAM permite que um computador trabalhe com mais informações ao mesmo tempo, o que geralmente tem um efeito considerável no desempenho total do sistema.
- Seu computador usa RAM para carregar dados porque é muito mais rápido do que executar os mesmos dados diretamente de um disco rígido.
- Funcionamento
- Pense na RAM como uma mesa de escritório. Uma mesa é usada para acesso rápido a documentos importantes, ferramentas de escrita e outros itens de que você precisa no momento . Sem uma escrivaninha, você manteria tudo armazenado em gavetas e armários, significando que levaria muito mais tempo para realizar suas tarefas diárias, já que você teria que constantemente entrar nesses compartimentos de armazenamento para obter o que precisa, e depois gastar mais tempo colocando afastados.
- Da mesma forma, todos os dados que você está usando ativamente em seu computador (ou smartphone, tablet , etc.) são armazenados temporariamente na RAM. Esse tipo de memória, como uma mesa na analogia, fornece tempos de leitura / gravação muito mais rápidos do que o uso de um disco rígido. A maioria dos discos rígidos é consideravelmente mais lenta que a RAM devido a limitações físicas, como velocidade de rotação.
- Ao contrário de um disco rígido, que pode ser desligado e ligado novamente sem perder seus dados, o conteúdo da RAM é sempre apagado quando o computador é desligado. É por isso que nenhum dos seus programas ou arquivos ainda estão abertos quando você liga o computador novamente.
- RAM no seu computador
- Um módulo padrão ou gravador de memória de mesa é um hardware longo e fino que se parece com uma régua curta. A parte inferior do módulo de memória possui um ou mais entalhes para orientar a instalação adequada e é revestida com vários conectores, geralmente banhados a ouro.
- A memória está instalada nos slots do módulo de memória localizados na placa-mãe . Esses slots são fáceis de encontrar - basta olhar para as pequenas dobradiças que prendem a RAM no lugar, localizadas em ambos os lados do slot de tamanho similar na placa-mãe.

- Referências bibliográficas:
Modelo Orientado a Serviço
- Arquitetura Orientada a Serviço é um modelo de planejamento de estratégia da área de tecnologia da informação, alinhando diretamente aos objetivos de negócios de
uma organização que permite expor as funcionalidades os aplicativos em serviços padronizados e inter-relacionados. Essa arquitetura tem como objetivo integrar as aplicações, disponibilizar maior flexibilidade para mudanças, suportar serviços independentes de plataforma e protocolos.
- Serviço são módulos de negócios ou funcionalidades que possuem interfaces expostas que são invocadas via mensagens, estas que disponibilizam recursos sem que
a implementação do serviço seja conhecida.
• Um serviço pode assumir dois papéis em uma arquitetura orientada a serviços: – Servidor/Provedor • Prestador de um serviço. • Possui interface publicada com a descrição dos serviços prestados. – Cliente/Consumidor • Solicita (consome) serviços de um provedor.
- SOA trata os requisitos de baixo acoplamento, desenvolvimento baseado em padrões, computação distribuída independentemente de protocolo, integração de aplicação e sistemas legados, seu componente mais importante é o ESB ( Barramento de Serviço Corporativos), não implementa a arquitetura, mas oferece as funcionalidades para implementá-las. Seu maior foco é a construção e disponibilização de serviços de negócio, evitar replicação de dados, reuso e facilidade de manutenção de sistemas, integração entre sistemas, visão e controle do processo de negócio, agilidade na mudanças.
Vantagens
Tem como vantagem o reuso de serviços, aumentando produtividade, alinhamento com negócios, melhorias para corporação e facilidade na gerencia da tecnologia da informação, focando em melhorias continuas e automatizando os processos, disponibilizando qualidade de informações trafegadas na empresa.
Abaixo são listadas algumas vantagens que ela pode trazer para o negócio.
- Reutilização: O serviço pode ser reutilizado para outras aplicações.
- Produtividade: Com o reuso, a equipe de desenvolvimento pode reutilizar serviços em outros projetos, diminuindo o tempo de desenvolvimento.
- Flexibilidade: Isolando a estrutura de um serviço as mudanças são feitas com maior facilidade.
- Manutenibilidade: Com baixo acoplamento, facilita a manutenção dos serviços.
- Alinhamento com o negócio: A área de negócio visualiza os processos alinhados com a tecnologia.
- Interoperabilidade: Disponibilizar serviços independentemente da plataforma e tecnologia.
- Integração: A integração com outros serviços, aplicativos e sistemas legados.
- Governança: Gerenciamento nos processamentos de negócio.
- Padronizado: É baseado no uso de padrões.
- Abstração: Serviço totalmente abstraído da sua implementação.
- Desvantagens
Sua desvantagem é a questão de segurança. Pois, ela depende da implantação de normas, não é utilizada em aplicações com frande transferência de dados, altos acoplamentos e aplicações que precisam manter estado.
A seguir são listadas algumas desvantagens.
- Siga os padrões de mercado: WS-I, WS-BPEL, WSDL, UDDI, SOAP.
- Use ESB (Enterprise Service Bus): É um mecanismo arquitetural para comunicação corporativa que possibilita a integração de sistemas.
- Siga os princípios de SOA: Fraco acoplamento, contrato de interfaces, serviços reutilizáveis, não manter estado entre chamadas.
- Use nomes de negócio para os serviços: Os consumidores dos serviços não sabem o que acontece dentro dos serviços, então os nomes dos serviços devem usar terminologias e vocabulário para tornar seu significado intuitivo.
- Estabeleça padrõe[[Arquivo:s de nomenclatura: Facilita na leitura e o significado dos serviços.
- Seja cético na candidatura de serviços: Nem tudo precisa ser um serviço. Explore sistemas que já existem para procurar candidatos a serviços, verificar o valor para o negócio e não para a TI.
- Otimize mensagens SOAP: O conteúdo do SOAP é XML. Trafegar grandes informações pode ser um problema, devido à quantidade de tags em torno dos dados. Procure um mecanismo mais eficiente de serialização de XML.
- Crie serviços que tenham operações atômicas: O serviço não deve se preocupar com dados de outros serviços, serviços devem funcionar sem transação e estornos de dados.
- Construa seus serviços iterativamente: Não tente criar tudo em um serviço ao mesmo tempo, comece com uma área ou grupo de processos que traga valor agregado no negócio.
- Contrate uma consultoria: Não tente implantar SOA sem ajuda externa, é um estilo arquitetural difícil de aplicar.
- Os desafios de fornecer aplicações baseadas em SOA está em identificar os problemas que podem acontecer e ter um plano para resolvê-los sem ter impactos na implementação. Para que seja bem sucedida, precisa de uma arquitetura de referência bem estruturada e planejada, precisam de pessoas que lideram a abordagem orientada [[a serviço.
SOA é considerado como chave para melhorar a eficiência de TI, mais para implementar o negócio, é preciso ter muito mais do que apenas conhecimento técnico, e sim fornecer serviços com mais segurança e conscientização das pessoas que estão envolvidas no processo.
- Segue baixo alguns modelos:
* Referências bibliográficas:
https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437
https://www.treinaweb.com.br/blog/voce-sabe-o-que-e-arquitetura-orientada-a-servicos-soa/
https://www.profissionaisti.com.br/2017/05/soa-principios-de-projetos-orientados-a-servico/
https://www.youtube.com/watch?v=vo-MYUsuFms
Normalização (BD)
NoSQL
Open Source
Open Source
Periféricos
Plataformas
Portas
- Conceito:
- Portas, na computação, são um conjunto de 16 bits conhecido como port number, adicionado a um endereço de IP, e são um meio de comunicação na rede.
- Enquanto a utilidade de um endereço de IP é a de identificar um computador em uma rede, a porta identifica uma aplicação em um computador.
- São divididas em dois principais protocolos de transporte: Transmission Control Protocol (TCP) e User Datagram Protocol (UDP).
- Protocolos TCP e UDP:
- TCP:
- Considerado o protocolo de rede mais importante devido ao fato de formar o modelo TCP/IP que compõe toda a internet. É o mais utilizado atualmente, pois suas características permitem uma maior flexibilidade de usabilidade, sendo as principais características:
- Retornar uma resposta de sucesso quando todos os segmentos foram transferidos corretamente;
- Agrupar segmentos fora de ordem;
- Controlar fluxo;
- Manter conexões lógicas;
- Realizar transferências simultâneas em ambas as direções.
- Considerado o protocolo de rede mais importante devido ao fato de formar o modelo TCP/IP que compõe toda a internet. É o mais utilizado atualmente, pois suas características permitem uma maior flexibilidade de usabilidade, sendo as principais características:
- UDP:
- O UDP é considerado um protocolo menos confiável e mais simples, devido ao fato de não manter conexões. O funcionamento do User Datagram Protocol é de apenas enviar dados, sem receber nenhuma confirmação da recepção ou possibilitar transferências simultâneas.
- Seu uso pode parecer inútil inicialmente, porém há casos onde o fato da possibilidade de perda de dados será utilizado positivamente, como em streaming de vídeos, onde uma instabilidade se usado o pacote TCP causaria congelamento de imagens, já com UDP manteria rodando, apenas com a merda de alguma qualidade.
- O UDP é considerado um protocolo menos confiável e mais simples, devido ao fato de não manter conexões. O funcionamento do User Datagram Protocol é de apenas enviar dados, sem receber nenhuma confirmação da recepção ou possibilitar transferências simultâneas.
- Ambos os pacotes podem ser analisados e recusados por um firewall, que tem como principal funcionalidade analisar os pacotes recebidos e controlar o fluxo desses dados através de regras.
- TCP:
- TCP/IP:
- Também chamado de pilha de protocolos TCP pois é um conjunto de protocolos divididos em quatro camadas, que garantem a integridade do pacote na rede, sendo elas:
- Camada de Aplicação:
- Utilizada para iniciar o envio e receber informações na rede.
- Camada de Transporte:
- Recebe os dados da camada acima, verifica a integridade e divide em pacotes.
- Camada de Rede:
- Anexa os pacotes a um endereço de IP do remetente e do destinatário.
- Camada de Interface:
- Finalizar o envio de pacotes pela rede.
- Camada de Aplicação:
- Também chamado de pilha de protocolos TCP pois é um conjunto de protocolos divididos em quatro camadas, que garantem a integridade do pacote na rede, sendo elas:
- Veja a seguir como funciona o envio de um pacote em uma transmissão TCP/IP:
- Estação: SYN (solicita a abertura da conexão)
- Servidor: SYN (confirma o recebimento e avisa que a porta está disponível)
- Servidor: ACK (inicia a conexão)
- Estação: ACK (confirma)
- Estação: DATA (é enviado o pacote com a mensagem de texto)
- Servidor: OK (a confirmação, depois de verificar a integridade do pacote)
- Estação: FYN (solicita o fechamento da conexão)
- Servidor: FYN (confirma)
- Estação: FYN (confirma que recebeu a confirmação)
- Principais portas padrões:
- APLICAÇÃO: PORTA
- HTTP: 80 (WEB)
- HTTPS: 8080 (SSH WEB)
- FTP: 21 (File Transfer Protocol)
- DNS: 53 (Domain Name Server)
- MySQL: 3306 (Banco de dados)
- Exemplos de aplicações rodando em portas:

Primeiramente, é necessário liberar as portas nas configurações de seu roteador e firewall
Netcat rodando na porta 9999 pelo bash do linux.

Servidor aberto com nodejs.
- Referências bibliográficas:
- Protocolo e serviços de rede - Prof. Renan Osório Rios
- Firewall Patterns - Markus Schumacher
- Hardware - www.hardware.com.br
Processadores
Protocolos
RA
Raspberry
Redes de Computadores
Redes Neurais
RFId
Roteador
SaaS
Scrum
Sensores
Sistema embarcado
- Introdução
Sistemas embarcados revolucionam o mundo continuamente melhorando a vida das pessoas. Basta olhar ao redor e perceber que eles estão em quase todos os lugares e que suas aplicações impulsionaram o desenvolvimento tecnológico de todas as áreas de conhecimento humano. Mas o que um sistema embarcado consegue fazer?
Um sistema embarcado salva vidas em marcapassos, garante a segurança dos transportes em computadores aviônicos e freios ABS, também aproxima as pessoas através de satélites e equipamentos de telecom, agrega conforto ao dia a dia com impressoras, TVs e players de mídia, e, ainda deixa a nossa vida mais divertida com os consoles de games. Sistema embarcado também é aplicado em sistemas de rede elétrica, em sistemas bélicos, em reatores nucleares, enfim, eles estão presentes em quase todos os eletrônicos.
- O que é ?
O sistema embarcado, também chamado de sistema embutido, é um sistema microprocessado em que um computador está anexado ao sistema que ele controla. Um sistema embarcado pode realizar um conjunto de tarefas que foram predefinidas. O sistema é usado para tarefas específicas, e assim, através de engenharia é possível otimizar um determinado produto e diminuir o tamanho, bem como os recursos computacionais e o seu valor final. Em geral tais sistemas não podem ter sua funcionalidade alterada durante o uso. Caso queira-se modificar o propósito é necessário reprogramar todo o sistema.
- Aplicações
Os sistemas embarcados estão por toda a nossa volta, e por essa razão, não nos damos conta de sua capacidade computacional, já que estamos tão envolvidos com tais mecanismos. Sistemas embarcados operam em máquinas que podem trabalhar por vários anos sem parar, e que ainda, em alguns casos, possuem a capacidade de autocorreção. Um excelente exemplo de itens que usam sistemas embarcados são os famosos smartphones, que desempenham funções específicas, e que contam com mecanismos mais limitados que os computadores. Confira baixo uma lista com alguns exemplos que recebem a aplicação de sistemas embarcados: • Urna eletrônica;
• Videogames;
• Calculadoras;
• Impressoras;
• Alguns eletrodomésticos;
• Aparelhos celulares;
• Equipamentos hospitalares;
• Em veículos;
• Roteadores.
- Fontes:
https://www.embarcados.com.br/sistema-embarcado/
https://www.oficinadanet.com.br/post/13538-o-que-sao-sistemas-embarcados
SO
Speech Recognition
SQL
- Conceito
É uma linguagem que surgiu na década de 70, e significa "Structured Query Linguage" em português "Linguagem de Consulta Estruturada" , usada para se comunicar com o banco de dados, com o foco ao modelo relacional.
- Pra que serve?
Como sendo uma linguagem padrão para o gerenciamento de banco de dados, suas instruções são usadas para executar tarefas como criar, deletar, consultar e atualizar o banco de dados, além de inserir dados e manipula-los.
- Como funciona?
Após a criação do banco de dados, os dados serão armazenados em campos dentro de tabelas para organização, imagine que você esta guardando pastas(campos) dentro de gavetas(tabelas) em uma cômoda(banco de dados), ao criar cada tabela você precisa definir quantos campos terão e o tipo de dado que cada campo irá guardar, além de estabelecer uma chave primária que representará a tabela, e/ou uma chave secundária para se relacionar com outras tabelas. Os principais comandos para manipulação de dados são: Create, Delete, Select, Update, usados para criar, deletar, consultar e atualizar campos e tabelas.
- Referência bibliográficas
UML
- O que é UML - Unified Modeling Language ?
- A Linguagem de modelagem unificada (UML) foi criada para estabelecer uma linguagem de modelagem visual comum, semanticamente e sintaticamente rica, para arquitetura, design e implementação de sistemas de software complexos, tanto estruturalmente quanto para comportamentos. Além do desenvolvimento de software, a UML tem aplicações em fluxos do processo na fabricação.
- A UML não é uma linguagem de programação, mas existem ferramentas que podem ser usadas para gerar código em várias linguagens por meio de diagramas UML. Tem uma relação direta com a análise e o design orientados a objetos. É uma combinação de várias notações orientadas a objetos: design orientado a objetos, técnica de modelagem de objetos e engenharia de software orientada a objetos. Representa as melhores práticas para desenvolver e documentar aspectos diferentes da modelagem de software e sistemas de negócios.
- Conceitos de Modelagem
- O desenvolvimento de sistemas centra-se em três modelos gerais e diferentes do sistema:
- Funcional: são diagramas de caso de uso, e descrevem a funcionalidade do sistema a partir do ponto de vista do usuário.
- Objeto: são diagramas de classes, e descrevem a estrutura do sistema em termos de objetos, atributos, associações e operações.
- Dinâmico: diagramas de interação, diagramas de máquinas de estados e diagramas de atividade, e são usados para descrever o comportamento interno do sistema.
- O desenvolvimento de sistemas centra-se em três modelos gerais e diferentes do sistema:
- Conceitos orientados a objetos
- Os objetos em UML são entidades do mundo real que existem ao nosso redor.
- Alguns conceitos fundamentais de um mundo orientado a objetos são :
- Objetos: Representam uma entidade e um componente básico essencial.
- Classe: Modelo de um objeto.
- Abstração: Comportamento de uma entidade do mundo real.
- Encapsulamento: Mecanismo de vincular os dados e escondê-los do mundo exterior.
- Herança: Mecanismo de criar novas classes a partir de uma existente.
- Polimorfismo: Define o mecanismo em diferentes formas.
- Tipos de Diagramas UML
- Usa-se diferentes elementos associando-os de maneiras diferentes formando diagramas que representam aspectos estruturais de um sistema, além de diagramas comportamentais que registram os aspectos dinâmicos de um sistema.
- Diagramas estruturais:
- Diagrama de classes: É o diagrama UML mais usado, e a principal base de qualquer solução orientada a objetos. Classes dentro de um sistema, atributos e operações, e a relação entre cada classe. Classes são agrupadas para criar diagramas de classes quando há uma diagramação de grandes sistemas.
- Diagrama de componentes: Exibe a relação estrutural de elementos do sistema de software, na maioria das vezes utilizado quando se trabalha com sistemas complexos com múltiplos componentes. Componentes se comunicam por meio de interfaces.
- Diagrama de estrutura composta: Diagramas de estrutura composta são utilizados para mostrar a estrutura interna de uma classe.
- Diagrama de implementação: Ilustra o hardware do sistema e seu software. É útil quando uma solução de software é implantada em diversas máquinas com configurações únicas.
- Diagrama de objetos: Mostra a relação entre objetos usando exemplos do mundo real e retrata um sistema em um determinado momento. Como os dados estão disponíveis dentro de objetos, eles podem ser utilizados para esclarecer as relações entre objetos.
- Diagrama de pacotes: Existem dois tipos especiais de dependências definidas entre pacotes: a importação do pacote e a mesclagem do pacote. Para revelar a arquitetura, os pacotes representam os diferentes níveis de um sistema. Dependências de pacotes podem ser marcadas para mostrar o mecanismo de comunicação entre os níveis.
- Diagramas comportamentais:
- Diagramas de atividade: Fluxos de trabalho de negócios ou operacionais representados graficamente para exibir a atividade de qualquer parte ou componente do sistema. Diagramas de atividade são usados como alternativa aos diagramas de máquina de estados.
- Diagrama de máquina de estados: Semelhante a diagramas de atividade, eles descrevem o comportamento de objetos que se comportam de maneiras diferentes em seu estado atual.
- Diagrama de caso de uso: Representa uma determinada funcionalidade de um sistema, e foi criado para ilustrar a forma como as funcionalidades se relacionam e seus controladores internos e externos (atores).
- Diagrama de integração:
- Diagrama de sequência: Mostra como objetos interagem entre si, e a ordem de ocorrência. Representam interações para um determinado cenário.
- Diagrama da visão geral da interação: Há sete tipos de diagramas de interação, e este diagrama exibe a sequência em que eles atuam.
- Diagrama de tempo: Assim como os diagramas de sequência, representa o comportamento de objetos em um determinado período de tempo. Se houver um único objeto, o diagrama é simples. Se houver mais de um objeto, as interações dos objetos são exibidas durante este período de tempo determinado.
- Diagrama de comunicação: Semelhante a diagramas de sequência, no entanto foca mensagens transmitidas entre objetos. A mesma informação pode ser representada usando um diagrama de sequência e outros objetos.
- Diagramas estruturais:

- Usa-se diferentes elementos associando-os de maneiras diferentes formando diagramas que representam aspectos estruturais de um sistema, além de diagramas comportamentais que registram os aspectos dinâmicos de um sistema.
- Referencias
- https://books.google.com.br/books?hl=pt-BR&lr=&id=elvjBwAAQBAJ&oi=fnd&pg=PT4&dq=UML&ots=xUTnPNrVyC&sig=eZHvzL-UyGTJTZLNFSF_uqFuPM8#v=onepage&q=UML&f=false
- https://www.uml.org/what-is-uml.htm
- https://books.google.com.br/books?hl=pt-BR&lr=&id=ddWqxcDKGF8C&oi=fnd&pg=PR13&dq=UML&ots=feAMpf8NPP&sig=INxlV5T1Rd0shXRc9wvpBtMqj_U#v=onepage&q=UML&f=false
- https://books.google.com.br/books?hl=pt-BR&lr=&id=xxoXcuh0oS0C&oi=fnd&pg=PR8&dq=UML&ots=ut3N9ClP9x&sig=rRZz50MynVyeg9cwebVffE7RBs8#v=onepage&q=UML&f=false










