Formatos de Dados
Formatos de Dados

Formatos de Dados

[note note_color=”#21ab5136″ text_color=”#2c2c2d” radius=”3″ class=”” id=””]Bem-vindo: este tópico faz parte do Capítulo 14 do curso Cisco CCNA 3, para um melhor acompanhamento do curso você pode ir para a seção CCNA 2 para orientá-lo durante um pedido.[/note]

Vídeo – formatos de dados

Dispositivos inteligentes são, na verdade, pequenos computadores. Para que um dispositivo inteligente, como um atuador, reaja às mudanças nas condições, ele deve ser capaz de receber e interpretar as informações enviadas a ele por outro dispositivo inteligente, como um sensor. Esses dois dispositivos inteligentes devem compartilhar uma “linguagem” comum, que é chamada de formato de dados. Os formatos de dados compartilhados também são usados por outros dispositivos na rede.

Clique em reproduzir no vídeo para aprender sobre os formatos de dados.

O conceito de formatos de dados

Ao compartilhar dados com as pessoas, as possibilidades de como exibir essas informações são quase infinitas. Por exemplo, pense em como um restaurante pode formatar seu menu. Pode ser apenas texto, uma lista com marcadores, fotos com legendas ou apenas fotos. Todas essas são maneiras diferentes pelas quais o restaurante pode formatar os dados que compõem o menu. Um formulário bem projetado é ditado pelo que torna as informações mais fáceis de serem entendidas pelo público-alvo. Este mesmo princípio se aplica a dados compartilhados entre computadores. Um computador deve colocar os dados em um formato que outro computador possa entender.

Os formatos de dados são simplesmente uma maneira de armazenar e trocar dados em um formato estruturado. Um desses formatos é denominado Hypertext Markup Language (HTML). HTML é uma linguagem de marcação padrão para descrever a estrutura das páginas da web, conforme mostrado na figura.

HTML de formato de exemplo

Estes são alguns formatos de dados comuns usados ​​em muitos aplicativos, incluindo automação de rede e programação:

  • JavaScript Object Notation (JSON)
  • eXtensible Markup Language (XML)
  • YAML Ain’t Markup Language (YAML)

O formato de dados selecionado dependerá do formato usado pelo aplicativo, ferramenta ou script que você está usando. Muitos sistemas serão capazes de suportar mais de um formato de dados, o que permite ao usuário escolher o seu preferido.

Regras de formato de dados

Os formatos de dados têm regras e estruturas semelhantes às que temos com linguagens de programação e escritas. Cada formato de dados terá características específicas:

  • Sintaxe, que inclui os tipos de colchetes usados, como [], (), {}, o uso de espaço em branco ou recuo, aspas, vírgulas e muito mais.
  • Como os objetos são representados, como caracteres, strings, listas e matrizes.
  • Como os pares chave / valor são representados. A chave geralmente está no lado esquerdo e identifica ou descreve os dados. O valor à direita são os próprios dados e podem ser um caractere, string, número, lista ou outro tipo de dados.

Pesquise na Internet por “abrir a localização da ISS para notificar agora” para encontrar um site que rastreia a localização atual da Estação Espacial Internacional. Neste site você pode ver como os formatos de dados são usados ​​e algumas semelhanças entre eles. Este site inclui um link para uma chamada simples de Application Programming Interface (API) para um servidor, que retorna a latitude e longitude atuais da estação espacial junto com um carimbo de data / hora UNIX. O exemplo a seguir mostra as informações retornadas pelo servidor usando JavaScript Object Notation (JSON). As informações são exibidas em formato bruto. Isso pode dificultar a compreensão da estrutura dos dados.

{"message": "success", "timestamp": 1560789216, "iss_position": {"latitude": "25.9990", "longitude": "-132.6992"}}

Pesquise na Internet para encontrar a extensão do navegador “JSONView” ou qualquer extensão que permita visualizar JSON em um formato mais legível. Os objetos de dados são exibidos em pares de chave / valor. A saída a seguir mostra essa mesma saída usando JSONView. Os pares chave / valor são muito mais fáceis de interpretar. No exemplo abaixo, você pode ver a latitude da chave e seu valor 25,9990.

{
	"message": "success",
	"timestamp": 1560789260,
	"iss_position": {
		"latitude": "25.9990",
		"longitude": "-132.6992"
	}
}

Nota: JSONView pode remover as aspas da chave. As aspas são necessárias ao codificar pares de chave / valor JSON.

Compare formatos de dados

Para ver esses mesmos dados formatados como XML ou YAML, pesquise na Internet por uma ferramenta de conversão JSON. Neste ponto, não é importante entender os detalhes de cada formato de dados, mas observe como cada formato de dados faz uso da sintaxe e como os pares chave / valor são representados.

Formato JSON

{
	"message": "success",
	"timestamp": 1560789260,
	"iss_position": {
		"latitude": "25.9990",
		"longitude": "-132.6992"
	}
}

Formato YAML

message: success
timestamp: 1560789260
iss_position:
    latitude: '25.9990'
    longitude: '-132.6992'

Formato XML

<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <message>success</message>
  <timestamp>1560789260</timestamp>
  <iss_position>
    <latitude>25.9990</latitude>
    <longitude>-132.6992</longitude>
  </iss_position>
</root>

Formato de dados JSON

JSON é um formato de dados legível por humanos usado por aplicativos para armazenar, transferir e ler dados. JSON é um formato muito popular usado por serviços da web e APIs para fornecer dados públicos. Isso ocorre porque é fácil de analisar e pode ser usado com a maioria das linguagens de programação modernas, incluindo Python.

A saída a seguir mostra um exemplo de saída parcial do IOS de um comando show interface GigabitEthernet0/0/0 em um roteador.

Saída do roteador IOS

GigabitEthernet0/0/0 is up, line protocol is up (connected)
  Description: Wide Area Network
  Internet address is 172.16.0.2/24

Essas mesmas informações podem ser representadas no formato JSON. Observe que cada objeto (cada par de chave / valor) é um dado diferente sobre a interface, incluindo seu nome, uma descrição e se a interface está habilitada.

Saída JSON

{
    "ietf-interfaces:interface": {
         "name": "GigabitEthernet0/0/0",
         "description": "Wide Area Network",
         "enabled": true,
         "ietf-ip:ipv4": {
             "address": [
                 {
                     "ip": "172.16.0.2",
                     "netmask": "255.255.255.0"
                 }
             ]
          }
    }
}

Regras de sintaxe JSON

Estas são algumas das características do JSON:

  • Ele usa uma estrutura hierárquica e contém valores aninhados.
  • Ele usa colchetes {} para conter objetos e colchetes [] para arrays.
  • Seus dados são gravados como pares chave / valor.

Em JSON, os dados conhecidos como um objeto são um ou mais pares de chave / valor entre colchetes {}. A sintaxe de um objeto JSON inclui:

  • As chaves devem ser strings entre aspas duplas ”“.
  • Os valores devem ser um tipo de dados JSON válido (string, número, matriz, booleano, nulo ou outro objeto).
  • Chaves e valores são separados por dois pontos.
  • Vários pares de chave / valor em um objeto são separados por vírgulas.
  • O espaço em branco não é significativo.

Às vezes, uma chave pode conter mais de um valor. Isso é conhecido como array. Uma matriz em JSON é uma lista ordenada de valores. As características de matrizes em JSON incluem:

  • A chave seguida por dois pontos e uma lista de valores entre colchetes [].
  • A matriz é uma lista ordenada de valores.
  • O array pode conter vários tipos de valor, incluindo string, número, booleano, objeto ou outro array dentro do array.
  • Cada valor na matriz é separado por uma vírgula.

Por exemplo, uma lista de endereços IPv4 pode ser semelhante à seguinte saída. A chave é “endereços”. Cada item da lista é um objeto separado, separado por colchetes {}. Os objetos são dois pares de chave / valor: um endereço IPv4 (“ip”) e uma máscara de sub-rede (“máscara de rede”) separados por uma vírgula. A matriz de objetos na lista também é separada por uma vírgula após a chave de fechamento de cada objeto.

Lista JSON de endereços IPv4

{
  "addresses": [
    {
      "ip": "172.16.0.2",
      "netmask": "255.255.255.0"
    },
    {
      "ip": "172.16.0.3",
      "netmask": "255.255.255.0"
    },
    {
      "ip": "172.16.0.4",
      "netmask": "255.255.255.0"
    }
  ]
}

Formato de dados YAML

YAML é outro tipo de formato de dados legível por humanos usado por aplicativos para armazenar, transferir e ler dados. Algumas das características do YAML incluem:

  • É como JSON e é considerado um superconjunto de JSON.
  • Tem um formato minimalista que facilita tanto a leitura como a escrita.
  • Utiliza recuo para definir sua estrutura, sem o uso de colchetes ou vírgulas.

Por exemplo, observe esta saída JSON para uma interface Gigabit Ethernet 2.

JSON para GigabitEthernet2

{
   "ietf-interfaces:interface": {
      "name": "GigabitEthernet2",
      "description": "Wide Area Network",
      "enabled": true,
      "ietf-ip:ipv4": {
         "address": [
            {
               "ip": "172.16.0.2",
               "netmask": "255.255.255.0"
            },
            {
               "ip": "172.16.0.3",
               "netmask": "255.255.255.0"
            },
            {
               "ip": "172.16.0.4",
               "netmask": "255.255.255.0"
            }
         ]
      }
   }
}

Esses mesmos dados no formato YAML são mais fáceis de ler. Semelhante ao JSON, um objeto YAML é um ou mais pares de valores-chave. Os pares de valores-chave são separados por dois pontos, sem o uso de aspas. Em YAML, um hífen é usado para separar cada elemento em uma lista. Isso é mostrado para os três endereços IPv4 na saída a seguir.

YAML para GigabitEthernet2

ietf-interfaces:interface:
  name: GigabitEthernet2
  description: Wide Area Network
  enabled: true
  ietf-ip:ipv4:
    address:
    - ip: 172.16.0.2
      netmask: 255.255.255.0
    - ip: 172.16.0.3
      netmask: 255.255.255.0
    - ip: 172.16.0.4
      netmask: 255.255.255.0

Formato de Dados XML

XML é mais um tipo de formato de dados legível por humanos usado para armazenar, transferir e ler dados por aplicativos. Algumas das características do XML incluem:

  • É como o HTML, que é a linguagem de marcação padronizada para a criação de páginas e aplicativos da web.
  • É autodescritivo. Ele inclui dados em um conjunto relacionado de tags: dados
  • Ao contrário do HTML, o XML não usa tags predefinidas ou estrutura de documento.

Objetos XML são um ou mais pares de chave / valor, com a tag inicial usada como o nome da chave: valor

A saída a seguir mostra os mesmos dados para GigabitEthernet2 formatados como uma estrutura de dados XML. Observe como os valores são incluídos nas tags do objeto. Neste exemplo, cada par chave / valor está em uma linha separada e algumas linhas são recuadas. Isso não é obrigatório, mas é feito para facilitar a leitura. A lista usa instâncias repetidas de para cada elemento da lista. Os elementos dentro dessas instâncias repetidas representam um ou mais pares de chave / valor.

XML para GigabitEthernet2

<?xml version="1.0" encoding="UTF-8" ?>
<ietf-interfaces:interface>
  <name>GigabitEthernet2</name>
  <description>Wide Area Network</description>
  <enabled>true</enabled>
  <ietf-ip:ipv4>
    <address>
      <ip>172.16.0.2</ip>
      <netmask>255.255.255.0</netmask>
    </address>
    <address>
      <ip>172.16.0.3</ip>
      <netmask>255.255.255.0</netmask>
    </address>
    <address>
      <ip>172.16.0.4</ip>
      <netmask>255.255.255.0</netmask>
    </address>
  </ietf-ip:ipv4>
</ietf-interfaces:interface>

Pronto para ir! Continue visitando nosso blog do curso de networking, confira todo o conteúdo do CCNA 3 aqui; e você encontrará mais ferramentas e conceitos que o tornarão um profissional de rede.

O seu endereço de email não será publicado. Campos obrigatórios marcados com *