مقدمه:

براساس گزارشات اعمالی از وضعیت پیچیدگی نرم افزارها مشاهده می شود که سیستم های نرم افزاری در حال پیچیده شدن و در هم تنیدن در یکدیگر هستند. با افزایش اینچنینی پیچیدگی و درهم تنیدگی مدیریت و کنترل چنین سیستم هایی برای کاربران انسانی هر چند بسیار ماهر باشند مشکل و طاقت فرسا و پرهزینه می باشد.
به همین دلیل در پی آن هستیم که به سیستم هایی دستیابی پیدا کنیم که بتوانند انسان را از بار طاقت فرسای کنترل و پیکربندی چنین سیستم هایی رهایی دهد. برای رسیدن به این مهم نظریه به نام سیستم های محاسباتی خودمختار مطرح شد که خود سیستم بر اعمال و رفتار خودش به صورت جزیی و کلی نظارت داشته باشد.
البته این نظریه در حال حاضر در قسمت تست و بهینه سازی و توسعه است که در آینده نزدیک به این مهم دست پیدا شود ولی برای رسیدن به این مهم نیازمند تحقیقات و کوشش بسیار می باشد که باید در زمینه کامپیوتر و دنیای واقعی صورت پذیرد.

فهرست مطالب

چکیده…………………………………………………………………………………………………………………..1
مقدمه…………………………………………………………………………………………………………………..2

برای دانلود رایگان قسمت های بیشتراز فایل به انتهای مطلب مراجعه کنید

فصل اول : دیدگاه محاسبات خودمختار(مستقل)

نظریه : سیستم ها براساس اهداف مدیریتی، خود را مدیریت می کنند. قسمت های جدید با تلاش کمی شبیه به یک سلول جدید ،که خود را در بدن انسان مستقر می کند، با هم یکی می شوند. این ایده ها تخیل علم نیستند، بلکه عناصری از رقابتی بزرگ برای ساختن سیستم های محاسباتی خود- مدیریتی هستند.١ در میانه اکتبر ٢٠٠١، IBM بیانیه ای منتشر کرد مبنی بر این که مانع اصلی ابر ی پیشرفت بیشتر در صنعت تکنولوژی اطلاعات بحران پیچیدگی نرم افزار است که دورنمای آن پدیدار است. شرکت برنامه ها و محیط هایی را ذکر کرد که شامل ده ها میلیون خط برنامه هستند و نیازمند افراد حرفه ای ماهر در زمینه تکنولوژی اطلاعات برای نصب، تنظیم و نگهداری هستند. بیانیه اشاره می کند که مشکل مدیریت سیستم های محاسباتی امروزی فراترازمدیریت محیط های نرم افزاری مجزاست. نیاز به یکی شدن چندین محیط ناهمگن در سیستم های محاسباتی همکارو گسترش آن از مرزهای شرکت به اینترنت، سطوح جدیدی از پیچیدگی را مطرح می کند. به نظرمی رسد پیچیدگی سیستم های محاسباتی به محدودیت توانایی انسان نزدیک میشود، اما پیشروی به سوی افزایش اتصال-داخلی و یکپارچه سازی به سرعت ادامه دارد. این پیشروی می تواند رویای فراگیر محاسبات –تریلیاردها دستگاه محاسباتی متصل به اینترنت- را به یک کابوس تبدیل کند.نوآوری در زبان های برنامه نویسی اندازه و پیچیدگی سیستم های قابل طراحی به وسیله معماران راگسترش داده است، اما تنها اعتماد به نوآوری های بیشتردر روشهای برنامه نویسی ما را از بحران پیچیدگی نرم افزار عبور نمی دهد.
هرچه سیستم ها بهم پیوسته تر و متنوع ترشوند، معماران کمتر قادر به پیش بینی و طراحی فعل و انفعال میان قطعات هستند ودرنظرگرفتن این موارد برای زمان اجرا گذاشته می شود. بزودی سیستم ها بسیار بزرگ و پیچیده می شوند،طوری که نصب، تنظیم، بهینه سازی، نگهداری و ادغام آنها حتی برای ماهرترین مدیران سیستم مشکل خواهدبود. و هیچ راهی برای پاسخ بموقع و قطعی به جریان سریع مطالبات متغیرومتناقض نیست.
١-١ انتخاب خود مختار
تنها انتخاب باقیمانده، سیستم های محاسباتی محاسبات-خودمختار است که می توانند با گرفتن اهداف سطح بالا از مدیران سیستم، خود را مدیریت کنند. زمانیکه معاون ارشد تحقیقات IBM، پل هورن، در مارچ ٢٠٠١ این ایده را به آکادمی ملی مهندسین در دانشکاه هاروارد ارائه داد، عمدﹰا واژه ای با معنی بیولوژیکی را انتخاب کرد. سیستم عصبی خودمختار، ضربان قلب و دمای بدن ما را کنترل می کند، بنابراین مغز هوشیار را از بار سروکار داشتن با موارد فوق و بسیاری دیگر از عملیات سطح پایین و در عین حال حیاتی، آزاد می کند. واژه محاسبات خودمختار حاکی از سلسله مراتب وسیع و تا حدودی به هم ریخته از سیستم های خود-کنترل طبیعی است، که بسیاری از آنها شامل هزاران جزء خود کنترل در حال فعل
و انفعال هستند که به نوبه خود در بر دارنده تعداد زیادی اجزاء در حال فعل و انفعال، خودمختار و خود-کنترل در سطح پایینتر هستند. در مقیاس بزرگ، از ماشین های ملکولی در
داخل سلول ها گرفته تا بازارهای بشر، جوامع و تمام دنیای وابسته به اقتصاد، سیستم های محاسباتی را منعکس می سازند.که از دستگاههای مجزا تا کل اینترنت را اداره می کنند. بنابراین، معتقدیم جستجوی ایده در خود-کنترلی سیستم های اجتماعی و اقتصادی ، علاوه بر سیستم های بیولوژیکی خالص، مفید خواهد بود.
واضح است که محاسبات خودمختار رقابت بزرگی فراتر از یک سازمان تنهاست. پدیدار شدن
آن تلاش جهانی طولانی مدت همزمان پژوهشگران در زمینه های متفاوت را می طلبد. قدم
اول لازم امتحان این دید است: سیستم های محاسبات خودکار ممکن است چه شکلی باشند، چگونه می توانند کار کنند، و پژوهشگران هنگام طراحی و درک رفتار آنها با چه موانعی روبرو می شوند.

بررسی معماری در محاسبات خود مختار (مستقل) و تحمل خرابی در آنها

بررسی معماری در محاسبات خود مختار (مستقل) و تحمل خرابی در آنها

1-1) انتخاب خود مختار……………………………………………………………………………………………….. ۵
1-2) ملاحظات معماری………………………………………………………………………………………………. ١٢
1-3) رقابت های مهندسی………………………………………………………………………………………….. ١۶
١-۴)رقابت های علمی ……………………………………………………………………………………………….٢۶

فصل دوم : یک روش معماری در محاسبات خودمختار.

در اینجا، الگوها ی اول یه را بحث می کنیم که برای برقراری خود-پیکربندی، خود-درمانی، خـود -بهینگـ ی وخود-محافظتی در سطح سیستم استفاده کردیم. این یک لیست کامل نیست؛ انتظـار داریـ م کـه ابـداع الگوهای طراحی خودمختار یک منطقه مفید برای زمانی خواهد بود.
١-۵-٢ خود-پیکربندی
خو-پیکربندی یک قسمت مهم از نقطـه نظـر محاسـبات خودمختـار اسـت. عناصـر خودمختـار خـود را پیکربندی می کنند، بر اساس محیطی که آنها خودرا در آن پیدا م ی کنند و کارهای سطح -بالا کـه آنهـا باید انجام بدهند، بدون هیچ جز ییات مداخله ای انسان در شکل فایل هـای پیکربنـد ی یـ ا پنجـره هـای نصب. این امکان پذیر است که یک س یستم خودمختاردرخ یلی اززم ینه ه ای مشابه ای که امروزه س یـ ستم هـا را می ساز یم را بسازیم. می توا نیم تمام وابستگی هـای مختلـف و ارتباطـات را در زمـان طراحـی و سـاخت عناصر مجزا برای شکل دادن ارتباطات از پیش تعیین شده را تصور کنیم. یک روش دیگر را کشف کردیم که بوسیله آن سیستم خودش را می سازد، استفاده مـی کنـد از چ یـ زی که به آن ” خود-مونتاژی اشتقاق -هدف” می گو ییم[١۴]. به صورت بلقوه این سیستم را خیلی قـو ی مـ ی کند، چون تصمیمات پیکربندی سیستم به صورت محلی گرفته مـی شـود. قبـل ازاینکـه هـر عنـصر بـه سیستم ملحق شود، یک توص یف سطح-بالا از کاری که قرار است انجام دهد را ارائه می کنـد (“بـه عنـوان سرور برنامه کاربردی شمارا در دسترس می کند ” یا “بـه مخـزن سیاسـتت کلاسـتر ١٧ مـ ی پیونـدد “)، و چگونه با رجیستری تماس دارد.
نزمایکه هر عنصر مقداردهی او لیه شد، با رجیستری تماس م ی گیـ رد و سـوال هـایی در رابطـه بـا محـل عناصر موجود که می توانند سرویس هایی که عنصر جدید برای فعالیت نیـ از دارد را تولیـ د مـ ی کننـد را صادر م ی کند .این با عناصر بدین محل هـا ارتبـاط مـی گیـ رد، و وارد ارتباطـات ی مـ ی شـود کـه نیازمنـد دریافت سرو یس ه ای مورد نیازاست. نزمایکه عنصر وارد تمام ارتباطات می شود و تمام منابعی کـه بـرای کارش نیاز است را دریافت م ی کند، خود را در رجیستری ثبت می کند چنانچه که عناصـر کـه بعـدا بـه سرویس هایش نیاز دارند بتوانند با آن تماس بگیرند. نزمایکه تمام عناصر اهدافشان را ارضا کردند، سیستم بطور کلی خود-مونتاژ می شود. کارهای قب لی قابل توجه در زمینه کشف سرویس ( ببینید [١۴]) و رجیسترهای سـرو یس (ببینیـ د[١۴]) وجود دارد . این مفاهیم می تواند بروز شود برای پشتیبانی محاسبات خودمختـار توسـط ترجمـه آنهـا بـه دیاگرام ساختار سرویس-گرا و تکمیل کنیم آنها را با هستی شناسی سرویس مناسب. ٢-۵-٢ خود-درمانی
مهم نیست چقدر قوی و عدول کننده هستند، تشخیص دادیم که عناصـر خودمختـار هنـوز از زمـانی تـا د ی و ح الـت ارتجـاعی یـ ک سیـ ستم محاسبات خودمختار به نیرومندی و حالت ارتجاعی هیچ عنصر خودمختار تنهـا وابـسته نیـ ست. سیـ ستم به طور کل باید قادر به سرو کار داشتن با خرابی هر قسمت سازنده باشد. بدنبال اطم ینان داشتن به این خاص یت در سطح ساختار هستیم. طراحان ممکن است، در بعضی شـر ایط، قادر به سروکار داشتن با خرابی توسط استفاده از تکنولوژی هایی که وابسته به عنصر خاصـی کـه آنهـاطراحی کرده اند باشند . یک سیستم ذخیره سـاز ی ممکـن اسـت دارای سـخت افـزار خاصـی باشـد کـه
اطلاعات را از دیسک ها ی خراب کپی می کند . یک ماژول پـیش بینـ ی هـوا ممکـن اسـت قادربـه چـککردن باشدکه نت ایجش به طورفیزیکی نامتنـاقض اسـت.ماچیزبیـ شتری مـ ی خـواه یم. مـا خواسـتار هـیچ خرابی نقطه تنهای ساختار ی نیستیم. این ب اید امکان پذیر باشد، با معماری، برای سیـ ستم بـه طـور کـل که خود-ترمیم باشد.
ابری انجام این، هر عنصر خودمختار را مسئول نظارت سـرویس هـ ای ورودیـ ش مـ ی سـاز یم و تـشخ یص دهد اگر این سرو یس ها براساس موافقت مذاکره باشد آنها را پوشـش دهـد. اگـر سـرویس هـای ورود ی خراب شدند، چه سراسری، یا چون کاراییش خارج مرز است، یا چون نتایجی را که بر می گرداند اشـتباه است، عنصر خودمختار درخواست دهنده واکنش نشان خواهد داد، امکان اتمام ایـ ن ارتبـاط بـا سـرویس ورودی و بدست آوردن یک ارتباط جدید وجود دارد. اگر سرو یس ورود ی بدون حالت باشد، این نسبتا درست می شود. یک سرویس ورودی جدید مـ ی توانـد از طر یق رج یستری پیدا شود. در این وضـع یت جاییکـه سـرویس ورودی بـرا ی یـ ک دوره زمـان موجـود نباشد باعث بروز مشکل م ی شود، عنصر درخواست دهنده باید برای این سـرو یس ورودی منتظـر بمانـد، مطمئن شود که تهیه شود و در زمانی آماده اجرا شود. آنگـاه، بایـ د یـ ک سـرویس ورود ی خـراب شـود، درخواست دهنده سرویس م ی توانـد سـریع بـه وضـعیت انتظـار سـرویس ورود ی سـویچ کنـد. متناوبـا، کلاسترهای سرو یس ه ای ورود ی می توانـد در زمـان سـاخته شـود، و درخواسـت دهنـده هـا از طریـ ق
مکانیزم ها ی راند – براین به آنها دسترسی پیدا کنند. نزمایکه یکی از عناصر خودمختار در کلاسـتر خـراب می شود، بقیه در کلاستر بار را می تواند پوشش دهد.
اگر سرو یس ورو دی پا یدار باشد، حالت سرویس ورود ی باید همچن ین در برابر خرابی عدول کننده باشـد . نشریات اساس ی در این موضوع در رشته محاسبات توزیع شده و قابل تحمـل خطـا اسـت، مخـصوصا بـه عنوان مربوط به سرویس ه ای وب توزیع شده همبند-ضعیف[١۴]. یک روش سـاده را در اینجـا توضـیح می دهیم. درخواست کننده سرویس م ی تواند دو تصویر آ ینه ای از سرویس ورود ی را نگهداری کند، تراکنش هـ ای یکسان را به آنها بـرای همزمـان کـردن انهـا بفرسـتد. اگـر یکـ ی از سـرو یس هـ ای ورودی خـراب شـد، درخواست کننده سرویس م ی تواند اول بطور موقت تراکنش هایش را با سرویس ورودی دوم معلق کنـد، یک سرو یس ور ودی جد ید را از نوع مناسب پیدا کند (یا تول ید کنـد)،و سـرویس ورود ی جد یـ د را بـاکپی ردن حالت از سرویس ورود ی قد یمی ( آن یکی که خراب نشده ) به سرویس وردی جدید ساکن کنـد ii. نزمایکه سرو یس ورود ی جدید به همان حالتی که سرویس ورود ی قد یمی اسـت آورده شـد، درخواسـت کننده سرویس می تواند به تراکنش اینه ای به دو سرویس ورودی برگردد. اگر ته یه دوباره زمان زیادی بگ یرد، تع لیق سـرویس غ یرعملـ ی خواهـد بـود، و بقیـ ه راه هـ ای تهیـ ه یـ ک سرویس ورود ی جد ید نیاز خواهد بو ید. انتظار داریم اینها وابسته به هردو درخواسـت کننـده سـرویس و سرویس ورودی باشد.
چندین مکان وجود دارد که این عاملیت خود-درمانی ممکن است در آنجا قرار بگیرد. ایـ ن ممکـن اسـت در عنصر درخواست دهنده باشد، که سرویس ورود ی را بطور داخلی خود -درمان م ی سازد . ممکن اسـت در یک سرو یس ورود ی واسطه، مجتمع کم -اطمینان در میان یک سـرو یس متـراکم بـا اطمینـان بیـ شتر باشد. هر کام مزایای ومعایب خود را دارند، اما هیچ انتخاب تکی توسط خود کافی است. یک الگ وی طراح ی شده مفید بر ای خود -درمانی، که از مشکل داشتن یک نقطه تنهـای خرابـ ی اجتنـابمی کند، کلاستر خود -دوباره ساز است. مفهوم کلاستر سازی دو یا چند مورد از یک نوع خاص عناصرخودمختار در کنار هم است، مانند اینکه آنها سرویس های ورودی را تسهیم مـ ی کننـد و بـه درخواسـتها بر ای سرو یس های خروجی بر اساس تکنولوژی راند-رابـ ین یـ ا spraying پاسـخ مـی دهنـد . عناصـرخودمختار در چنین کلاستر ی می توانند بر سلامتی همد یگر نظـارت کننـد. اگـر یکـ ی از چنـ ین عنـصر خودمختاری خراب شود، یکی از عناصر خودمختار باق ی مانده می تواند یک مورد از آن نـوع را تولیـ د(یـ ا پیدا) کند، آن را به درون کلاستر بیاورد، و بدینسان کلاستر را تجدید ساخت کند. ابری پشت ی نبای چن ین عاملیت خود-درمانی، یک عنصر خودمختار باید واسـط هـایی را نمـ ایش دهـد کـه موارد زیر را فعال کند:
ارسال حالت . این یک درخواست ارسالی به یک عنصر است، آن را راهنمایی می کند برای ارسال حالـت داخلی اش به عنصر دیگر—پیغام دریافت کننده را مشخص می کند.
دریافت حالت . این یک درخواست ارسال به یک عنصر است، راهنماییش م ی کند برای در یافـت حالـت داخلی از عنصر دیگر—پیغام فرستنده را مشخص می کند.

٢-١) مقدمه……………………………………………………………………………………………………………. ٣٣
٢-٢) رفتارهای عنصر خودمختار……………………………………………………………………………………… ٣۴
٢-٣) فعل وانفعالات عنصر خودمختار………………………………………………………………………………… ٣٨
٢-۴) سیستم های خودمختار……………………………………………………………………………………….. ۴٢
٢-۵) طراحی الگوها…………………………………………………………………………………………………… ۴۴
٢-۶) نمونه های اولیه سیستم محاسبات خودمختار……………………………………………………………… ۵٢
٢-٧) نتیجه……………………………………………………………………………………………………………… ۵٢

فصل سوم: تحمل خرابی در سیستم های خودمختار: چگونه و به چه.

تجربیات دنیای واقعی روی سیستم های خودمختار در زمینه های مانند حوضه اکتشافات فضایی، نگهداری سالمندان، راهنمای گردش موزه و سرویس خانگی نمود دارند. چندین زمینه بحرانی از کاربرد وجود دارد، مانند یک خرابی سیستم ممکن است اثرات مصیبت باری راجع به زندگی انسان یا در اقتصاد داشته باشد. علاوه بر این، سیستم های خودمختار ممکن است خصوصا خطرناک باشند چونکه عملیاتشان توسط کاربران انسانی به صورت مستقیم کنترل نمی شود. بنابراین نیاز برای قابلیت اطمینان به وجود می اید، این یک اعتماد توجیه شده است که سیستم عملیاتش را بطور مناسب انجام می دهد و باعث فاجعه نمی شود. یکی از معانی قابلیت اطمینان، تحمل خرابی، رسیدگی در موقعیتی که خرابی ها در هر سیستم پیچیده اجتناب ناپذیر است، و هدف ناچیز کردن نتایج آنها است. این مقاله سیستم
خودمختار به خصوص در رابطه قابلیت اطمینان مطالعه می کند، و بحث می کند چگونه تحمل خرابی را در چنین سیستم هایی بالا ببریم.
اول جزییات سیستم های خودمختار در مقایسه با سیستم های محاسباتی کلاسیک را توصیف می کنیم، که مفهوم نیرومندی (قدری شبیه به تحمل خرابی) و استفاده از مکانیزم های تصمیم گیری است. قسمت دوم نمایش دهنده جزییات تکنولوژی جدید در قابلیت اطمینان و مکانیزم های نیرومندی در سیستم های خودمختار است. سپس استنتاج و پیشنهاداتی برای توسعه سیستم های خودمختار می دهیم ، و مسیر های آینده را نمایش می دهیم: تکنیک های تحمل خرابی برای مکانیزم های تصمیم گیری در سیستم های خودمختار، و یک چارچوب تجربی براساس شبیه سازی و تزریق خطا برایتشخیص دادن کارایی شان
١-٣ جزییات سیستم های خودمختار
این قسمت نمایش دهنده جزییات سیستم های خودمختار در مقایسه با سیستم های محاسباتی کلاسیک است. اول برتری که بین نیرومندی و تحمل خرابی داریم را صریحا اعلام می کنیم، و سپس مفاهیم ثابت برای مکانیزم های تصمیم گیری را معرفی می کنیم.
الف- نیرومندی و تحمل خرابی مفهوم نیرومندی در زمینه رباتیک ظاهر شد به عنوان یک جواب به انواع زیادی از نتایج زمینه های اجرایی از عملیات ربات در یک محیط باز. اگر فکر کنیم که خطاها فقط دلیل دیگری از عدم قطعیت باشند آنگاه نیرومندی ممکن است مطرح شده باشد به عنوان یک مجموعه یزرگتر از تحمل خطا. به هرحال، یک برتری مفید بین نیرومندی و تحمل خطا می تواند ساخته شود توسط محدود کردن استفاده از اولی برای تحمل موقعیت های مغایر نه بعلت خطا ها. بنابراین تعاریف زیر را در زمینه سیستم های خودمختار می پذیریم:
• نیرومندی ارایه ای از یک سرویس درست در موقعیت های مغایر برپاشده بعلت یک محیط
سیستم نامعلوم است. (مانند یک مانع غیر منتظره یا یک تغییر در شرایط نور تاثیر دار در
سنسورهای نوری)
• تحمل خطا ارایه ای از یک سرویس درست با اینکه خطاها روی منایع سیستم تاثیر گذاشته
اند. ( مانند یک تایر صاف، خرابی سنسور یا یک خرابی نرم افزار)
یک نکته ممکن است درباره تولیدکننده سرویس توسط سیستم اضافه شود.در اینجا، فرض می کنیم که یک سرویس درست یک رفتار برطبق عملکرد مناسب سیستم است، از نقطه نظر کاربر؛ این قبل از اجرا تعریف می شود و در مشخصات سیستم قرارداده شده است، که برای رسیدن به موقعیت های خوب تعریف اهداف را تعیین می کند. یک سیستم قابل اعتماد باید بدینسان یک سرویس درست راجع به موقعیت اسمی و موقعیت های مغایر صریحا-تعیین شده را تولید کند. به هر حال، یک سیستم خودمختار خیلی اوقات لازم است در یک محیط باز عملیات انجام دهد، جایی که شرایط اجرایی می تواند نه تماما از قبل تعیین شود. زمانیکه با موقعیت های مغایر غیرمنتظره روبرو می شود یک سرویس درست نمی تواند ضمانت شود. به هرحال، کاربر ممکن است بعد از اجرا آنرا قضاوت کند، موقعیت غیر منتظره که سیستم باید با آن روبرو شود را بدهد، سرویس، هنگامیکه با توجه

٣-١) جزییات سیستم های خودمختار……………………………………………………………………………….. ۵۶
٣-٢) تکنولوزی جدید……………………………………………………………………………………………………. ۶٠
٣-٣) به سوی تحمل خرابی و قابلیت اطمینان در سیستم های خودمختار ………………………………………۶٨
٣-۴) جهت های آینده …………………………………………………………………………………………………..٧٢

برای دانلود رایگان قسمت های بیشتراز فایل به انتهای مطلب مراجعه کنید

فصل چهارم:مرور مقالات دیگران

پیوست ها ……………………………………………………………………………………………………………….٨۴
منابع و ماخذ ……………………………………………………………………………………………………………..٨۵
فهرست منابع فارسی ………………………………………………………………………………………………….٨۵
فهرست منابع لاتین ……………………………………………………………………………………………………..٨۶
سایت های اطلاع رسانی ………………………………………………………………………………………………٨٧
چکیده انگلیسی ………………………………………………………………………………………………………….٨٨

فهرست جدول ها

جدول ١. چهار جنبه از خود-مدیریتی سیستم های موجود و سیستم های ………………………………………..10

فهرست شکل ها

شکل ١ تشخیص مشکل در یک به روزرسانی سیستم خودمختار………………………………………………….. ٧
شکل ٢ ساختار یک عنصر خودمختار…………………………………………………………………………………… ١٣
شکل ٣ نوع بر اساس-عامل معماری: قاعدهIDEA…………………………………………………………………… ٧٣.
شکل ۴ محیط شبیه سازی…………………………………………………………………………………………….. ٧۶
شکل ۵ چارچوب تجربی پیشنهادی……………………………………………………………………………………. ٧٩

 

ABSTRACT
Systems manage themselves according to an administrator’s goals. New components integrate as effortlessly as a new cell establishes itself in the human body. These ideas are not science fiction, but elements of the grand challenge to create self-managing computing systems.



مقطع : کارشناسی ارشد

قیمت 25 هزار تومان

250,000RIAL – اضافه‌کردن به سبدخرید

خرید فایل pdf به همراه فایلword

قیمت:35هزار تومان