novagenesis: visão geral
TRANSCRIPT
Arquitetura Convergente de Informação
Antônio Marcos Alberti Laboratório de Tecnologias da Informação e Comunicações (ICT Lab)
www.inatel.br/ictlab
29 de Abril 2017
‣ Uma arquitetura projetada “do zero” que integra redes e clouds.
‣ Objetivo: Criar uma arquitetura essencial de troca, processamento e armazenamento de informações através da integração sinérgica de diversos conceitos emergentes, que permita a implementação de protocolos como serviços, convergindo redes sem fio e cabeadas.
O que é a NovaGenesis?
Redes (troca de
informações)
Clouds (processamento e
armazenamento de informações)
= +
Telecom e Internet TI e Web
‣ Nomeação
ü Utiliza espaços de nomeação ilimitados.
ú Qualquer entidade pode ser nomeada: inclui nomes em linguagem natural (e.g. “Editor de fotos”) ou nomes auto-certificáveis (hash codes gerados via MD5, SHA1).
NovaGenesis: Princípios
ü Nomes são ligados uns aos outros formando um imenso grafo de nomes armazenado de forma distribuída e segura.
‣ Identificação e Escopos - Localização e Espaços
ü Nomes são usados para denotar escopos e espaços.
ü Nomes únicos em um escopo são identificadores (ID), i.e. identificam unicamente o alvo de uma comunicação.
NovaGenesis: Princípios
ü Nomes que fornecem noção de distância e localização em um espaço, são usados como endereços (LOC).
ü Todos estão no mesmo grafo.
ü Quem é quem depende do contexto.
Endereços
Identificadores
‣ Resolução de nomes
ü Resolução ilimitada de nomes.
ú Qualquer nome pode ser resolvido em outro(s) nome(s), desde que a ligação entre os dois tenha sido publicada.
§ Exemplo: ID de um serviço resolvido em ID de host.
NovaGenesis: Princípios
Nome Nome
Nome
Nome
Nome
Nome
Nome
‣ Resolução de nomes: exemploNovaGenesis: Princípios
Domain 1 inatel.br AB6712F1
ns1.inatel.br 131.221.240.56 EEEEF101
OS 2
Process 2
Process 3
Photo 1.jpgSLA 1.xml
OS 3
Process 4
Host 1 99ABCEEF
OS 1 180972AA
Process 1 2743 280273AA
Domain 2 hufs.ac.kr 99FACB03
ns.hufs.ac.kr 203.232.224.4 EEEEF101
Eiffel.avi
‣ Serviços
ü Todo software é um serviço, incluindo as implementações de protocolos.
ü O ciclo de vida dos serviços é suportado nativamente:
ú Exposição de características e capacidades, descoberta, negociação, contratação, monitoramento de qualidade, reputação, liberação de recursos.
ü Toda a operação é baseada em contratos.
ü Isso pode ser estendido ao hardware se ele for programável.
NovaGenesis: Princípios
‣ Protocolos
ü Nos Terminais: São implementados como serviços de uma arquitetura orientada a serviços (SOA).
ú Próxima versão terá kit para desenvolvimento de protocolos em software!
ú Protocolos concorrem entre si para ofertar os melhores serviços.
ú Novos protocolos podem ser desenvolvidos a qualquer momento, garantindo a evolução da arquitetura.
ü Na Rede: Serão implementados em hardware. O hardware pode ser atualizado via software (e.g. VHDL em FPGA).
NovaGenesis: Princípios
‣ Pilha de Protocolos:
ü A pilha de protocolos é formada dinamicamente através de contratos entre protocolos implementados como serviços.
NovaGenesis: Princípios
Protocolo 1 Protocolo 0 Protocolo 0
Protocolo 2 Protocolo 2 Protocolo 3 Protocolo 3 Protocolo 4
Protocolo A Protocolo B Protocolo B Protocolo C Protocolo C
Protocolo 1
Protocolo 2
Protocolo A Protocolo D
Protocolo Q Protocolo Q Protocolo Z Protocolo ZProtocolo Q
Protocolo 1
‣ Mobilidade
ü Vários nomes no grafo de nomes: alguns identificam uma entidade, outros a localizam.
ü Uma entidade que se move mantém os nomes que a identificam, mas muda a ligação com outros nomes que a localizam.
ü Mobilidade é garantida pela troca das ligações entre nomes.
NovaGenesis: Princípios
Nome Nome
Nome
Nome
Nome
Nome
Endereço anterior
Endereço atual
‣ Operação e Gerência
ü Recursos físicos (hardware) são representados por serviços que estabelecem contratos em seu nome.
ü Por exemplo:
ú Um Access Point Wi-Fi pode ser representado por um serviço que “vende” encaminhamento de quadros Wi-Fi.
ú Um roteador de pacotes pode ser representado por um serviço que “vende” roteamento de pacotes.
ú O serviço que “vende” roteamento contrata o serviço que “vende” encaminhamento, formando a rede.
NovaGenesis: Princípios
‣ Operação e Gerência (cont.)
ü A configuração do hardware reflete os contratos entre serviços.
ü Implementações de protocolos precisam contratar recursos de hardware via seus representantes.
ü O hardware opera definido por software (SDN), implementados como serviços no caso da NovaGenesis.
ü A melhor configuração da rede auto-emerge como um “comportamento social”, balizado em contratos, criando um mercado de recursos e serviços.
ü Serviços sem contrato desaparecem!
NovaGenesis: Princípios
‣ Encaminhamento e roteamento
ü Tabelas nos nós da rede (hardware) são populadas com ligações entre nomes fornecidas por serviços representantes.
ü Se um comutador ou roteador não sabe o que fazer com um quadro/pacote, ele pergunta para o seu representante de software (serviço representante).
ü O representante descobre o que fazer e configura a ligação no hardware.
ü O encaminhamento/roteamento pode ser feito considerando campos de cabeçalho de qualquer tecnologia (isso em open hardware), incluindo diretamente nomes de serviços e conteúdos.
NovaGenesis: Princípios
‣ Ilimitados espaços de nomeação e grafo distribuído de ligações entre nomes (guardado em tabelas hash distribuídas).
‣ Grafo de nomes usado para denotar escopos, espaços, identificadores e localizadores (endereços).
‣ Resolução ilimitada de nomes em outros nomes, suportando a mobilidade via religação de nomes.
‣ Todo o processamento de informações é visto como um serviço, inclusive a implementação dos protocolos da rede.
‣ Suporte a todo o ciclo de vida de serviços, i.e. exposição, busca, descoberta, negociação, contratação, monitoramento, reputação.
NovaGenesis: Princípios em Resumo
‣ Pilha de protocolos construída em tempo de execução.
‣ Controle e gerência via serviços representantes das “coisas”.
‣ Roteamento/encaminhamento baseado em descoberta de trajetos através da resolução recursiva de identificadores em localizadores.
NovaGenesis: Princípios em Resumo (Cont.)
‣ Estrutura de serviços/mensagens: OverviewNovaGenesis: Implementação
Operating System
Host
Process Message
CommandLine #1
CommandLine #2
CommandLine #C
Payload
…Block 1
Action#1
…Action#2
Action#A
Block 2
Action#1
…Action#2
Action#A
Block N
Action#1
…Action#2
Action#A
Blocks
Messages
‣ Estrutura do Gateway (GW):NovaGenesis: Implementação
Process
Gateway (GW)
Input Queue (IQ)
Output Queue (OQ)
Execution
Read IQ
Call target Block #
Block 1 Block 2 Block N
Action 1
Action N
Action 1
Action N
Action 1
Action N
Read OQ Shared Memory
‣ Todo serviço tem Gateway.
‣ Event-driven
‣ Input-Queue: mensagens aguardando processamento.
‣ Output-Queue: mensagens aguardando memória compartilhada.
‣ Estrutura da Hash Table (HT):NovaGenesis: Implementação
Process
Hash Table (HT)
hash_map Store a name binding
Get a name binding
Gateway (GW)hash_map
hash_map
‣ Todo serviço tem HT.
‣ Implementada usando vários hash_maps.
‣ Cada name binding tem o formato:
‣ < Chave, Valor(es) >
‣ Estrutura de um Serviço Qualquer: Juntando tudo!!NovaGenesis: Implementação
Process
Hash Table (HT)
hash_map Store a name
binding
Get a name binding
hash_map
hash_map
Gateway (GW)
Input Queue (IQ)
Output Queue (OQ)
Execution
Read IQ
Call target Block #
Block 1 Block 2 Block N
Action 1
Action N
Read OQ
Shared Memory
Action 1
Action N
Action 1
Action N
Operating System
Host
NB NB NB…
NB NB NB…
NB NB NB…
File File File…
‣ Estrutura do PGCS (Proxy/Gateway/Controller Service):NovaGenesis: Implementação
PGCS Gateway
(GW)
Hash Table (HT)
Proxy/Gateway (PG)
Read from raw socket
Operating System
Shared MemoryRaw socket
Write to raw socket
‣ NRNCS (Name Resolution and Network Caching Service):
‣ Aplicações publicam/assinam via PSS.
‣ PSS controla quem acessa o que.
‣ Encaminha pedidos autorizados para o GIRS.
‣ GIRS determinar onde guardar/buscar.
NovaGenesis: Implementação
‣ NRNCS (Name Resolution and Network Caching Service):
‣ Hash Table Service (GIRS):
‣ Stores and delivers name bindings and related contents.
‣ Generic Indirection Resolution Service (GIRS):
‣ Selects a hash table service (HTS) to store name bindings and to cache content.
‣ Publish/Subscribe Service (PSS):
‣ Does the rendezvous among publishers/subscribers.
‣ Has an application programming interface (API), which has 5 primitives:
‣ (i) Publishes a NB (and a content, if any); (ii) Subscribes a NB/Content; (iii) Publishes and notifies peer services about; ( iv) Subscribes and notifies peer services about; (v) Revokes a publication;
NovaGenesis: Implementação
‣ NRNCS (Name Resolution and Network Caching Service):NovaGenesis: Implementação
Publish/Subscribe Service (PSS)
Hash Table (HT)
Publish/Subscribe (PS)
Selects a GIRS instance
Generic Indirection Resolution Service (GIRS)
Gateway (GW)
Hash Table (HT)
Binding Forwarding (BF)
Selects an HTS instance
Authentication and
AuthorizationGateway
(GW)
Load balancingPub
Sub
Generic Indirection Resolution Service (GIRS)
Gateway (GW)
Hash Table (HT)
Binding Forwarding (BF)
Selects an HTS instance
Hash Table Service (HTS)
Gateway (GW)
Hash Table (HT)
Hash Table Service (HTS)
Gateway (GW)
Hash Table (HT)
Hash Table Service (HTS)
Gateway (GW)
Hash Table (HT)
Hash Table Service (HTS)
Gateway (GW)
Hash Table (HT)
PSS, GIRS e HTS
‣ Overview do Core NovaGenesis: Implementação
Operating System
Host
PSS
Gateway (GW)
Hash Table (HT)
Pub/Sub (PS)
GIRS
Gateway (GW)
Hash Table (HT)
Indirec. Resol. (IR)
HTS
Gateway (GW)
Hash Table (HT)
D. Hash Table (HT)
PGCS
Gateway (GW)
Hash Table (HT)
Proxy/Gateway
(PG)
Raw socketShared Memory
PGCS
Gateway (GW)
Hash Table (HT)
Proxy/Gateway
(PG)
Raw socket
HTS
Gateway (GW)
Hash Table (HT)
D. Hash Table (HT)
Shared Memory
DS
Gateway (GW)
Hash Table (HT)
Domain Proxy (DP)
Operating System
Host
NovaGenesis: Visão detalhada do core e um aplicativo (NBTest)
Host N
Host 1
NBTest Publish/Subscribe Service (PSS)
Hash Table (HT)
Publish/Subscribe (PS)
Selects a GIRS instance
Generic Indirection Resolution Service (GIRS)
Gateway (GW)
Hash Table (HT)
Binding Forwarding (BF)
Selects an HTS instance
Authentication and
AuthorizationGateway
(GW)
Load balancing
Pub
Sub
Hash Table Service (HTS#1)
Gateway (GW)
Hash Table (HT)
Hash Table Service (HTS#0)
Gateway (GW)
Hash Table (HT)
Proxy/Gateway/Controller Service (PGCS#0)
Gateway (GW)
Hash Table (HT)
Proxy/Gateway (PG)
Raw socket
Gateway (GW)
Hash Table (HT)
Block 1 Block N
Read from raw socket
Write to raw socket
Proxy/Gateway/Controller Service (PGCS#1)
Gateway (GW)
Hash Table (HT)
Proxy/Gateway (PG)
Raw socket
Read from raw socket
Write to raw socket
OS 1
OS 2
Hash Table Service (HTS#N)
Gateway (GW)
Hash Table (HT)
Proxy/Gateway/Controller Service (PGCS#N)
Gateway (GW)
Hash Table (HT)
Proxy/Gateway (PG)
Raw socket
Read from raw socket Write to raw socket
OS N
…
(1)(2,25)
(3)
(4)
(5)
(6)(7)
(8)
(9)
(10)
(11)
(12)
(13,21)
(14)
(15)
(16)
(10)
(17)
(18)
(19)
(20)
(22)
(23)
(24)
Host 2
‣ Sequência de ações realizadas para assinar a partir do NBTest um conteúdo publicado no HTS#1.
NovaGenesis: Para saber mais
https://dl.dropboxusercontent.com/u/7203969/NovaGenesis%20v0.4.pdf
Imagine se não existisse Internet hoje! Como ela poderia ser construída? Como ela seria? Que ganhos traria?
O objetivo do projeto NovaGenesis é recriar a arquitetura da Internet por meio da integração coesa das melhores tecnologias atuais. !!
O objetivo é fazer a revolução na Internet, através de uma arquitetura melhor preparada para os desafios da sociedade da informação. !!
Você conhece alguma tecnologia da década de 70 que não tenha sido reinventada desde então? Pois é, muitos protocolos da Internet continuam os mesmos desde os anos 70!
NOVAGENESIS Nova Arquitetura de Internet !Por Antônio Marcos Alberti, Outubro de 2014.
(c) Antônio M. Alberti, Instituto Nacional de Telecomunicações (INATEL), 2014.
Brochura do Projeto
http://www.slideshare.net/antonioalberti/novagenesis-brochura-do-projeto
Vídeo no Youtube
Obrigado!
Antônio Marcos Alberti
www.inatel.br/novagenesis https://www.facebook.com/NovaGenesisArchitecture