NextTypes adalah sistem penyimpanan informasi, pemrosesan, dan transmisi berdasarkan standar yang mengintegrasikan karakteristik sistem lain seperti basis data, bahasa pemrograman, protokol komunikasi, sistem file, manajer dokumen, sistem operasi, kerangka kerja, format file dan perangkat keras dalam satu sistem yang terintegrasi erat menggunakan sistem tipe data yang umum.
Implementasi referensi diprogram dalam Java 17 dan menggunakan manajer database PostgreSQL 15. Ini didistribusikan di bawah lisensi Apache 2.0, dalam file perang yang mudah diinstal. Untuk menguji antarmuka perangkat lunak (dalam mode hanya baca), tanpa harus menginstalnya, Anda dapat menjelajahi situs web proyek, yang dikembangkan menggunakan perangkat lunak tersebut. Di menu di sebelah kiri, di bagian "Panel Kontrol" dan di tombol di atas/kanan halaman, Anda akan menemukan tindakan yang tersedia.
NextTypes mengintegrasikan tipe data PostgreSQL primitif seperti angka, teks, biner, tanggal, JSON atau XML, meskipun memberi mereka nama yang berbeda untuk menyederhanakan nomenklatur dan memfasilitasi integrasi dengan sistem lain. Misalnya, alih -alih menggunakan "smallint", "integer" dan "bigint" root "int" diikuti oleh jumlah bit (int16, int32 dan int64) digunakan atau bukannya "karakter variasi" atau "varchar" digunakan "string" seperti dalam beberapa bahasa pemrograman.
Ini juga menambahkan jenis data lain seperti HTML atau URL, dan menggunakan kemampuan PostgreSQL untuk membuat tipe data komposit untuk kolom ini termasuk tipe data untuk file, dokumen, gambar, audio, dan video. Kandungan biner dari bidang -bidang ini dapat dipindai dengan Antivirus Clamav. Jenis data yang kompleks seperti HTML atau gambar terdiri dari elemen yang dapat diakses secara individual dan dapat diterapkan pembatasan untuk mereka seperti tag atau format yang diizinkan.
Sistem penyimpanan terutama berbasis SQL tetapi hibrida relasional/jaringan/objek/file. Setiap tabel adalah tipe data dan setiap baris dalam tabel adalah objek. Setiap baris memiliki kolom dengan pengidentifikasi (ID) yang merupakan kunci utama dan beberapa kolom dengan metadata mirip dengan file: tanggal pembuatan (CDate), tanggal pembaruan (UDate) dan cadangan dibuat (cadangan). Sisa kolom adalah bidang data objek. Tanggal pembuatan (CDate) dan perubahan (Adate) dari tipe data juga disimpan. Tanggal menggunakan standar UTC dan termasuk jam, menit, detik dan mikrodetik. Standar ISO 8601 digunakan untuk representasinya dalam teks.
Bidang objek dapat dari tipe primitif atau menunjuk ke objek lain menggunakan pengidentifikasi sebagai kunci asing, sehingga membentuk database jaringan. Identifier adalah string teks dengan indeks unik dan secara default menerima UUID. Penyederhanaan dan keseragaman ini dalam kunci primer dan asing memfasilitasi otomatisasi dan integrasi dengan sistem lain.
Korespondensi dengan model hubungan entitas mirip dengan model relasional. Setiap entitas adalah objek, atribut adalah bidang, dan hubungan dan beberapa atribut dibuat dengan bidang yang merujuk ke objek lain.
Pengidentifikasi dan bidang objek dapat menjadi bagian dari indeks pencarian non-unik, unik, dan teks lengkap. Definisi tipe data dan objek dapat diekspor dan diimpor ke/dari JSON, yang memungkinkan salinan cadangan dan transfer informasi antar sistem.
{
"Name": "Article_Language",
"Cdate": "2015-04-01T14: 30: 16Z",
"Adate": "2018-09-26t14: 59: 35.53z",
"Fields": {
"judul" : {
"ketik": "string",
"Panjang": 254,
"not_null": Benar
},
"bahasa" : {
"ketik": "bahasa",
"Panjang": 100,
"not_null": Benar
},
"Teks": {
"ketik": "html",
"not_null": Benar
},
"artikel" : {
"type": "artikel",
"Panjang": 100,
"not_null": Benar
}
},
"Indeks": {
"al_ft_search_index": {
"Mode": "FullText",
"Fields": ["title", "text"]
}
},
"Tindakan": {}
}Tanggal Perubahan dan Pembaruan memungkinkan implementasi sistem kontrol konkurensi yang optimis. Jika ketika mengubah jenis atau memperbarui objek tanggal perubahan atau pembaruan terakhir yang diketahui ditunjukkan, sistem memeriksa bahwa tanggal ini sama dengan tanggal saat ini jenis atau objek yang akan dikesampingkan bahwa telah dimodifikasi oleh pengguna lain di kemudian hari.
Metadata "cadangan" digunakan untuk membuat sistem cadangan tambahan dari objek yang diperbarui dengan salinan lengkap masing -masing sejumlah salinan tambahan yang ditentukan. Setiap kali suatu objek diperbarui, cadangan "cadangan" diubah menjadi "false" untuk menunjukkan bahwa tidak ada salinan objek itu dan harus disalin dalam cadangan berikutnya.
Melalui penggunaan fitur PostgreSQL seperti DDL transaksional dan kendala yang dapat ditunda, sistem memungkinkan pembuatan atau modifikasi berbagai jenis data dan objek dalam transaksi yang sama saat sistem sedang digunakan.
Untuk melengkapi sistem pencarian teks lengkap, ekstraksi metadata dan teks dari PDF, OpenDocument dan Office Open XML Documents, Microsoft Office Binary Format dan format lain ditambahkan menggunakan TIKA.
NextTypes adalah sistem relasional terutama dengan beberapa fitur berorientasi objek yang memfasilitasi penggunaan dan otomatisasi dari bahasa pemrograman. Tidak seperti sistem objek-relasional, ia tidak menggunakan korespondensi kelas objek, sebaliknya menggunakan serangkaian kelas dan metode generik untuk semua jenis dan objek yang memungkinkan melakukan tindakan dasar (CRUD) dari pembuatan, membaca, memperbarui, dan penghapusan.
Untuk tindakan kompleks seperti kueri yang menggunakan beberapa tabel, ini menyediakan sistem dengan tingkat abstraksi yang lebih tinggi daripada JDBC yang memfasilitasi penggunaan SQL dan terintegrasi dengan tipe data penyimpanan. Sistem ini memungkinkan kueri yang diparameterisasi dengan pelaksanaan metode tunggal dan menggunakan nama tabel dan kolom sebagai parameter, yang menawarkan perlindungan terhadap injeksi SQL. Ini juga memungkinkan Anda untuk menggunakan array sebagai parameter.
Tindakan dasar dapat dicegat mirip dengan pemicu SQL untuk memodifikasi jenis atau objek atau melakukan tindakan tambahan. Selain itu, tindakan baru dapat didefinisikan dan tersedia untuk sistem.
Dalam implementasi Java beberapa tipe data primitif dalam penyimpanan, seperti angka, memiliki korespondensi langsung dengan kelas -kelas di lingkungan runtime Java. Untuk jenis lain seperti HTML, dokumen, gambar atau video, sistem memiliki kelas yang terintegrasi dengan jenis penyimpanan dan memungkinkan pembuatan dan modifikasi data.
Protokol utama yang digunakan adalah HTTP, meskipun adaptor dapat dibuat untuk protokol lainnya. Sistem ini mencakup adaptor SMTP yang memungkinkan penerimaan email dan konversi menjadi objek. Di atas HTTP, antarmuka REST dibangun dengan otentikasi melalui sertifikat dan kata sandi X.509 (dienkripsi dengan BCRYPT), HTTP Basic Auth, perlindungan terhadap serangan DOS dan manajemen file robot dan sitemap web. Antarmuka ini memungkinkan akses ke semua jenis data, objek, bidang, dan elemen dengan satu URL.
Sistem penyimpanan, pemrosesan, dan transmisi membentuk sistem MVC yang memungkinkan akses ke data melalui berbagai tampilan atau format: HTML, WebDAV, Caldav, JSON, XML, RSS, Icalendar atau sistem lainnya. Masing -masing tampilan ini dapat dimodifikasi untuk semua jenis data atau objek atau beberapa di antaranya untuk menyesuaikannya dengan kebutuhan pengguna. Pengkodean UTF-8 digunakan di seluruh sistem untuk memungkinkan penggunaan teks dalam berbagai bahasa.
Tampilan HTML menyediakan antarmuka grafis yang responsif dan multi-bahasa yang memungkinkan untuk melakukan semua tindakan sistem penyimpanan/pemrosesan. Ini diprogram dalam HTML5/CSS3 dengan ikon SVG yang dapat diputar ulang, kepatuhan WCAG, editor teks dengan penyorotan sintaks (codemirror) atau wysiwyg (tinymce) dan perlindungan terhadap CSRF dan XSS. Tampilan ini mengintegrasikan tipe data HTML5 dengan yang dari nextTypes, menambahkan komponen yang diperlukan ke antarmuka untuk melengkapi kontrol yang disediakan oleh HTML5. Dalam tipe data "contoh" Anda dapat melihat kontrol untuk semua tipe data primitif dan referensi objek. Anda dapat mengadaptasi tampilan HTML dengan memodifikasi DOM.
Setiap objek memiliki kode QR yang mengidentifikasi dengan nama server, jenis data dan pengidentifikasi objek. Kode ini dapat digunakan untuk memberi label objek nyata atau membacanya dari aplikasi seluler. Ada juga kemungkinan untuk mengekspor beberapa data dalam format JSON-LD.
Tampilan lain memungkinkan akses jarak jauh ke data oleh sistem apa pun. Melalui penggunaan JavaScript dan JSON atau XML, dimungkinkan untuk mengakses semua data dan melakukan pemrosesan informasi di browser. Tampilan WebDAV memungkinkan Anda untuk mengakses data sebagai sistem file di mana tipe data dan objek adalah folder dan bidangnya adalah file. Ini memungkinkan Anda untuk membuka dan memodifikasi bidang apa pun dari suatu objek dengan aplikasi eksternal. Misalnya, Anda dapat mengedit bidang dokumen dengan aplikasi pengolah kata.
Tampilan CALDAV adalah modifikasi dari tampilan WebDAV yang memungkinkan Anda untuk mengekspos beberapa objek sebagai peristiwa kalender. Peristiwa itu juga dapat diakses menggunakan tampilan icalendar. Tampilan RSS memungkinkan akses ke daftar objek dengan klien dari format itu.