ترکیب وب سرویس ها و بهینه سازی آنها

امروز داشتم کمی فایل هام رو اینور اونور می کردم حس کردم شاید یه کم کمک دیگران بکنه این متن :

مقدمه

وب سرویس یک تکنولوژی نو ظهور است که امکان می­دهد کاربران بدون توجه به سخت ­افزار خود و با نرم­افزارهای مورد نیاز خود را مورد استفاده قرار دهند. وب سرویس­ها معمولا بر روی پروتکل­های زبانی مبتنی بر XML نوشته می­شوند تا تبادل اطلاعات بین سرویس­های دیگر به راحتی صورت بگیرد.

گسترش وب­سرویس­ها استفاده از نرم­ افزارهای کاربردی را  در تمامی محیط­ها آسان می­کند. از آن­جای که وب سرویس­ها مستقل از سخت­افزار­ها ارائه می­شوند توسعه آن­ها راحت تر بوده و از طرف دیگر برقراری ارتباط بین آن­ها راحت است.

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

امروزه اکثر سازمان­ها به دلیل افزایش حجم جریان اطلاعات و پردازش داده­ها نیاز به استفاده از فن­آوری­های جدیدی پیدا کرده­اند، از طرف دیگر فن­آوری ­های استفاده شده در این حوزه­ها روز به روز در حال توسعه­ ­هستند نیاز است از ابزای استفاده شود که قابلیت ارتباط با دیگر سیستم­های سازمان را داشته باشند.

از این رو معماری سرویس­گرا[۱] توسعه و گسترش پیدا کرده است. این معماری یک الگوی جدید برای پیاده سازی سیستم­های اطلاعاتی است این روش­ها این آزادی را می­دهد که محققان بر روی خواسته­های کاربران مورد اهمیت قرار گیرد.

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

حوزه ترکیب وب سرویس­ها از اهمیت زیادی برخوردار شده است دلیل این اهمیت زیاد بودن جایگزین سرویس­ها می­باشد به همین دلیل است که موضوع کیفیت سرویس اهمیت پیدا می­کند. در این پژوهش سعی می­شود با استفاده از یک روش انتخاب ترکیب مناسب با استناد به کیفیت سرویس ترکیب مناسبی اتخاذ شود.

۲-۲ پیشینه نظری

۲-۲-۱ معماری سرویس گرا

 همان­طور که قبلا نیز گفته شده معماری­های سرویس­گرا در سازمان­ها به شدت مورد اهمیت قرار گرفته است. نمی­توان تعریف دقیقی از معماری سرویس­گرا را ارائه داد، در واقع تعاریف زیادی از این موضوع وجود دارد در این قسمت به تعاریف مختلفی از این معماری که توسط محققین ارائه شده بیان می­شود.

  • معماری سرویس­گرا برای سازمان­ها و استفاده از قابلیت­های توزیع شده آن­ها تحت نظارت افراد گوناگونی می­باشد.
  • معماری سرویس­گرا شامل سیاستی است که بر اساس تجارب و چارچوب های موجود کاربران را قادر می­سازد که با استفاده از سرویس­های توزیع شده عملیات­های مختلف را انجام دهند.

تعاریف بالا تعاریفی است که سازمان­ها در مورد معماری­های سرویس­گرا است، اما هر کدام از افرادی که در این زمینه فعالیت دارتد نیز تعاریفی از معماری سرویس­گرا دارند.

در نظر کارشناسان حرفه­ای، به مجموعه­ای از سرویس­ها گفته می­شود که توسط ارائه دهندگان سرویس به مشتریان ارائه داده می­شود.

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

استفاده از معماری­های سرویس­گرا دارای مزایایی زیادی از قبیل کاهش هزینه، بهبود فرآیند کسب و کار و چابک سازی سازمان­ها می­باشد:

  • استفاده مجدد: در این نوع طراحی برای سازمان­ها این امکان را به وجود می­آورد که کاربران بتوانند از سرویس­های آن به طور متناوب استفاده کنند و با استفاده از فراخوانی می­توانند از آن استفاده کنند.
  • کاهش هزینه: طراحی مناسب این معماری چندین سازمان با منابع محدود توانایی این را دارند که بتوانند با هم به صورت یکپارچه همکاری کرده و از سیستم­های اطلاعاتی استفاده کرده و هزینه­های خود را کاهش دهند.
  • چابکی در کسب و کار: با توجه به موضوع یکپارچگی در این سیستم­ها سازمان­های که از این سیستم­ها استفاده می­کنند سرعت بیشتری در ارائه و استفاده از خدمات را دارد. همچنین با استفاده از ماژول­های مختلف می­توان به سرعت معماری طراحی شده را تغییر داد.( خوشافیان،۲۰۱۶)

۲-۲-۲ وب سرویس

با توجه به این که از اسم این معماری معلوم است به سرویس­های که داخل آن طراحی شده وابسته است. سرویس­ها می­توانند نمایش قابلیت­های کسب و کار یک سازمان باشد و افراد و یا سرویس­های دیگر که از آن سرویس استفاده می­کنند نیازی به دانستن جزئیات آن و نحوه پیاده سازی آن اطلاعاتی داشته باشند. وب سرویس­ها دارای یک واسط کاربری هستند این واسط به گونه­ای طراحی شده است که افراد مختلف در رده­های مختلف کسب و کاری بتوانند از آن سرویس به راحتی استفاده کنند. همانطور که پیشتر نیز به آن ارائه شده یکی از نقاط قوت معماری­های سرویس­گرا قابلیت آن­ها در همگون سازی عملیات بین سیستم­های اطلاعاتی ناهمگون و استفاده مجدد از توابع و سرویس­ها در سیستم­های نرم افزاری جدید می­باشد. معماری سرویس­گرا برای یکپارچه سازی و ارتباط بین سیستم­های اطلاعاتی از وب سرویس­ها استفاده می­کند.(لی و همکارانش،۲۰۱۵)

در وب سرویس­ها تنها خروجی آن برای کاربران اهمیت دارد و اینکه بر روی چه سخت­افزاری و یا به چه زبانی ارائه شده است اصلا مطرح نمی­شود. به این دلیل است که سیستم­های ناهمگون توانایی تعامل با یکدیگر را دارند.

 به طور کلی وب سرویس­ها برای ساده کردن انواع پردازش­های غیر متمرکز توسعه پیدا کردند این وب سرویس­ها بر اساس تکنولوژی آزاد انتقال داده­ها توسعه داده که کاربرد آنها را بین سیستم­ها افزایش میدهد، به طور کلی وب سرویس­ها نرم­افزارهای هستند که توانایی این را دارند که اطلاعات را بین خود از طریق روش­ها و پروتکل­­های موجود انتقال می­دهند.

وب سرویس در واقع یک جزءترکیبی است که به نرم­افزاهای کاربردی که از آن استفاده می­کنند این توانایی را می­دهند که از امکانات آن استفاده کنند.(آمازون،۲۰۱۵)

به عنوان مثال طراحان برای این که بتوانند در نرم­افزار خود وضعیت آب و هوا را بی­افزایند دو راه در پیش رو دارند، یا این که خود در بین وب سایت­های که در آن وضعیت آب و هوا را اعلام کنند، جستجو کرده و بهترین آن را انتخاب کرده و در نرم­افزار خود جای دهند یا اینکه در میان وب سرویس­ها بهترین را انتخاب کرده و در نرم­افزار تحت وب خود استفاده کنند.

وب سرویس­ها ویژگیهای دارند که استفاده از آنها در در نرم­افزارهای کاربردی بسیار مقرون به صرفه است. از قابلیت­های مهم وب­سرویس­ها، قابلیت برنامه­ریزی آن­ها است. قابلیت برنامه به این معنا است که پردازش وب سرویس به صورت مخفی انجام می­شود.  در صورتی که یک کاربر درخواستی داشته باشد آن را به وب سرویس اعلام میکند، وب سرویس پردازش را انجام داده و پاسخ را به کاربران ارسال میکند.

یکی دیگر از ویژگیهای مهم وب سرویس­ها خروجی آن­ها که بر پایه XML است، این تکنولوژی به وب سرویس­ها این امکان را می­دهد که با برنامه­های دیگر ارتباط داشته باشند این ارتباط حتی زمانی که برنامه­ها از زبان های مختلفی تشکیل شده باشند برقرار است.

وب سرویس­ها قابل شناسایی هستند به این معنی که در میان تمام وب سرویس­های موجود کاربران می­توانند وب سرویسی که مورد علاقه آن­ها است پیدا کرده و از آن استفاده کنند.

مزیت دیگر وب سرویس­ها عدم نیاز به کد نویسی است یکی از بزرگترین مزیت­های استفاده از وب سرویس­ها این مسئله است در استفاده از وب سرویس­ها فقط نیاز است که کاربران آن را فراخوانی کنند و خروجی مناسب را از آن دریافت کنند و نیاز دیگری به برنامه نویسی­ها پیچیده ندارد.

از مهمترین مسائلی که در معماری­های سرویس­گرا وجود دارد انتخاب وب سرویس­ها است. انتخاب وب سرویس­ها فرایندی است که کاربران سرویس­ مورد  نیاز خود را از انبوه سرویس­های موجود پیدا و انتخاب کنند، برای این موضوع کاربران نیاز دارند که نیازهای خود را به طور کامل بشناسند، فرآیند انتخاب توسط کاربران از چند موضوع تشکیل شده است.(میچل،۲۰۱۶)

اولین موضوع در نیاز­های مورد انتظار کاربران است، کاربران ممکن است که نیازهای مختلفی داشته­باشند و اگر نیاز­های کاربران پیچیده باشد وب­سرویس­ها به تنهای توانایی مرتفع کردن این نیاز­ها امکان پذیر نیست و نیاز است که سرویس­های ترکیبی و پیچیده تری استفاده شود.

دومین مسئله که مورد نیاز است سرویس­های است که توسط ارائه دهندگان سرویس، ارائه می­شود. سرویس­های ارائه شده توسط موسسات باید توانایی این را داشته باشند که علاوه بر رفع نیازهای کاربران، نیازهای آن را با کیفیت مناسب مرتفع کنند، به این معنی که نه­تنها عملکرد مناسبی داشته باشند بلکه کیفیت عملکرد آن نیز بالا باشد.(چن و همکارانش،۲۰۱۵)

در فرآیند انتخاب سرویس، نیاز کاربران باید با سرویس مطابقت داشته باشد، انتخاب باید پویا باشد به این معنی که انتخاب سرویس باید با نیازهای کاربران نهایت تطبیق را داشته باشد. سرویس­های که با این شرایط مطابقت داشته باشند به عنوان کاندید­های انتخاب در نظر گرفته می­شود. (الشاتر و همکارانش،۲۰۱۵)

۲-۲-۳ ساختار وب سرویس  

وب سرویس­ها دارای ساختار و مفاهیمی است که در این بخش به معرفی مفاهیم وب سرویس می­پردازیم.

  • زبان نشانه گذاری توسعه پذیر[۲]: همان­طور که قبلا نیز گفته شد این یک تکنولوژی است که به صورت گسترده در تمامی موارد از آن استفاده می­شود. این روش یک استاندارد است که برای ساده کردن انتقال اطالعات از آن استفاده میشود، یکی از خصوصیات این تکنولوژی استقلال اطلاعات است. این استقلال بدون هیچ وابستگی به زبان برنامه­نویسی ویا سیستم عامل آن است.
  • پروتکل دسترسی آسان به اشیاء[۳]: یک استاندارد عمومی است که در وب سرویس­ها استفاده می­شود، هدف اصلی از این استاندارد ایجاد یک روش برای ارسال دیتا­­­ها بین سیستم­ها است. در زمانی که ارتباطی بین وب سرویس آغاز می­شود پیغام­های این استاندارد است که وسیله­ اصلی برای ارتباط دیتا را فراهم می­کند.
  • زبان توصیف خدمات وب[۴]: یکی دیگر از استانداردهای که در وب سرویس زیاد مورد استفاده قرار می­گیرد، همان­طور که قبلا نیز گفته شد یکی از خواص وب سرویس­ها توانایی توصیف خودشان است. وب سرویس­ها دارای اطلاعاتی است که استفاده از آن را توضیح میدهد. توضیحات در این استاندارد نوشته شده است. همه وب سرویس­ها داری فایلی هستند که نحوه کار خود را توضیح می­دهند.
  • توضیحات جامع کشف و یکپارچه سازی[۵]: استاندارد دیگری که در وب سرویسها مورد استفاده قرار می­گیرد، این استاندارد باعث می­شود که وب سرویس­ها بتوانند خود را بر روی اینترنت معرفی کنند، با استفاده از این استاندارد شرکت­ها می­توانند سرویس­های خود را به دیگران معرفی کنند. همچنین ارائه دهندگان سرویس می­توانند سرویس­های دیگران را نیز ببیند و از آن استفاده کنند. ( کریستنس و همکارانش(۲۰۱۵)

۲-۲-۴ وب سرویس­های ترکیبی

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

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

در شکل زیر جریان کاری یک ترکیب وب سرویس ۷ تایی را نشان می­دهد، هر کدام از وب سرویس­ها پیاده سازی متفاوتی دارند، اما خروجی آن­ها یکسان و قابل استفاده است. برای هر کدام از سرویس­ها استفاده شده اطلاعات مانند ویژگی­های کیفی، آدرس، وابستگی­های و مشکلاتی که با دیگر سرویس­ها خواهند داشت مورد اهمیت است. (چاتوپابدی و همکارانش،۲۰۱۵)

شکل ۲- ۱: نمای یک ترکیب  وب سرویس

در سرویس­های ترکیبی، سرویس­ها با یکدیگر تعامل دارند این در حالی است که هر وب سرویس­ها ممکن است در پلتفرم­ها و محیط­های مختلفی کار خود را انجام می­دهند و نتایج خروجی را نمایش می­دهند.

همان­طور که گفته شده است کاربران در انتخاب وب سرویس­ها آزاد هستند، برای طراحی یک سرویس ترکیبی چرخه­ای وجود دارد.

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

چرخه بالا اصول طراحی اصلی یک وب سرویس است. اما انواع ترکیبهای مختلفی وجود دارد. این ترکیب­ها عبارتند از ترتیبی[۶]، انشعابی[۷]، شرطی[۸] و حلقه[۹] این ترکیب­ها است در شکل زیر نمایی از روش­های ترکیب سرویس­ها نمایش داده شده است.(اوبی و هس ،۲۰۱۵)

شکل ۲- ۲: انواع روش­های ترکیب وب سرویس

قسمت a زمانی که سرویس ۱ کار خود را تمام کند کار سرویس ۲ شروع می­شود.

قسمت b هر دو وب سرویس به صورت موازی کار خود را انجام می­دهند.

قسمت c در نقطه تصمیم­گیری، تصمیم­گرفته می­شود که کدام وب سرویس عملیات را انجام دهد.

قسمت d  سرویس ۱ به تعداد تعیین شده تکرار می­شود.

۲-۲-۵ محدودیت­های ترکیب وب سرویس­ها  

ترکیب وب سرویس­ها محدودیت­های نیز دارد:

  • محدودیت وابستگی:

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

  • محدودیت تضاد:

در بعضی از موارد این موضوع وجود دارد که پیاده­سازی چند وب سرویس با یکدیگر تضاد داشده باشند، در انتخاب وب سرویس اول و پیاده سازی آن از موضوع خاصی پشتیبانی نمی­کند که باید این موضوع مورد توجه باشد. در همان مثال بالا استفاده از وب سرویس­های که نحوه پرداخت را پیشتیبانی نمی­کند تضاد در طراحی است.(وان و همکارانش،۲۰۱۵)

۲-۲-۶ کیفیت سرویس  

یکی از مسائلی که در ترکیب وب سرویس­ها دخیل است توجه به کیفیت سرویس است. کیفیت سرویس به کاربران این کمک را می­کند که بتوانند بهترین انتخاب را داشته باشند و از میان بهترین انتخاب­ها بهترین ترکیبات را نیز فراهم کنند.

با توجه به روی آوردن بسیاری از کاربران و موسسات به وب سرویس­ها توسعه آن بسرعت انجام می­شود از این رو تعداد زیادی از انواع مختلف سرویس­ها با قابلیت و کاربرد مشابه پدیدار شده­اند. از این رو موضوع کیفیت سرویس پیش کشیده شده است، تمام سرویس­ها دارای معیارهای کیفی هستند اما کیفیت آن­ها متفاوت بوده است.  معیارهای کیفی که در سرویس­ها تعریف شده است، قیمت، زمان پاسخ­گویی، در دسترس بودن و … است. ما علاوه بر معیار های مورد بحث معیار زمان I/O وب سرویس را به سیستم پیشنهادی خود اضافه می کنیم.

هر کاربر با توجه به ویژگی­های آن­ها می­تواند سرویس مناسب را انتخاب کند. از طرف دیگر ارائه دهندگان سرویس باید معیارهای که تعریف کرده­اند را برآورده کنند.

تعاریف از ویژگی­های کیفیت سرویس در این­جا بیان می­شود:

زمان تاخیر: مدت زمانی است که سرور نیاز دارد تا درخواستی که به آن می­رسد را پردازش کند.

زمان پاسخگویی: فاصله زمانی بین زمانی که سرویس فراخوانی می­کند تا زمانی که سرویس کارش را به پایان می­رساند.

نرخ موفقیت: نسبت تعداد پاسخ­هایی که توسط یک سرویس در یک بازه زمانی خاص می­دهد به تعداد درخواست­های که در همان بازه زمانی صادر شده است.

قابلیت اطمینان: این موضوع را بررسی می­کند که آیا عملیات پاسخ­گویی به یک درخواست کاربر در زمان مورد نیاز به درستی انجام می­شود یا نمی­شود.

در دسترس بودن: در این ویژگی بررسی می­شود که سرویس مورد نظر کاربران در بازه زمانی در دسترس است یا نیست.(یو و همکارانش،۲۰۱۵)

زمان I/O : مدت زمانی که وب سرویس منتظر عملیات ورود و خروج می ماند. هر چه وب سرویس مدت زمان کمتری را صرف این عملیات کند، سرعت بالاتری را به کاربران ارائه می دهد. این مورد نیز می تواند یک معیار برای بررسی کیفیت وب سرویس ها باشد.

۲-۲-۷ الگوریتم ژنتیک

الگوریتم ژنتیک یک روش فراابتکاری جهت بهینه سازی مسائل است، این الگوریتم از طبعیت الهام گرفته و مبتنی بر تکرار و از علم ژنتیک اقتباس شده است. در علم ژنتیک ژن­ها و کروموزوم­ها عامل اصلی انتقال خواص از نسلی به نسل دیگر است.

در داخل هر کروموزم اجزای به نام ژن است، اساس این الگوریتم مبتنی بر نظریه تکامل داروین بوده و در آن موجودات ضعیف از بین رفته و موجودات قوی به بقای خود ادامه می­دهند.

رویکرد الگوریتم ژنتیک یک رویکرد بهینه­سازی در مسائل است و با در نظر گرفته شدن مجموعه فضای جواب مسئله، در هر تکرار محاسباتی به طور موثر نواحی مختلف فضای جواب را جستجو می­کند.

نسل اولیه به طور تصادفی ایجاد می­شود، اما فضای جستجو بر اساس مکانیزم­های انتخاب صورت می­گیرد تا بهترین پاسخ به وجود بیاید.

با توجه به این که الگوریتم ژنتیک در تمامی مسائل بهینه سازی کاربردهای زیادی دارد در اینجا ساختار الگوریتم را در مسئله مورد نظر توضیح می­دهیم.

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

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

بعد از تولید فرزندان دوباره تابع برازندگی کروموزوم­ها اندازه گیری می­شود و مراحل قبل دوباره تکرار می­شود.

همان­طور که گفته شد الگوریتم ژنتیک بر اساس تکرار طراحی شده است و این تکرار تا زمانی ادامه پیدا می­کند که شروط خاتمه که در ابتدا مورد نظر بوده برقرار شود. یکی دیگر از شرایط که الگوریتم کار خود را متوقف می­کند این است که اگر بعد از چندین نسل بهبودی در تابع برازندگی پیش نیاید الگوریتم متوقف می­شود.( دا سیلوا و همکارانش،۲۰۱۶)

در شکل بالا فلوچارت الگوریتم ژنتیک نشان داده شده است.در این قسمت مفاهیم کاربردی در الگوریتم را معرفی می­کنیم.

  • جمعیت اولیه:

جمعیت اولیه در این مسئله همان ترکیب وب سرویس­ها است که کروموزوم­ها را تشکیل داده­اند. در مسائل بهینه سازی به وسیله الگوریتم ژنتیک باید ابتدا جواب­های به صورت تصادفی تولید شود و به عنوان جمعیت اولیه مورد استفاده قرار گیرد.

  • عملگرهای ژنتیک

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

عملگر تقاطع؛ عملگری است که به واسطه آن و کروموزوم­ها  فرزندان خود را تولید می­کنند.

عملگر­ تقاطع مختلفی وجود دارد اما در این پژوهش از عملگر تقاطع دو نقطه­ای استفاده می­شود.

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

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

  • تابع برازش

تابعی است که در آن تعیین می­شود کدام کروموزوم نسبت به بقیه برتری دارد. در مسئله که پیش رو است تعیین می­شود که کدام ترکیب، ترکیب مناسب تری است. این تابع بر اساس معیارهای کیفیت سرویس میزان برازندگی یک سرویس ترکیبی با ساختار مختلف را محاسبه می­کند.

هر کروموزوم یک جواب مسئله است که در آن سرویس­های مختلف با یکدیگر ترکیب شده است و با استفاده از این تابع بهترین جواب مشخص می­شود.(دینگ و همکارانش،۲۰۱۵)



[۱] Service-Oriented Architecture(SOA)

[۲] eXtensible Markup Language (XML)

[۳] Simple Object Access Protocol(SOAP)

[۴] Web Services Description Language(WSDL)

[۵] Universal Description , Discovery and Integration(UDDI)

[۶] sequential

[۷] AND split(fork)

[۸] XOR Split(conditional)

[۹] loop

۳ Comments

نظر شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پاسخ من را به ایمیلم ارسال کن

پرفروش ترین محصولات

جدید ترین محصولات


مشاوره می خواهید؟ ما همیشه آنلاین هستیم. در هر حوزه ای در تلگرام یا واتس آپ با شماره تلفن 09367938018 ارتباط بگیرید
+
مشاوره می خواهید؟ ما همیشه آنلاین هستیم. در هر حوزه ای در تلگرام یا واتس آپ با شماره تلفن 09367938018 ارتباط بگیرید
+