لماذا SWF؟

تساعد خدمة سير الأعمال البسيطة في Amazon (Amazon SWF) المطورين في البناء والتشغيل والتوسعة للمهام في الخلفية التي تتألف من خطوات متوازية أو تسلسلية. يمكنك النظر إلى خدمة سير الأعمال البسيطة في Amazon (Amazon SWF) باعتبارها أداة تعقب حالة مُدارة بالكامل وأداة تنسيق للمهام في السحابة.

إذا كانت خطوات تطبيقك تستغرق أكثر من 500 مللي ثانية حتى تكتمل، فأنت بحاجة إلى تتبع حالة المعالجة، وتحتاج إلى التعافي أو إعادة المحاولة إذا فشل أحد التطبيقات، ويستطيع Amazon SWF أن يساعدك في ذلك.

إذا كنت تبحث عن خدمة لتدفق العمليات مرئية ومنخفضة التعليمات البرمجية لتنظيم خدمات AWS وأتمتة عمليات الأعمال، أو بناء تطبيقات بلا خوادم، فيمكنك معرفة المزيد حول AWS Step Functions.

الفوائد

Amazon SWF يعزز الفصل بين مسار التحكم في منطق الخطوات ووحدات العمل الفعلية لمهمتك في الخلفية والتي تحتوي على منطق أعمالك المتفرد. يتيح لك هذا إمكانية الإدارة والصيانة والتوسع بشكل منفصل في «آليات الحالة» في تطبيقك من منطق الأعمال الأساسي الذي يميزه. مع التغير في متطلبات أعمالك، يمكنك تغيير منطق التطبيق بسهولة بدون الاضطرار إلى القلق بشأن آليات الحالة الأساسية وانطلاق المهمة والتحكم في المسار.

Amazon SWF يعمل داخل مراكز بيانات التوافر بدرجة عالية في Amazon، ولذلك فإن محرك معالجة تعقب الحالة والمهمة متاح عندما تحتاج التطبيقات إليه. Amazon SWF يخزّن المهام بشكل متكرر ويطلقها إلى مكونات التطبيق ويتتبع تطورها ويحافظ عليها في أحدث حالة.

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

يتوسع Amazon SWF بسلاسة وفقًا لاستخدام تطبيقك. لا حاجة إلى الإدارة اليدوية لخدمة تدفق العمليات لأنك تضيف المزيد من تدفقات العمليات السحابية إلى تطبيقك أو تزيد من تعقيد تدفقات العمليات.

يتيح لك Amazon SWF إمكانية كتابة مكونات تطبيقك ومنطق تنسيقها بأي لغة برمجة وتشغيلها في السحابة أو من مكان العمل.

تفاصيل منتج Amazon SWF

يعد استخدام Amazon SWF لإدارة عمليات سير العمل داخل تطبيقك أمرًا سهلاً.

وظيفة Amazon SWF

تعمل Amazon SWF كمركز تنسيق لجميع المكونات المختلفة لتطبيقك:

  • الحفاظ على حالة التطبيق
  • تتبع عمليات تنفيذ سير العمل وتسجيل تقدمها
  • مهام الاحتفاظ والإرسال
  • التحكم في المهام التي سيتم تعيين كل مضيف من مضيفي التطبيق لتنفيذها

لاستخدام Amazon SWF، يمكنك ببساطة:

  • استخدم وحدة تحكم إدارة AWS أو واجهات برمجة تطبيقات Amazon SWF APIs لتحديد أسماء عمليات سير العمل.
  • استخدم واجهات برمجة تطبيقات Amazon SWF APIs «لبدء» سير عمل جديد، مما يؤدي إلى بدء تنفيذ سلسلة معينة من مهام سير العمل، تسمى «تنفيذ سير العمل».
  • استخدم واجهات برمجة تطبيقات Amazon SWF APIs من أجهزتك العاملة («العامل» هو أحد مكونات التطبيق الذي يتعامل مع مهام محددة) لإنشاء ترتيب المهام وإدارة التدفقات الشرطية وتنفيذ الحلقات لتنفيذ سير العمل.
  • استخدم واجهات برمجة تطبيقات Amazon SWF APIs من أجهزة العمال لطلب مهام سير العمل وتنفيذها في السحابة أو في أماكن العمل.
  • راقب حالة عمليات تنفيذ سير العمل والمهام المرتبطة بها وتقدمها في وحدة تحكم إدارة AWS.

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

وصف مفصل

Amazon SWF هي خدمة سير عمل مُدارة بالكامل لإنشاء تطبيقات مرنة وقابلة للتطوير. توفر Amazon SWF استدعاءات API بسيطة يمكن تنفيذها من الأكواد المكتوبة بأي لغة وتشغيلها على مثيلات EC2، أو أي من أجهزتك الموجودة في أي مكان في العالم والتي يمكنها الوصول إلى الإنترنت.

تعمل Amazon SWF كمحور تنسيق يتفاعل معه مضيفو التطبيق. يمكنك إنشاء عمليات سير العمل المطلوبة مع المهام المرتبطة بها وأي منطق شرطي ترغب في تطبيقه وتخزينها مع Amazon SWF. في كل مرة تقوم فيها بتنفيذ سير عمل، يتم اعتباره تنفيذًا مميزًا لسير العمل. تقوم ببرمجة مكونات التطبيق لطلب تنفيذ مهام متنوعة في تنفيذ سير العمل وتقوم Amazon SWF بتنسيق المهام التي يتم إنجازها، بالترتيب الذي حددته، على مضيفيك (سواء كان المضيفون موجودين في السحابة أو في أماكن العمل). تتواصل التطبيقات مع Amazon SWF باستخدام واجهات برمجة التطبيقات (APIs) لتسجيل نجاح المهام أو فشلها. تقوم Amazon SWF بعد ذلك إما بمواصلة تسلسل المهام عن طريق تعيين مهمة سير العمل التالية لمضيف التطبيق، أو عن طريق إعادة تشغيل مهمة فاشلة وفقًا لمنطق عملك.

سجِّل الدخول إلى وحدة تحكم إدارة AWS لبدء تنفيذ سير عمل Amazon SWF. بدلاً من ذلك، يمكنك بدء تنفيذ سير العمل عبر واجهات برمجة تطبيقات Amazon SWF APIs. تستخدم Amazon SWF واجهة خدمة ويب بسيطة سهلة الاستخدام ومرنة للغاية:

  • StartWorkflowExecution: يبدأ سلسلة من مهام سير العمل ويجعل المهمة الأولى متاحة لأحد مضيفي التطبيق.
  • DescribeWorkflowExecution: يوفر حالة عمليات تنفيذ سير العمل والمهام.
  • PollForActivityTask: يقوم مضيفو تطبيقك (في السحابة أو في مكان العمل) بطلب مهام سير العمل وتنفيذها في حلقة مستمرة.
  • RespondActivityTaskCompleted: يقوم مضيف التطبيق بإخبار Amazon SWF أنه أكمل المهمة بنجاح. ستقوم Amazon SWF بعد ذلك بمتابعة تنفيذ سير العمل من خلال إتاحة المهمة التالية لمضيف التطبيق.
  • TerminateWorkflowExecution: توقف عن دفع تنفيذ سير عمل معين إلى الأمام. لن تقوم Amazon SWF بتعيين أي مهام أخرى لتنفيذ سير العمل هذا لمضيف التطبيق.

الاستخدام المقصود والقيود

يخضع استخدامك لهذه الخدمة إلى اتفاقية عميل Amazon Web Services.

حالات الاستخدام

تشفير الفيديو باستخدام Amazon S3 وAmazon EC2. في حالة الاستخدام هذه، يتم تحميل مقاطع الفيديو الكبيرة إلى Amazon S3 على دفعات. يجب مراقبة تحميل الدفعات. بعد تحميل دفعة، يتم تشفيرها عن طريق تنزيلها إلى مثيل Amazon EC2. يتم تخزين الدفعة المشفرة على موقع Amazon S3 آخر. بعد أن يتم تشفير كل المقاطع بهذا الأسلوب، يتم تجميعها في ملف مشفر كامل يتم تخزينه مرة أخرى بالكامل في Amazon S3. يمكن أن تحدث أعطال أثناء هذه العملية بسبب تعرض دفعة واحدة أو أكثر لأخطاء في التشفير. مطلوب اكتشاف هذه الأعطال والتعامل معها من خلال إدارة سحابية لتدفق العمليات في Amazon SWF.

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

معالجة كتالوجات منتجات كبيرة باستخدام Amazon Mechanical Turk. أثناء التحقق من البيانات في الكتالوجات الكبيرة، تجري معالجة المنتجات في الكتالوجات على دفعات. يمكن معالجة دفعات مختلفة بشكل متزامن. لكل دفعة، يتم استخراج بيانات المنتج من الخوادم في مركز البيانات وتحويلها إلى ملفات CSV (قيم مفصولة بفاصلة) مطلوبة من واجهة مستخدم الطالب (RUI) في Amazon Mechanical Turk. يتم تحميل ملف CSV لنشر وتشغيل مهام HIT (مهام الذكاء البشري). عندما تكتمل مهام HIT، يتم تحويل ملف CSV الناتج عكسيًا لإعادة البيانات إلى التنسيق الأصلي. ثم يتم تقييم النتائج ويحصل عمال Amazon Mechanical Turk على أجر مقابل النتائج المقبولة. يتم استبعاد الأعطال وإعادة معالجتها بينما يتم استخدام نتائج HIT المقبولة لتحديث الكتالوج. مع معالجة الدفعات، يحتاج النظام إلى تتبع جودة عمال Amazon Mechanical Turk وتعديل المدفوعات وفقًا لذلك. يُعاد تجميع مهام الذكاء البشري (HIT) الفاشلة وإرسالها عبر المسار مرةً أخرى.

AWS Flow Framework

إن AWS Flow Framework عبارة عن مجموعة من المكتبات الملائمة التي تُسهِّل وتُسرِّع إنشاء التطبيقات باستخدام Amazon Simple Workflow.

كيفية العمل

يحتوي AWS Flow Framework على نموذج برمجة مباشر يُسهِّل إنشاء تطبيقات تؤدي العمل عبر العديد من الأجهزة. باستخدام الإطار، يمكنك إنشاء المهام بسرعة وتنسيقها والتعبير عن كيفية اعتماد هذه المهام على بعضها البعض - كما تفعل في برنامج نموذجي. على سبيل المثال، يمكنك تشغيل طريقة في تطبيق على كمبيوتر «بعيد» ببساطة عن طريق استدعاء طريقة في منطق التطبيق تتم استضافتها على كمبيوتر «محلي» منفصل. يعتني AWS Flow Framework بالأمور المعقدة اللازمة لتنفيذ الطريقة البعيدة وإرجاع نتيجتها إلى التطبيق المحلي باستخدام المعلومات التي تُخزِّنها خدمة Amazon Simple Workflow. يمكن استخدام مخرجات أي طريقة منفذة لتوصيل أجزاء منفصلة من المنطق تعتمد على بعضها البعض. يتيح لك إطار العمل استخدام صيغة مباشرة للتعبير عن التبعيات بين الطرق باستخدام النهج البسيط «الحظر وانتظار رد الاتصال». يتيح لك الإطار أيضًا معالجة الفشل على جهاز بعيد كما لو كان خطأ محليًا ويمنحك طرقًا سهلة لتحديد الطريقة التي تريد بها إعادة تجربة الطرق المهمة في تطبيقك إذا فشلت.

ملاحظة

لم يعد إطار AWS Flow Framework for Ruby قيد التطوير النشط. بينما ستستمر الأكواد الحالية في العمل إلى أجل غير مسمى، لن تكون هناك ميزات أو إصدارات جديدة. سيظل الكود المصدري لإطار Flow Framework for Ruby متاحًا على أرشيف AWS SWF GitHub. إذا كان تطبيق Simple Workflow المستند إلى Ruby يتطور ويتغير، فهناك خيارات قد ترغب في وضعها في الاعتبار، بما في ذلك الترحيل إلى AWS Step Functions أو استخدام واجهة برمجة تطبيقات Simple Workflow API الأصلية. لمزيد من التفاصيل، راجع دليل مطوري AWS Simple Workflow.

باستخدام AWS Flow Framework، يمكنك كتابة أكواد بسيطة والسماح للعناصر والفئات التي تم إنشاؤها مسبقًا في إطار العمل بمعالجة تفاصيل واجهات برمجة تطبيقات Amazon Simple Workflow APIs. يعتني AWS Flow Framework بإنشاء خطوات التطبيق وتنفيذها، ويتتبع تقدمها، ويتيح لك تحديد قواعد إعادة المحاولة عندما تفشل الخطوات، وأكثر من ذلك بكثير. وفي الوقت نفسه، تحافظ خدمة Amazon Simple Workflow Service على حالة تنفيذ التطبيق، وتوزع المهام على العمال المتاحين، وتحتفظ بسجل تدقيق لجميع مهامك.

إطار AWS Flow Framework يُعتبر Java مفتوح المصدر، وقد طورته AWS وتعمل على إدارته. يمكنك استخدام الروابط أدناه للحصول على المكتبات وكود المصدر والوثائق والعينات والمزيد.