Почему Janus Graph не называется фреймворком, а Apache TInkerPop?

Это может быть наивный вопрос, но я новичок в этой области?

Почему Janus Graph не называется фреймворком (согласно определению на первой странице документа), а Apache TinkerPop?


person hunch    schedule 27.06.2018    source источник
comment
Это база данных. HBase или Cassandra (системы поддержки) имеют свои собственные фреймворки. Фреймворк — это, как правило, просто библиотека   -  person OneCricketeer    schedule 27.06.2018
comment
@cricket_007 Но Janus Graph построен поверх Apache TinkerPop.   -  person hunch    schedule 28.06.2018
comment
Так? Это не фреймворк, потому что это база данных. Вы не можете запускать JanusGraph в других приложениях как импортированную библиотеку.   -  person OneCricketeer    schedule 28.06.2018


Ответы (1)


Сами по себе базовые интерфейсы Apache TinkerPop на самом деле ничего не делают — с ними нельзя создать приложение. Все, что они делают, — это обеспечивают общий уровень над любой базой данных графов и любой моделью обработки графов. В результате мы называем TinkerPop «платформой».

JanusGraph и другие графические системы с поддержкой TinkerPop являются «реализацией» платформы TinkerPop. Они не «построены поверх», чтобы быть расширениями общих интерфейсов, которые он предоставляет как фреймворк. Они подключаются к фреймворку, так что использование вами этих интерфейсов (например, Gremlin) поддерживается чем-то, что получает/хранит данные.

person stephen mallette    schedule 28.06.2018
comment
Не могли бы вы объяснить немного больше о «Все, что они делают, это предоставляют общий слой для любой базы данных графов (это не предназначено для графа Януса) и любой модели обработки графов». - person hunch; 29.06.2018
comment
Не уверен, как еще я могу это сказать. TinkerPop — это уровень абстракции для построения графиков баз данных/процессоров, так же как JDBC — это абстракция для подключения к различным реляционным базам данных. Как разработчик, вы создаете свое приложение на уровне абстракции — для TinkerPop это будет означать написание Gremlin, а для JDBC — SQL. - person stephen mallette; 29.06.2018
comment
В обоих случаях, используя уровень абстракции, вы можете переключаться между реализациями этой абстракции — для TinkerPop это будет означать, что тот же самый Gremlin, который вы пишете для Neo4j, также будет работать для JanusGraph, который также будет работать для DSE Graph и т. д. . (любая система, совместимая с TinkerPop), а для JDBC это будет означать, что тот же SQL, который вы пишете для MS SQL Server, обычно будет работать для Oracle, который обычно будет работать для любой базы данных, совместимой с JDBC. - person stephen mallette; 29.06.2018
comment
Вы не могли бы написать приложение только с JDBC, верно? Это своего рода структура (используя этот термин немного вольно) — вам нужно выбрать базу данных, которая будет работать с ней. То же самое и с тинкерпопом. Я не уверен, почему вы написали (это не для графика Януса) как поправку к моей цитате. Это вполне подходит для JanusGraph ... JanusGraph — это графовая база данных, и TinkerPop предоставляет общий уровень абстракции поверх нее. - person stephen mallette; 29.06.2018
comment
Тем не менее, JanusGraph является собственной реализацией TinkerPop — он использует интерфейсы TinkerPop как свои собственные. Некоторые графические системы с поддержкой TinkerPop делают это, а некоторые нет. Возможно, это и есть источник вашей путаницы. - person stephen mallette; 29.06.2018