عارض أزياء ممثل

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

ظهر نموذج الممثل في عام 1973. [ 1 ] وقد استُخدم كإطار لفهم الحوسبة نظريًا ، وكأساس نظري للعديد من التطبيقات العملية للأنظمة المتزامنة . وتُناقش علاقة هذا النموذج بأعمال أخرى في كتاب "نموذج الممثل وحسابات العمليات" .

تاريخ

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

كان تطويرها "مدفوعًا باحتمالية وجود آلات حوسبة متوازية للغاية تتكون من عشرات أو مئات أو حتى آلاف المعالجات الدقيقة المستقلة، كل منها مزود بذاكرة محلية ومعالج اتصالات خاص به ، ويتواصل عبر شبكة اتصالات عالية الأداء ." [ 2 ] منذ ذلك الحين، أدى ظهور التزامن الهائل من خلال بنى الكمبيوتر متعددة النوى وكثيفة النوى إلى إحياء الاهتمام بنموذج الممثل.

بعد نشر هيويت وبيشوب وستايغر عام 1973، طورت إيرين غريف دلالات تشغيلية لنموذج الفاعل كجزء من بحثها للدكتوراه . [ 3 ] وبعد عامين، نشر هنري بيكر وهيويت مجموعة من القوانين البديهية لأنظمة الفاعل. [ 4 ] [ 5 ] ومن المعالم الرئيسية الأخرى أطروحة ويليام كلينغر عام 1981 التي قدمت دلالات دلالية قائمة على مجالات القوة [ 2 ] ، وأطروحة غول آغا عام 1985 التي طورت نموذجًا دلاليًا قائمًا على الانتقالات مكملاً لنموذج كلينغر. [ 6 ] وقد أدى ذلك إلى التطور الكامل لنظرية نموذج الفاعل .

أُنجزت أعمال تنفيذ البرمجيات الرئيسية بواسطة روس أتكينسون، وجوزيبي أتاردي، وهنري بيكر، وجيري باربر، وبيتر بيشوب، وبيتر دي يونغ، وكين كان، وهنري ليبرمان ، وكارل مانينغ، وتوم راينهارت، وريتشارد ستيغر، ودان ثيريولت في مجموعة دلالات تمرير الرسائل بمعهد ماساتشوستس للتكنولوجيا (MIT). وقامت مجموعات بحثية بقيادة تشاك سيتز في معهد كاليفورنيا للتكنولوجيا (Caltech) وبيل دالي في معهد ماساتشوستس للتكنولوجيا (MIT) ببناء بنى حاسوبية طورت تمرير الرسائل في النموذج. انظر: تنفيذ نموذج الممثل .

تم إجراء البحوث حول نموذج الممثل في معهد كاليفورنيا للتكنولوجيا ، ومختبر توكورو بجامعة كيوتو ، وشركة تكنولوجيا الإلكترونيات الدقيقة والحاسوب (MCC)، ومختبر الذكاء الاصطناعي بمعهد ماساتشوستس للتكنولوجيا ، ومعهد ستانفورد للأبحاث ، وجامعة إلينوي في أوربانا-شامبين ، [ 7 ] وجامعة بيير وماري كوري (جامعة باريس 6)، وجامعة بيزا ، ومختبر يونيزاوا بجامعة طوكيو ، ومركز الرياضيات والمعلوماتية (CWI) وغيرها.

المفاهيم الأساسية

يتبنى نموذج الممثل فلسفة مفادها أن كل شيء هو ممثل . وهذا يشبه فلسفة "كل شيء هو كائن" المستخدمة في بعض لغات البرمجة الكائنية التوجه .

الممثل هو كيان حسابي يمكنه، استجابةً لرسالة يتلقاها، القيام بما يلي في وقت واحد:

  • إرسال عدد محدود من الرسائل إلى جهات فاعلة أخرى؛
  • إنشاء عدد محدود من الممثلين الجدد؛
  • تحديد السلوك الذي سيتم استخدامه للرسالة التالية التي يتلقاها.

لا يوجد تسلسل مفترض للإجراءات المذكورة أعلاه، ويمكن تنفيذها بالتوازي.

كان فصل المرسل عن الاتصالات المرسلة تقدماً أساسياً في نموذج الممثل، مما أتاح الاتصال غير المتزامن وهياكل التحكم كأنماط لتمرير الرسائل . [ 8 ]

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

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

الأنظمة الرسمية

على مر السنين، تم تطوير العديد من الأنظمة الرسمية المختلفة التي تسمح بالاستدلال حول الأنظمة في نموذج الفاعل. وتشمل هذه الأنظمة ما يلي:

هناك أيضًا أشكال رسمية لا تلتزم تمامًا بنموذج الفاعل من حيث أنها لا تُضفي طابعًا رسميًا على التسليم المضمون للرسائل، بما في ذلك ما يلي (انظر محاولات ربط دلالات الفاعل بالجبر والمنطق الخطي ):

التطبيقات

يمكن استخدام نموذج الممثل كإطار عمل لنمذجة وفهم وتحليل مجموعة واسعة من الأنظمة المتزامنة . [ 15 ] على سبيل المثال:

  • يمكن نمذجة البريد الإلكتروني كنظام فاعلين. يتم نمذجة الحسابات كفاعلين وعناوين البريد الإلكتروني كعناوين فاعلين.
  • يمكن نمذجة خدمات الويب كجهات فاعلة مع نقاط نهاية بروتوكول الوصول إلى الكائنات البسيط ( SOAP ) التي يتم نمذجتها كعناوين للجهات الفاعلة.
  • يمكن نمذجة الكائنات التي تحتوي على أقفال ( كما هو الحال في Java و C# ) على أنها مُسلسل ، شريطة أن تكون تطبيقاتها تسمح بوصول الرسائل باستمرار (ربما عن طريق تخزينها في قائمة انتظار داخلية ). يُعد المُسلسل نوعًا مهمًا من الكيانات التي تُعرَّف بخاصية توفرها المستمر لاستقبال الرسائل الجديدة؛ فكل رسالة تُرسل إلى المُسلسل مضمونة الوصول. [ 16 ]
  • تتبع لغة تدوين الاختبار والتحكم فيه ( TTCN )، بنوعيها TTCN-2 و TTCN-3 ، نموذج الممثل بشكل وثيق. في TTCN، يُمثل الممثل مكون اختبار: إما مكون اختبار متوازٍ (PTC) أو مكون اختبار رئيسي (MTC). يمكن لمكونات الاختبار إرسال واستقبال الرسائل من وإلى شركاء بعيدين (مكونات اختبار نظيرة أو واجهة نظام اختبار)، ويتم تحديد الأخيرة من خلال عنوانها. يرتبط بكل مكون اختبار شجرة سلوك؛ وتعمل مكونات الاختبار بالتوازي، ويمكن إنشاؤها ديناميكيًا بواسطة مكونات الاختبار الأصلية. تسمح بنيات اللغة المدمجة بتحديد الإجراءات التي يجب اتخاذها عند استلام رسالة متوقعة من قائمة انتظار الرسائل الداخلية، مثل إرسال رسالة إلى كيان نظير آخر أو إنشاء مكونات اختبار جديدة.

دلالات تمرير الرسائل

نموذج الممثل يتعلق بدلالات تمرير الرسائل .

جدل اللا حتمية غير المحدودة

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

في أوائل الستينيات، بدأ استخدام المقاطعات لمحاكاة التنفيذ المتزامن لعدة برامج على معالج واحد. [ 17 ] وقد أدى التزامن مع الذاكرة المشتركة إلى ظهور مشكلة التحكم في التزامن . في البداية، تم تصور هذه المشكلة على أنها مشكلة استبعاد متبادل على جهاز كمبيوتر واحد. طور إدسكار ديكسترا الإشارات الثنائية ، ولاحقًا، بين عامي 1971 و1973، [ 18 ] طور توني هوار [ 19 ] وبير برينش هانسن [ 20 ] أجهزة مراقبة لحل مشكلة الاستبعاد المتبادل. ومع ذلك، لم يوفر أي من هذين الحلين بنية لغة برمجة تغلف الوصول إلى الموارد المشتركة. وقد تحقق هذا التغليف لاحقًا بواسطة بنية التسلسل ([هيويت وأتكينسون 1977، 1979] و[أتكينسون 1980]).

استندت النماذج الأولى للحوسبة ( مثل آلات تورينج ، وآلات الإنتاج اللاحقة، وحساب لامدا ، وغيرها ) إلى الرياضيات، واستخدمت حالة شاملة لتمثيل خطوة حسابية (تم تعميمها لاحقًا في [McCarthy and Hayes 1969] و[Dijkstra 1976]، انظر ترتيب الأحداث مقابل الحالة الشاملة ). كانت كل خطوة حسابية من حالة شاملة إلى الحالة الشاملة التالية. استمر استخدام نهج الحالة الشاملة في نظرية الأوتوماتا لآلات الحالة المحدودة وآلات المكدس التنازلي ، بما في ذلك إصداراتها غير الحتمية . تتميز هذه الأوتوماتا غير الحتمية بخاصية عدم الحتمية المحدودة ؛ أي أنه إذا توقفت الآلة دائمًا عند بدء تشغيلها في حالتها الأولية، فسيكون هناك حد لعدد الحالات التي تتوقف فيها.

قام إدسكار ديكسترا بتطوير منهج الحالة العالمية غير الحتمية. أثار نموذج ديكسترا جدلاً حول عدم الحتمية غير المحدودة (أو ما يُسمى أيضًا باللا حتمية غير المحدودة )، وهي خاصية من خصائص التزامن تسمح بأن يصبح مقدار التأخير في تلبية طلب ما غير محدود نتيجةً للتنافس على الموارد المشتركة، مع ضمان تلبية الطلب في نهاية المطاف . جادل هيويت بأن نموذج الفاعل يجب أن يضمن تلبية الطلب. في نموذج ديكسترا، على الرغم من إمكانية وجود فترة زمنية غير محدودة بين تنفيذ التعليمات المتسلسلة على الحاسوب، فإن البرنامج (الموازي) الذي يبدأ بحالة محددة جيدًا لا يمكن أن ينتهي إلا في عدد محدود من الحالات [ديكسترا 1976]. وبالتالي، لم يستطع نموذجه ضمان تلبية الطلب. جادل ديكسترا باستحالة تطبيق عدم الحتمية غير المحدودة.

جادل هيويت بخلاف ذلك: لا يوجد حد زمني يمكن وضعه على المدة التي تستغرقها دائرة حسابية تُسمى " المُحكِّم" للاستقرار (انظر: شبه الاستقرار (الإلكترونيات) ). [ 21 ] تُستخدم المُحكِّمات في الحواسيب للتعامل مع حالة عدم تزامن عمل ساعات الحاسوب مع المدخلات الخارجية، مثل إدخال لوحة المفاتيح، والوصول إلى القرص، وإدخال الشبكة، وما إلى ذلك. لذا، قد يستغرق وصول رسالة مُرسلة إلى الحاسوب وقتًا غير محدود، وخلال هذه الفترة، قد يمر الحاسوب بعدد غير محدود من الحالات.

يتميز نموذج الممثل بعدم الحتمية غير المحدودة التي تم تجسيدها في نموذج رياضي بواسطة ويل كلينجر باستخدام نظرية المجال . [ 2 ] في نموذج الممثل، لا توجد حالة عالمية.

التواصل المباشر وعدم التزامن

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

إنشاء الممثل بالإضافة إلى العناوين في الرسائل يعني بنية متغيرة

كان من التطورات الطبيعية لنموذج الفاعل السماح بتضمين العناوين في الرسائل. متأثرًا بشبكات تبديل الحزم [1961 و1964]، اقترح هيويت تطوير نموذج جديد للحوسبة المتزامنة لا تتضمن فيه الاتصالات أي حقول إلزامية على الإطلاق: إذ يمكن أن تكون فارغة. بالطبع، إذا رغب مُرسِل رسالة ما في منح مُستقبِل إمكانية الوصول إلى عناوين لا يملكها المُستقبِل مُسبقًا، فسيتعين إرسال العنوان في الرسالة.

على سبيل المثال، قد يحتاج ممثل إلى إرسال رسالة إلى ممثل مستلم يتوقع منه لاحقًا تلقي رد، ولكن سيتم التعامل مع هذا الرد فعليًا بواسطة مكون ممثل ثالث مُهيأ لاستقبال الرد ومعالجته (على سبيل المثال، ممثل آخر يُطبق نمط المراقب ). يمكن للممثل الأصلي تحقيق ذلك عن طريق إرسال اتصال يتضمن الرسالة التي يرغب في إرسالها، بالإضافة إلى عنوان الممثل الثالث الذي سيتعامل مع الرد. يُسمى هذا الممثل الثالث الذي سيتعامل مع الرد "المستأنف" ( أو " الاستمرار" أو "إطار المكدس "). عندما يكون الممثل المستلم جاهزًا لإرسال رد، فإنه يرسل رسالة الرد إلى عنوان ممثل المستأنف الذي تم تضمينه في الاتصال الأصلي.

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

متزامنة بطبيعتها

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

لا يوجد شرط لترتيب وصول الرسائل

عارض هيويت إضافة شرط وصول الرسائل بالترتيب الذي أُرسلت به إلى الممثل. إذا كان ترتيب رسائل الإخراج مطلوبًا، فيمكن نمذجته بواسطة ممثل قائمة انتظار يوفر هذه الوظيفة. يقوم ممثل قائمة الانتظار هذا بتخزين الرسائل الواردة في قائمة انتظار بحيث يمكن استرجاعها بترتيب FIFO ( الوارد أولاً يُستلم أولاً). لذا، إذا أرسل ممثل Xرسالة M1إلى ممثل آخر Y، ثم Xأرسل لاحقًا رسالة أخرى M2إلى ممثل ثالث Y، فلا يوجد شرط بأن M1تصل الرسالة الأولى إلى الممثل الأول قبل الرسالة Yالأولى M2.

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

على سبيل المثال، يُسمح للممثلين بتنفيذ معالجة الرسائل بشكل متسلسل. وهذا يعني أنه أثناء معالجة رسالة ما M1، يمكن للممثل تحديد السلوك المستخدم لمعالجة الرسالة التالية، ثم البدء فعليًا بمعالجة رسالة أخرى M2قبل اكتمال معالجتها M1. لكن مجرد السماح للممثل بتنفيذ معالجة الرسائل بشكل متسلسل لا يعني بالضرورة أنه مُلزم بذلك. فمسألة تنفيذ معالجة الرسائل بشكل متسلسل هي مسألة هندسية. كيف يمكن لمراقب خارجي معرفة ما إذا كانت معالجة الرسالة من قِبل ممثل ما قد تمت بشكل متسلسل؟ لا يوجد أي لبس في تعريف الممثل الناتج عن إمكانية التنفيذ المتسلسل. بالطبع، من الممكن تنفيذ تحسين المعالجة المتسلسل بشكل خاطئ في بعض التطبيقات، وفي هذه الحالة قد يحدث سلوك غير متوقع.

المنطقة

ومن الخصائص المهمة الأخرى لنموذج الفاعل خاصية المكان.

تعني خاصية "المحلية" أنه عند معالجة رسالة، لا يمكن للمُرسِل إرسال رسائل إلا إلى العناوين التي يتلقاها في الرسالة، والعناوين التي كانت لديه قبل تلقي الرسالة، وعناوين المُرسِلين الذين يُنشئهم أثناء معالجة الرسالة. (انظر قسم " توليف عناوين المُرسِلين ").

كما أن خاصية الموضعية تعني عدم وجود تغيير متزامن في مواقع متعددة. وبهذا يختلف هذا النموذج عن بعض نماذج التزامن الأخرى، مثل نموذج شبكة بتري الذي تُزال فيه الرموز في وقت واحد من مواقع متعددة وتُوضع في مواقع أخرى.

أنظمة الممثلين المؤلفين

إن فكرة تجميع أنظمة الفاعلين في أنظمة أكبر هي جانب مهم من جوانب النمطية التي تم تطويرها في أطروحة الدكتوراه لجول آغا، [ 6 ] والتي طورها لاحقًا كل من جول آغا، وإيان ماسون، وسكوت سميث، وكارولين تالكوت . [ 9 ]

السلوكيات

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

كما ساهمت السلوكيات في تحرير نموذج الممثل من تفاصيل التنفيذ، مثل مترجم تدفق الرموز في لغة Smalltalk-72. مع ذلك، يتطلب التنفيذ الفعال للأنظمة الموصوفة بنموذج الممثل تحسينًا مكثفًا . راجع قسم "تنفيذ نموذج الممثل" لمزيد من التفاصيل.

نمذجة أنظمة التزامن الأخرى

يمكن نمذجة أنظمة التزامن الأخرى ( مثل حسابات العمليات ) في نموذج الممثل باستخدام بروتوكول الالتزام ثنائي المراحل . [ 22 ]

نظرية التمثيل الحسابي

توجد نظرية تمثيل حسابي في نموذج الممثل للأنظمة المغلقة بمعنى أنها لا تتلقى اتصالات من الخارج. ويُشير المصطلح الرياضي إلى النظام المغلق.S{\displaystyle {\mathtt {S}}}يتم بناؤها انطلاقاً من سلوك أوليS{\displaystyle \bot _{\mathtt {S}}}ودالة تقريب السلوكصرoزرهـssأناoنS.{\displaystyle \mathbf {progression} _{\mathtt {S}}.}تُحقق هذه الطرق تقريبات أفضل بشكل متزايد، وتُشكل دلالة (معنى) لـS{\displaystyle {\mathtt {S}}}كما يلي [هيويت 2008؛ كلينجر 1981]:

دهـنoتهـSليمأناصرoزرهـssأناoنSأنا(S){\displaystyle \mathbf {Denote} _{\mathtt {S}}\equiv \lim _{i\to \infty }\mathbf {progression} _{{\mathtt {S}}^{i}}(\bot _{\mathtt {S}})}

وبهذه الطريقة،S{\displaystyle {\mathtt {S}}}يمكن وصفها رياضياً من حيث جميع سلوكياتها الممكنة (بما في ذلك تلك التي تنطوي على عدم حتمية غير محدودة). على الرغم مندهـنoتهـS{\displaystyle \mathbf {Denote} _{\mathtt {S}}}ليس تطبيقًا لـS{\displaystyle {\mathtt {S}}}، ويمكن استخدامه لإثبات تعميم لأطروحة تشرش-تورينغ-روسر-كلين [كلين 1943]:

ومن نتائج النظرية المذكورة أعلاه أن الفاعل المحدود يمكنه أن يستجيب بشكل غير حتمي بعدد لا يمكن عده من المخرجات المختلفة.

العلاقة ببرمجة المنطق

كان أحد الدوافع الرئيسية لتطوير نموذج الممثل هو فهم ومعالجة مشكلات بنية التحكم التي ظهرت أثناء تطوير لغة برمجة Planner . بعد تحديد نموذج الممثل مبدئيًا، تمثل التحدي الأهم في فهم مدى فعالية هذا النموذج مقارنةً بأطروحة روبرت كوالسكي القائلة بأن "الحساب يمكن استيعابه بالاستنتاج". جادل هيويت بأن أطروحة كوالسكي ثبت خطؤها فيما يتعلق بالحساب المتزامن في نموذج الممثل (انظر: عدم التحديد في الحساب المتزامن ).

مع ذلك، بُذلت محاولات لتوسيع نطاق البرمجة المنطقية لتشمل الحوسبة المتزامنة. إلا أن هيويت وآغا [1991] زعما أن الأنظمة الناتجة لم تكن استنتاجية بالمعنى التالي: فالخطوات الحسابية لأنظمة البرمجة المنطقية المتزامنة لا تتبع استنتاجياً الخطوات السابقة (انظر: عدم الحتمية في الحوسبة المتزامنة ). ومؤخراً، دُمجت البرمجة المنطقية في نموذج الفاعل بطريقة تحافظ على الدلالات المنطقية. [ 21 ]

الهجرة

تُعرَّف الهجرة في نموذج الفاعل بأنها قدرة الفاعلين على تغيير مواقعهم. فعلى سبيل المثال ، قام آكي يونيزاوا في أطروحته بنمذجة مكتب بريد يمكن للفاعلين من العملاء دخوله، وتغيير مواقعهم داخله أثناء العمل، ثم الخروج منه. ويمكن نمذجة الفاعل القادر على الهجرة من خلال وجود فاعل موقع يتغير عند هجرة الفاعل. ومع ذلك، فإن دقة هذه النمذجة محل جدل وموضوع بحث.

حماية

يمكن حماية أمن الجهات الفاعلة بالطرق التالية:

تجميع عناوين الجهات الفاعلة

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

عادةً ما يتم نمذجة توليد عناوين الجهات الفاعلة باستخدام عملية الربط. وتتلخص الفكرة في استخدام نظام الجهات الفاعلة لإجراء عملية الربط بعناوين الجهات الفاعلة الفعلية. على سبيل المثال، في الحاسوب، يمكن نمذجة بنية ذاكرة الحاسوب كنظام جهات فاعلة يقوم بعملية الربط. وفي حالة عناوين SOAP ، يتم نمذجة نظام أسماء النطاقات (DNS) وبقية عمليات ربط عناوين URL .

قارن ذلك بنماذج أخرى للتزامن القائم على تمرير الرسائل

كان العمل المنشور الأول لروبن ميلنر حول التزامن [ 23 ] جديرًا بالذكر أيضًا لكونه لم يعتمد على تركيب العمليات المتسلسلة. وقد اختلف عمله عن نموذج الممثل لأنه كان قائمًا على عدد ثابت من العمليات ذات بنية ثابتة تتواصل فيما بينها باستخدام الاتصال المتزامن للأرقام والسلاسل النصية. أما نموذج العمليات المتسلسلة المتصلة (CSP) الأصلي [ 24 ] الذي نشره توني هوار، فقد اختلف عن نموذج الممثل لأنه كان قائمًا على التركيب المتوازي لعدد ثابت من العمليات المتسلسلة المتصلة ببنية ثابتة، والتي تتواصل فيما بينها باستخدام تمرير الرسائل المتزامن بناءً على أسماء العمليات (انظر: نموذج الممثل وتاريخ حسابات العمليات ). وقد تخلت الإصدارات اللاحقة من CSP عن الاتصال القائم على أسماء العمليات لصالح الاتصال المجهول عبر القنوات، وهو نهج استُخدم أيضًا في عمل ميلنر حول حساب الأنظمة المتصلة (CCS) وحساب باي .

كان لكل من النموذجين المبكرين لميلنر وهوار خاصية عدم الحتمية المحدودة. أما نموذج CSP النظري الحديث ([هوار 1985] و[روسكو 2005]) فيقدم صراحةً عدم حتمية غير محدودة.

تُشبه شبكات بيتري وامتداداتها (مثل شبكات بيتري الملونة) الممثلين من حيث أنها تعتمد على تمرير الرسائل غير المتزامن وعدم الحتمية غير المحدودة، بينما تُشبه CSP المبكرة من حيث أنها تُحدد طوبولوجيات ثابتة لخطوات المعالجة الأولية (الانتقالات) ومستودعات الرسائل (الأماكن).

تأثير

كان لنموذج الممثل تأثير كبير على كل من تطوير النظرية وتطوير البرمجيات العملي.

نظرية

لقد أثر نموذج الممثل على تطوير حساب باي وحسابات العمليات اللاحقة . كتب روبن ميلنر في محاضرته عن تورينج: [ 25 ]

الآن، يُبنى حساب لامدا الخالص على نوعين فقط من العناصر: الحدود والمتغيرات. هل يُمكننا تحقيق نفس الكفاءة في حساب العمليات؟ لقد أجاب كارل هيويت، من خلال نموذجه للممثلين، على هذا التحدي منذ زمن بعيد؛ إذ أعلن أن القيمة، والمؤثر على القيم، والعملية، جميعها يجب أن تكون من نفس النوع: ممثل.

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

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

يمارس

لقد كان لنموذج الممثل تأثير واسع النطاق على الممارسات التجارية. فعلى سبيل المثال، استخدم تويتر الممثلين لتحقيق قابلية التوسع. [ 26 ] كما استخدمت مايكروسوفت نموذج الممثل في تطوير مكتبة الوكلاء غير المتزامنين الخاصة بها. [ 27 ] توجد العديد من مكتبات الممثلين الأخرى المدرجة في قسم مكتبات الممثلين وأطر العمل أدناه.

القضايا التي تم تناولها

وفقًا لهيويت [2006]، فإن نموذج الممثل يعالج قضايا في هندسة الحاسوب والاتصالات، ولغات البرمجة المتزامنة ، وخدمات الويب بما في ذلك ما يلي:

  • قابلية التوسع : التحدي المتمثل في توسيع نطاق التزامن محليًا وغير محليًا.
  • الشفافية : سد الفجوة بين التزامن المحلي وغير المحلي. تُعدّ الشفافية حاليًا قضيةً مثيرةً للجدل. فقد دعا بعض الباحثين إلى فصلٍ تام بين التزامن المحلي باستخدام لغات البرمجة المتزامنة (مثل Java و C# ) والتزامن غير المحلي باستخدام بروتوكول SOAP لخدمات الويب . ويؤدي هذا الفصل التام إلى نقصٍ في الشفافية، مما يُسبب مشاكل عند الرغبة أو الضرورة في التبديل بين الوصول المحلي وغير المحلي إلى خدمات الويب (انظر الحوسبة الموزعة ).
  • عدم الاتساق : يُعدّ عدم الاتساق هو القاعدة، لأن جميع أنظمة المعرفة الكبيرة المتعلقة بتفاعلات الإنسان مع أنظمة المعلومات تتسم بعدم الاتساق. ويمتد هذا التناقض ليشمل وثائق ومواصفات الأنظمة الكبيرة (مثل برامج مايكروسوفت ويندوز، وغيرها)، والتي تتسم بدورها بعدم الاتساق الداخلي.

تجد العديد من الأفكار التي طُرحت في نموذج الفاعل تطبيقًا لها الآن في أنظمة الوكلاء المتعددين للأسباب نفسها [هيويت 2006ب 2007ب]. ويكمن الاختلاف الرئيسي في أن أنظمة الوكلاء (في معظم التعريفات) تفرض قيودًا إضافية على الفاعلين، وتتطلب منهم عادةً استخدام الالتزامات والأهداف.

البرمجة مع الممثلين

تستخدم العديد من لغات البرمجة المختلفة نموذج الممثل أو أحد أشكاله المختلفة. وتشمل هذه اللغات ما يلي:

لغات برمجة الممثلين المبكرين

لغات برمجة الممثل المتأخر

مكتبات وأطر عمل الممثلين

تم أيضاً تطبيق مكتبات أو أطر عمل خاصة بالممثلين للسماح ببرمجة نمط الممثلين في اللغات التي لا تحتوي على ممثلين مدمجين. ومن هذه الأطر:

اسمحالةأحدث إصداررخصةاللغات
ممثل سابقنشيط2025-10-23أباتشي 2.0C++20
أوتافيانشيط2024-01-02أباتشي 2.0سكالا
عفاريت - مضرب عفاريت - حيلةنشيط2024-12-10أباتشي 2.0مضرب، مخطط ماكر
مُستخلصنشيط2024-03-04أباتشي 2.0جافا
عفاريت إكس كرافتنشيط30-08-2022معهد ماساتشوستس للتكنولوجياجافا سكريبت
رد فعلنشيط30-11-2022أباتشي 2.0جافا
ممثلنشيط2020-04-16 [ 47 ]أباتشي 2.0 / إم آي تيالصدأ
معقلنشيط2020-08-12 [ 48 ]أباتشي 2.0 / إم آي تيالصدأ
أكتيكسنشيط2020-09-11 [ 49 ]معهد ماساتشوستس للتكنولوجياالصدأ
أوجيتنشيط2016-10-17معهد ماساتشوستس للتكنولوجياسويفت
ممثلنشيط2017-03-09معهد ماساتشوستس للتكنولوجياجافا
الممثل 4jنشيط2020-01-31أباتشي 2.0جافا
ممثلنشيط2019-04-09 [ 50 ]أباتشي 2.0جافا
Vert.xنشيط2018-02-13أباتشي 2.0جافا، جروفي، جافاسكريبت، روبي، سكالا، كوتلين، سيلون
مؤثرات خاصة من ActorFxغير نشط13-11-2013أباتشي 2.0.شبكة
أكا (مجموعة أدوات) من شركة لايت بيند.نشيط2022-09-06 [ 51 ]تجاري [ 52 ] (من 2.7.0، Apache 2.0 حتى 2.6.20)جافا وسكالا
أكا.نتنشيط2020-08-20 [ 53 ]أباتشي 2.0.شبكة
Apache Pekko هو شوكة لـ Akka من الإصدار 2.6.xنشيط2023-07-26 [ 54 ]أباتشي 2.0جافا وسكالا
دابرنشيط2019-10-16أباتشي 2.0جافا، و.NET كور، وجو، وجافا سكريبت، وبايثون، وراست، وسي++
فاعلو دوت نتنشيط2021-06-14معهد ماساتشوستس للتكنولوجيا.NET، C#، Azure Service Bus
Remact.Netغير نشط2016-06-26معهد ماساتشوستس للتكنولوجيا.NET، جافا سكريبت
أتيجي بي إكسغير نشط؟؟جافا
czmqنشيط10-11-2016MPL-2ج
معالج صندوق البريد F#نشيطكما هو الحال في لغة F# (المكتبة الأساسية المدمجة)رخصة أباتشيفا#
كوروسنشيط2010-02-04رخصة جنو العمومية 3جافا
كيليم [ 55 ]نشيط2018-11-09 [ 56 ]معهد ماساتشوستس للتكنولوجياجافا
ActorFoundry (مستوحى من Kilim)غير نشط2008-12-28؟جافا
مجموعة الممثليننشيط2011-09-13 [ 57 ]بي إس ديأوبجكتيف سي
هاسكل السحابيةنشيط2024-04-30 [ 58 ]بي إس ديهاسكل
كلاودينشيط2023-10-27 [ 59 ]معهد ماساتشوستس للتكنولوجياATS، C/C++، Elixir/Erlang/LFE، Go، Haskell، Java، JavaScript، OCaml، Perl، PHP، Python، Ruby، Rust
فوضىنشيط2017-05-12 [ 60 ]رخصة LGPL 2.1C، C++ (cluttermm)، Python (pyclutter)، Perl (perl-Clutter)
ناكتغير نشط2012-02-28رخصة LGPL 3.0.شبكة
تمت أرشفة Nact بتاريخ 5 فبراير 2021 على موقع Wayback Machine.نشيط2018-06-06 [ 61 ]أباتشي 2.0جافا سكريبت/ريزن إم إل
ريتلانغغير نشط2011-05-18 [ 62 ]نيو بي إس دي.شبكة
ممثلغير نشط2013-01-22إل جي بي إلجافا
جيتلانجنشيط2013-05-30 [ 63 ]نيو بي إس ديجافا
هاسكل-أكتورنشيط؟2008نيو بي إس ديهاسكل
جي بارسنشيط2014-05-09 [ 64 ]أباتشي 2.0رائع
أوسموسنشيط2019-05-09 [ 65 ]رخصة جنو العمومية 2.0 والرخصة التجارية (الترخيص المزدوج)لغة C. متوافقة مع لغة C++
بانينينشيط2014-05-22MPL 1.1لغة البرمجة بحد ذاتها
حوارنشيط؟2007-22-07رخصة جنو العمومية 2.1بايثون
بيرنيتيكنشيط29-06-2007رخصة LGPL 3.0جافا
بيكوسنشيط2020-02-04معهد ماساتشوستس للتكنولوجياKRL
بوست شاربنشيط2014-09-24تجاري / مجاني مع ميزات مدفوعة.شبكة
بولسارنشيط2016-07-09 [ 66 ]نيو بي إس ديبايثون
بولسارنشيط2016-02-18 [ 67 ]رخصة LGPL / إكليبسكلوجر
بيكانشيط2019-05-07 [ 68 ]أباتشي 2.0بايثون
مخطط مكافحة النمل الأبيضنشيط؟2009-05-21إل جي بي إلمخطط (تنفيذ غامبيت)
ثيرونغير نشط [ 69 ]2014-01-18 [ 70 ]معهد ماساتشوستس للتكنولوجيا [ 71 ]لغة سي++
مسرحينشيط2020-03-10معهد ماساتشوستس للتكنولوجيابايثون
الكوازارنشيط2018-11-02 [ 72 ]رخصة LGPL / إكليبسجافا
ليباكتورنشيط؟2009رخصة جنو العمومية 2.0ج
ممثل-CPPنشيط2012-03-10 [ 73 ]رخصة جنو العمومية 2.0لغة سي++
S4غير نشط2012-07-31 [ 74 ]أباتشي 2.0جافا
إطار عمل الممثل في لغة C++ (CAF)نشيط2020-02-08 [ 75 ]رخصة برنامج Boost 1.0 ورخصة BSD ثلاثية البنودC++11
شريط سينمائينشيط2018-12-20 [ 76 ]معهد ماساتشوستس للتكنولوجياروبي
إطار عمل ممثل LabVIEWنشيط2012-03-01 [ 77 ]شركة ناشونال إنسترومنتس إس إل إيهLabVIEW
مكتبة LabVIEW Messengerنشيط2021-05-24بي إس ديLabVIEW
مدارنشيط2019-05-28 [ 78 ]نيو بي إس ديجافا
أطر البرمجة التربيعية للأنظمة المدمجة في الوقت الحقيقينشيط2019-05-25 [ 79 ]رخصة جنو العمومية 2.0 والرخصة التجارية (الترخيص المزدوج)لغة C ولغة C++
libprocessنشيط19-06-2013أباتشي 2.0لغة سي++
المعترضنشيط2024-11-02 [ 80 ]نيو بي إس ديC++17
الدوارنشيط2025-01-26 [ 81 ]رخصة MITC++17
أورليانزنشيط2023-07-11 [ 82 ]رخصة MITسي شارب / دوت نت
سكاى نتنشيط2020-12-10رخصة MITC/Lua
Reactors.IOنشيط2016-06-14رخصة BSDجافا/سكالا
وكلاءنشيط2020-03-08رخصة برمجيات حرةC++11
الممثل الأولينشيط2021-01-05رخصة برمجيات حرةGo، C#، Python، JavaScript، Kotlin
تم أرشفة FunctionalJava بتاريخ 22 أبريل 2021 على موقع Wayback Machine .نشيط2018-08-18 [ 83 ]BSD 3-Clauseجافا
ريكرنشيط2019-01-04رخصة MITالصدأ
كوميديانشيط2019-03-09الدوري الإنجليزي الممتاز 1.0جافا سكريبت
ممثلو VLINGO XOOMنشيط2023-02-15رخصة موزيلا العامة 2.0لغات جافا، كوتلين، JVM، سي شارب دوت نت
wasmCloudنشيط2021-03-23أباتشي 2.0WebAssembly (Rust, TinyGo, Zig, AssemblyScript)
شعاعنشيط2020-08-27أباتشي 2.0بايثون
خليةنشيط2012-08-02رخصة BSD الجديدةبايثون
جو-أكتورنشيط2022-08-16رخصة MITيذهب
سينتونشيط2022-11-21أباتشي 2.0لغة الشفرة الشائعة
تارانتنشيط2023-04-17معهد ماساتشوستس للتكنولوجياتايب سكريبت، جافا سكريبت

انظر أيضاً

مراجع

  1. هيويت، كارل ؛ بيشوب، بيتر؛ ستايجر، ريتشارد (1973). "صيغة الممثل المعياري العالمي للذكاء الاصطناعي". المؤتمر الدولي المشترك للذكاء الاصطناعي.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  2. 1 2 3 4 كلينجر، ويليام (يونيو 1981). أسس دلالات الفاعل (أطروحة دكتوراه). أطروحة دكتوراه في الرياضيات. معهد ماساتشوستس للتكنولوجيا. hdl : 1721.1/6935 .
  3. 1 2 غريف، إيرين (أغسطس 1975). دلالات العمليات المتوازية المتصلة (أطروحة دكتوراه). أطروحة دكتوراه في الهندسة الكهربائية وعلوم الحاسوب. معهد ماساتشوستس للتكنولوجيا.
  4. 1 2 بيكر، هنري ؛ هيويت، كارل (أغسطس 1977). "قوانين التواصل بين العمليات المتوازية". IFIP.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  5. "قوانين التواصل بشأن العمليات المتوازية" (ملف PDF) . 10 مايو 1977. مؤرشف (ملف PDF) من الأصل في 24 يونيو 2016. تم الاطلاع عليه في 11 يونيو 2014 .
  6. 1 2 3 آغا، غول (1986). الممثلون: نموذج للحوسبة المتزامنة في الأنظمة الموزعة (أطروحة دكتوراه). رسالة دكتوراه. مطبعة معهد ماساتشوستس للتكنولوجيا. hdl : 1721.1/6952 .
  7. "الصفحة الرئيسية" . Osl.cs.uiuc.edu. مؤرشف من الأصل بتاريخ 22-02-2013 . تم الاطلاع عليه بتاريخ 02-12-2012 .
  8. كارل هيويت. النظر إلى هياكل التحكم كأنماط لتمرير الرسائل. مجلة الذكاء الاصطناعي. يونيو 1977.
  9. 1 2 غول آغا؛ إيان ماسون؛ سكوت سميث؛ كارولين تالكوت (يناير 1993). "أساس لحساب الممثل". مجلة البرمجة الوظيفية .
  10. كارل هيويت (27 أبريل 2006). "ما هو الالتزام؟ الجوانب الجسدية والتنظيمية والاجتماعية" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 11 فبراير 2021. تم الاطلاع عليه بتاريخ 26 مايو 2006 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  11. ^ ماورو جاسباري. جيانلويجي زافاتارو (مايو 1997). “جبر الممثلين” (PDF) . الطرق الرسمية للأنظمة الموزعة القائمة على الكائنات . التقرير الفني UBLCS-97-4. جامعة بولونيا. ص 3 – 18. دوى : 10.1007 / 978-0-387-35562-7_2 . رقم ISBN  978-1-4757-5266-3تمت أرشفة الملف (PDF) من النسخة الأصلية بتاريخ 26 يوليو 2018. تم الاطلاع عليه بتاريخ 8 أبريل 2019 .
  12. م. غاسباري؛ ج. زافاتارو (1999). "جبر الفاعلين". الأساليب الرسمية للأنظمة المفتوحة القائمة على الكائنات.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  13. غول آغا ؛ براسانا ثاتي (2004). "نظرية جبرية للممثلين وتطبيقها على لغة بسيطة قائمة على الكائنات" (ملف PDF) . من البرمجة الكائنية إلى إدارة الوظائف (كتاب تذكاري لدال) LNCS 2635. مؤرشف من الأصل (ملف PDF) بتاريخ 20 أبريل 2004.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  14. جون دارلينجتون؛ واي كي غو (1994). "صياغة الفاعلين في المنطق الخطي". المؤتمر الدولي حول نظم المعلومات الموجهة للكائنات.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  15. "ما هو نموذج الممثل ومتى يجب استخدامه؟" . مات فيردرير . مؤرشف من الأصل بتاريخ 25 أغسطس 2021. تم الاطلاع عليه بتاريخ 25 أغسطس 2021 .
  16. تشيونغ، ليو (25 يوليو 2017). "لماذا تتألق أكا ونموذج الممثل في تطبيقات إنترنت الأشياء؟" . إنفوورلد . مؤرشف من الأصل في 25 أغسطس 2021. تم الاطلاع عليه في 25 أغسطس 2021 .
  17. هانسن، بير برينش (2002). أصول البرمجة المتزامنة: من الإشارات إلى استدعاءات الإجراءات عن بُعد . سبرينغر. ISBN 978-0-387-95401-1.
  18. هانسن، بير برينش (1996). "الشاشات وباسكال المتزامن: تاريخ شخصي". اتصالات ACM : 121-172 .
  19. هوار، توني (أكتوبر 1974). "الشاشات: مفهوم هيكلة نظام التشغيل" . اتصالات رابطة مكائن ​​الحوسبة . 17 (10): 549-557 . doi : 10.1145/355620.361161 . S2CID 1005769 . 
  20. هانسن، بير برينش (يوليو 1973). مبادئ نظام التشغيل . برنتيس هول.
  21. ١ ٢ هيويت، كارل (٢٠١٢). "ما هي الحوسبة؟ نموذج الممثل مقابل نموذج تورينج". في زينيل، هيكتور (محرر). كون قابل للحوسبة: فهم الحوسبة واستكشاف الطبيعة كحوسبة. مُهدى إلى ذكرى آلان م. تورينج في الذكرى المئوية لميلاده . دار النشر العالمية العلمية.
  22. فريدريك كنابي. بروتوكول موزع للاتصال القائم على القنوات مع الاختيار PARLE 1992 مؤرشف في 2017-08-31 في Wayback Machine .
  23. روبن ميلنر. العمليات: نموذج رياضي لوكلاء الحوسبة في ندوة المنطق 1973.
  24. كار هوار. التواصل بين العمليات المتسلسلة CACM. أغسطس 1978.
  25. ميلنر، روبن (1993). "عناصر التفاعل" . اتصالات رابطة آلات الحوسبة . 36 : 78-89 . doi : 10.1145/151233.151240 .
  26. "كيف يُوسّع تويتر نطاق مدونة وايمينغ موك" . Waimingmok.wordpress.com. 27-06-2009. مؤرشف من الأصل في 05-02-2021 . تم الاطلاع عليه في 02-12-2012 . 
  27. " البرمجة القائمة على الممثل باستخدام مكتبة الوكلاء غير المتزامنين" مؤرشفة في 2017-08-31 في Wayback Machine " MSDN سبتمبر 2010.
  28. هنري ليبرمان (يونيو 1981). "معاينة للفصل الأول". مذكرة معهد ماساتشوستس للتكنولوجيا للذكاء الاصطناعي 625. hdl : 1721.1/6350 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  29. هنري ليبرمان (يونيو 1981). "التفكير في أشياء كثيرة في وقت واحد دون الارتباك: التوازي في الفصل الأول". مذكرة معهد ماساتشوستس للتكنولوجيا للذكاء الاصطناعي 626. hdl : 1721.1/6351 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  30. جان بيير بريو. أكت توك: إطار عمل للبرمجة المتزامنة الموجهة للكائنات - التصميم والتجربة. ورشة العمل الفرنسية اليابانية الثانية. 1999. مؤرشف في 28 يونيو 2018 على موقع Wayback Machine.
  31. كين كان. نظرية حسابية للرسوم المتحركة. مؤرشفة في 18 أغسطس 2017 في Wayback Machine. أطروحة دكتوراه في قسم الهندسة الكهربائية وعلوم الحاسوب بمعهد ماساتشوستس للتكنولوجيا. أغسطس 1979.
  32. ويليام أثاس ونانيت بودن كانتور: نظام برمجة الممثلين للحوسبة العلمية. مؤرشف بتاريخ 2019-04-08 في أرشيف الإنترنت (Wayback Machine) ضمن وقائع ورشة عمل مؤسسة العلوم الوطنية (NSF) حول البرمجة المتزامنة القائمة على الكائنات. 1988. عدد خاص من نشرة SIGPLAN.
  33. داريل وولك. تطوير وكلاء InfoSleuth باستخدام Rosette: لغة قائمة على الممثل. وقائع ورشة عمل CIKM '95 حول وكلاء المعلومات الأذكياء. 1995.
  34. Dedecker J.، Van Cutsem T.، Mostinckx S.، D'Hondt T.، De Meuter W. البرمجة الموجهة المحيطة في AmbientTalk. في "وقائع المؤتمر الأوروبي العشرين حول البرمجة الشيئية (ECOOP)، ديف توماس (محرر)، ملاحظات محاضرة في علوم الكمبيوتر المجلد. 4067، الصفحات من 230 إلى 254، Springer-Verlag."، 2006
  35. داريل ك. تافت (17 أبريل 2009). "مايكروسوفت تُطوّر لغة برمجة متوازية جديدة" . Eweek.com . تاريخ الاسترجاع: 2 ديسمبر 2012 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  36. "الحمص" . Dalnefre.com. مؤرشف من الأصل بتاريخ 2021-02-07 . تم الاطلاع عليه بتاريخ 2012-12-02 .
  37. برانداور، ستيفان؛ وآخرون (2015). "الكائنات المتوازية للمعالجات متعددة النوى: لمحة عن لغة البرمجة المتوازية encore". الأساليب الرسمية لبرمجة المعالجات متعددة النوى . دار نشر سبرينغر الدولية: 1-56 . 
  38. "لغة المهور" . مؤرشف من الأصل بتاريخ 2018-09-04 . تم الاطلاع عليه بتاريخ 2016-03-21 .
  39. كليبش، سيلفان؛ دروسوبولو، صوفيا؛ بليسنج، سيباستيان؛ ماكنيل، آندي (2015). "حرمان الجهات الفاعلة الآمنة والسريعة من القدرات". وقائع ورشة العمل الدولية الخامسة حول البرمجة القائمة على الجهات الفاعلة والوكلاء والتحكم اللامركزي - AGERE! 2015. الصفحات 1-12 . doi : 10.1145/2824815.2824816 . ISBN  9781450339018. S2CID 415745 . بقلم سيلفان كليبش، وصوفيا دروسوبولو، وسيباستيان بليسنج، وأندي ماكنيل
  40. "لغة P" . جيت هاب . 2019-03-08. مؤرشف من الأصل في 2021-01-15 . تم الاسترجاع في 2017-02-01 .
  41. "لغة P#" . جيت هاب . ١٢ مارس ٢٠١٩. مؤرشف من الأصل في ٢٣ مارس ٢٠٢١. تم الاطلاع عليه في ١ فبراير ٢٠١٧ .
  42. "class Ractor" . Ruby-lang.org. مؤرشف من الأصل بتاريخ 2022-03-02 . تم الاطلاع عليه بتاريخ 2022-03-02 .
  43. فاريلا، كارلوس؛ آغا، غول (2001). "برمجة الأنظمة المفتوحة القابلة لإعادة التكوين ديناميكيًا باستخدام SALSA". ACM SIGPLAN Notices . 36 (12): 20–34 . doi : 10.1145/583960.583964 .
  44. فيليب هالر ومارتن أوديرسكي (سبتمبر 2006). "البرمجة القائمة على الأحداث بدون عكس التحكم" (ملف PDF) . وقائع مؤتمر JMLC 2006. مؤرشف (ملف PDF) من الأصل بتاريخ 9 نوفمبر 2020. تم الاطلاع عليه بتاريخ 5 أبريل 2007 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  45. فيليب هالر ومارتن أوديرسكي (يناير 2007). "العناصر التي توحد الخيوط والأحداث" (ملف PDF) . تقرير فني من مؤتمر LAMP 2007. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 7 يونيو 2011. تاريخ الاطلاع: 10 ديسمبر 2007 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  46. "دليل لغة سويفت - التزامن" . مؤرشف من الأصل في 1 مارس 2022. تم الاطلاع عليه في 11 مارس 2022 .
  47. "acteur - 0.9.1· David Bonet · Crates.io" . crates.io. مؤرشف من الأصل بتاريخ 2021-02-05 . تم الاطلاع عليه بتاريخ 2020-04-16 .
  48. بولوت، محمود (15 ديسمبر 2019). "Bastion على Crates.io" . Crates.io . مؤرشف من الأصل بتاريخ 5 فبراير 2021. تم الاطلاع عليه بتاريخ 15 ديسمبر 2019 .
  49. "actix - 0.10.0 · Rob Ede · Crates.io" . crates.io. مؤرشف من الأصل بتاريخ 14 مايو 2021. تم الاطلاع عليه بتاريخ 28 فبراير 2021 .
  50. "الإصدارات · zakgof/actr · GitHub" . Github.com. مؤرشف من الأصل بتاريخ 26-10-2020 . تم الاطلاع عليه بتاريخ 16-04-2019 .
  51. ^ "تم إصدار عكا 2.6.20 · عكا" . عكا. 2022-09-06. مؤرشف من الأصل بتاريخ 2022-09-24 . تم الاسترجاع 2022-09-24 .
  52. "أسئلة وأجوبة حول ترخيص Akka | @lightbend" . مؤرشف من الأصل بتاريخ 22-09-2022 . تم الاطلاع عليه بتاريخ 24-09-2022 .
  53. Akka.NET الإصدار المستقر v1.4.10 على GitHub - akkadotnet/akka.net: نسخة من عناصر Akka لـ .NET. ، Akka.NET، 2020-10-01، مؤرشف من الأصل في 2021-02-24 ، تم استرجاعه في 2020-10-01
  54. أباتشي بيكو (خريج) ، مؤسسة برمجيات أباتشي
  55. سرينيفاسان، سريرام؛ آلان مايكروفت (2008). "كيليم: ممثلون معزولون مكتوبون بلغة جافا" (ملف PDF) . المؤتمر الأوروبي للبرمجة الكائنية التوجه ECOOP 2008. قبرص. مؤرشف (ملف PDF) من الأصل بتاريخ 28 أكتوبر 2020. تم الاطلاع عليه بتاريخ 25 فبراير 2016 .
  56. "الإصدارات · kilim/kilim · GitHub" . Github.com. مؤرشف من الأصل بتاريخ 16 أكتوبر 2020. تم الاطلاع عليه بتاريخ 3 يونيو 2019 .
  57. "سجل التغييرات · stevedekorte/ActorKit · GitHub" . Github.com . تم الاطلاع عليه بتاريخ 25 فبراير 2016 .
  58. "هاكاج: مستودع حزم هاسكل" . هاكاج . تم الاطلاع عليه في 1 مايو 2024 .
  59. "CloudI: سحابة على أدنى مستوى · نشاط" . sourceforge.net . تم الاطلاع عليه بتاريخ 2024-01-03 .
  60. "الوسوم · GNOME/clutter · GitLab" . gitlab.gnome.org. مؤرشف من الأصل بتاريخ 2019-06-03 . تم الاطلاع عليه بتاريخ 2019-06-03 .
  61. "الإصدارات · ncthbrt/nact · GitHub" . GitHub . مؤرشف من الأصل بتاريخ 27-11-2020 . تم الاطلاع عليه بتاريخ 03-06-2019 .
  62. "التغييرات - لغة retlang - التزامن القائم على الرسائل في .NET - استضافة مشاريع جوجل" . مؤرشف من الأصل بتاريخ 24-11-2015 . تم الاطلاع عليه بتاريخ 25-02-2016 .
  63. "jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - التزامن القائم على الرسائل لجافا - استضافة مشاريع جوجل" . 14 فبراير 2012. مؤرشف من الأصل في 14 يناير 2016. تم الاطلاع عليه في 25 فبراير 2016 .
  64. "إصدارات GPars" . GitHub. مؤرشف من الأصل بتاريخ 2020-09-04 . تم الاطلاع عليه بتاريخ 2016-02-25 .
  65. "الإصدارات · oosmos/oosmos · GitHub" . GitHub. مؤرشف من الأصل بتاريخ 13 نوفمبر 2020. تم الاطلاع عليه بتاريخ 3 يونيو 2019 .
  66. "تصميم وعناصر Pulsar" . مؤرشف من الأصل بتاريخ 2015-07-04.
  67. "وثائق النبضات" . مؤرشفة من الأصل بتاريخ 2013-07-26.
  68. "التغييرات - وثائق Pykka 2.0.0" . pykka.org. مؤرشف من الأصل بتاريخ 2021-02-05 . تم الاطلاع عليه بتاريخ 2019-06-03 .
  69. "ثيرون – أشتون ماسون" . مؤرشف من الأصل بتاريخ 31 مارس 2019. تم الاطلاع عليه بتاريخ 29 أغسطس 2018 .
  70. "تم إصدار برنامج ثيرون - الإصدار 6.00.02" . Theron-library.com. مؤرشف من الأصل بتاريخ 16 مارس 2016. تم الاطلاع عليه بتاريخ 25 فبراير 2016 .
  71. "ثيرون" . Theron-library.com. مؤرشف من الأصل بتاريخ 4 مارس 2016. تم الاطلاع عليه بتاريخ 25 فبراير 2016 .
  72. "إصدارات · puniverse/quasar · GitHub" . GitHub . مؤرشف من الأصل بتاريخ 15 ديسمبر 2020. تم الاطلاع عليه بتاريخ 3 يونيو 2019 .
  73. "التغييرات - actor-cpp - تطبيق نموذج الممثل للغة C++ - استضافة مشاريع جوجل" . مؤرشف من الأصل بتاريخ 18 نوفمبر 2015. تم الاطلاع عليه بتاريخ 2 ديسمبر 2012 .
  74. "سجل التغييرات · s4/s4 · أباتشي" . apache.org. مؤرشف من الأصل بتاريخ 2016-03-06 . تم الاطلاع عليه بتاريخ 2016-01-16 .
  75. "الإصدارات · actor-framework/actor-framework · GitHub" . Github.com. مؤرشف من الأصل بتاريخ 26-03-2021 . تم الاطلاع عليه بتاريخ 07-03-2020 .
  76. "celluloid | RubyGems.org | مضيف جواهر مجتمعك" . RubyGems.org. مؤرشف من الأصل بتاريخ 29-09-2020 . تم الاطلاع عليه بتاريخ 03-06-2019 .
  77. "المجتمع: إطار عمل الممثل، مراجعة LV 2011 (الإصدار 3.0.7)" . Decibel.ni.com. 23-09-2011. مؤرشف من الأصل في 13-10-2016 . تم الاسترجاع في 25-02-2016 .
  78. "إصدارات · orbit/orbit · GitHub" . GitHub . تم الاسترجاع في 2019-06-03 .
  79. "أطر عمل وأدوات QP للأنظمة المضمنة في الوقت الحقيقي - تصفح الملفات على" . Sourceforge.net. مؤرشف من الأصل بتاريخ 24-02-2021 . تم الاطلاع عليه بتاريخ 03-06-2019 .
  80. "الإصدارات · Stiffstream/sobjectizer · GitHub" . GitHub. مؤرشف من الأصل بتاريخ 19-10-2020 . تم الاطلاع عليه بتاريخ 11-05-2022 .
  81. "إصدارات · basiliscos/cpp-rotor · GitHub" . GitHub. مؤرشف من الأصل بتاريخ 15 سبتمبر 2020. تم الاطلاع عليه بتاريخ 26 يناير 2025 .
  82. "الإصدارات · dotnet/orleans · GitHub" . GitHub. مؤرشف من الأصل بتاريخ 2020-12-04 . تم الاطلاع عليه بتاريخ 2022-09-21 .
  83. "إصدارات FunctionalJava" . GitHub. مؤرشف من الأصل بتاريخ 15 يناير 2021. تم الاطلاع عليه بتاريخ 23 أغسطس 2018 .

للمزيد من القراءة