بخشی از مقاله

چکیده

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

کلمات کلیدی:رایانش ابری، الگو، زبان الگو، و طراحی مبتنی بر الگو و زبان الگو

-1 مقدمه

رایانش ابریلآ، شیوهی استفاده از منابع فناوری اطلاعات - لأ - IT را بهصورت چشمگیری متحول کرده است. در اینجا، منابع لازم میتوانند بر اساس نیاز رزرو شده و در صورت عدم نیاز، آزاد شوند. مطابق تعریف مؤسسهی ملی استانداردها و فناوری - لأ[1] - NIST، »رایانش ابری، یک مدل کسبوکار است که روشها و فناوریها را برای تدارک منابع IT بهشکل انعطافپذیر از طریق یک شبکه با یک رابط سرویسدهی جمع میکند.« در حال حاضر بهنظر میرسد که استفاده از فناوریهای ابر به یک استانداردی از پشتههای نرمافزاری مبدل شده است: تصاویر ماشین و سرویسهای آماده برای استفاده، توسط فراهمکنندهی ابر عرضه میشوند و یا بوسیلهی توسعهدهندگان کاربرد بهمنظور بازاستفاده در کاربردها و پیکربندیهای محیطی متعدد ایجاد میشوند. مهمترین خواص ابرها میتواند بهصورت زیر خلاصه شود :[2]

·قابلیت ارتجاع یا کشسانی:4 تعداد منابع در دسترس یک کاربرد میتواند بهصورت انعطافپذیر تطبیق یابد تا با نیاز فعلی جفتوجور شود.

·پرداخت در ازای استفاده: هزینههای منابع بر اساس مدت زمان استفاده از آنها حسابرسی میشود.

·استانداردسازی: استفاده از مجازیسازی5 سختافزاری و سرویسهای سکوی تهیهشده توسط فراهمکننده، محیطهای زمان اجرای کاربردها را در ابر استاندارد میسازد.

توسعهدهندهی یک کاربرد ابر برای بهرهبرداری از ظرفیت کامل

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

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

مفاهیم مشترک ذیربط نیز غالباً پنهان مانده یا در دسترس عموم قرار نمیگیرند. در نتیجه، توسعهی کاربرد ابر در مدیریت نیازمندیها با مشکل مواجه شده و به یک فراهمکنندهی ابر خاصی محدود میشود . برای مثال، توسعهی Azure ویندوز با توسعهی App Engine گوگل یا سرویسهای وب Amazon - AWS7 - فرق دارد.مسألهی معاوضهی فراهمکنندگان ابر نمیتواند در حالت کلی حل شود، چون، برای مثال، سرویسهای تشکیلدهندهی عرضه شدهی سکوها و زیرساختهای زماناجرا در کارکرد و پشتیبانی زبانهای برنامهنویسی فرق دارند. با این وجود، استفاده از الگوها میتواند در حل نیازمندیهای مکرر کاربردها به توسعهدهندگان کمک کند.

الگوها عمدتاً هیچگونه وابستگی خاصی به فناوری خاص مستندات و خطمشیهای فراهمکننده، همینطور، کاربردهای موجود ابر ندارند. لذا، این الگوها تجریدی از مفاهیم معماری، مستقل از فناوری فراهم میکنند. الگوها بهصورت اسناد خوانای انسانی هستند که دانش اثباتشدهای را پوشش میدهند که از تجربه بدست میآید.بهندرت اتفاق میافتد که الگوها بهصورتتکی اِعمال شوند. یکی از بهترین مشقهای حل یک مسئله بهصورت کلی در یک زمینهی مشخص، اِعمال الگوها بهشکل مجموعهای از الگوهای مرتبط در قالب یک زبان الگوست. زبان الگو، شبکهای از الگوهای مرتبطی است که فرایندی را برای حل یک مسأله در حالت کلی فراهم میکنند.

این زبان است که اِعمال الگوهای مناسب را در متن یکدیگر مشخص میکند طوری که توسعهدهنده میتواند با دنبالکردن الگوها مدل طراحی خودرا گامبهگام تکمیل کند .[5-3]بر اساس اهمیت درک مفهوم الگوها و زبانهای الگو، علیالخصوص در زمینهی رایانش ابری، این مقاله بهدنبال ارائهی یک نقشهی راهی برای اِعمال الگوها و زبانهای الگو توسط طراح مدل مبتنی بر ابر میباشد.بقیهی مطالب مقاله به این صورت سازماندهی میشود. بخش 2، به معرفی کارهای مرتبط در زمینهی هدایت و راهنمایی طراحمدلهای مبتنی بر الگو و زبان الگو میپردازد. بخش 3، ضمن ارائهی مفهوم الگو و زبان الگو، به ارائهی خطمشیهایی برای شناسایی آنها میپردازد. بخش 4، یک دستهبندی از الگوها و روابط میان الگوهای رایانش ابری ارائه میدهد. بخش 5، توسعهی کاربرد مبتنی بر الگوها و زبان الگوی رایانش ابری را معرفی میکند. نهایتاً، بخش 6 ، ضمن جمعبندی، به نتیجهگیری و مروری بر کارهای آتی میپردازد.

-2 کارهای مرتبط

هرچند که نمونهی کارهای مرتبط در ادبیات تحقیق مربوط به راهنمایی و هدایت طراح در اِعمال الگوها، بهشکل زبان الگو محدود است. در اینجا، به معرفی مختصر برخی از کارهای مهمی میپردازیم که در این زمینه انجام شدهاند.[6] Zdun برای حل مسائل پیچیده که انتخاب الگوی راهحل مناسب از میان الگوهای نامزد، به دلیل تعدد آنها دشوار است، از یک روش سامانمند انتخاب الگو بهره میبرد. برای نمایش زبان الگو از یک گرامری شبیه BNF8 حاشیهنویسیشده استفاده میکند. با ناکافیبودن گرامر و حاشیههای آن، برای رفع پیچیدگی انتخاب الگوی مناسب، به تکنیک تحلیل فضای حالت طراحی و رویکرد QOC9 روی میآورد.

زمانی و [5] Butler ، با هدف هدایت و راهنمایی طراح مدل UML مبتنی بر الگوهای [7] Fowler، یک ابزاری به نام ArgoPLV ارائه کردهاند که بهنوبت خود از ابزار ArgoUML بهره میبرد. کار این ابزار مشابه یک کامپایلر است که طی سه مرحله، ساختار، گرامر و معانی الگوهای اِعمالشده را اعتبارسنجی میکند. محدودیت اصلی ابزار ارائه شده به تکزبانی بودن آن بر میگردد. بهعبارت دیگر، ابزار ارائهشده صرفاً الگوهای زبان PofEAA10 را اعتبارسنجی میکند.روحی و زمانی [8 , 3]، با هدف تعمیم مفهوم وارس زبان الگو11 که توسط زمانی و [5] Butler مطرح شده بود،

چارچوبی به نام [9] PLVGen توسعه دادهاند که با فرض نمایش راهحل الگوهای یک زبان با نمودارهای کلاس UML و توصیف با زبانهای توصیف الگو و زبان الگو، یعنی PSL و [10] PLSL، تولید خودکار وارس زبان الگوی ورودی را فراهم میکند. این وارس که به زبان [10] EVL12 تولید میشود طراح مدل را بهصورت محاورهای هدایت میکند تا مدل طراحی خود را قدم به قدم با پیروی از ساختارهای الگوهای زبان و روابط میان الگوهای آن، ضمن مشاهدهی عواقب الگوهای اِعمالشده توسعه بدهد.Fehling و همکاران [11]که عمدتاً روی الگوهای رایانش ابری کار کردهاند، برای هدایت طراح مدل از یک جدول تصمیم استفاده کردهاند. در خانههای این جدول، نوع رابطهی الگوها که میتوانند وابستگی قوی - یا همان استفاده - یا تضاد باشند، مشخص میشود.

-3 شناسایی الگوها و زبانهای الگو

چون الگوها در حوزههای زیادی اعم از معماری ساختمان و نرمافزار شئگرا استفاده میشوند [13 , 12]، درک مفهوم الگو در زمینههای متفاوت فرق دارد. الگوهای رایانش ابری، مسائلی را پوشش میدهند که موقع طراحی، ساخت، و مدیریت کاربردهای ابری پیش میآیند. اسناد مربوط به الگوها برای راهنمایی ترتیب اِعمال الگوهای دیگر، ترکیب الگوهایی که استفادهی رایجی دارند و مشخصکردن الگوهای مرتبط بههمدیگر ارجاع میدهند. الگو در مقایسه با مستندات فنی یا خطمشیهای توسعه که فناوریهای بهخصوصی را در نظر میگیرند، در حقیقت، اصل یک راهحلی را اقتباس میکند که برای یک مسألهی مکرر کارگر است. الگوهای رایانش ابری از کاربردهای موجود، سرویسهای فراهمکننده، و سایر منابع بدست میآیند که سبکهای معماری مرسوم، مؤلفههای محیطهای زماناجرای ابری، و مؤلفههای کاربردهای ابر را بیان میکنند. قالب این اسناد الگو برای ارائهی یک ظاهر و حس مشترک همگن ساخته میشود .[11]

زبان الگوی یک دامنهی خاص، مجموعهای از الگوهای دامنه، روابط بین آنها، و قوانین ترکیب آنهاست. لذا، زبان الگو به مسائل مشترک در یک دامنه میپردازد تا فرایند طراحی را هدایت کند. بر این اساس، الگوهای رایانش ابری بایستی در این حوزه، مشاورهی کافی را برای هدایت کاربر، بهمنظور حصول هدف کلی طراحی ایجاد یک کاربرد ابری یا تجدید ساختار یک کاربرد موجود فراهم کنند. بهعلاوه، این الگوها بایستی مفاهیم را بهاندازهای انتزاعی سازند که تضمین شود اسامی الگوها برای ارتباط بهتر میان طراحان استفاده میشوند .[11] البته، مشابه مفهوم الگویی که در رایانش ابری مطرح است، تعاریف دیگری از زبان الگو نیز در منابع برای حوزههای مختلف وجود دارد ,3] .[6

برای شناسایی الگوها و اقتباس آنها در قالب کاتالوگ الگو و زبان الگو، روشها و منابع اطلاعاتی مختلفی وجود دارد که در اینجا رویکرد مرجع [11] در زیر بهصورت خلاصه ارائه میشود:

·همکاری با صنعت مرتبط با رایانش ابری که در این زمینه موفق بودهاند. البته، مفاهیم و اصولی که این کاربردها دارند انتزاعی ساخته میشوند تا فارغ از هرگونه محدودیت فناوری و محیطی باشند.

·بررسی ادبیات تحقیق و منابع موجود زبانهای الگو و مستندات فراهمکنندگان ابر میتواند منبع قابل توجهی برای استخراج الگوها و زبانهای الگو در هر زمینهای اعم از رایانش ابری باشد. لازم به ذکر است که بایستی الگوهای موجود در زمینههای دیگر، همچون کاربردهای مستقل، کاربردهای گرید13، کاربردهای مبتنی بر پیغام و غیره نیز بررسی شوند تا در صورتی که در کاربردهای ابری کارگر بودند جمعآوری و بهکار گرفته شوند. یک قالب یکسانی نیز باید برای نمایش الگوها ارائه شود تا الگوهایی که از منابع مختلف استخراج میشوند همگن و یکشکل شوند. جدول 1 - ، یک ساختار مشخصی را برای قالب الگوهای رایانش ابری نشان میدهد.

·تجربهی خبرگانی که از کار با سیستمهای توسعهی کاربردهای ابری به ما منتقل میشود.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید