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
| 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 | Daniela |
| 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 Neto |
| Conectores | Marcel Felipe de Paiva Maciel |
| CPU | Marcus Vinicius Marchiori |
| Criptografia | Igor de Castro |
| Data Mining | Vinicius Calixto Rocha |
| DMA | Vinicius Alves Martins |
| ERP | Emerson Martins dos Santos |
| ETL | Gabriel Pires |
| eXtreme Programming | Gabriel Alcântara da Costa Batista |
| Firewall | Caio Marcio |
| 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 |
| IoT | Helton Pereira de Aguiar |
| 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 |
| 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 |
| Plataformas | Alexandre Mariano |
| Processadores | Nicolas de Melo Proença |
| Portas | Matheus Candido Ferreira de Faria |
| Protocolos | Gabriel Dal Belo Gomes Santos |
| PWA | Heldson Luiz da Silva |
| RA | Luiz Fellipe Silva Lima |
| Raspberry | Henrique Tornelli Duarte |
| Redes de Computadores | Victor Silva Santos |
| Redes Neurais | Matheus Fagundes |
| Renderização | Pedro Eduardo |
| Roteador | Matheus Negrisolli Rosa Seixas |
| Satélite | Fernando Toshiharu |
| Scrum | Artur Amaro |
| 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 |
Pesquisa dos temas
Algoritmos
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
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.
- 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. Um exemplo de API local, é a requisição de data do sistema pelo Excel (quando se utiliza CTRL+;)
- 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. 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 o alimento que foi solicitado (dados).
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
- 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/
App
Arduino
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
Banco de Dados
- Conceito:
- Bancos de dados são conjuntos de informações (agrupamento de dados organizado de modo que crie um sentido e conhecimento) que se relacionam entre si criando um sentido,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, um modo físico (papel) e 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.
- Sua principal função é a de armazenar informações 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,exixstem dois tipos de bancos de dados: os bancos de dados relacionais (que utilizam SQL) e os NoSQL.
- Os bancos de dados relacionais (que utilizam SQL) já estão consolidados 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 SGBD que executam comandos em SQL (Structured Query Language).
- Os bancos de dados 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 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.
- Seu funcionamento consiste basicamente em: armazenar e gerenciar dados, criando informações, por meio de um SGBD ou outros meios nos bancos NoSQL e também criar tabelas e regras.
- 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 relacionais.
- Integrações:
- Depende das tecnologias: SQL, XQuery, SGBD, API, Hardware.
- Interage com as tecnologias: Servidor, 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
Barramentos
BI
- Conceito:
- Explique aqui o que é a metodologia, para que serve
- Procedimentos:
- Descreva aqui o funcionamento, as técnicas e detalhes da metodologia
- Concorrentes:
- Cite outras metodologias com o mesmo propósito e que concorrem com ela
- Criadores:
- Informe quem criou, propôs ou idealizou esta metologia
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 5 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:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
CanvAs
- Conceito:
- Explique aqui o que é a metodologia, para que serve
- Procedimentos:
- Descreva aqui o funcionamento, as técnicas e detalhes da metodologia
- Concorrentes:
- Cite outras metodologias com o mesmo propósito e que concorrem com ela
- Criadores:
- Informe quem criou, propôs ou idealizou esta metologia
Cloud Computing
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
CLP
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
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.
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
Criptografia
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
Data Mining
- Conceito:
- Atualmente armazenamos uma enorme quantidade de dados diariamente, e a tendência é armazenarmos cada vez mais, pois, boa parte do 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 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 Data mining e o conceito como sinônimos, outros como Data mining 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:
- 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 cálculos matemáticos usados para o processo de análise.
- 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
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.
- 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 (https://www.arduino.cc/en/Guide/Introduction#).
- 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.
- 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
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
- Descreva aqui o funcionamento, as técnicas e detalhes da metodologia
- 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.
- 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: ""(regra 1, ação 1)"" ""(regra 2, ação 2)"" ""(regra 3, ação 3)"" "" 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): -Firewall de Aplicação (proxy services): -Inspeção de Dados (Stateful Inspection) Arquitetura dos Firewall; O modo como o Firewall é implementado, por possuir vários tipos ele consegue ser usado de diversas formas, alguns exemplos a seguir: -Arquitetura Dual-Homed Host -Screened Host -Screened Subnet
- Benchmarking::
Cite alguns sistemas que fazem o mesmo ou próximo do que este faz
- Desenvolvedores:
Informe que empresa, profissional ou instituição comercializa ou disponibiliza este software
Firmware
- Conceito:Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:Informe aqui com que outras tecnologias esta depende ou interage
- Referências: Informe aqui as fontes
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 está diretamente relacionada à economia de tempo que o mesmo providencia, já que o usuário não precisaria começar tudo do zero.
- Operação:
- Benchmarking:
- Desenvolvedores:
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 editor, compilador e depurador em um único software, com o objetivo de tornar o processo de codificação mais eficiente e produtivo.
- Operação:
- Descreva aqui como funciona a operação deste sistema
- Benchmarking:
- Cite alguns sistemas que fazem o mesmo ou próximo do que este faz
- Desenvolvedores:
- Informe que empresa, profissional ou instituição comercializa ou disponibiliza este software
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
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.
- “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
IPSec
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
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:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
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: [[[1]]]
- 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 um 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.
- Estado da Arte:
- Uber:
- Overwatch:
- Google:
- Integrações:
- Aprendizado de Maquina tem ligação com varias tecnologia, por exemplo Deep Learning, IA, Big Data, Banco de Dados, Business Intelligence, 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
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.
- 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
Modelo Estruturado
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:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
- Fontes:
- https://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetos
- 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
Modem
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 3 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 como 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 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:
Cite outras metodologias com o mesmo propósito e que concorrem com ela
Criadores:
Informe quem criou, propôs ou idealizou esta metologia
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:
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. Abaixo segue um LINK com um pouco mais de informação a respeito do assunto.
LINK: https://www.youtube.com/watch?v=h70939yYgXM&t=1s
- 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
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 (TCP, 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 (UDP, 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 é formada pela sequência dos protocolos HTTP, FTP, ARP, ICMP, IP, TCP, UDP, SMTP, Telnet e NNTP.
- 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
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:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- 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.
- 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.
Redes de Computadores
- Conceito:
- Uma rede de computadores pode ser definida como dois ou mais computadores conectados, 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.
- A LAN (Local Área Network) é uma rede pequena, que pode variar entre 10 metros à 1 Km de distância. São muito utilizadas em residências, empresas de pequeno porte.
- WAN (Wide Area Network) é uma rede de longa distância e pode 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.
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- 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).
Redes Neurais
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
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.
*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:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte::
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
Scrum
- Conceito:
Explique aqui o que é a metodologia, para que serve
- Procedimentos:
Descreva aqui o funcionamento, as técnicas e detalhes da metodologia
- Concorrentes:
Cite outras metodologias com o mesmo propósito e que concorrem com ela
- Criadores:
Informe quem criou, propôs ou idealizou esta metologia
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 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 desenvolvodo 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.
- Referências Bibliográficas
http://files.comunidades.net/mutcom/ARTIGO_SIST_EMB.pdf
http://www.academia.edu/download/42673850/Embarcados.pdf
ftp://143.54.11.3/pub/flavio/cmp231/jai2003.pdf
SO
- Conceito:
- Explique aqui o que é esta tecnologia, para que serve e como pode ser usada
- Funcionamento:
- Descreva aqui o funcionamento, as técnicas e detalhes desta tecnologia
- Estado da Arte:
- Cite o estágio mais atual desta tecnologia, ou seja, exemplos de aplicações bem recentes
- Integrações:
- Informe aqui com que outras tecnologias esta depende ou interage
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:
Speech Recognition
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
Web
- 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 partir 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:
- www.youtube.com
- www.google.com
- www.facebook.com
- 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) para representar as páginas;
- JavaScript é uma linguagem interpretada criada para Web, que permite que se rode scripts do lada 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
- ntegraçõ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








