نواة الشبكة

NetKernel هي شركة برمجيات بريطانية ومنصة برمجيات تحمل نفس الاسم وتستخدم للحوسبة عالية الأداء وتكامل تطبيقات المؤسسات والحوسبة الموفرة للطاقة.

يُمكّن هذا النظام المطورين من فصل الكود عن بنية النظام بشكل واضح. ويمكن استخدامه كخادم تطبيقات ، أو تضمينه في حاوية جافا، أو توظيفه كمنصة حوسبة سحابية .

تُعدّ هذه المنصة تطبيقًا لنموذج الحوسبة الموجهة نحو الموارد (ROC). يُعتبر ROC نموذج حوسبة منطقيًا يعمل فوق المجال المادي للبرمجيات والكائنات، ولكنه معزول عنه تمامًا. في ROC، تُعرَّف المعلومات والخدمات بواسطة عناوين منطقية تُحوَّل إلى نقاط نهاية مادية طوال مدة الطلب، ثم تُحرَّر. ينتج عن العنونة المنطقية غير المباشرة أنظمة مرنة قابلة للتغيير أثناء تشغيل النظام. في NetKernel، يتم التوسط بين الطبقتين المنطقية والمادية بواسطة نواة مصغرة بمستوى نظام التشغيل ، قادرة على إجراء تحسينات شفافة متنوعة.

تنبع فكرة استخدام الموارد لنمذجة المعلومات المجردة من نمط REST المعماري وشبكة الويب العالمية . أما فكرة استخدام نموذج عنونة موحد فتنبع من نظام التشغيل يونكس . ويمكن اعتبار NetKernel توحيدًا بين الويب ويونكس، مُنفذًا كنظام تشغيل برمجي يعمل على نواة مصغرة متجانسة داخل حاسوب واحد.

تم تطوير NetKernel بواسطة 1060 Research ويتم تقديمه بموجب ترخيص مزدوج مفتوح المصدر [ 3 ] وترخيص برنامج تجاري.

تاريخ

بدأ مشروع NetKernel في مختبرات هيوليت-باكارد عام 1999. وقد ابتكره كل من الدكتور روس بيري والدكتور رويستون سيلمان والدكتور بيتر رودجرز كبيئة تشغيل XML للأغراض العامة قادرة على تلبية احتياجات الاهتمام المتزايد بلهجات XML لمراسلة XML داخل الصناعة. [ 1 ]

رأى رودجرز في الويب تطبيقًا لمفهوم تجريدي عام، استنبط منه مفهوم ROC، ولكن نظرًا لأن الويب يقتصر على نشر المعلومات، فقد شرع في ابتكار حلٍّ يُمكنه إجراء عمليات حسابية باستخدام مبادئ مماثلة. وبالتعاون الوثيق مع المؤسس المشارك توني باترفيلد، اكتشفا طريقةً لكتابة برمجيات يُمكن تنفيذها عبر نموذج منطقي، منفصل عن المجال المادي للبرمجيات والكائنات. وإدراكًا منهما لإمكانات هذا النهج، انفصلا عن مختبرات HP.

بدأ رودجرز وبترفيلد شركتهما باسم "1060 Research Limited" في تشيبينغ سودبري، وهي بلدة سوق صغيرة على حافة منطقة كوتسوولدز في إنجلترا في عام 2002، وعلى مدى سنوات عديدة قاموا بتطوير المنصة التي أصبحت NetKernel.

في أوائل عام 2018، أعلنت شركة 1060 Research عن تعيين تشارلز رادكليف رئيسًا تنفيذيًا جديدًا لها. [ 4 ] وفي فبراير من العام نفسه، أعلن رادكليف لمجتمع NetKernel أن الفريق يعمل على منصة جديدة مبنية على NKEE 6، ستكون مُستضافة بالكامل، وقابلة للبرمجة، ويمكن الوصول إليها عبر الإنترنت - NetKernel Cloud. استقال رادكليف بعد ستة أشهر. [ 5 ]

المفاهيم

مورد

المورد هو معلومة قابلة للتحديد داخل نظام حاسوبي. الموارد مفهوم مجرد، ولا يمكن التلاعب بها مباشرةً. عند طلب مورد، يتم توفير تمثيل ملموس وثابت يجسد حالته الراهنة. وهذا يُشابه تمامًا طريقة عمل شبكة الإنترنت العالمية. على الإنترنت، يُحدد عنوان URL موردًا متاحًا عالميًا. عندما يُرسل متصفح طلبًا للمورد، يتلقى تمثيلًا له في الاستجابة.

العناوين

يُعرَّف المورد بعنوان ضمن نطاق عناوين . في NetKernel، تُستخدم عناوين مُعرِّف الموارد الموحد (URI) لتحديد جميع الموارد. على عكس الويب، الذي يمتلك نطاق عناوين عالمي واحد، يدعم NetKernel عددًا غير محدود من نطاقات العناوين، كما يدعم العلاقات بين نطاقات العناوين.

يدعم NetKernel مجموعة متنوعة من مخططات URI ويقدم مخططات جديدة قابلة للتطبيق بشكل خاص على عنونة URI داخل نظام برمجي.

طلب

العملية الأساسية في NetKernel هي طلب الموارد . يتكون الطلب من عنوان URI للمورد وفعل . تشمل الأفعال المدعومة : SOURCE، SINK، NEW، DELETE، EXISTS، وMETA. يُرسل كل طلب إلى نواة مصغرة تُحوّل عنوان URI إلى نقطة نهاية فعلية، وتُخصص وتُجدول عملية المعالجة. عند انتهاء نقطة النهاية من المعالجة، تُعيد النواة المصغرة الاستجابة إلى العميل المُرسِل.

برمجة

التعليمات الأساسية في NetKernel هي طلب مورد، مُحدد بواسطة مُعرّف موارد موحد (URI). توجد آليات ترتيب طلبات URI فوق النواة المصغرة. في التطبيق الحالي المبني على Java، تُرسل الطلبات باستخدام واجهة برمجة تطبيقات Java (Java API). هذا يعني أنه يُمكن استخدام أي لغة برمجة تدعم واجهة برمجة تطبيقات Java لبرمجة NetKernel.

اعتبارًا من أبريل 2013 تتضمن مجموعة اللغات المدعومة ما يلي:

  • جافا
  • روبي
  • سكالا
  • كلوجر
  • جافا سكريبت
  • بايثون 2
  • رائع
  • قشرة الفاصوليا
  • PHP
  • DPML
  • اللغات ذات الصلة بـ XML مثل XQuery
  • تتمتع مواصفات URI نفسها بثراء كافٍ للتعبير عن لغة برمجة وظيفية.

مخطط URI النشط

تم اقتراح مخطط URI النشط من قبل شركة هيوليت -باكارد كوسيلة لترميز برنامج وظيفي داخل URI.

نشط: {اسم الدالة} [+ {اسم المعامل} @ {عنوان URI لقيمة المعامل}]* 

على سبيل المثال، يستدعي عنوان URI التالي مولد أرقام عشوائية

نشط: عشوائي

ويستخدم ما يلي خدمة XSLT لتحويل مستند XML باستخدام ورقة أنماط XSLT:

active:xslt+operator@file:/style.xsl+operand@file:/document.xml

لأن قيم الوسائط قد تكون عناوين URI بحد ذاتها، يمكن ترميز مجموعة من استدعاءات الدوال ذات بنية شجرية في عنوان URI واحد.

وسائل النقل

تُعدّ وسائل النقل آليةً تُستخدم لإدخال الطلبات من خارج NetKernel إلى مساحة عناوين NetKernel. تتوفر وسائل النقل لبروتوكول HTTP، وخدمة رسائل جافا (JMS )، وCRON. ويمكن إضافة وسائل نقل أخرى بسهولة لأنها مستقلة عن باقي مكونات NetKernel.

يتمثل دور النقل في ترجمة طلب خارجي قائم على بروتوكول واحد إلى طلب NetKernel مع URI وفعل محدد (SOURCE، SINK، إلخ) ثم إرسال التمثيل المُعاد إلى العميل عبر البروتوكول المدعوم.

يتولى نظام النقل معالجة نوعين من عمليات الربط. الأول هو الربط بين مساحة عناوين البروتوكول المدعوم خارجيًا ومساحة عناوين NetKernel الداخلية. والثاني هو الربط بين الفعل أو الإجراء المحدد خارجيًا وفعل NetKernel.

على سبيل المثال، في حالة بروتوكول نقل HTTP، تُعتبر مساحة العنوان الخارجي مساحة فرعية من عنوان URL. يوضح الرسم التخطيطي التالي هذه النقطة.

http://www.mywebsite.com/publications/... | v file:/src/publications/...

بالإضافة إلى ذلك، يدعم بروتوكول HTTP طرقًا مثل GET و PUT و HEAD وما إلى ذلك والتي يتم ربطها بأفعال NetKernel.

لغات البرمجة النصية

هناك حاجة إلى آلية لإصدار طلبات URI، والتقاط التمثيلات المُعادة، والتواصل مع العملاء.

تُنفَّذ لغات البرمجة النصية بواسطة محرك وقت التشغيل الخاص بها، وهو عبارة عن خدمة بحد ذاتها. على سبيل المثال، سيقوم وقت تشغيل لغة Groovy بتشغيل برنامج موجود في الملف file:/program.gyبالصيغة التالية:

نشط:groovy+operator@file:/program.gy 

انظر أيضاً

مراجع