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視圖允許使用該格式的任何客戶端訪問對象列表。