NextTypes - это система хранения, обработки и передачи , основанной на стандартах, которая интегрирует характеристики других систем, таких как базы данных, языки программирования, протоколы связи, файловые системы, управляющие документами, операционные системы, структуры, форматы файлов и оборудование в одной строго интегрированной системе с использованием общей системы типов данных.
Справочная реализация запрограммирована в Java 17 и использует диспетчер баз данных PostgreSQL 15. Он распространяется по лицензии Apache 2.0, в легко установленном военном файле. Чтобы протестировать программный интерфейс (в режиме только для чтения), без необходимости его установки, вы можете изучить веб-сайт проекта, который разработан с использованием указанного программного обеспечения. В меню слева, в разделе «Панель управления» и в кнопках вверху/справа от страницы вы найдете доступные действия.
NextTypes интегрирует примитивные типы данных PostgreSQL, такие как числа, текст, двоичный, даты, JSON или XML, хотя дают им разные имена для упрощения номенклатуры и облегчения интеграции с другими системами. Например, вместо использования «smallint», «integer» и «bigint» root «int» используется количество битов (int16, int32 и int64), используется или вместо «изменяющегося символа» или «varchar», он используется «строка», как на некоторых языках программирования.
Он также добавляет другие типы данных, такие как HTML или URL, и использование возможности PostGRESQL создавать композитные типы данных для столбцов. Он включает в себя типы данных для файлов, документов, изображений, звуков и видео. Бинарное содержание этих полей можно сканировать с помощью Clamav Antivirus. Сложные типы данных, такие как HTML или изображения, состоит из элементов, к которым можно получить доступ к индивидуально и может применяться к ним ограничения, такие как теги или форматы.
Система хранения в основном основана на SQL, но является гибридом реляционных/сети/объектов/файлов. Каждая таблица является типом данных, и каждая строка в таблице является объектом. Каждая строка имеет столбец с идентификатором (ID), который является основным ключом и несколькими столбцами с метаданными, аналогичными файлам: дата создания (CDATE), дата обновления (UDATE) и выполненного резервного копирования (резервное копирование). Остальные столбцы являются полями данных объекта. Дата создания (CDATE) и изменения (ADATE) типов данных также сохраняется. Даты используют стандарт UTC и включают часы, минуты, секунды и микросекунд. Стандарт ISO 8601 используется для его представления в тексте.
Поля объектов могут иметь примитивный тип или указывать на другие объекты, используя идентификатор в качестве иностранного ключа, что формирует базу данных сети. Идентификатор - это текстовая строка с уникальным индексом, и по умолчанию он получает UUID. Это упрощение и однородность в первичных и иностранных ключах облегчает автоматизацию и интеграцию с другими системами.
Переписка с моделью отношения сущностей аналогична реляционной модели. Каждая сущность - это объект, атрибуты - это поля, а отношения и множественные атрибуты сделаны с полями, которые относятся к другим объектам.
Идентификатор объекта и поля могут быть частью индексов, не являющихся Uniak, уникальным и полнотекстовым поиском. Определение типов данных и объектов может быть экспортировано и импортировано в/из JSON, позволяя резервным копиям и передаче информации между системами.
{
"Имя": "article_language",
"CDATE": "2015-04-01T14: 30: 16Z",
«Адапт»: «2018-09-26T14: 59: 35,53Z»,
"Поля": {
"заголовок" : {
"type": "String",
"Длина": 254,
"not_null": True
},
"язык" : {
"Тип": "Язык",
"Длина": 100,
"not_null": True
},
"Текст": {
"Тип": "html",
"not_null": True
},
"статья" : {
«Тип»: «Статья»,
"Длина": 100,
"not_null": True
}
},
"Индексы": {
"al_ft_search_index": {
"Режим": "полный текст",
«Поля»: [«Название», «Текст»]
}
},
"Действия": {}
}Даты изменения и обновления позволяют реализовать оптимистичную систему управления параллелизмом. Если при изменении типа или обновления объекта указана последняя известная дата изменения или обновления, система проверяет, что эта дата такая же, как и текущая дата типа или объекта, чтобы исключить, что она была изменена другим пользователем на более позднем этапе.
Метаданные «резервное копирование» используются для создания инкрементной системы резервного копирования обновленных объектов с полными копиями, каждый из которых является указанным количеством инкрементных копий. Каждый раз, когда объект обновляется, «резервное копирование» метаданных изменяется на «false», чтобы указать, что нет копии этого объекта, и его следует копировать в следующую резервную копию.
Благодаря использованию функций PostgreSQL, таких как транзакционные DDL и отсроченные ограничения, система позволяет создавать или модифицировать различные типы данных и объекты в одной и той же транзакции, пока используется система.
Чтобы дополнить полнотекстовую систему поиска, извлечение метаданных и текста из PDF, Opendocument и Office Open Documents, бинаты Microsoft Office и другие форматы добавляются с использованием Tika.
NextTypes-это в основном реляционная система с некоторыми объектно-ориентированными функциями, которые облегчают его использование и автоматизацию из языков программирования. В отличие от реламентальных объектов систем, он не использует соответствие класса объектного класса, вместо этого он использует серию общих классов и методов для всех типов и объектов, которые позволяют выполнять основные действия (CRUD) создания, чтения, обновления и удаления.
Для сложных действий, таких как запросы, которые используют несколько таблиц, он предоставляет систему с более высоким уровнем абстракции, чем JDBC, которые облегчают использование SQL и интегрируются с типами данных хранения. Эта система допускает параметризованные запросы с выполнением одного метода и использует имена таблиц и столбцов в качестве параметров, которые обеспечивают защиту от инъекции SQL. Это также позволяет использовать массив в качестве параметра.
Основные действия могут быть перехвачены, аналогично триггерам SQL, чтобы изменять типы или объекты или выполнение дополнительных действий. Кроме того, новые действия могут быть определены и предоставлены для системы.
В реализации Java некоторые примитивные типы данных в хранилище, такие как цифры, имеют прямую соответствие классам в среде выполнения Java. Для других типов, таких как HTML, документы, изображения или видео, система имеет классы, которые интегрируются с типами хранения и позволяют создавать и модифицировать данные.
Основным используемым протоколом является HTTP, хотя адаптеры могут быть созданы для любого другого протокола. Система включает в себя адаптер SMTP, который допускает прием писем и их преобразование в объекты. Помимо HTTP, интерфейс REST строится с аутентификацией через сертификаты и пароли X.509 (зашифруется с помощью BCRYPT), HTTP Basic Auth, защита от атак DOS и управление файлом роботов и веб -карты сайта. Этот интерфейс обеспечивает доступ ко всем типам данных, объектам, полям и элементам с одним URL.
Системы хранения, обработки и передачи образуют систему MVC, которая позволяет доступ к данным с помощью различных представлений или форматов: HTML, WebDav, Caldav, JSON, XML, RSS, ICALENDAR или другие системы. Каждый из этих представлений может быть изменен для всех типов данных или объектов или некоторых из них, чтобы адаптировать его к потребностям пользователя. Кодировка UTF-8 используется по всей системе, чтобы позволить использовать текст на разных языках.
Вид HTML обеспечивает отзывчивый и многоязычный графический интерфейс, который позволяет выполнять все действия системы хранения/обработки. Он запрограммирован в HTML5/CSS3 с помощью SVG -резобратимых значков, соответствия WCAG, текстовыми редакторами с выделением синтаксиса (Codemirror) или Wysiwyg (tinymce) и защитой от CSRF и XSS. Эта точка зрения объединяет типы данных HTML5 с данными NextTypes, добавляя необходимые компоненты в интерфейс для дополнения элементов управления, предоставленных HTML5. В типе данных «пример» вы можете увидеть элементы управления для всех примитивных типов данных и ссылок на объекты. Вы можете адаптировать представление HTML, изменяя DOM.
Каждый объект имеет идентифицирующий QR -код с именем сервера, типом данных и идентификатором объекта. Этот код можно использовать для маркировки реальных объектов или чтения его из мобильного приложения. Существует также возможность экспортировать некоторые данные в формате JSON-LD.
Другие представления позволяют удаленный доступ к данным любой системой. Благодаря использованию просмотров JavaScript и JSON или XML можно получить доступ ко всем данным и выполнять обработку информации в браузере. Представление WebDAV позволяет вам получить доступ к данным в качестве файловой системы, в которой типы данных и объекты являются папками, а поля - это файлы. Это позволяет вам открывать и изменять любое поле объекта с помощью внешнего приложения. Например, вы можете редактировать поле документа с приложением для обработки текста.
Представление Caldav - это модификация представления WebDAV, которое позволяет вам разоблачить некоторые объекты в качестве событий календаря. Эти события также можно получить с помощью представления Icalendar. Представление RSS позволяет доступа к спискам объектов с любым клиентом этого формата.