تخزين العناصر كخدمة مجموعة

مكتمل

سننظر الآن في فئة خاصة من أنظمة التخزين المصممة كخدمة مجموعة يتم توفيرها عبر الإنترنت. في سياق مناقشتنا حول التخزين على السحابة حتى ذلك الحين، يمكن اعتبار تخزين العناصر على السحابة حالة خاصة من مخازن القيمة الأساسية المقدمة كخدمة عبر الإنترنت.

يتطلب توفير التخزين كخدمة للعملاء عبر الإنترنت مع تلخيص تفاصيل تنفيذ التخزين الأساسية وتوفير واجهة بسيطة ونظيفة يمكن استخدامها في التطبيقات. يختار مستخدمو المجموعة بشكل متزايد نموذج عناصر السحابة للتخزين على السحابة.

مع مفهوم العناصر تختصر أنظمة التخزين المستندة إلى نوع العناصر نهج نظام الملفات الموجودة على مستوى أعلى. عادةً ما تقوم أنظمة التخزين المستندة إلى نوع العناصر على أنظمة الملفات الموجودة. لا يوجد أي مدلول على التسلسلات الهرمية في أنظمة التخزين المستندة إلى نوع العناصر، والتي تستخدم بدلاً من ذلك بيئة البيانات الثابتة.

يمكن اعتبار الكائن كحاوية عامة يمكنها تخزين أي نوع عشوائي من المعلومات. قد يكون تصميم واجهات لمثل هذه البيانات التعسفية أمرًا صعبًا، ولكن في لغة التخزين، يمكن تحديد مجموعة أساسية من العمليات بسهولة لأي عنصر عشوائي. هذه العمليات عبارة عن إنشاء وقراءة وتحديث وحذف (CRUD)، والتي يتم توفيرها عادةً من خلال نوع من واجهة برمجة التطبيقات ((API التي يمكن الوصول إليها من خلال HTTP أو بروتوكولات شبكة الاتصال الأخرى باستخدام مكالمات على غرار نمط REST أو SOAP.

REST

يعتمد نقل الحالة التمثيلية (REST) على بروتوكول الاتصالات عديم الحالة والعميل والقابل للتخزين المؤقت ويتم تنفيذه عادة عبر HTTP. يعامل البروتوكول عديمة الحالة كل طلب كتشغيل مستقل، ويتم التعامل مع كل اتصال بين العميل والخادم على أنه زوج مستقل من الطلبات والاستجابات.

REST هو نمط معماري لتصميم التطبيقات الشبكية ولا يشير إلى بروتوكول واحد. وتعتبرREST استراتيجية مصممة للاتصالات بين مختلف الكيانات في تطبيق شبكي. والفكرة هي استخدام آلية بسيطة بدلاً من CORBA أو WSDL أو RPC للاتصال ونقل المعلومات بين الأجهزة عبر شبكة اتصال. تسمى أي واجهة تستخدم مبادئ REST واجهة RESTful .

تستخدم واجهة RESTful طلبات HTTP للنشر (إنشاء و/ أو تحديث)، قراءة (إنشاء الاستعلامات والحصول على المعلومات)، وحذف البيانات. وهكذا، يمكن استخدام واجهة RESTful لعمليات CRUD.

تتكون واجهة RESTful من المكونات التالية:

  • معرّف موحد للموارد (URI)، مثل عنوان HTTP URL الذي يمكن من خلاله الوصول إلى الخدمة.
  • كتابة وسائط الإعلام عبر الإنترنت للبيانات التي تدعمها الخدمة (عادةً XML أو JSON).
  • مجموعة من العمليات التي تدعمها خدمة ويب باستخدام أساليب HTTP (حصول وإنشاء ونشر وحذف).
  • واجهة برمجة تطبيقات يحركها عنوان HTTP.

ومن ثم، يمكن للبرنامج الذي يحتاج إلى الاتصال بخدمة واجهة RESTful أن يستخدم طلبات الحصول والإنشاء والنشر والحذف الخاصة بعنوان HTTP القياسية. سيتم تغطية مثال لطلب REST قريبًا.

المزايا الرئيسية لـ REST هي أنه:

  • نهج مستقل النظام الأساسي وهو ما يعتبر مناسبًا بشكل مثالي للإنترنت.
  • واجهة مستقلة اللغة حيث يتم تمرير كافة الإرشادات عبر عنوان HTTP بحيث، على سبيل المثال، يمكن لعميل C# الاتصال بخادم Python.
  • اتصال مستند على المعايير لأنه متربعًا على عنوان HTTP.
  • جاهز للعمل في ظل وجود جدران الحماية طالما لم تتم تصفية نسبة استخدام عنوان HTTP أو HTTPS.

لمعرفة المزيد حول استخدام REST للوصول إلى البيانات المخزنة في السحابة وإدارتها، راجع تصميم RESTful لواجهة برمجة تطبيقات الويب.

أنظمة تخزين العناصر

يُعد Azure Blob Storage مثالاً للتخزين المستند إلى العنصر في السحابة. يسمح Blob Storage للمستخدمين بتخزين الكائنات في حاويات. يمكن إنشاء كل عنصر، وقراءته، وحذفه. لاحظ أنه في نموذج Blob Storage، على الرغم من عدم وجود أسلوب تحديث أصلي للعناصر يمكن حذف غرض بأكمله وإعادة إنشائه، على غرار الكتابة فوق الملف.

فيما يلي مثال على استدعاء RESTful HTTP إلى Azure Blob Storage لإنشاء حاوية باسم mycontainer. يتضمن استدعاء عنوان HTTP معلومات التخويل للعميل للوصول إلى المستودع.

PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=

يمكن لـ Blob Storage معالجة الطلب وسيرسل استجابة HTTP مماثلة للمثال التالي:

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 23:00:12 GMT  
ETag: "0x8CB14C3E29B7E82"  
Last-Modified: Sun, 25 Sep 2011 23:00:06 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

أقر عنوان Azure بالطلب، في الاستجابة، وأشار إلى أن الطلب كان ناجحًا (برسالة "201 تم الإنشاء")، وأعاد بعض المعلومات المتعلقة بالطلب.

للحصول على معلومات حول استخدام REST مع Azure Blob Storage، راجع Blob Storage REST API.

معايير تخزين عناصر المجموعة: CDMI

يعد عدم وجود معيار مشترك لتخزين العناصر مشكلة تعصف بتخزين عناصر المجموعة.

يعزز اتحاد صناعة شبكات التخزين (SNIA) معيارا مفتوحا للعناصر السحابية، يسمى واجهة إدارة البيانات السحابية (CDMI).

CDMI.

الشكل 22: CDMI

يعرّف CDMI عناصر البيانات وحاويات البيانات ببيانات تعريف ذات علامات (كأزواج قيم المفتاح) ويستخدم واجهات RESTful، مع JSON كتنسيق لتبادل البيانات. يمكن استخدام CDMI لإتاحة الوصول إلى البيانات وإدارتها على مجموعة التخزين (الشكل 22). ويوضح في الشكل 23 مثالاً على تفاعل العميل مع مجموعة التخزين باستخدام CDMI.

تعامل عميل CDMI مع مجموعة تخزين CDMI.

الشكل 23: تفاعل عميل CDMI مع سحابة تخزين CDMI

يمكن للعميل CDMI إصدار طلبات عبر عنوان HTTPS. يشير MimeType إلى نوع مورد CDMI الذي يتفاعل معه العميل (كائن، حاوية) ويعيد رموز حالة HTTP القياسية، مما يشير إلى حالة الطلب.

ويرد في الشكل 24 نموذج CDMI. يوجد مورد CDMI على موقع جذر، المشار إليه بواسطة URI الجذر: https://<offering>. يحتوي المثال على حاويتين، A وB، تحتوي على عنصر واحد لكل منهما. لاحظ أن كل وحدة لعنوان CDMI يمكنه دعم البيانات التعريفية، كما هو موضح بعلامات القيمة الأساسية المرتبطة بكل كيان.

نموذج بيانات CDMI.

الشكل 24: نموذج بيانات CDMI

بالإضافة إلى ذلك، يدعم CDMI أنواع الموارد التالية:

  • cdmi-capability: كيان خاص يصف قدرات هذا المخزن السحابي المحدد. تعتبر هذه الوحدة مهمة ويمكن استخدامها لاكتشاف قدرات السحابة (على سبيل المثال، النسخ الاحتياطي والنسخ المتماثل).
  • cdmi-domain: يسمح بإنشاء المجالات (على سبيل المثال، مجموعات المستخدمين الذين لديهم أذونات الوصول إلى العناصر).
  • cdmi-queue: يسمح بإنشاء قوائم انتظار الكائنات التي تعمل بترتيب أولا في ، أولا خارج (FIFO). يمكن للتطبيقات استخدام قوائم الانتظار هذه لتنفيذ أنظمة الإخطار أو المراسلة.

تقدم CDMI المزايا التالية:

  • تسمح مواصفات المورّد المحايد لنظام تخزين عنصر المجموعة بترحيل أبسط للبيانات من مجموعة إلى أخرى.
  • فهو يتيح التناظر السحابي للتخزين، وهو مفهوم حيث يمكن توصيل الموارد من السحب المختلفة لتمكين مشاركة البيانات السلسة بين السحب.
  • إنه يلتزم بالمعايير الحالية، مثل واجهات RESTful للوصول للبيانات، ويمكنه العمل مع العديد من تعبيرات التخزين الأساسية، مثل أنظمة الملفات المشتركة والمتصلة بالشبكة.
  • وهو معيار متأصل، الذي له تنفيذ مرجعي ومواصفات ISO.

ويعتبر عيب عنوان CDMI هو أن اعتماده لم يُر بعد. ويتم دعم معيار عنوان CDMI من قبل العديد من شركات التخزين، ولكن لم يتم دعمه رسميًا من قبل معظم المورّدين، ونجاح المعيار لا يزال غير واضح.