NextTypes عبارة عن نظام معالجة ومعالجة ونقل يعتمد على المعايير يدمج خصائص أنظمة أخرى مثل قواعد البيانات ولغات البرمجة وبروتوكولات الاتصال وأنظمة الملفات ومديري المستندات وأنظمة التشغيل والأطر وتنسيقات الملفات والأجهزة في نظام واحد متكامل بإحكام باستخدام نظام أنواع البيانات الشائعة.
يتم برمجة التنفيذ المرجعي في Java 17 ويستخدم مدير قاعدة بيانات PostgreSQL 15. يتم توزيعه بموجب ترخيص Apache 2.0 ، في ملف حرب قابل للتثبيت بسهولة. لاختبار واجهة البرامج (في وضع القراءة فقط) ، دون الحاجة إلى تثبيتها ، يمكنك استكشاف موقع الويب للمشروع ، والذي تم تطويره باستخدام البرنامج المذكور. في القائمة الموجودة على اليسار ، في قسم "لوحة التحكم" وفي الأزرار الموجودة في أعلى/يمين الصفحة ، ستجد الإجراءات المتاحة.
يدمج NextTypes أنواع بيانات PostgreSQL البدائية مثل الأرقام والنص أو الثنائي أو التواريخ أو JSON أو XML ، على الرغم من منحهم أسماء مختلفة لتبسيط التسمية وتسهيل التكامل مع الأنظمة الأخرى. على سبيل المثال ، بدلاً من استخدام "smallint" أو "integer" و "bigint" الجذر "int" تليها عدد البتات (int16 و int32 و int64) أو بدلاً من "الأحرف المتغيرة" أو "varchar" يتم استخدامها "سلسلة" كما في بعض لغات البرمجة.
يضيف أيضًا أنواعًا أخرى من البيانات مثل HTML أو URL ، واستخدام قدرة PostgreSQL على إنشاء أنواع بيانات مركبة للأعمدة ، ويتضمن أنواع البيانات للملفات والمستندات والصور والمقاطع السمعية ومقاطع الفيديو. يمكن مسح المحتوى الثنائي لهذه الحقول مع مكافحة الفيروسات Clamav. تتكون أنواع البيانات المعقدة مثل HTML أو الصور من عناصر يمكن الوصول إليها بشكل فردي ويمكن تطبيق قيود عليها مثل العلامات أو التنسيقات المسموح بها.
يعتمد نظام التخزين في المقام الأول على SQL ولكنه عبارة عن علائقية/شبكة/كائنات/ملفات هجينة. كل جدول هو نوع بيانات وكل صف في الجدول هو كائن. يحتوي كل صف على عمود يحتوي على معرف (معرف) وهو المفتاح الأساسي والعديد من الأعمدة ذات البيانات الوصفية مماثلة لتلك الخاصة بالملفات: تاريخ الإنشاء (CDATE) ، تاريخ التحديث (UDATE) والنسخ الاحتياطي (النسخ الاحتياطي). بقية الأعمدة هي حقول البيانات للكائن. يتم أيضًا تخزين تاريخ الإنشاء (CDATE) والتغيير (adate) لأنواع البيانات. تواريخ تستخدم معيار UTC وتشمل ساعات ، دقائق ، ثواني و microseconds. يتم استخدام معيار ISO 8601 لتمثيله في النص.
يمكن أن تكون حقول الكائنات ذات نوع بدائي أو تشير إلى كائنات أخرى باستخدام المعرف كمفتاح خارجي ، وبالتالي تشكيل قاعدة بيانات شبكة. المعرف عبارة عن سلسلة نصية ذات فهرس فريد ، ويتلقى بشكل افتراضي UUID. هذا التبسيط والتوحيد في المفاتيح الأولية والأجنبية يسهل الأتمتة والتكامل مع الأنظمة الأخرى.
تشبه المراسلات مع نموذج علاقة الكيان تلك الموجودة في النموذج العلائقي. كل كيان هو كائن ، والسمات هي حقول ، والعلاقات والسمات المتعددة مصنوعة مع الحقول التي تشير إلى كائنات أخرى.
يمكن أن يكون معرف الكائنات والحقول جزءًا من فهارس البحث غير الموسيقية والفريدة والكاملة. يمكن تصدير تعريف أنواع البيانات والكائنات واستيرادها إلى/من JSON ، مما يسمح بنسخ النسخ الاحتياطي ونقل المعلومات بين الأنظمة.
{
"الاسم": "article_language" ،
"CDATE": "2015-04-01T14: 30: 16Z" ،
"adate": "2018-09-26T14: 59: 35.53z" ،
"الحقول": {
"عنوان" : {
"اكتب": "سلسلة" ،
"الطول": 254 ،
"not_null": صحيح
} ،
"لغة" : {
"النوع": "اللغة" ،
"الطول": 100 ،
"not_null": صحيح
} ،
"نص" : {
"النوع": "HTML" ،
"not_null": صحيح
} ،
"شرط" : {
"النوع": "مقال" ،
"الطول": 100 ،
"not_null": صحيح
}
} ،
"الفهرسة": {
"al_ft_search_index": {
"الوضع": "النص الكامل" ،
"الحقول": ["العنوان" ، "النص"]
}
} ،
"الإجراءات": {}
}يسمح تواريخ التغيير والتحديث بتنفيذ نظام التحكم في التزامن المتفائل. إذا تمت الإشارة إلى نوع أو تحديث كائن آخر تاريخ التغيير أو التحديث ، يتحقق النظام من أن هذا التاريخ هو نفس التاريخ الحالي للنوع أو الكائن لاستبعاد أنه تم تعديله بواسطة مستخدم آخر في تاريخ لاحق.
يتم استخدام البيانات الوصفية "النسخ الاحتياطي" لإنشاء نظام احتياطي إضافي للكائنات المحدثة مع نسخ كاملة كل عدد محدد من النسخ الإضافية. في كل مرة يتم فيها تحديث كائن ما ، يتم تغيير بيانات التعريف "النسخ الاحتياطي" إلى "خطأ" للإشارة إلى أنه لا توجد نسخة من هذا الكائن ويجب نسخها في النسخ الاحتياطي التالي.
من خلال استخدام ميزات postgresql مثل DDL المعاملات والقيود القابلة للتأجيل ، يسمح النظام بإنشاء أو تعديل أنواع البيانات والكائنات المختلفة في نفس المعاملة أثناء استخدام النظام.
لاستكمال نظام البحث النص الكامل ، يتم استخراج البيانات الوصفية والنص من PDF و OpenDocument و Office Open Open Documents ، وتنسيقات Microsoft Office الثنائية وتنسيقات أخرى باستخدام Tika.
NextTypes هو نظام علائقي بشكل أساسي مع بعض الميزات الموجهة للكائنات التي تسهل استخدامها والأتمتة من لغات البرمجة. على عكس أنظمة الكائنات العلمية ، فإنه لا يستخدم مراسلات من فئة الكائنات ، وبدلاً من ذلك ، يستخدم سلسلة من الفئات والطرق العامة لجميع الأنواع والكائنات التي تسمح بإجراء الإجراءات الأساسية (CRUD) من الإنشاء والقراءة والتحديث والحذف.
بالنسبة للإجراءات المعقدة مثل الاستعلامات التي تستخدم العديد من الجداول ، فإنه يوفر للنظام مستوى أعلى من التجريد من JDBC الذي يسهل استخدام SQL ويتكامل مع أنواع البيانات من التخزين. يسمح هذا النظام باستعلامات معلمة مع تنفيذ طريقة واحدة ويستخدم أسماء الجدول والأعمدة كمعلمات ، والتي توفر الحماية ضد حقن SQL. كما يتيح لك استخدام صفيف كمعلمة.
يمكن اعتراض الإجراءات الأساسية مشابهة لمشغلات SQL لتعديل الأنواع أو الكائنات أو تنفيذ إجراءات إضافية. بالإضافة إلى ذلك ، يمكن تعريف إجراءات جديدة وإتاحتها للنظام.
في تطبيق Java ، تحتوي بعض أنواع البيانات البدائية في التخزين ، مثل الأرقام ، على مراسلات مباشرة مع فئات في Java Runtime Enviroment. بالنسبة لأنواع أخرى مثل HTML أو المستندات أو الصور أو مقاطع الفيديو ، يحتوي النظام على فئات تتكامل مع أنواع التخزين والسماح بإنشاء البيانات وتعديلها.
البروتوكول الرئيسي المستخدم هو HTTP ، على الرغم من أنه يمكن إنشاء المحولات لأي بروتوكول آخر. يتضمن النظام محول SMTP يسمح باستقبال رسائل البريد الإلكتروني وتحويلها إلى كائنات. علاوة على HTTP ، تم تصميم واجهة REST مع المصادقة من خلال شهادات وكلمات مرور X.509 (مشفرة مع BCRYPT) ، HTTP Basic Auth ، الحماية ضد هجمات DOS وإدارة ملف الروبوتات و sitemap على الويب. تتيح هذه الواجهة الوصول إلى جميع أنواع البيانات والكائنات والحقول والعناصر مع عنوان 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 الوصول إلى قوائم الكائنات مع أي عميل من هذا التنسيق.