ترجمه مقاله محدودیت های معماری سرویس گرا و ترکیب آن با رایانش ابری
محدودیت های معماری سرویس گرا و ترکیب آن با رایانش ابری
Limitations of Service Oriented Architecture and its Combination with Cloud Computing
چکیده: معماری سرویس گرا (SOA) از پرکاربرد ترین اصطلاحات است اما اشخاص شناخت عمیقی از آن ندارند. آنها گیج می شوند و آنرا با رایانش ابری ارتباط می دهند. در چند سال اخیر، رایانش ابری به یکی از تکنولوژی های درحال ظهور در صنعت IT تبدیل شده است. رایانش ابری ، منابعیست که قابلیت مقیاس پذیری پویا دارد درحالیکه SOA به معنی خدمات توام و آزادانه است. هر سرویسی مستقل از بقیه است و روی هم رفته می توانند سیستم کاملی را ایجاد کنند. این مقاله مروری بر رایانش ابری و SOA ارائه کرده و راه حلی بر مبنای ادغام SOA و رایانش ابری پیشنهاد میکند و نیز روشی ارائه میکند که در آن SOA باید با رایانش ابری ادغام شود تا محدودیت های SOA از بین رود. ترکیب ابر با SOA موجب تقویت دسترسی پذیری و قابلیت اطمینان SOA شده و سربار پیام آنرا کاهش می دهد.
اصطلاحات شاخص: رایانش ابری، معماری سرویس گرا، SOA، رایانش ابری سرویس گرا
سفارش ترجمه تخصصی مهندسی کامپیوتر
- مقدمه
در مقالات مختلف تعاریف متفاوتی از معماری سرویس گرا (SOA) ارائه شده است. از دیدگاه معماری، خدمات به صورت"روشی برای دسترسی به قابلیت های سیستم یا هر عملکرد منحصر به فردی تعریف می شود. برخی از واسط های استاندارد برای ارزیابی این توانایی ها استفاده شده و نیز قوانین از پیش تعریف شده ای برای ارزیابی این خدمات وجود دارد که در توضیح خدمات آمده اند". کرافزیگ و همکارانش سرویس را با توجه به مولفه های آن و بعنوان سازمانی برای پیشرفت استانداردهای اطلاعاتی ساختاریافته (OASIS) تعریف کرده اند. SOA مبتنی بر قسمت های نرم افزاری توام با یکدیگر و آزاد است که هر مولفه نرم افزاری خدمات خاصی را ارائه میکند. ایده اصلی SOA همکاری آزادانه و کپسوله کردن است. با این حال SOA فرم معماری ابری ندارد اما برای گرفتن حداکثر مزایا از SOA باید معماری سرویس گرا را با رایانش ابری ترکیب کنیم. این به ما در غلبه بر محدودیت های SOA کمک میکند.
مفهوم اصلی ابر ، تحویل سریع و مقیاس پذیری منابع است. منابع پیشنهادی رایانش ابری ، مقیاس پذیری زیادی دارند و مزیت دیگر دیگر رایانش ابری نسبت به رایانش های سنتی ، هزینه کم و مستقل بودن از مکان است.
گوگل، مایکروسافت و آمازون مهم ترین غولهای IT در ارائه رایانش ابری هستند. شرکت ها با استفاده از رایانش ابری می توانند هزینه های اصلیه را کاهش دهند و در عین حال از سایر مزایای آن مثل افزایش مقیاس پذیری ، کاهش سربار نگهداری و نصب نیز بهره ببرند. علاوه بر این ، رایانش ابری ، شفافیت مکانی و تصویرسازی از منابع را بهبود می دهد.
تعاریف بیشتری از رایانش ابری وجود دارد. این مقاله معماری سرویس گرا و رایانش ابری را بررسی میکند. برخی از محدودیت های SOA معرفی شده تا برطرف شوند.
- مروری بر SOA
- تعریف SOA
یکی از شکل های امید بخش توسعه کاربردهای سازمانی SOA است. در SOA، مولفه های مختلف توسعه برنامه کاربردی را می توان ترکیب کرد. عملکردهای تجاری که با SOA تحویل داده می شوند خود-توصیفگر هستند و از هر پلتفرمی مستقل می باشند. معماری سرویس گرا، همچنین مکانیزم های مشترکی برای این عملکردهای تجاری به روشی انعطاف پذیر ارائه میکند.
کنور و ریست SOA را یک چارچوب مجزا تعریف کردند که سرویس های چارچوب کاری با استفاده از آن ها ساخته، پیاده سازی و سازماندهی می شوند و در روند توسعه و زیرساخت های IT وارد می شوند. بعلاوه، این خدمات می توانند سازگار باشند که به این معناست که برنامه های کاربردی مختلف باید قادر باشند تا با هم برای تبادل داده ها و عملکردها، بخصوص در زمان اجرا کار کنند.
سفارش ترجمه تخصصی مهندسی کامپیوتر
سفارش ترجمه تخصصی مهندسی کامپیوتر
سفارش ترجمه تخصصی مهندسی کامپیوتر
می توان قابلیت های جدیدی را به کاربردهای کنونی اضافه کرد یا از قابلیت های آن نگهداری کرد اما تحقیقات کمی درباره ابزارهای حفاظت از SOA انجام شده است. برخی روشهای پویا ، توسط گروه هایی که هدف آنها شناخت SOA از نظر داده های داده های انبوه بوده است، ارائه شده. این داده ها را می توان با اجرای سیستم در یک محیط تست یا با توسعه آن در محیطی که هیچ اجرایی ندارد جمع آوری کرد. تحلیل داده های جمع آوری شده انجام می شود. این روشی قوی است اما می تواند در زمان مواجهه با سیستم های بزرگ ، سخت باشد.
از دیدگاه مهندسی و سازمانی ، معماری خدمات محور ، مزایای زیر را به همراه دارد:
- یکپارچه سازی مستقل از زبان: خدمات یک معماری سرویس گرا از استاندارد XML (زبان نشانه گذاری قابل توسعه) استفاده میکند که روی تغییر داده های بدست آمده به وسیله مولفه خاصی در فرمت XML و ارسال آن به سایر مولفه ها تمرکز دارد. زبانی که داده ها به آن زبان جمع آوری شده اند مد نظر قرار نمیگیرد.
- قابلیت استفاده مجدد از مولفه ها: SOA مبتنی بر مفهوم عناصر توام و آزاد است ، زمانی که این مولفه ها توسعه داده شوند می توان از آنها به صورت جداگانه استفاده کرد. از خدمات این مولفه ها میتوان با تضمین قابلیت اطمینان و امنیت آنها استفاده کرد.
علاوه بر این ، این خدمات را می توان برای بدست آوردن سیستمی جدید با توانایی های بیشتر که گاهی با عنوان "اورکستراسیون" یاد می شود ترکیب کرد.
- توسعه سریع برنامه های کاربردی: خدماتی که این مولفه ها ارائه میدهند با استفاده از معماری خدمات محور توسعه می یابد و برخی نیازهای تجاری سازمانها را برآورده میسازد.
این بلوک ها را میتوان مستقلا و هنگامی که سایر بلوک ها توسعه داده شدند استفاده کرد و به سرعت با هم یکپارچه ساخت.
- در بر داشتن مزایای سیستم های موجود: در معماری سرویس گرا، میتوانید سرویس های سیستم موجود و استانداردها را تعریف کنید. ما با کمک معماری سرویس گرا ، م یتوانیم سیستم های جدید را با سیستم های قانونی قدیمی تر ترکیب کنیم و با این کار ، هیچ نیازی به بازنویسی سیستم جدیدی نیست. این موجب کم شدن هزینه ها و زمان می شود. بنابراین سازمانها هیچ سرباری در توسعه سیستم جدید از هسته آن نخواهند داشت.
دلایل زیادی برای انطباق رایانش سرویس گرا در محیط سازمانی وجود دارد. خدماتی که یک رایانش سرویس گرا ارائه می کند قابلیت استفاده مجدد دارند و می توانند با سرویس های جدید یکپارچه شوند.
با این حال، این تکنولوژی ذاتا به معماری کلاینت/سرور وابسته است بنابراین مناسب محیط های معمولی نیست. دلیل اصلی آن این است که سرویس ها به خاطر شرایط ضعیف استراتژی های کانال در ذخیره انرژی و موقعیت ، مدام در دسترس نیستند.
- محدودیت های SOA (معماری سرویس گرا)
SOA مناسب توسعه در سناریوهای زیر نیست:
- وقتی که برنامه کاربردی ، یک موجودیت مستقل است و مجبور به یکپارچه کردن عناصر مختلف و برنامه ای که توزیع شده نیست ، نمی باشید.
- برنامه ای که نیاز به فراخوانی بر مبنای مکانیزم انتقال پیام ندارد.
- برنامه ای که عملکرد کاملی ارائه نمی کند یا اینکه به جای اینکه بعنوان سیستم کاملی کار کند فقط یک مولفه است و حوزه عمل محدودی دارد.
- برنامه ای که مدت زمان فعالیت کوتاهی دارد.
- برنامه ای که به شدت جفت شده درحالیکه جفت شدن سست نیز پیشنهاد نمی شود یا در نظر گرفتن آن بی معنی خواهد بود.
- استفاده از SOA در یک محیط همگن پیشنهاد نمی شود. مثلا اگر برنامه ها با استفاده از پلتفرم مشابهی مثل مولفه های J2EE ساخته شده باشند، برای یکپارچه کردن این برنامه های کاربردی، استفاده از XML روی HTTP امکانپذیر نخواهد بود
- معماری سرویس گرا مناسب برنامه هایی که مبتنی بر تبادل داده های سنگین اند مناسب نیست مثل نقشه هایی که در آنها داده های جغرافیایی زیادی کنترل می شوند.
جدول 1 برخی از کاستی های معماری سرویس گرا را لیست کرده است.
جدول 1: کمبودهای SOA و تاثیرات آنها
کمبود |
تاثیر |
افزایش نمایی اتصالات |
افزایش بار و سربار مدیریت به خاطر پروتکل کنترل انتقالات |
پیام دهی با فرمت XML |
پیام ها بخاطر اینکه پهنای باند و منابع بیشتری مصرف میکنند بزرگ اند |
قابلیت اطمینان |
به خاطر وجود چندین نقطه شکست، تعیین قابلیت اطمینان هر نقطه سخت است. عیب یابی نرم افزاری می تواند هم روی سرور و هم کلاینت تاثیر بگذارد |
مقیاس پذیری |
اضافه کردن کاربرد جدید سخت است و نیاز به توسعه بیشتر دارد |
سفارش ترجمه تخصصی مهندسی کامپیوتر
- مرور رایانش ابری
یک مدل رایانش ابری با منابع مقیاس پذیر و پویایی سرو کار دارد. در اکثر موارد ، رایانش ابری با عنوان استفاده از منابع بعنوان سرویسی برای انجام محاسبات مختلف نشان داده می شود. این منابع از طریق شبکه تامین می شود. رایانش ابری ، هزینه های نت را کاهش می دهد.
شکل 1: بررسی SOA
همچنین مزایای دیگری هست که با استفاده از رایانش ابری در دسترس قرار میگیرند. کاهش هزینه سخت افزاری، هزینه نگهداری و نصب سربار با دسترسی به سخت افزار و نرم افزار درون ابر از جمله آنهاست.
بعلاوه، چابکی سیستم، مقیاس پذیری و قابلیت اطمینان منابع را ارتقا می دهد. موقعیت ها و دستگاه ها مستقل از هم و کم هزینه اند و قابلیت سازگاری و قابلیت حمل اتوماتیک دارند.
سه لایه منحصر به فرد ابر به نوع منابع بستگی دارد که در شکل 2 نشان داده شده است.
- نرم افزار بعنوان سرویس (SaaS)
این بالاترین لایه است که برنامه را به کاربر ارائه میکند و اطمینان می دهد که کاربر می توان به سادگی از نرم افزار هاست اینترنتی بدون استفاده از منابعی مثل نصب و اجرای برنامه ها بر روی کامپیوتر محلی اش استفاده نماید. کاربر بر مبنای استفاده موثرش هزینه پرداخت میکند. هر آیتم داده ای یک قفل خواندن یا یک قفل نوشتن در بخش نرم افزار به عنوان سرویس دارد و مکانیزمی برای ابر توزیع شده و همگرایی ها وجود دارد.
SaaS دو نوع سرویس دارد:
- سرور پایدار اصلی :MCS
- سرور پایدار دامنه:DCS
امنیت MCS مهم ترین مورد است زیرا ممکن است در صورت خرابی MCS یا به خطر افتادن آن، کنترل محیط مختل شود.
- پلتفرم بعنوان سرویس (PaaS)
این لایه دوم است که دارای محیطی برای اجرای نرم افزاری است. سرور کاربردی PaaS سروری است که به توسعه دهندگان امکان ایجاد برنامه های مبتنی بر وب را بدون ایجاد یا تنظیم سرورهای واقعی می دهد. هدف این مدل حفاظت از داده هاییست که در چنین شرایطی اهمیت زیادی دارند که ما می توانیم ذخیره سازی به عنوان سرویس را در نظر بگیریم. هنگامی که فضای کمتری باشد با مسئله بی عدالتی در محیط ابری مواجه می شویم. برای اطمینان از تعادل بار خدمات، ایجاد امنیت در مقابل نفوذ مهم است. داده ها باید به خاطر دلایل امنیتی روی پلتفرم رمزنگاری شوند. مثلا PaaS ، موتور Google App است که به کاربران اجازه تنظیم پویای برنامه های وب را با استفاده از جاوا یا پایتون می دهد.
شکل 2: سه سرویس پایه ابر
- زیرساخت بعنوان سرویس (IaaS)
این لایه نشان دهنده اشتراک گذاری منابع سخت افزاری برای اجرای سرویس ها و استفاده کلاسیک از تکنیک ها مجازی سازی می باشد. در این روش کاربران زیادی می توانند از منابعی که در دسترس است استفاده کنند و آنها را برحسب تقاضا افزایش دهند. منابع IaaS، ماشین های حیاتی هستند که باید مدیریت شوند. یک چارچوب کنترلی برای کنترل آن ماشین در هنگام ایجاد و استفاده لازم است که از دسترسی غیر مجاز به اطلاعات خصوصی کاربر جلوگیری کند.
- متدهای توسعه رایانش ابری
در اکثر موارد رایانش ابر با استفاده از یکی از این چهار روش پیاده سازی می شود: ابر عمومی، اجتماعی، ترکیبی و خصوصی که در شکل 3 نشان داده شده است.
ابر عمومی: در شبکه های ابری عمومی، شخص سوم ، بیشتر به ارائه خدمات و سرویس های مختلف توجه دارد تا کنترل آنها. نصب و کنترل سرویس ها و اطمینان از دسترسی کاربران به این منابع با توجه به سیاست ها و استانداردهای ایجاد شده توسط ارائه کننده خدمات بر عهده خود ارائه دهنده است. لازم نیست که کاربر همه منابع را استفاده کند ، ممکن است برخی منابع بدون پرداخت هیچ هزینه ای ارائه شوند درحالیکه منابع اضافی بیشتر در ازای پرداخت هزینه توسط کاربر در صورت نیاز به استفاده از آنها در اختیار او قرار گیرد.
شکل 3: متدهای پیاده سازی رایانش ابری
ابر اجتماعی: ابرهای اجتماعی ابرهایی هستند که دسترسی فقط برای اعضای تعریف شده وجود دارد. آنها مشابه ابرهای عمومی اند ولی مفهوم اجتماع درمورد آنها در نظر گرفته می شود یعنی قلمرو وسیعی دارند.
ابر ترکیبی: این نوع ابرها برخی ویژگی های ابرهای عمومی و برخی ویژگی های ابرهای خصوصی را دارند. بنابراین می توانیم بگوییم که ابریست که ترکیبی از ویژگی های متعلق به ابر خصوصی یا عمومی را دارد. مسئولیت های سازمانی در میان ارائه دهندگان ابر و سازمانها ، توزیع می شود که معمولا باعث به نتیجه رسیدن مسئله می شود. این ساختار ابری در کنترل فرآیندهای مهم ، بهتر عمل میکند زیرا کاربر می تواند داده های حساس مهم اش را در ابر خصوصی ذخیره کند و برای کارهای عادی روزمره از یک ابر عادی استفاده نماید.
ابرهای خصوصی: این نوع ابرها در سازمانها استفاده می شوند. این سازمانها از این ابرها به صورت اختصاصی و خاص آن سازمان استفاده میکنند. در یک ابر خصوصی، سازمانها مسئممول حفاظت از ابر و ایجاد امنیت برای آن هستند. مسئولیت های اصلی نیز دربرگیرنده مسائل قانونی و توافقات تنظیمی است. امنیت ابر خصوصی اهمیت بیشتری نسبت به ابر های عمومی دارد.
رایانش ابری دارای ویژگی های خاصی است که در مقایسه با سایر فرمهای ذخیره سازی خارجی ، مزایای زیادی دارد. ابر ، ویژگی هایی دارد که در جدول 2 لیست شده است.
- همپوشانی ابر و SOA
SOA و رایانش ابر ویژگی های عمومی دارند. نقطه اشتراک SOA و رایانش ابری در جدول 3 نشان داده شده است.
جدول 2: ویژگی های ابر
ویژگی |
توضیحات |
سلف سرویس برحسب تقاضا |
IT بر حسب تقاضا و بدون هیچ نوع دخالت دستی در دسترس است و بعنوان یک سرویس استفاده می شود |
دسترسی وسیع به شبکه |
این سرویس، بدون توجه به دستگاه کاربر نهایی اماده ارائه در شبکه است. ارتباطات باید کارآیی بالایی در کنار دسترسی به خدمات داشته باشند |
ذخیره سازی منابع |
تامین کننده اطمینان می دهد که منابع لازم برای استفاده مشتریان از تکنولوژی هایی نظیر مجازی سازی و چندنخی وجود دارد |
انعطاف سریع |
منابع لازم را می توان به کرات فراهم شود و هنگامی که نیازی به آنها نیست بدون دخالت شخص، آزاد شوند. |
سرویس های اندازه گیری شده |
سرویسی که ارائه می شود باید با توجه به منابع قابل اندازه گیری باشد. به این ترتیب مصرف مبنی بر صورت حساب ایجاد می شود. که باعنوان هزینه دربرابر استفاده شناخته می شود |
جدول 3: نقاط اشتراک SOA و رایانش ابری
رایانش ابری |
نقطه اشتراک |
SOA ، خدمات وب |
نرم افزار بعنوان سرویس (SaaS) |
خدمات یا موله های لایه کاربرد |
سیستم تمرکز یکپارچه سازی سیستم ها |
محاسبه سود |
وابستگی به شبکه |
جامعیت یکپارچگی |
ترابایت برحسب تقاضا |
شبکه منطقه ای وسیع IP یا ابری (WAN) – استناد به سرویس های تحت پشتیبانی |
یکپارچه سازی کاربردهای سازمانی |
توزیع داده در ابر |
ارائه خدمات توزیع شده |
رشد مناسب |
پلتفرم بعنوان سرویس |
مدل تولیدکننده یا مصرف کننده |
استانداردهای پیاده سازی (REST,SOAP,WSDL,UDDI…) |
لایه های مختلف پشته |
سفارش ترجمه تخصصی مهندسی کامپیوتر
اینها مهم ترین ویژگی های اشتراکی SOA و رایانش ابری هستند و اشتراک اصلی آنها در بالاترین لایه ابر است که خدمات نرم افزاری و مولفه های کاربردی در دسترس اند. مفهوم رایجی که توسط SOA و رایانش ابری ارائه می شود ، سرویس گرا بودن است. انواع زیادی از خدمات توسط کاربران شبکه در دسترس اند.
رایانش ابری را می توان یک برون سپاری یا منبعی دانست که در آن ، سازمانها می توانند منابع مقایس پذیر را به صورت پویا از ارائه کننده ابر بخرند. مثلا اگر سازمانی نیاز به واحد ذخیره داده بزرگی داشته باشد ، می توان به صورت اتوماتیک ویژگی ذخیره داده آنلاین ابر به آنها تخصیص داده شود.
رایانش ابری مفهومی وسیع تر از SOA است و کل پشته را از لایه کاربرد تا سخت افزار پوشش می دهد. با این حال SOA فقط محدود به سخت افزار است اما گاهی بعنوان استانداردی برای خدمات وب به کار می رود.
- بررسی مشکلات
SOA مزایای زیادی دارد اما محدودیت هایی نیز وجود داد. اولین مسئله SOA سربار پیام رسانی است. SOA از فرمت پیام رسانی XML استفاده میکند که به اندازه کافی کارآمد نیست. سربار فرمت XML اطلاعات درون پیام خیلی بالاست و زمان زیادی برای کدگذاری و کدگشایی می گیرد که موجب افزایش سربار پردازشی و تاخیر می شود. برخی ابزارهای اتوماتیک XML هایی تولید میکنند که خطای زیادی دارند که باعث تاخیر در شبکه نیز می شود زیرا زمانی را برای انتقال بسته داده از یک نقطه به نقطه دیگر میگیرد و پهنای باند شبکه در حین این انتقالات کم می شود.
شکل 4: زیرساخت SOA
شکل 4 زیرساخت SOA را نشان می دهد. با اینکه برنامه نویسی SOA ساده است اما اینکه بفهمید آنرا خوب انجام داده اید یا نه سخت است. SOA از تکنیک انتقال پیام استفاده میکند و پیام بیشتر به معنی سربار پردازشی بیشتر است که می تواند به قطع اتصال منجر شود. اگر سروری متوقف شود و بعدا به کار برگردد ، درخواست های همزمان زیادی را از دست می دهد. همچنین مشکل همزمانی نیز دارد که به ندرت تست شده است. کارآیی کلی سیستم مهم است و تاخیر درخواست پیام قابل کنترل نیست. مولفه های SOA به خاطر اتصالات ضعیفشان ، در زمان اجرا خطا میکنند.
شکل 5: انتقال پیام در SOA
همانطور که در شکل 5 می بینید SOA چندین نقطه خطا دارد. هر سیستم دیگری که به SOA مرتبط است نیز نقاط شکستی دارد. زیرساخت سیستم نیز همین مشکل را دارد.
استفاده از معماری های سرویس گرا همیشه و هنگامی که سعی در بهبود عملکرد SOA دارید و نیاز به توسعه، طراحی و زیرساختهای بیشتر با هزینه بیشتری می باشد ممکن نیست . گاهی نمی توانید به خاطر جزییات ناکافی ، سیستمتان را تغییر دهید و اگر سیستم با تغییرات جدید انطباق نیابد سود تجاری خود را از دست می دهید.
- راه حل پیشنهادی
معماری سرویس گرا و رایانش ابری تا حدودی به هم مربوط اند. معماری سرویس گرا ، الگویی معماری ایجاد میکند که به ایجاد و ارائه راه حل های تجاری کمک میکند. در حالیکه رایانش ابر پلتفرم بسیار مقیاس پدیر و انعطاف پذیر با منابع پویایی برای معماری های سرویس گرا ارائه میکند. بنابراین SOA ور رایانش ابری همزمان وجود دارند و همدیگر را به تعادل می رسانند. یکی از مزیت های اصلی رایانش ابری ، اجرای کوئری های مشابه روی چند سرور است که نتایج آن سربار ارتباطی کمی دارد. رایانش ابری SOA معکوس هم هستند. در این مقاله ترکیبی از هر دوی آنها پیشنهاد شده است. بنابراین هرچیزی که در محیط معماری سرویس گرا اتفاق بیفتد به رویدادی در ابر فرستاده می شود. رویداد می تواند تراکنش داده یا درخواست سرویس یک کاربر باشد. درخواست می تواند برای هر منبع سخت افزاری یا داده ای ایجاد شود. بعلاوه با استفاده از معماری سرویس گرا و پیام رسانی ابری، سربار کاهش می یابد. بنابراین اضافه کردن سرویس جدید به برنامه کاربردی و منابع ، نیز با مقیاس پذیری بیشتری انجام می شود.
- نتیجه گیری و کارهای آتی
این مقاله راه حلی برای یکی از محدودیت های SOA ارائه میکند و از فرمت XML برای انقتال پیام استفاده میکند که پهنای باند بیشتری از شبکه میگیرد. این مقاله نقاط اشتراک ابر و SOA را شرح می دهد. ترکیب ابر و SOA با در نظر گرفتن سایر موارد ، موجب افزایش قابلیت اطمینان ، در دسترس بودن SOA و کاهش سربار پیام رسانی می شود. ما تمایل به پیاده سازی این راه حل برای معمار SOA مبتنی بر وب برای کارآتی داریم.