Используя базу данных график Титан из кожи питона


Я пытаюсь смоделировать топологию сети с помощью Titan Graph DB.Я хочу указать топологию из приложения python.

У меня есть файл интерфейса java, который использует фреймы tinkertop annotation.An пример структуры приведен ниже.

public interface IDeviceObject extends IBaseObject {

          @JsonProperty("mac")
          @Property("dl_addr")
          public String getMACAddress();
          @Property("dl_addr")
          public void setMACAddress(String macaddr);

          @JsonProperty("ipv4")
          @Property("nw_addr")
          public String getIPAddress();
          @Property("nw_addr")
          public void setIPAddress(String ipaddr);

          @JsonIgnore
          @Adjacency(label="host",direction = Direction.IN)
          public Iterable<IPortObject> getAttachedPorts();

          @JsonIgnore
          @Adjacency(label="host",direction=Direction.IN)
          public void setHostPort(final IPortObject port);

          @JsonIgnore
          @Adjacency(label="host",direction=Direction.IN)
          public void removeHostPort(final IPortObject port);

          @JsonIgnore
          @GremlinGroovy("it.in('host').in('on')")
          public Iterable<ISwitchObject> getSwitch();
    }


PYTHON OBJECTS  ----> BULBS ----> REXTER ---> Titan Graph DB ---> Cassandra DB

(1) BULBS преобразует объекты python в графики (2) Rexter преобразует графики в JSON (3) Titan преобразует JSON обратно в графики?? (4) а также пишет Кассандре стор

Похоже, что я делаю вещи в очень круглой форме. манеры, а я что-то упускаю? Было бы здорово, если бы кто-то мог указать на то, что вахт не прав с вышеизложенным?

1 2

1 ответ:

Ваша диаграмма:

PYTHON OBJECTS  ----> BULBS ----> Rexster ---> Titan Graph DB ---> Cassandra DB

Выглядит более или менее корректно в зависимости от того, как вы хотите думать о задействованных абстракциях. Вы также можете определить его как:

PYTHON OBJECTS  ----> BULBS ----> Rexster/Titan ---> Cassandra DB

Поскольку Rexster в основном внедряет экземпляр Titan, который он выставляет над отдыхом для потребления лампочками. Эта часть не совсем верна:

  1. BULBS преобразует объекты python в графики
  2. Rexter преобразует графики в JSON
  3. Titan преобразует JSON обратно в графики??
  4. а также пишет Кассандре магазин

Я бы сказал:

  1. Titan-это реализация Blueprints , которая пишет Кассандре
  2. Rexster размещает чертежи реализаций и предоставляет элементы этого API (и Gremlin) над REST, используя JSON
  3. Bulbs-это слой отображения объектов Python поверх Rexster.
В конце концов, прямой связи между питоном и Титаном нет. Titan имеет интерфейс чертежей на основе JVM и использует Rexster как способ для не-JVM языки, чтобы говорить с ним.