بروتوكول البيانات المفتوحة

في مجال الحوسبة ، يُعدّ بروتوكول البيانات المفتوحة ( OData ) بروتوكولًا مفتوحًا يسمح بإنشاء واستخدام واجهات برمجة تطبيقات خدمات الويب القابلة للاستعلام والتوافق بطريقة قياسية. أطلقت مايكروسوفت بروتوكول OData في عام 2007. [ 1 ] صدرت الإصدارات 1.0 و2.0 و3.0 بموجب وعد مايكروسوفت بالمواصفات المفتوحة . تم توحيد الإصدار 4.0 في منظمة OASIS ، [ 2 ] وصدر في مارس 2014. [ 3 ] في أبريل 2015، قدمت OASIS بروتوكول OData الإصدار 4 وتنسيق OData JSON الإصدار 4 إلى اللجنة الفنية المشتركة 1 التابعة للمنظمة الدولية للمعايير /الكهروتقنية الدولية (ISO/IEC JTC 1) للموافقة عليهما كمعيار دولي . [ 4 ] في ديسمبر 2016، نشرت المنظمة الدولية للمعايير/الكهروتقنية الدولية (ISO/IEC) بروتوكول OData 4.0 الأساسي تحت مسمى ISO/IEC 20802-1:2016 [ 5 ] [ 6 ] وتنسيق OData JSON تحت مسمى ISO/IEC 20802-2:2016. [ 7 ]

يُمكّن هذا البروتوكول من إنشاء واستخدام واجهات برمجة تطبيقات الويب القائمة على بروتوكول HTTP ، والتي تسمح لعملاء الويب بنشر وتعديل الموارد، المُحددة باستخدام عناوين URL والمُعرّفة في نموذج بيانات ، باستخدام رسائل HTTP بسيطة. يتشابه OData مع JDBC و ODBC في بعض الجوانب ؛ فمثل ODBC، لا يقتصر OData على قواعد البيانات العلائقية .

التقييس

بعد التطوير الأولي من قبل مايكروسوفت، أصبح OData بروتوكولًا موحدًا للجنة الفنية لـ OASIS OData (TC).

اللجنة الفنية لبيانات OASIS

تعمل لجنة OASIS OData التقنية على تبسيط استعلام البيانات ومشاركتها بين التطبيقات المختلفة والجهات المعنية المتعددة لإعادة استخدامها في المؤسسات والحوسبة السحابية والأجهزة المحمولة. يعتمد بروتوكول OData، وهو بروتوكول قائم على REST، على بروتوكولات HTTP و AtomPub و JSON ، ويستخدم معرّفات الموارد الموحدة (URIs) للوصول إلى موارد تغذية البيانات. يُمكّن OData من الوصول إلى المعلومات من مصادر متنوعة، بما في ذلك (على سبيل المثال لا الحصر) قواعد البيانات العلائقية وأنظمة الملفات وأنظمة إدارة المحتوى ومواقع الويب التقليدية. يوفر OData طريقة لكسر حواجز البيانات وزيادة القيمة المشتركة للبيانات من خلال إنشاء بيئة تفاعلية تُمكّن مستهلكي البيانات من التفاعل مع منتجيها بطريقة أكثر فعالية من الممكنة حاليًا، مما يُتيح لعدد أكبر من التطبيقات فهم مجموعة أوسع من البيانات. كل منتج ومستهلك للبيانات يشارك في هذه البيئة يُساهم في زيادة قيمتها الإجمالية. [ 8 ]

يشمل المشاركون في اللجنة الفنية كلاً من CA Technologies و Citrix Systems و IBM و Microsoft و Progress Software و Red Hat و SAP SE و SDL .

بنيان

OData هو بروتوكول لإنشاء واستخدام واجهات برمجة تطبيقات الويب. وبالتالي، يعتمد OData على HTTP وAtomPub وJSON باستخدام معرّفات الموارد الموحدة (URIs) لمعالجة موارد تغذية البيانات والوصول إليها.

تحديد الموارد

تستخدم OData معرّفات الموارد الموحدة (URIs) لتحديد الموارد. لكل خدمة OData يُختصر جذر خدمتها إلى http://host/service/ ، يمكن العثور على الموارد الثابتة التالية :

وثيقة الخدمة

تُدرج وثيقة الخدمة مجموعات الكيانات والوظائف والعناصر الفردية التي يمكن استرجاعها. ويمكن للعملاء استخدام وثيقة الخدمة للتنقل في النموذج بطريقة تفاعلية تعتمد على الوسائط المتعددة.

تتوفر وثيقة الخدمة على الرابط التالي : http://host/service/

وثيقة البيانات الوصفية

يصف مستند البيانات الوصفية الأنواع والمجموعات والوظائف والإجراءات التي تفهمها خدمة OData. ويمكن للعملاء استخدام مستند البيانات الوصفية لفهم كيفية الاستعلام عن الكيانات والتفاعل معها في الخدمة.

تتوفر وثيقة البيانات الوصفية على الرابط التالي : http://host/service/$metadata .

موارد ديناميكية

يمكن حساب معرّفات الموارد الموحدة (URIs) للموارد الديناميكية من معلومات الوسائط المتعددة الموجودة في مستند الخدمة ومستند البيانات الوصفية.

تشغيل الموارد

تستخدم OData أفعال HTTP للإشارة إلى العمليات التي تتم على الموارد.

  • GET: الحصول على المورد (مجموعة من الكيانات، كيان واحد، خاصية هيكلية، خاصية تنقل، دفق، إلخ).
  • نشر: إنشاء مورد جديد.
  • PUT: تحديث مورد موجود عن طريق استبداله بنسخة كاملة.
  • التصحيح: تحديث مورد موجود عن طريق استبدال جزء من خصائصه بنسخة جزئية.
  • حذف: إزالة المورد.

الاستعلام

قد تتضمن عناوين URL المطلوبة من نقطة نهاية OData خيارات استعلام. يحدد بروتوكول OData مجموعة متنوعة من "خيارات استعلام النظام" التي يجب أن تقبلها نقاط النهاية، ويمكن استخدام هذه الخيارات لتصفية البيانات أو ترتيبها أو تعيينها أو تقسيمها إلى صفحات.

يمكن إضافة خيارات الاستعلام إلى عنوان URL بعد ?حرف معين، ويتم فصلها بأحرف &؛ يتكون كل خيار من $اسم مسبوق بعلامة - وقيمته، مفصولين بعلامة =، على سبيل المثال: OData/Products?$top=2&$orderby=Name. تم تعريف عدد من عوامل التشغيل المنطقية والدوال لاستخدامها عند تصفية البيانات، على سبيل المثال: OData/Products?$filter=Price lt 10.00 and startswith(Name,'M')يطلب المنتجات التي يقل سعرها عن 10 ويبدأ اسمها بالحرف 'M'.

تمثيل الموارد

يستخدم OData تنسيقات مختلفة لتمثيل البيانات ونموذج البيانات. في الإصدار 4.0 من بروتوكول OData، يُعد تنسيق JSON هو المعيار لتمثيل البيانات، بينما لا يزال تنسيق Atom قيد التطوير من قبل اللجنة المختصة. أما لتمثيل نموذج البيانات، فيُستخدم لغة تعريف المخططات المشتركة (CSDL)، التي تُعرّف تمثيل XML لنموذج بيانات الكيانات الذي تُوفّره خدمات OData.

نموذج لحمولة بيانات OData JSON

مجموعة من المنتجات:

{ "@odata.context" : "http://services.odata.org/V4/OData/OData.svc/$metadata#Products" , "value" : [ { "ID" : 0 , "Name" : "Meat" , "Description" : "Red Meat" , "ReleaseDate" : "1992-01-01T00:00:00Z" , "DiscontinuedDate" : null , "Rating" : 14 , "Price" : 2.5 }, { "ID" : 1 , "Name" : "Milk" , "Description" : "Loy fat milk" , "ReleaseDate" : "1995-10-01T00:00:00Z" , "DiscontinuedDate" : null , "Rating" : 3 , "Price" : 3.5 }, ... ] }

نموذج لحمولة بيانات OData Atom

مجموعة من المنتجات:

<feed xml:base= "http://services.odata.org/V4/OData/OData.svc/" m:context= "http://services.odata.org/V4/OData/OData.svc/$metadata#Products" xmlns= "http://www.w3.org/2005/Atom" xmlns:d= "http://docs.oasis-open.org/odata/ns/data" xmlns:m= "http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss= "http://www.georss.org/georss" xmlns:gml= "http://www.opengis.net/gml" ><id> http://services.odata.org/v4/odata/odata.svc/Products </id><title type= "text" > المنتجات </title><مُحدَّث> 2015-05-19T03:38:50Z </ مُحدَّث><link rel= "self" title= "المنتجات" href= "المنتجات" /><مدخل><id> http://services.odata.org/V4/OData/OData.svc/Products(0) </id><category term= "#ODataDemo.Product" scheme= "http://docs.oasis-open.org/odata/ns/scheme" /><link rel= "edit" title= "المنتج" href= "المنتجات(0)" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type= "application/xml" title= "Categories" href= "Products(0)/Categories/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/Categories" type= "application/atom+xml;type=feed" title= "Categories" href= "Products(0)/Categories" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type= "application/xml" title= "المورد" href= "Products(0)/Supplier/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/Supplier" type= "application/atom+xml;type=entry" title= "المورد" href= "Products(0)/Supplier" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type= "application/xml" title= "ProductDetail" href= "Products(0)/ProductDetail/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/ProductDetail" type= "application/atom+xml;type=entry" title= "ProductDetail" href= "Products(0)/ProductDetail" /><title/><مُحدَّث> 2015-05-19T03:38:50Z </ مُحدَّث><المؤلف><name/></author><content type= "application/xml" ><m:properties><d:ID m:type= "Int32" > 0 </d:ID><d:Name> خبز </d:Name><d:Description> خبز الحبوب الكاملة </d:Description><d:ReleaseDate m:type= "DateTimeOffset" > 1992-01-01T00:00:00Z </d:ReleaseDate><d:DiscontinuedDate m:null= "true" /><d:Rating m:type= "Int16" > 4 ​​</d:Rating><d:Price m:type= "Double" > 2.5 </d:Price></m:properties></content></entry><مدخل><id> http://services.odata.org/V4/OData/OData.svc/Products(1) </id><category term= "#ODataDemo.Product" scheme= "http://docs.oasis-open.org/odata/ns/scheme" /><link rel= "edit" title= "المنتج" href= "المنتجات (1)" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type= "application/xml" title= "Categories" href= "Products(1)/Categories/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/Categories" type= "application/atom+xml;type=feed" title= "Categories" href= "Products(1)/Categories" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type= "application/xml" title= "المورد" href= "Products(1)/Supplier/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/Supplier" type= "application/atom+xml;type=entry" title= "المورد" href= "Products(1)/Supplier" /><link rel= "http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type= "application/xml" title= "ProductDetail" href= "Products(1)/ProductDetail/$ref" /><link rel= "http://docs.oasis-open.org/odata/ns/related/ProductDetail" type= "application/atom+xml;type=entry" title= "ProductDetail" href= "Products(1)/ProductDetail" /><title/><مُحدَّث> 2015-05-19T03:38:50Z </ مُحدَّث><المؤلف><name/></author><content type= "application/xml" ><m:properties><d:ID m:type= "Int32" > 1 </d:ID><d:Name> حليب </d:Name><d:Description> حليب قليل الدسم </d:Description><d:ReleaseDate m:type= "DateTimeOffset" > 1995-10-01T00:00:00Z </d:ReleaseDate><d:DiscontinuedDate m:null= "true" /><d:Rating m:type= "Int16" > 3 </d:Rating><d:Price m:type= "Double" > 3.5 </d:Price></m:properties></content></entry>... </feed>

نموذج لمستند بيانات تعريف OData

<edmx:Edmx Version= "4.0" xmlns:edmx= "http://docs.oasis-open.org/odata/ns/edmx" ><edmx:DataServices><Schema Namespace= "ODataDemo" xmlns= "http://docs.oasis-open.org/odata/ns/edm" ><EntityType Name= "Product" ><مفتاح><PropertyRef Name= "ID" /></Key><Property Name= "ID" Type= "Edm.Int32" Nullable= "false" /><Property Name= "Name" Type= "Edm.String" /><Property Name= "Description" Type= "Edm.String" /><Property Name= "ReleaseDate" Type= "Edm.DateTimeOffset" Nullable= "false" /><Property Name= "DiscontinuedDate" Type= "Edm.DateTimeOffset" /><Property Name= "Rating" Type= "Edm.Int16" Nullable= "false" /><Property Name= "Price" Type= "Edm.Double" Nullable= "false" /></EntityType><ComplexType Name= "Address" ><Property Name= "Street" Type= "Edm.String" /><Property Name= "City" Type= "Edm.String" /><Property Name= "State" Type= "Edm.String" /><Property Name= "ZipCode" Type= "Edm.String" /><Property Name= "Country" Type= "Edm.String" /></ComplexType><EntityContainer Name= "DemoService" ><EntitySet Name= "Products" EntityType= "ODataDemo.Product" ></EntitySet></EntityContainer></Schema></edmx:DataServices></edmx:Edmx>

التطبيقات

تشمل التطبيقات ما يلي: [ 9 ]

أدوات

  • قاعدة بيانات نيوكليون الرئيسية [ 24 ]

انظر أيضاً

مراجع

  1. فلاسكو، مايك (18 يوليو 2007). "مرحباً!" . مدونات MSDN . فريق OData. مؤرشف من الأصل في 5 مايو 2014.
  2. "اللجنة الفنية لبروتوكول البيانات المفتوحة (OData) التابعة لمنظمة OASIS" . تم الاطلاع عليه بتاريخ 2013-08-05 .
  3. "منظمة OASIS تُقرّ معايير OData 4.0 لشبكة ويب مفتوحة وقابلة للبرمجة" . oasis-open.org . 17 مارس 2014.
  4. «قدّمت منظمة OASIS معيار OData الإصدار الرابع ومعيار OData JSON الإصدار الرابع إلى اللجنة الفنية المشتركة 1 التابعة لمنظمة ISO/IEC للموافقة عليهما كمعيار دولي» . MS Open Tech . مؤرشف من الأصل بتاريخ 20 مايو 2015. تم الاطلاع عليه بتاريخ 18 مايو 2015 .
  5. "نشر OData كمعيار ISO · OData - أفضل طريقة لـ REST" . www.odata.org . تاريخ الاسترجاع: 11 مايو 2021 .
  6. "ISO/IEC 20802-1:2016" . المنظمة الدولية للمقاييس . تم الاطلاع عليه بتاريخ 11-05-2021 .
  7. "ISO/IEC 20802-2:2016" . المنظمة الدولية للمقاييس . تم الاطلاع عليه بتاريخ 11-05-2021 .
  8. "OASIS Open Data Protocol (OData) TC | OASIS" . www.oasis-open.org . تم الاطلاع عليه بتاريخ 24 سبتمبر 2019 .
  9. "النظام البيئي" . odata.org .
  10. خط أنابيب البيانات الهجين من بروجرس داتا دايركت
  11. "بوابة SAP NetWeaver" . مؤرشفة من الأصل بتاريخ 30-11-2012 . تم الاطلاع عليها بتاريخ 22-11-2012 .
  12. خدمة بيانات REST واسعة النطاق (OData)
  13. "مرحباً بكم في واجهات برمجة تطبيقات Office 365" . docs.microsoft.com . 28 أغسطس 2018. تم الاطلاع عليه في 24 سبتمبر 2019 .
  14. "إعداد Salesforce Connect للوصول إلى البيانات الخارجية باستخدام محول OData 2.0 أو 4.0" .
  15. سكايڤيا كونكت
  16. "OData - Tableau" . help.tableau.com . تم الاطلاع عليه بتاريخ 24 سبتمبر 2019 .
  17. "OData و Spotfire" . مدونة TIBCO . تم الاطلاع عليه بتاريخ 30-03-2016 .
  18. ميولسوفت
  19. "Anypoint Exchange" . www.mulesoft.com . تم الاطلاع عليه بتاريخ 24 سبتمبر 2019 .
  20. عوامل النجاح
  21. نظام إدارة رأس المال البشري من سيريديان (Dayforce)
  22. "برنامج إعداد تقارير الموارد البشرية - داي فورس | سيريديان" . www.ceridian.com . مؤرشف من الأصل في 21 يناير 2025. تم الاطلاع عليه في 24 سبتمبر 2019 .
  23. "ما تحتاج لمعرفته حول واجهة برمجة تطبيقات Redfish" . Exxact . 2017-12-01 . تم الاطلاع عليه بتاريخ 2019-08-31 .
  24. "قاعدة بيانات النيوكليون الرئيسية" . تم الاطلاع عليها بتاريخ 16 نوفمبر 2017 .