NextTypes是基于标准的信息存储,处理和传输系统,该系统将使用常见数据类型的其他系统集成了其他系统的特征,例如数据库,编程语言,通信协议,文件系统,文档管理器,文档管理器,操作系统,框架,文件格式,文件格式和硬件,并使用通用数据类型。
参考实现在Java 17中编程,并使用PostgreSQL 15数据库管理器。它是在易于安装的战争文件中以Apache 2.0许可下的。要测试软件接口(以仅阅读模式),而无需安装它,您可以探索使用该软件开发的项目网站。在左侧的菜单中,在“控制面板”部分和页面右上方/右侧的按钮中,您将找到可用的操作。
NextTypes集成了原始的PostgreSQL数据类型,例如数字,文本,二进制,日期,JSON或XML,尽管给它们提供了不同的名称来简化命名法,并促进与其他系统集成。例如,使用“ smallInt”,“ integer”和“ bigint” root“ int”,其次是使用某些编程语言中的位(int16,int32和int64)的数量(int16,int32和int64),或者代替而不是“角色变化”或“ varchar”或“ varchar”或“ varchar”。
它还添加了其他类型的数据,例如HTML或URL,并使用PostgreSQL为列创建复合数据类型的能力,其中包括用于文件,文档,图像,音频和视频的数据类型。这些磁场的二进制含量可以用Clamav防病毒软件进行扫描。复杂的数据类型(例如HTML或图像)是由可以单独访问的元素组成的,可以对其进行限制,例如允许的标签或格式。
存储系统主要基于SQL,但是关系/网络/对象/文件混合。每个表都是数据类型,表中的每一行都是对象。每一行都有一个带有标识符(ID)的列,该列是主要键,几个具有类似于文件的列的列:创建日期(CDATE),更新日期(UDATE)和备份(备份)。其余列是对象的数据字段。还存储了数据类型的创建日期(CDATE)和更改(ADATE)。日期使用UTC标准,包括小时,分钟,秒和微秒。 ISO 8601标准用于文本表示。
对象的字段可以具有原始类型,也可以使用标识符作为外键指向其他对象,从而形成网络数据库。标识符是带有唯一索引的文本字符串,默认情况下它会收到UUID。主要和外国钥匙中的简化和统一性有助于与其他系统的自动化和集成。
与实体关系模型的对应关系类似于关系模型。每个实体都是一个对象,属性是字段,关系和多个属性是由指参考其他对象的字段进行的。
对象标识符和字段可以是非唯一,唯一和全文搜索索引的一部分。数据类型和对象的定义可以从JSON导出和导入,从而允许备份副本和系统之间的信息传输。
{
“名称”:“ aprent_language”,
“ CDATE”:“ 2015-04-01T14:30:16Z”,
“ adate”:“ 2018-09-26T14:59:35.53Z”,
“字段”:{
“标题” : {
“ type”:“ string”,
“长度”:254,
“ not_null”:true
},,
“语言” : {
“类型”:“语言”,
“长度”:100,
“ not_null”:true
},,
“文本” : {
“ type”:“ html”,
“ not_null”:true
},,
“文章” : {
“类型”:“文章”,
“长度”:100,
“ not_null”:true
}
},,
“索引”:{
“ al_ft_search_index”:{
“模式”:“ fullText”,
“字段”:[“标题”,“文本”]
}
},,
“动作”:{}
}更改和更新日期允许实现乐观的并发控制系统。如果在更改类型或更新对象时,则指示最后一个已知的更改或更新日期,则系统检查该日期是否与类型或对象的当前日期相同,以排除该日期,以排除该日期已在以后的日期对其进行了修改。
“备份”元数据用于创建一个带有完整副本的更新对象的增量备份系统,每个副本每个指定数量的增量副本。每次更新对象时,元数据“备份”都会更改为“ false”,以表明该对象没有副本,应在下一个备份中复制它。
通过使用PostgreSQL功能,例如交易DDL和延迟约束,该系统允许在使用系统时在同一事务中创建或修改各种数据类型和对象。
为了补充全文搜索系统,使用Tika添加了Microsoft Office二进制格式和其他格式,从PDF提取元数据和文本,Opentocument和Office打开XML文档。
NextTypes是一个主要的关系系统,具有一些面向对象的功能,可促进其从编程语言中使用和自动化。与对象相关系统不同,它不使用对象类通信,而是为所有类型和对象使用一系列通用类和方法,这些类型和对象允许执行创建,阅读,更新,更新和删除的基本操作(CRUD)。
对于使用多个表的查询等复杂的动作,它提供了一个比JDBC更高的抽象级别的系统,该系统有助于使用SQL并与存储的数据类型集成。该系统允许执行单个方法和用途表和列名作为参数的参数化查询,该参数提供了针对SQL注入的保护。它还允许您使用数组作为参数。
可以将基本操作拦截,类似于SQL触发器,以修改类型或对象或执行其他操作。此外,可以定义并提供新的操作。
在Java实现中,一些存储中的原始数据类型(例如数字)与Java Runtime Enviroment中的类具有直接对应关系。对于其他类型,例如HTML,文档,图像或视频,该系统具有与存储类型集成的类,并允许创建和修改数据。
使用的主要协议是HTTP,尽管可以为任何其他协议创建适配器。该系统包括一个SMTP适配器,该适配器允许接收电子邮件及其转换为对象。在HTTP之上,通过X.509证书和密码(使用BCrypt加密),HTTP Basic Auth,防止DOS攻击以及对机器人文件和网站的管理管理的保护,通过X.509证书和密码进行身份验证构建REST接口。该接口允许使用一个URL访问所有类型的数据,对象,字段和元素。
存储,处理和传输系统构成了MVC系统,该系统允许通过不同的视图或格式访问数据:HTML,WebDav,Caldav,JSON,XML,XML,RSS,ICALENDAR或其他系统。可以为所有类型的数据或对象或其中的某些视图修改这些视图,以使其适应用户的需求。 UTF-8编码在整个系统中都用于允许使用不同语言的文本使用。
HTML视图提供了响应迅速且多语言的图形接口,允许执行存储/处理系统的所有操作。它是在HTML5/CSS3中编程的,具有可重大的图标,WCAG合规性,带有语法突出显示的文本编辑器(CODEMIRROR)或WYSIWYG(TINYMCE)以及针对CSRF和XSS的保护。此视图将HTML5数据类型与NextTypes的数据类型集成在一起,并将必要的组件添加到接口中,以补充HTML5提供的控件。在“示例”数据类型中,您可以看到所有原始数据类型和对象引用的控件。您可以通过修改DOM来调整HTML视图。
每个对象都有一个带有服务器名称,数据类型和对象标识符的识别QR码。该代码可用于标记真实对象或从移动应用程序中读取它。还有可能以JSON-LD格式导出一些数据。
其他视图允许任何系统远程访问数据。通过使用JavaScript和JSON或XML视图,可以访问所有数据并在浏览器中执行信息处理。 WebDav视图允许您作为文件系统访问数据,其中数据类型和对象是文件夹,并且字段是文件。这使您可以使用外部应用程序打开和修改对象的任何字段。例如,您可以使用文字处理应用程序编辑文档字段。
CALDAV视图是对WebDav视图的修改,它允许您将某些对象作为日历事件公开。这些事件也可以使用iCalendar视图访问。 RSS视图允许使用该格式的任何客户端访问对象列表。