مقاله:استاندارد خدمات وب برای رایانش ابری: تفاوت میان نسخهها
(←سرویس) |
|||
خط ۵۶: | خط ۵۶: | ||
• Extensible Markup Language, XML یک زبان استاندارد و روشی خود تعریف برای کد کردن متن و داده است به طوری که محتوا با کمترین تعامل انسانی قابل دسترسی و قابل مبادله در بین طیف مختلف سخت افزارها، سیستم عامل و برنامه های کاربردی باشد. XML روشی استاندارد برای ارایه متن و داده در فرمتی که بتواند مستقل از پلت فرم استفاده شود، فراهم آورده است. همچنین می تواند با طیف گسترده ای از ابزار های توسعه و برنامه نویسی و ابزار های دیگر مورد استفاده قرار بگیرد. | • Extensible Markup Language, XML یک زبان استاندارد و روشی خود تعریف برای کد کردن متن و داده است به طوری که محتوا با کمترین تعامل انسانی قابل دسترسی و قابل مبادله در بین طیف مختلف سخت افزارها، سیستم عامل و برنامه های کاربردی باشد. XML روشی استاندارد برای ارایه متن و داده در فرمتی که بتواند مستقل از پلت فرم استفاده شود، فراهم آورده است. همچنین می تواند با طیف گسترده ای از ابزار های توسعه و برنامه نویسی و ابزار های دیگر مورد استفاده قرار بگیرد. | ||
سرویس های وب تعیین می کنند که داده چگونه از ایر به کلاینت ارسال شود. پروتکل های مختلفی در این رابطه وجود دارند که تعدادی از آنها را بررسی خواهیم کرد. به طور کلی SOAP و REST بهترین گزینه ها برای نیاز های ابری هستند. | سرویس های وب تعیین می کنند که داده چگونه از ایر به کلاینت ارسال شود. پروتکل های مختلفی در این رابطه وجود دارند که تعدادی از آنها را بررسی خواهیم کرد. به طور کلی SOAP و REST بهترین گزینه ها برای نیاز های ابری هستند. | ||
==فصل دوم: معماری سرویس های وب و نحوه همپوشانی آن با رایانش ابری== | |||
==== معماری سرویس های وب و نحوه همپوشانی آن با رایانش ابری=== | |||
====تعریف رایانش ابری==== | |||
درحالی که رایانش ابری در حال حاضر یک اصطلاح بدون یک اجماع معنا در بازار است که یک حرکت گسترده به سمت استفاده از شبکه های گسترده را توصیف میکند ، مانند اینترنت که برای تعامل بین ارائه دهندگان انواع بسیار سرویس IT و مصرف کنندگان است. ارائه دهندگان سرویس، خدمات در حال عرضه خود را شامل تمام پشته سنتی آی تی ، از سخت افزار و پلتفرم ها گرفته تا اجزای نرم افزار ، سرویسهای نرم افزار و کل برنامه های کاربردی را گسترش میدهند ، همانطور که در شکل 1 نشان داده شده است. نخ مشترک در تمام سطوح از پشته ارائه های رایانش ابری رابطه مصرف کننده/ارائه دهنده و یک وابستگی بر روی شبکه برای اتصال دوطرف میباشد. بازار تجاری ابر یک طیف گسترده ای از خدمات ابری که در پیچیدگی و ارزش متفاوت است را ارائه می دهد. شکل 1 سازماندهی این بازار را به صورت مجموعه ای کلی از دسته های لایه بندی شده خدمات ، در یک پشته متصورشده ، با ارائه های اساسی به سمت بالا و پیچیدگی بسیار به سمت پایین را ارائه می دهد. | |||
* Cloud Infrastructure: | |||
در پایین پشته ابر ، ساختار ابر اجزای فیزیکی چند سایت توزیع شده را برای پشتیبانی رایانش ابری مانند ذخیره سازی و پردازش منابع فراهم می آورد. این لایه به زیرساخت ارائه دهنده اجازه جزییات انتزاعی مانند سخت افزار دقیق برنامه ای که در حال استفاده است و کدام دیتاسنتر برنامه در حال اجرا هست را میدهد. پیشرفت در فن آوری های مجازی سازی سرور برآمده از این لایه از پشته بسیار کارآمد تر از سالهای گذشته اجازه استفاده بیشتر از پردازش منابع از آنچه قبلا عملی شده است را میدهد. مفاهیم ماشین مجازی نیز به جدایی مفید از جزییات پیاده سازی سخت افزاری اصولی از نظر توسعه دهندگان ، و توانایی بخشیدن به سرعت بیشتر مقیاس پذیری منابع سرور در پاسخ به تغییر تقاضا (changing demand) را فراهم می آورد. | |||
* Cloud Storage—Storage as a service: | |||
ساخت بر روی زیرساخت ابر ، این لایه از پشته ابر بر روی اجاره افزایشی از ذخیره سازی بر روی اینترنت ، که قبلا رایانش همگانی نام گذاری شده تمرکز دارد. بسیاری از ارائه ها در این زمینه نیز با پیشرفتهای اساسی در مجازی سازی سرور روبرو شده است. در مقیاس بزرگتر مبتنی بر شبکه ذخیره سازی در تقاضا مانند این لایه از رایانش ابری میباشد. برخی از ارائه ها فراتر از این و ارائه پلتفرمها برای ارائه دهندگان سرویس شامل ذخیره سازی ، امنیت ، مدیریت هویت و دیگر عملکردها میشود. یک مثال خوب از این نوع ارائه Amazon Simple Storage Service (Amazon S3) سرویس ذخیره سازی ساده آمازون میباشد. Amazon S3 ذخیره سازی برای اینترنت را ارائه میدهد که برای محاسبات آسانتر در مقیاس وب برای توسعه دهندگان نرم افزار طراحی شده است. Amazon S3 یک اینترفیس وب سرویس که میتواند برای ذخیره و بازیابی داده در هر زمان از هر جا بر روی وب استفاده شود را ارائه میدهند. S3 دسترسی به مقیاس پذیری و ذخیره سازی قابل اعتماد داده ها را برای یک هزینه میدهد. S3 در پیاده سازی ، آستانه تحمل و ساخت از یک مجموعه ای از اینترفیسهای ساده و بسیار granular غیرمتمرکز است. | |||
* Cloud Platform—Platform as a service: | |||
ارائه دهندگان پلتفرم زیرساختی برای توسعه و اجرای نرم افزار برنامه های مبتنی بر وب را فراهم میکنند. مثالها عبارتند از امکانات برای طراحی برنامه ، توسعه برنامه ، تست ، استقرار و هاستینگ و همچنین سرویسهای برنامه مانند همکاری تیم ، امنیت ، نسخه گذاری برنامه و ابزار برنامه میباشد. تیم توسعه دهنده اغلب از طریق مرورگر خود با ورود به پلتفرم مجازی ابر ، باهم کار میکنند. سرورهای مجازی در حال اجرا در ابر میتوانند شامل وب سرویسها ، برنامه های سرورها و موتورهای دیتابیس ها باشند. برای برخی از ارائه دهندگان ، اینترفیسهای برنامه نویسی نرم افزار (API ها) به عملکردهای مبتنی بر وب از پیش تعریف شده ارائه شده اند. ProgrammableWeb.com لیست بیش از 600 API که بر روی اینترنت در سال 2008 با گوگل مپ ، فلیکر ، آمازون ، و یوتیوب را که بزرگترین سهم بازار از Calls را به اشتراک گذاشته است. ارائه دهندگان پلتفرم بطور کلی بخشی از یک معماری چند مستاجره که در آن بسیاری از سازمانهای نامربوط ممکن است توسط برخی از همان زیرساخت پلتفرم پشتیبانی شوند را متصور میشوند. پلتفرم ها میتوانند بوسیله اضافه کردن پردازش و ذخیره سازی منابع بصورت پویا از رشد در خواسته های عملیاتی برای یک وب اپلیکیشن مشتری خاص پشتیبانی کرده و مقایس پذیر شوند. بعنوان مثال از یک ارائه پلتفرم Force.com است که بعنوان یک نرم افزار ارائه دهنده پشتیبانی از SalesForce.com آغاز کرده است. API ها و ابزارهای توسعه برای پشتیبانی از برنامه SalesForce بیشتر ابزارهای کلی پلتفرم را برای هر مشتری ارائه دهنده نرم افزار مبتنی بر اینترنت فراهم میکند. | |||
* Cloud Services—Components as a service: | |||
این لایه از پشته رایانش ابری شامل تعریفی از اجزای نرم افزار ، اجرای آن در یک مد توزیع شده ، سراسر اینترنت تجاری میباشد. این تعریف بیشتر شبیه SOA است که زیر مورد بحث ، با اینترفیسهای سرویس تعریف شده بعنوان پایه ای برای یکپارچه سازی سیستم به سیستم میباشد. | |||
* Cloud Applications—Soft ware as a service(SaaS): | |||
این تعریف مبتنی بر ابر برای دسترسی به آنچه که بطور سنتی در محل دسکتاپ نرم افزار است ، خواهد بود. بعنوان مثال ادوب فتوشاپ ، یک برنامه برای دستکاری تصاویر ، به کاربران نهایی بر روی سی دی ها برای سالهای سال توزیع شده بود. امروزه ، شما همچنان میتوانید یک نسخه از فتوشاپ را از دیسک نصبی آن ، نصب کنید ، یا شما میتوانید به یک نسخه کاملا آنلاین از برنامه مشابه ، تحت عنوان اکسپرس (Express) بروید. در اکسپرس آنلاین ، شما میتوانید عکسهایتان را در یک فایل محیطی هاست آپلود کرده و کار بر روی تصاویر با برخی فیلترها و قابلیتهایی که در نسخه نرم افزار سنتی آن است ، را انجام دهید. اکسپرس بعنوان مثالی از SaaS است ، اگرچه این تنها شکل به طول کشیدن (can take) SaaS نیست. برای مثال ، ارائه دهندگان برنامه های وب گوگل ، مانند جی میل ، تقویم گوگل ، تالک ، داکز و سایتها ، با عملکرد مشابه نرم افزارهای سنتی اداری است. | |||
یکی از مزایای این روش این است که برنامه را میتوان بصورت مداوم بوسیله ارائه دهنده نرم افزار بدون مشکلی و خرید دیسکهای نصبی ، بروزرسانی کرد. هربار که کاربر به سایت لاگ کرد ، کاربر آخرین نسخه از برنامه را خواهد گرفت. همچنین ارائه دهنده نرم افزار نیز یک وب اپلیکیشن بسیار مقیاس پذیر با استفاده از یک معماری چند لایه وب ، بر روی زیرساختهای قابل توجه پیاده سازی میکند. معایب آن شامل وابستگی کامل بر روی شبکه های زیربنایی برای دسترسی به برنامه میباشد. هنگامی که شبکه دان (پایین) است ، کاربر نمیتواند کاری با برنامه مبتنی بر شبکه انجام دهد. در مقابل نسخه دسکتاپ از نرم افزار نیاز به اتصال شبکه برای کار تولیدی ندارد. | |||
Software as a Servis (SaaS) یک مدل از توسعه نرم افزار است که در آن نرم افزار بعنوان یک سرویس هاست شده (hosted) به مشتریان در سراسر اینترنت ارائه میشود. با برطرف نمودن نیاز به نصب و اجرای برنامه بر روی کامپیوتر شخصی مشتریان ، SaaS بار مشتریان (فشار روی مشتری ناشی از ) را از تعمیر و نگهداری نرم افزار ، عملیات در حال انجام (ongoing) و پشتیبانی را کاهش میدهد. در مقابل ، مشتریان کنترل نسخه نرم افزار یا تغییرات لازم را واگذار میکنند. علاوه بر این ، هزینه های استفاده از سرویس به یک هزینه مستمر بجای هزینه تنها در زمان خرید تبدیل میشود. (ارجاع به SaaS در ویکیپدیا) | |||
با SaaS به مقدار قابل توجهی از پردازش در اینترنت "ابر" در دیتا سنترهای از راه دور و نه بر لوکال دسکتاپ رخ میدهد. لوکال دسکتاپ در درجه اول یک layer device (لایه دستگاه) در این سناریو ارائه میدهد. با استفاده از بسیاری از برنامه های نرم افزاری آنلاین ، کاربر پردازشهای در حال توزیع از طرف آنها در سراسر پردازنده ی ابر بوسیله نرم افزار ارائه سرویس پراکنده میشود. بعنوان مثال ، در پایگاه ویکیپدیا ، رایانش ابری یک سبک از محاسبات مربوط به قابلیتهای آی تی است که یک سرویس را به کاربران اجازه میدهد برای دسترسی به خدمات فناوری فعال از اینترنت (در ابر) بدون دانشی از تخصص و یا کنترل بر زیرساختهای فناوری که آنها پشتیبانی میکنند را ارائه میدهد. | |||
====سرویس های وب و رایانش ابری==== | |||
=====مدل های سرویس رایانش ابری===== | |||
با این حال ، ارائه دهندگان ابر از انواع مختلف مدلهای سرویس و برخی از مدلهای سرویس پایدار به سود بیشتر از استانداردسازی از دیگران استفاده میکنند. بر اساس سرویس هایی که ابر فراهم میکنند ، سه نوع مدل رایانش ابری وجود دارد. زیرساختی از یک سرویس IaaS، پلت فرمی از یک سرویس PaaS، و نرم افزاری از یک سرویس SaaS. ادامه این بخش به چگونگی بهرمند شدن از استانداردسازی IaaS , PaaS و SaaS میپردازد. | |||
Infrastructure as a Service (IaaS) : | |||
IaaS یک مدل سرویس است که بیشترین سود از استانداردسازی را میبرد زیرا بلوکهای ساختمان اصلی IaaS بعنوان نماینده حجم کاری (work-load)از تصاویر ماشین مجازی و واحدهای ذخیره ای که متفاوت از data-typed از داده های خام باشد. برای انتقال حجم کار ، تلاشهای استانداردها مانند OVF و VHD به کاربران اجازه میدهد تا یک تصویر را از یک ارائه دهنده استخراج کرده و آن را درارائه دهنده دیگری آپلود نماید. با توجه به اینکه اکثر ارائه دهندگان IaaS به مشتریان اجازه نصب و اجرای هر پلتفرمی را میدهند ، یک manual (راهنمای) بیشتر و زمان گیر از انتقالی که برای بازیابی عکس از ارائه دهنده فعلی میخواهند ، یک عکس جدید در ارائه دهنده جدید ایجاد و نرم افزار مجدد نصب میگردد. این manual (راهنمای) انتقال نبایستی نیازمندی استانداردها را تازمانی که راهی برای بازیابی جایگاه برنامه (بعنوان مثال داده برنامه ها ، فایلها ، پردازشهای در حال اجرا) از عکس منبع و حرکت به یک عکس جدید را انجام دهد. | |||
برای انتقال داده ، تلاشهای استانداردها مانند CDMI و API آمازون S3 ، که پشتیبانی ارائه دهندگان متعدد را دارد ، کاربران را برای استخراج داده از یک ارائه دهنده و بارگذاری آن در یک ارائه دهنده متفاوت قادرمیسازد. اگر یک ارائه دهنده این رابط استانداردها را با استفاده از SOAP – یا پروتکل های مبتنی بر REST پیاده سازی کند ، ابر مزایای استفاده از سهولت توسعه و در دسترس بودن ابزار را ارائه خواهد داد. با این حال ، این استانداردها بیشتر برای داده های خام که not typed (تایپ شده نیستند) مفید است (بعنوان مثال عکسهای ماشین مجازی ، فایلها ، blobs (حبابها) ) زیرا منبع ابر در این مورد صرفا بعنوان یک ظرف عمل کرده و معمولا نیازی به انتقال داده ندارد. برای داده های تایپ شده (typed data) ، انتقال داده مشابه هر انتقال داده دیگری رخ میدهد وظیفه: کاربران باید داده را از منبع اصلی استخراج کرده ، و بازگزاری کنند در منبع هدف ، که میتواند یک فرآیند پیچیده باشد. تلاش موردنیاز برای تحول نیز بستگی دارد به عواملی مانند شباهت بین اهداف و منابع تکنولوژیهای ذخیره سازی داده (بعنوان مثال ، انتقال از یک دیتابیس سازگار با SQL به دیگری آسانتر از آبجکت دیتابیس به یک پایگاه داده رابطه ای یا بعلکس خواهد بود) و مشابه اینترفیس عملیاتها (بعنوان مثال ، دو اینترفیس مبتنی بر SOAP میتوانند عملیات کاملا متفاوتی را داشته باشند). | |||
IaaS زیرساخت بعنوان یک سرویس عمدتا شامل زیرساخت های در دسترس محاسباتی بر روی اینترنت مانند چرخه محاسبه و ذخیره سازی میشود. IaaS به سازمانها و توسعه دهندگان اجازه میدهد تا به گسترش تقاضاهای زیرساخت های فناوری اطلاعات بپردازد. نمونه هایی از ارائه های IaaS به ترتیب حروف الفبا عبارتند از : | |||
Amazon Elastic Compute Cloud (EC2) : ماشین های ویژه مجازی ، بنام ماشین عکسهای آمازون AMI ، که میتواند بر روی زیرساختهای EC2 توسعه یافته و اجرا شود. | |||
Amazon Simple Storage Solution (S3) : منابع ذخیره سازی بصورت مقیاس پذیری پویا | |||
Amazon’s other data-related offerings : ذخیره سازی الاستیک بلوک ، که حجم ذخیره سازی در سطح بلوک را برای استفاده با موارد EC2 آمازون فراهم میکند ، SimpleDB که یک منبع داده های غیررابطه ای است ، و منبع داده های ارتباطی که یک منبع داده رابطه ایست. | |||
GoGrid Cloud Servers : محاسبات مقیاس پذیر به صورت پویا و ذخیره سازی منابع | |||
Rackspace Cloud Servers : محاسبات بصورت پویا مقیاس پذیر ، ذخیره سازی و منابع موازنه بار | |||
PaaS بر روی پلتفرمهای توسعه یافته نرم افزار است که اجازه استفاده از منابع خارجی برای ساخت و برنامه های میزبان (هاست) را می دهد. نمونه هایی از ارائه های PaaS به ترتیب حروف الفبا عبارتند از : | |||
CloudBees : پلتفرمی برای ساخت ، استقرار و مدیریت برنامه های جاوا | |||
Engine Yard : پلتفرمی برای ساخت و گسترش برنامه های Ruby و Php که میتوانند با افزودنی ها گسترش یابند. | |||
Google App Engine : پلتفرمی برای توسعه و اجرای جاوا ، Python و برنامه های Go که بر روی زیرساختهای گوگل است. | |||
Heroku : پلتفرمی برای استقرار برنامه های جاوا ، Ruby ، پایتون ، Clojure ، Node.js و Scala که میتوانند با افزودن (add-ons) به منابع گسترش یابد. | |||
Microsoft Windows Azure : بر روی تقاضای محاسبه و ذخیره سازی سرویسها و همچنین بعنوان یک توسعه و استقرار پلتفرم برای برنامه هایی که در ویندوز اجرا میشوند. | |||
Salesforce Force.com : پلتفرمی برای ساخت و اجرای برنامه ها و قطعات خریداری شده از AppExchange یا برنامه های سفارشی | |||
SaaS یک مدل از استقرار و بکارگیری نرم افزار است که در آن شخص سوم نرم افزار به مشتریان برای استفاده از یک سرویس مبتنی بر تقاضا را فراهم میکند. نمونه هایی از ارائه های SaaS به ترتیب حروف الفبا عبارتند از : | |||
Google Apps : ایمیل وب بیس ، تقویم ، مدیریت اسناد و ایجاد و مدیریت وب سایتهای مبتنی بر وب | |||
Microsoft Office 365 : ایمیل تقویم ، برنامه های مبتنی بر وب آفیس ، وب کنفرانس و اشتراک فایل | |||
NetSuite : برنامه های نرم افزاری مدیریت کسب و کار که شامل حسابداری ، برنامه ریزی منابع سازمانی ERP ، مدیریت موجودی ، مدیریت ارتباط با مشتری CRM و تجارت الکترونیکی | |||
Salesforce : نرم افزار برنامه های CRM | |||
SurveyTool : پلتفرم نظرسنجی مبتنی بر وب برای جمع آوری بازخورد از کارکنان ، مشتریان ، گروه تمرکز یا هر کاربر فعال پایگاه | |||
Zoho : مجموعه زیادی از برنامه های مبتنی بر وب ، بیشتر برای استفاده شرکتها | |||
Platform as a Service (PaaS) : | |||
فواید مدل سرویس PaaS از استانداردسازی IaaS کمتر است. سازمان هایی که PaaS را خریده اند برای مزایای درک شده از پلت فرم توسعه انجام داده اند. این پلتفرم قابلیت های بسیاری در خارج از باکس ، مانند محیطهای مدیریت برنامه ، احرازهویت کاربر ، ذخیره سازی داده ، پیامهای قابل اعتماد ، و دیگر قابلیتهایی که در مقابل کتابخانه هایی که میتواند برنامه ها را یکپارچه کند ارائه میدهد. این قابلیت به یک زبان خاص و زمان اجرای محیط گره خورده است. برای مثال موتور برنامه های گوگل پشتیبانی میکنند از برنامه هایی که در محیطهای جاوا ، پایتون و گو نوشته شده است. مایکروسافت Azure پشتیبانی میکند از برنامه هایی که در محیط دات نت و بیشتر برنامه هایی که در محیط جاوا ، پی اچ پی و نود دات جی اس نوشته شده است. | |||
انگیزه ها برای اتخاذ PaaS در درجه اول توسعه سریع و استقرار و پتانسیل برای این برنامه هایی که به تعداد بیشتری از مشتریان خدمات میدهند ، میباشد. درخواست خرید به یک ارائه دهنده Paas به معنای خرید از یک پلتفرمی در همان راهی است که سازمان ها به طور سنتی دارند ، مبتنی بر ارزش افزوده ، مهارتها ، و هر معیار دیگری است. | |||
ارائه دهندگان میتوانند برنامه ها را با انتخاب پلتفرم هایی که از ابزارها و زبانهای بیشتر استاندارد شده پشتیبانی میکنند ، مانند آنهایی که مبتنی بر زبانهای جاوا یا اینترفیس های دسترسی به داده استاندارد ، شامل اتصال به پایگاه داده جاوا (JDBC) ، اتصال به پایگاه داده باز (ODBC) و SQL ، را سازگارتر کنند. با این حال ، حتی در میان ارائه دهندگانی که از همان زبانهای برنامه نویسی پشتیبانی میکنند ، اینترفیس هایی وجود دارد بر پایه سرویسهایی مانند احرازهویت ، فایلها ، صف ها ، توابع هش ، و وظایف ، که ممکن است سازگار نباشند. علاوه بر این ، گزینه های بومی ممکن از قویتر از گزینه های استاندارد شده باشند. (بعنوان مثال ، سود بیشتری که اتخاذ یک تصمیم میتواند ایجاد انگیزه کند). برای مثال ، داده ها به طور پیشفرض در موتور برنامه گوگل ذخیره میشوند که تکرار بالایی در انبارداده دارند که به طور خودکار تکرار همه داده های دیتاسنترها را ارائه میدهند. یک کاربر میتواند به منبع داده با یک API استاندارد یا یک API سطح پایین دسترسی داشته باشد. این مبادله ایست که API استاندارد در بیشتر برنامه های پرتابل مهیا میسازد اما کنترل کمتر و ارزش افزوده ارائه دهنده خاص کمتر ویژگیهایست که API سطح پایین ، و در نتیجه پایینترین مخرج مشترک برای ویژگیها را ارائه میدهد. | |||
Software as a Service (SaaS): | |||
SaaS یک مدل تا حدودی متفاوت از IaaS و PaaS میباشد زیرا یک موافقت نامه صدور مجوز به نرم افزار شخص ثالث بجای یک مدل استقرار متفاوت برای منابع موجود در محدوده ای از ذخیره سازی داده تا برنامه ها است. | |||
مزایای استانداردسازی برای SaaS حتی محدودتر از PaaS میباشد. برای SaaS ارائه هایی مانند Salesforce.com CRM میشود ، کاربر ، کاربرنهایی (end user) است. با این حال ، دیگر ارائه های SaaS مانند نقشه های گوگل یا یاهو اجتماعی (Yahoo Social) که در آن کاربر میتواند به یک توسعه دهنده که ادغام قابلیتها از این سرویسها به دیگر برنامه ها را پیدا کند ، وجود دارد. در مورد دوم ، APIهای استاندارد شده مفید هستند زیرا آنها فرآیند توسعه را تسهیل میبخشند. با این حال ، مگر اینکه APIها از دیدگاه عملکردی یکسان هستند ، این استانداردسازی کمی به انتقال کمک میکند. | |||
انتقال برای این مورد هنگامی است که کاربر SaaS کاربرنهایی بوده باشد در همان راهی که با هر انتقال نرم افزار رخ میدهد زیرا هر ارائه دهنده SaaS منطق پردازش خود را دارد ؛ این به سادگی یک راه مختلف برای مجوز نرم افزار است. در این مورد ، تنها منطقه ای که SaaS از استاندارد سازی مفید میباشد ذخیره سازی داده است زیرا مهمترین نگرانی برای مصرف کنندگان SaaS ، خصوصا برای شرکت نرم افزاری SaaS مانند CRM یا منابع انسانی ، چگونگی استخراج داده های خود است. | |||
در یک حادثه که بطور گسترده به اطلاع عموم رسید ، سرویس ذخیره سازی آنلاین شات دان شد و یک ارائه دهنده SaaS 45% از داده های مشتری خود را از دست داد. در این مورد ، مصرف کننده مجبور به استخراج داده های خود از ارائه دهنده SaaS شد ، ارسال منطقی داده های متحول شده و سپس بارگزاری داده ها به یک ارائه دهنده SaaS جدید ، انجام شد. APIهای استاندارد شده میتوانند بطور بالقوه این کار را آسانتر کنند. | |||
=====مقایسه رایانش ابری و SOA===== | |||
نمودار ون زیر روابط بین وب سرویسها ، ساختار سرویس-اورینتد (SOA) و رایانش ابری را نشان میدهد. وب سرویس معرف رایانش ابری در این نمودار است زیرا رایانش ابری از وب سرویس برای اتصال به شبکه استفاده میکند. ( ممکن است شما استثنا پیدا کنید اما آنها بسیار نادر هستند.) این امکان وجود دارد ، با این حال ، وب سرویس ها در شرایط دیگری از رایانش ابری استفاده میشوند. این قبیل استفاده از وب سرویس ها ممکن است بخشی از یک ساختار سرویس-اورینتد باشد ، اما این ممکن نیست. وب سرویس ها میتوانند به سادگی یک کانکشن باشند. نهایتا ممکن است یک معماری سرویس-اورینتد و نه استفاده وب سرویسها برای ارتباطات را داشته باشید. | |||
رایانش ابری و SOA در نگرانی ها و ملاحظات مشترک تداخل و همپوشانی دارند ، همانطور که در شکل 4 نشان داده شده است. مهمترین همپوشانی در نزدیکی بالای پشته رایانش ابری رخ میدهد ، در این منطقه از سرویسهای ابری شبکه، در دسترس اجزای برنامه و سرویسهای نرم افزاری میباشد ، مانند وب سرویسهای معاصر. | |||
======تعامل با وب سرویس====== | |||
کشف سرویسهایی که از استانداردهای تکنولوژی موجود استفاده میکنند عمدتا وظیفه جستجو بر اساس کلیدواژه را در شرح سرویس پیچیده کمتر یا بیشتر را دارد. این فراتر از محدوده این مقاله به اظهارنظر در تمام مشکلاتی که هنگام تلاش برای کشف سرویسها برای کاربر رخ میدهد میباشد. امروزه تکنیکهای مورد استفاده کاربر بعنوان مثال استفاده از عبارات دقیق و شناخت کامل آن، توسط استانداردهایی مانند WSDL ارائه شده است. ارتقای این وضعیت بوسیله چند روش تکنیکهای موجود برای تطبیق شناخت کامل و یا گسترش توسط اصطلاحنامه مناسب داده شده است. در ادامه ما با انتخاب task سرویسهای مناسب برخورد خواهیم کرد که پس از کشف یک سرویس مطابق task یک کاربر علاقمند ، به همراه خواهد داشت. | |||
رایانش ابری و SOA هردو مفاهیمی از سرویس اورینتیشن را به اشتراک میگذارند. انواع بسیاری از سرویسها بر روی یک شبکه عمومی برای استفاده مصرف کنندگان در دسترس است. رایانش ابری بر روی تبدیل جنبه های محاسباتی پشته آی تی به کالا که میتواند بصورت تدریجی از ارائه دهندگان کلودبیسد (مبتنی بر رایانش) خریداری کرده و بتواند یک نوع از انواع بسیاری از برون سپاری را درنظر بگیرد ، تمرکز دارد. برای مثال ، مقیاس بزرگ ذخیره سازی آنلاین را میتوان تهیه و بطور خودکار در واحد ترابایت از ابر اختصاص داد. بطور مشابه ، یک پلتفرم مجری برنامه های مبتنی بر وب را میتوان از دیتاسنتر های از کارافتاده (برکنارشده) در ابر اجاره کرد. بهرحال ، رایانش ابری درحال حاضر یک واژه گسترده تری از SOA و تمام پشته از سخت افزاری که از طریق لایه سیستمهای نرم افزاری اجرا میگردد را دربرمیگیرد. SOA اگرچه از نظر مفهومی به نرم افزار محدود نیست ، اغلب در عمل بعنوان قطعه ها یا سرویس های نرم افزار پیاده سازی میشود ، بعنوان نمونه ای در استانداردهای وب سرویس در بسیاری از پیاده سازیها استفاده شده است. این قطعات میتوانند با یکدیگر و در بسیاری از پلتفرمهای سراسر شبکه برای ارائه یک عملکرد تجاری ادغام شوند. | |||
=====به کارگیری سرویس وب پویا در یک محیط ابری===== | |||
برای استفاده از سرویس های وب، نیاز به استقرار آن ها می باشد. فقط تصاویر سرور ها در فضای کاری ابر آپلود می شوند، و مشخصات جریان کاری که برای آنها ایجاد شده است، توانایی برقرای ارتباط با مراحل مختلف فرآیند اجرایی را دارا می باشند. برای فرآیند مذکور، دو نوع استقرار مورد استفاده قرار می گیرد. تصویر TAVERNA به عنوان یک سرور اختصاصی و TICCLOPS و تصویر FROG، به عنوان سرویس های وب پویا به کار گرفته شده اند. | |||
به منظور دستیابی به سناریوی استقرار پویا، سرویس های مورد نظر فقط در زمان نیاز به آن ها درخواست و در قسمتی از جریان کاری استفاده می شوند. این دو سرویس، برای مدیریت پیکربندی جریان کاری و مدیریت بکارگیری تصاویر و فرآیند تخریب، ایجاد شده است. زمانی که یک جریان کاری به سمت سرویس اول ارسال می شود، ارزیابی می شود که آیا هر یک از سرویس های مندرج در فرآیند جریان کاری، ماهیت پویا دارد یا خیر. |
نسخهٔ ۲۳ آوریل ۲۰۱۵، ساعت ۰۵:۲۶
web services standards for Cloud
چکیده
این تحقیق جهت ارایه در کنفرانس جامعه آزاد رایانش ابری ایران تدوین گشته است. در طی این تحقیق، ضمن آشنایی با اهمیت استاندارد های رایانش ابری و همچنین دسته بندی کلی آن، به معرفی معماری سرویس های وب پرداخته خواهد شد. و در ادامه استانداردها و پروتکل های مهم سرویس های وب در رایانش ابری، به تفصیل مورد بررسی قرار می گیرد.
فصل اول:مقدمه ای بر استاندارد های ابری
مقدمه ای بر استاندارد های ابری
استاندارد ها برای محیط های رایانش ابری اهمیت زیادی دارند و امکان اتصال به ابر، توسعه و ارائه محتوا را فراهم می کند. رایانش ابری و SOA هردو یک سازمان با یک فرصت مناسب برای انتخاب استانداردهای رایج و مشترک برای قابلیتهای در دسترس شبکه را فراهم میکنند. SOA یک مجموعه نسبتا بالغ شده ای از مجموعه استاندارد هایی که با سرویسهای نرم افزار پیاده سازی ، مانند REST ، SOAP ، و WSDL در میان بسیاری دیگر را داراست. رایانش ابری بالغ نیست (کامل نیست) ، و بسیاری از اینترفیسهای ارائه شده به یک فروشنده خاص منحصربفرد (یونیک) هستند ، درنتیجه خطر ابتلا به فروشنده قفل (vendor lock-in) افزایش میابد. سیمون واردلی مینویسد : توانایی سوییچ بین ارائه دهندگان، بزرگترین نگرانیهای ناشی از استفاده مثل ارائه دهندگان سرویس ، عدم یافتن منابع گزینه های دوم و ترس از فروشنده قفل در (vendor lock-in) برتری میابد (و نقاط ضعف متعاقب آن در کنترل استراتژیک و عدم رقابت قیمت گذاری) . این احتمال وجود دارد که در طول زمان ارائه ها (Offerings) در هر لایه در پشته همگن تر شود. واردلی در ادامه مینویسد : محاسبات پشته ، از برنامه هایی که ما مینویسیم ، به پلتفرم هایی که ما ایجاد میکنیم ، برای سیستم عامل هایی که ما استفاده میکنیم درحال حاضر از یک محصول به اقتصاد مبتنی بر سرویس حرکت میکند. این شیفت (تغییر – انتقال) به سمت سرویسهایی که به استانداردسازی سفارشات کمتر (lower orders) از محاسبات پشته اجزای ارائه دهنده اینترنت، رهبری میشود.
تلاش ها و فعالیت های انجام شده در حوزه استانداردهای رایانش ابری
بسیاری از پروژه های ابری که وجود دارد شاید بیش از حد هستند. برخی از این پروژه ها در بخشهای استانداردسازی از یک سولوشن رایانش ابری مانند حجم کار (workloads) ، احراز هویت و دسترسی به داده ها تمرکز میکنند. تلاشهای دیگر در چگونگی استاندارد سازی قسمت هایی که باید باهم بعنوان یک راه حل کار کنند، تمرکز میکنند. استانداردهای ابر هماهنگ Wiki یک لیستی از این پروژه ها را حفظ میکنند.
1. HTML/XML 2. WSDL/SOAP 3. SAML/XACML 4. OAuth/OpenID 5. OData 6. OVF 7. OpenStack 8. CAMP 9. CIMI 10. ODCA – SuoM 11. SCAP 12. ISO 27001 13. ITIL 14. SOC 15. Tier Certification 16. CSA CCM
درحالیکه این لیست کامل نیست ، نشانه هایی از تنوع ، تعداد و همپوشانی از پروژه های مربوط فعلی با استانداردها را برای ایجاد قابلیت همکاری رایانش ابری فراهم میکند.
استاندارد سازی برای کاهش پیچیدگی
رایانش ابری بیش از همه مدل های دیگر بر روی کارآیی تاکید دارد، بنابراین در صورت رعایت برخی استاندارد ها و پیکربندی های استانداردها به کاهش هزینه های استقرار و نگهداری کمک می کند. وجود استاندارد هایی که استقرار برنامه را آسان کند، مهمتر از داشتن یک محیط کامل برای کار کردن است.
= چهار دسته کلی استاندارد ها
در این بخش، دسته بندی کلی و رایجی که در زمینه استاندارد های رایانش ابری مورد استفاده قرار می گیرد را بررسی می کنیم.
ارتباطات
رایانه ها نیاز به روشی دارند که بتوانند با همدیگر صحبت کنند. ارتباطات را می توانید همانند صحبت کردن از طریق تلفن با یک شخص دیگری که فارسی صحبت نمی کند و شما متوجه زبان آن نمی شوید در نظر بگیرید. بنابراین راهی برای فهمیدن همدیگر ندارید. شاید بتوانید بعضی کلمات را حدس بزنید، اما در کل مکالمه پیش نمی رود. در رایانه ها هم موضوع از همین قرار است. البته اگر زبان آنها مشترک نباشد، حتی یک کلمه را هم نمی توانند تشخیص دهند. بنابراین بدون زبان مشترک، ارتباط برقرار نمی شود. • Hypertext Transfer Protocol, HTTP: برای دریافت یک صفحه وب از سرویس دهنده ابری، معمولا از پروتکل HTTP استفاده می شود که یک مکانیزم برای انتقال داده بین ابر و سازمان شماست. • Extensible Messaging and Presence Protocol, XMPP: این پروتکل یکی از رویدادهای بزرگ در خصوص رایانش ابری می باشد. پروتکل XMPP امکان ارتباط دو طرفه را فراهم کرده و نیاز به عملیات Polling را بر طرف کرده است.
امنیت
امن کردن session های ابر از آن جهت مهم است که بسیاری از شرکت ها علاقمند شده اند تا وارد ابر شوند. امن کردن session های ابر می توانند از طریق رمز نگاری و احراز هویت انجام شود. روش های رمز نگاری رایج در همه مرورگرها بصورت استاندارد انجام می شود. احراز هویت موضوع دیگری است که گزینه های مختلفی در پیش روی شماست. • Secure Sockets Layer, SSL: ssl تکنولوژی امنیتی استاندارد برای برقراری یک اتصال رمز شده بین یک سرور وب و مرورگر است. به کمک آن می توان اطمینان حاصل کرد که داده های ارسال شده بین مرورگر و سرور وب، امن باقی می ماند. و از این روش به طور گسترده برای رمزنگاری مورد استفاده قرار می گیرد. • OpenID: Openid یک راه حل کد متن باز برای مشکل نیاز به نام کاربری و کامه عبور واحد دسترسی به سایت های مختلف است، بنابرای پیمایش در وب را تسهیل می کند. و یکی از روش های احراز هویت می باشد.
زیر ساخت
مجازی سازی راهی برای ایجاد زیرساخت در محیط رایانش ابری است. در نتیجه تلاش های VMware و دیگر شرکای صنعت مجازی سازی، یک استاندارد به نام Open Virtualization Format, OVF توسعه داده شد. OVF تعیین می کند که چگونه ابزار های مجازی بتوانند در یک فرمت مستقل از فروشنده قرار بگیرند تا در هر فوق ناظری اجرا شوند. این یک فرمت مستقل از یکو، قابل توسعه و باز برای بسته بندی و توزیع ابزار های مجازی است که از یک یا چند ماشین مجازی تشکیل شده است. OVF به مشتریان و توسعه دهندگان امکان انتخاب هر فوق ناظری را بر اساس قیمت، ترجیحات یا کارآیی می دهد و از قفل شدن در یک فروشنده جلوگیری می کندو این استاندارد بسته بندی و توزیع برای ابزار های مجازی در افزایش سرعت پذیری ابزار های مجازی نقش مهمی ایفا می کند.
سرویس
یک سرویس وب، طبق تعریف W3C ، یک سیستم نرم افزاری است که برای پشتیبانی از تعامل های متقابل ماشین به ماشین در شبکه طراحی شده است. در رایانش ابری نیز اجزای مختلف می توانند از طریق سرویس های وب در دسترس قرار بگیرند. سرویس های وب معمولا API های وبی هستند که از طریق شبکه هایی نظیر اینترنت قابل دسترسی هستند و روی یک سیستم راه دور که میزبان سرویس های درخواست شده است، اجرا می شوند. در این بخش در خصوص چند نمونه از سرویس های وب رایج نظیر REST، SOAP، JSON صحبت می کنیم. داده: داده می تواند با استفاده از مکانیزم ها و ساختارهای مختلفی مورد استفاده قرار بگیرد. دو نمونه از رایج ترین آنها JSON و XML می باشد. هر دوی این ها بر اساس استاندارد های پیش رو در صنعت –HTML و جاوااسکریپت- هستند که برای کمک به ارائه و استفاده از داده مورد استفاده قرار می گیرند. • JavaScript Object Notation, JSON یک قالب سبک رایانه ای برای تبادل داده ها است. از این فرمت برای ارسال داده های ساخت یافته در شبکه استفاده می شود. این فرمت معمولا می تواند به عنوان یک روش دیگر مشابه با XML مورد استفاده قرار بگیرد. اصول JSON یک فرمت مستقل از زبان است و کد های مورد نیاز برای تحلیل و تولید آن در چندین زبان برنامه نویسی مختلف موجود است. همین موضوع باعث شده است که وقتی در تبادل داده با جاوا اسکریپت در گیر هستیم، بتوان آن را به عنوان یک جایگزین خوب بجای XML استفاده کرد.
• Extensible Markup Language, XML یک زبان استاندارد و روشی خود تعریف برای کد کردن متن و داده است به طوری که محتوا با کمترین تعامل انسانی قابل دسترسی و قابل مبادله در بین طیف مختلف سخت افزارها، سیستم عامل و برنامه های کاربردی باشد. XML روشی استاندارد برای ارایه متن و داده در فرمتی که بتواند مستقل از پلت فرم استفاده شود، فراهم آورده است. همچنین می تواند با طیف گسترده ای از ابزار های توسعه و برنامه نویسی و ابزار های دیگر مورد استفاده قرار بگیرد. سرویس های وب تعیین می کنند که داده چگونه از ایر به کلاینت ارسال شود. پروتکل های مختلفی در این رابطه وجود دارند که تعدادی از آنها را بررسی خواهیم کرد. به طور کلی SOAP و REST بهترین گزینه ها برای نیاز های ابری هستند.
فصل دوم: معماری سرویس های وب و نحوه همپوشانی آن با رایانش ابری
= معماری سرویس های وب و نحوه همپوشانی آن با رایانش ابری
تعریف رایانش ابری
درحالی که رایانش ابری در حال حاضر یک اصطلاح بدون یک اجماع معنا در بازار است که یک حرکت گسترده به سمت استفاده از شبکه های گسترده را توصیف میکند ، مانند اینترنت که برای تعامل بین ارائه دهندگان انواع بسیار سرویس IT و مصرف کنندگان است. ارائه دهندگان سرویس، خدمات در حال عرضه خود را شامل تمام پشته سنتی آی تی ، از سخت افزار و پلتفرم ها گرفته تا اجزای نرم افزار ، سرویسهای نرم افزار و کل برنامه های کاربردی را گسترش میدهند ، همانطور که در شکل 1 نشان داده شده است. نخ مشترک در تمام سطوح از پشته ارائه های رایانش ابری رابطه مصرف کننده/ارائه دهنده و یک وابستگی بر روی شبکه برای اتصال دوطرف میباشد. بازار تجاری ابر یک طیف گسترده ای از خدمات ابری که در پیچیدگی و ارزش متفاوت است را ارائه می دهد. شکل 1 سازماندهی این بازار را به صورت مجموعه ای کلی از دسته های لایه بندی شده خدمات ، در یک پشته متصورشده ، با ارائه های اساسی به سمت بالا و پیچیدگی بسیار به سمت پایین را ارائه می دهد.
- Cloud Infrastructure:
در پایین پشته ابر ، ساختار ابر اجزای فیزیکی چند سایت توزیع شده را برای پشتیبانی رایانش ابری مانند ذخیره سازی و پردازش منابع فراهم می آورد. این لایه به زیرساخت ارائه دهنده اجازه جزییات انتزاعی مانند سخت افزار دقیق برنامه ای که در حال استفاده است و کدام دیتاسنتر برنامه در حال اجرا هست را میدهد. پیشرفت در فن آوری های مجازی سازی سرور برآمده از این لایه از پشته بسیار کارآمد تر از سالهای گذشته اجازه استفاده بیشتر از پردازش منابع از آنچه قبلا عملی شده است را میدهد. مفاهیم ماشین مجازی نیز به جدایی مفید از جزییات پیاده سازی سخت افزاری اصولی از نظر توسعه دهندگان ، و توانایی بخشیدن به سرعت بیشتر مقیاس پذیری منابع سرور در پاسخ به تغییر تقاضا (changing demand) را فراهم می آورد.
- Cloud Storage—Storage as a service:
ساخت بر روی زیرساخت ابر ، این لایه از پشته ابر بر روی اجاره افزایشی از ذخیره سازی بر روی اینترنت ، که قبلا رایانش همگانی نام گذاری شده تمرکز دارد. بسیاری از ارائه ها در این زمینه نیز با پیشرفتهای اساسی در مجازی سازی سرور روبرو شده است. در مقیاس بزرگتر مبتنی بر شبکه ذخیره سازی در تقاضا مانند این لایه از رایانش ابری میباشد. برخی از ارائه ها فراتر از این و ارائه پلتفرمها برای ارائه دهندگان سرویس شامل ذخیره سازی ، امنیت ، مدیریت هویت و دیگر عملکردها میشود. یک مثال خوب از این نوع ارائه Amazon Simple Storage Service (Amazon S3) سرویس ذخیره سازی ساده آمازون میباشد. Amazon S3 ذخیره سازی برای اینترنت را ارائه میدهد که برای محاسبات آسانتر در مقیاس وب برای توسعه دهندگان نرم افزار طراحی شده است. Amazon S3 یک اینترفیس وب سرویس که میتواند برای ذخیره و بازیابی داده در هر زمان از هر جا بر روی وب استفاده شود را ارائه میدهند. S3 دسترسی به مقیاس پذیری و ذخیره سازی قابل اعتماد داده ها را برای یک هزینه میدهد. S3 در پیاده سازی ، آستانه تحمل و ساخت از یک مجموعه ای از اینترفیسهای ساده و بسیار granular غیرمتمرکز است.
- Cloud Platform—Platform as a service:
ارائه دهندگان پلتفرم زیرساختی برای توسعه و اجرای نرم افزار برنامه های مبتنی بر وب را فراهم میکنند. مثالها عبارتند از امکانات برای طراحی برنامه ، توسعه برنامه ، تست ، استقرار و هاستینگ و همچنین سرویسهای برنامه مانند همکاری تیم ، امنیت ، نسخه گذاری برنامه و ابزار برنامه میباشد. تیم توسعه دهنده اغلب از طریق مرورگر خود با ورود به پلتفرم مجازی ابر ، باهم کار میکنند. سرورهای مجازی در حال اجرا در ابر میتوانند شامل وب سرویسها ، برنامه های سرورها و موتورهای دیتابیس ها باشند. برای برخی از ارائه دهندگان ، اینترفیسهای برنامه نویسی نرم افزار (API ها) به عملکردهای مبتنی بر وب از پیش تعریف شده ارائه شده اند. ProgrammableWeb.com لیست بیش از 600 API که بر روی اینترنت در سال 2008 با گوگل مپ ، فلیکر ، آمازون ، و یوتیوب را که بزرگترین سهم بازار از Calls را به اشتراک گذاشته است. ارائه دهندگان پلتفرم بطور کلی بخشی از یک معماری چند مستاجره که در آن بسیاری از سازمانهای نامربوط ممکن است توسط برخی از همان زیرساخت پلتفرم پشتیبانی شوند را متصور میشوند. پلتفرم ها میتوانند بوسیله اضافه کردن پردازش و ذخیره سازی منابع بصورت پویا از رشد در خواسته های عملیاتی برای یک وب اپلیکیشن مشتری خاص پشتیبانی کرده و مقایس پذیر شوند. بعنوان مثال از یک ارائه پلتفرم Force.com است که بعنوان یک نرم افزار ارائه دهنده پشتیبانی از SalesForce.com آغاز کرده است. API ها و ابزارهای توسعه برای پشتیبانی از برنامه SalesForce بیشتر ابزارهای کلی پلتفرم را برای هر مشتری ارائه دهنده نرم افزار مبتنی بر اینترنت فراهم میکند.
- Cloud Services—Components as a service:
این لایه از پشته رایانش ابری شامل تعریفی از اجزای نرم افزار ، اجرای آن در یک مد توزیع شده ، سراسر اینترنت تجاری میباشد. این تعریف بیشتر شبیه SOA است که زیر مورد بحث ، با اینترفیسهای سرویس تعریف شده بعنوان پایه ای برای یکپارچه سازی سیستم به سیستم میباشد.
- Cloud Applications—Soft ware as a service(SaaS):
این تعریف مبتنی بر ابر برای دسترسی به آنچه که بطور سنتی در محل دسکتاپ نرم افزار است ، خواهد بود. بعنوان مثال ادوب فتوشاپ ، یک برنامه برای دستکاری تصاویر ، به کاربران نهایی بر روی سی دی ها برای سالهای سال توزیع شده بود. امروزه ، شما همچنان میتوانید یک نسخه از فتوشاپ را از دیسک نصبی آن ، نصب کنید ، یا شما میتوانید به یک نسخه کاملا آنلاین از برنامه مشابه ، تحت عنوان اکسپرس (Express) بروید. در اکسپرس آنلاین ، شما میتوانید عکسهایتان را در یک فایل محیطی هاست آپلود کرده و کار بر روی تصاویر با برخی فیلترها و قابلیتهایی که در نسخه نرم افزار سنتی آن است ، را انجام دهید. اکسپرس بعنوان مثالی از SaaS است ، اگرچه این تنها شکل به طول کشیدن (can take) SaaS نیست. برای مثال ، ارائه دهندگان برنامه های وب گوگل ، مانند جی میل ، تقویم گوگل ، تالک ، داکز و سایتها ، با عملکرد مشابه نرم افزارهای سنتی اداری است. یکی از مزایای این روش این است که برنامه را میتوان بصورت مداوم بوسیله ارائه دهنده نرم افزار بدون مشکلی و خرید دیسکهای نصبی ، بروزرسانی کرد. هربار که کاربر به سایت لاگ کرد ، کاربر آخرین نسخه از برنامه را خواهد گرفت. همچنین ارائه دهنده نرم افزار نیز یک وب اپلیکیشن بسیار مقیاس پذیر با استفاده از یک معماری چند لایه وب ، بر روی زیرساختهای قابل توجه پیاده سازی میکند. معایب آن شامل وابستگی کامل بر روی شبکه های زیربنایی برای دسترسی به برنامه میباشد. هنگامی که شبکه دان (پایین) است ، کاربر نمیتواند کاری با برنامه مبتنی بر شبکه انجام دهد. در مقابل نسخه دسکتاپ از نرم افزار نیاز به اتصال شبکه برای کار تولیدی ندارد. Software as a Servis (SaaS) یک مدل از توسعه نرم افزار است که در آن نرم افزار بعنوان یک سرویس هاست شده (hosted) به مشتریان در سراسر اینترنت ارائه میشود. با برطرف نمودن نیاز به نصب و اجرای برنامه بر روی کامپیوتر شخصی مشتریان ، SaaS بار مشتریان (فشار روی مشتری ناشی از ) را از تعمیر و نگهداری نرم افزار ، عملیات در حال انجام (ongoing) و پشتیبانی را کاهش میدهد. در مقابل ، مشتریان کنترل نسخه نرم افزار یا تغییرات لازم را واگذار میکنند. علاوه بر این ، هزینه های استفاده از سرویس به یک هزینه مستمر بجای هزینه تنها در زمان خرید تبدیل میشود. (ارجاع به SaaS در ویکیپدیا) با SaaS به مقدار قابل توجهی از پردازش در اینترنت "ابر" در دیتا سنترهای از راه دور و نه بر لوکال دسکتاپ رخ میدهد. لوکال دسکتاپ در درجه اول یک layer device (لایه دستگاه) در این سناریو ارائه میدهد. با استفاده از بسیاری از برنامه های نرم افزاری آنلاین ، کاربر پردازشهای در حال توزیع از طرف آنها در سراسر پردازنده ی ابر بوسیله نرم افزار ارائه سرویس پراکنده میشود. بعنوان مثال ، در پایگاه ویکیپدیا ، رایانش ابری یک سبک از محاسبات مربوط به قابلیتهای آی تی است که یک سرویس را به کاربران اجازه میدهد برای دسترسی به خدمات فناوری فعال از اینترنت (در ابر) بدون دانشی از تخصص و یا کنترل بر زیرساختهای فناوری که آنها پشتیبانی میکنند را ارائه میدهد.
سرویس های وب و رایانش ابری
مدل های سرویس رایانش ابری
با این حال ، ارائه دهندگان ابر از انواع مختلف مدلهای سرویس و برخی از مدلهای سرویس پایدار به سود بیشتر از استانداردسازی از دیگران استفاده میکنند. بر اساس سرویس هایی که ابر فراهم میکنند ، سه نوع مدل رایانش ابری وجود دارد. زیرساختی از یک سرویس IaaS، پلت فرمی از یک سرویس PaaS، و نرم افزاری از یک سرویس SaaS. ادامه این بخش به چگونگی بهرمند شدن از استانداردسازی IaaS , PaaS و SaaS میپردازد.
Infrastructure as a Service (IaaS) : IaaS یک مدل سرویس است که بیشترین سود از استانداردسازی را میبرد زیرا بلوکهای ساختمان اصلی IaaS بعنوان نماینده حجم کاری (work-load)از تصاویر ماشین مجازی و واحدهای ذخیره ای که متفاوت از data-typed از داده های خام باشد. برای انتقال حجم کار ، تلاشهای استانداردها مانند OVF و VHD به کاربران اجازه میدهد تا یک تصویر را از یک ارائه دهنده استخراج کرده و آن را درارائه دهنده دیگری آپلود نماید. با توجه به اینکه اکثر ارائه دهندگان IaaS به مشتریان اجازه نصب و اجرای هر پلتفرمی را میدهند ، یک manual (راهنمای) بیشتر و زمان گیر از انتقالی که برای بازیابی عکس از ارائه دهنده فعلی میخواهند ، یک عکس جدید در ارائه دهنده جدید ایجاد و نرم افزار مجدد نصب میگردد. این manual (راهنمای) انتقال نبایستی نیازمندی استانداردها را تازمانی که راهی برای بازیابی جایگاه برنامه (بعنوان مثال داده برنامه ها ، فایلها ، پردازشهای در حال اجرا) از عکس منبع و حرکت به یک عکس جدید را انجام دهد. برای انتقال داده ، تلاشهای استانداردها مانند CDMI و API آمازون S3 ، که پشتیبانی ارائه دهندگان متعدد را دارد ، کاربران را برای استخراج داده از یک ارائه دهنده و بارگذاری آن در یک ارائه دهنده متفاوت قادرمیسازد. اگر یک ارائه دهنده این رابط استانداردها را با استفاده از SOAP – یا پروتکل های مبتنی بر REST پیاده سازی کند ، ابر مزایای استفاده از سهولت توسعه و در دسترس بودن ابزار را ارائه خواهد داد. با این حال ، این استانداردها بیشتر برای داده های خام که not typed (تایپ شده نیستند) مفید است (بعنوان مثال عکسهای ماشین مجازی ، فایلها ، blobs (حبابها) ) زیرا منبع ابر در این مورد صرفا بعنوان یک ظرف عمل کرده و معمولا نیازی به انتقال داده ندارد. برای داده های تایپ شده (typed data) ، انتقال داده مشابه هر انتقال داده دیگری رخ میدهد وظیفه: کاربران باید داده را از منبع اصلی استخراج کرده ، و بازگزاری کنند در منبع هدف ، که میتواند یک فرآیند پیچیده باشد. تلاش موردنیاز برای تحول نیز بستگی دارد به عواملی مانند شباهت بین اهداف و منابع تکنولوژیهای ذخیره سازی داده (بعنوان مثال ، انتقال از یک دیتابیس سازگار با SQL به دیگری آسانتر از آبجکت دیتابیس به یک پایگاه داده رابطه ای یا بعلکس خواهد بود) و مشابه اینترفیس عملیاتها (بعنوان مثال ، دو اینترفیس مبتنی بر SOAP میتوانند عملیات کاملا متفاوتی را داشته باشند). IaaS زیرساخت بعنوان یک سرویس عمدتا شامل زیرساخت های در دسترس محاسباتی بر روی اینترنت مانند چرخه محاسبه و ذخیره سازی میشود. IaaS به سازمانها و توسعه دهندگان اجازه میدهد تا به گسترش تقاضاهای زیرساخت های فناوری اطلاعات بپردازد. نمونه هایی از ارائه های IaaS به ترتیب حروف الفبا عبارتند از : Amazon Elastic Compute Cloud (EC2) : ماشین های ویژه مجازی ، بنام ماشین عکسهای آمازون AMI ، که میتواند بر روی زیرساختهای EC2 توسعه یافته و اجرا شود. Amazon Simple Storage Solution (S3) : منابع ذخیره سازی بصورت مقیاس پذیری پویا Amazon’s other data-related offerings : ذخیره سازی الاستیک بلوک ، که حجم ذخیره سازی در سطح بلوک را برای استفاده با موارد EC2 آمازون فراهم میکند ، SimpleDB که یک منبع داده های غیررابطه ای است ، و منبع داده های ارتباطی که یک منبع داده رابطه ایست. GoGrid Cloud Servers : محاسبات مقیاس پذیر به صورت پویا و ذخیره سازی منابع Rackspace Cloud Servers : محاسبات بصورت پویا مقیاس پذیر ، ذخیره سازی و منابع موازنه بار PaaS بر روی پلتفرمهای توسعه یافته نرم افزار است که اجازه استفاده از منابع خارجی برای ساخت و برنامه های میزبان (هاست) را می دهد. نمونه هایی از ارائه های PaaS به ترتیب حروف الفبا عبارتند از : CloudBees : پلتفرمی برای ساخت ، استقرار و مدیریت برنامه های جاوا Engine Yard : پلتفرمی برای ساخت و گسترش برنامه های Ruby و Php که میتوانند با افزودنی ها گسترش یابند. Google App Engine : پلتفرمی برای توسعه و اجرای جاوا ، Python و برنامه های Go که بر روی زیرساختهای گوگل است. Heroku : پلتفرمی برای استقرار برنامه های جاوا ، Ruby ، پایتون ، Clojure ، Node.js و Scala که میتوانند با افزودن (add-ons) به منابع گسترش یابد. Microsoft Windows Azure : بر روی تقاضای محاسبه و ذخیره سازی سرویسها و همچنین بعنوان یک توسعه و استقرار پلتفرم برای برنامه هایی که در ویندوز اجرا میشوند. Salesforce Force.com : پلتفرمی برای ساخت و اجرای برنامه ها و قطعات خریداری شده از AppExchange یا برنامه های سفارشی SaaS یک مدل از استقرار و بکارگیری نرم افزار است که در آن شخص سوم نرم افزار به مشتریان برای استفاده از یک سرویس مبتنی بر تقاضا را فراهم میکند. نمونه هایی از ارائه های SaaS به ترتیب حروف الفبا عبارتند از : Google Apps : ایمیل وب بیس ، تقویم ، مدیریت اسناد و ایجاد و مدیریت وب سایتهای مبتنی بر وب Microsoft Office 365 : ایمیل تقویم ، برنامه های مبتنی بر وب آفیس ، وب کنفرانس و اشتراک فایل NetSuite : برنامه های نرم افزاری مدیریت کسب و کار که شامل حسابداری ، برنامه ریزی منابع سازمانی ERP ، مدیریت موجودی ، مدیریت ارتباط با مشتری CRM و تجارت الکترونیکی Salesforce : نرم افزار برنامه های CRM SurveyTool : پلتفرم نظرسنجی مبتنی بر وب برای جمع آوری بازخورد از کارکنان ، مشتریان ، گروه تمرکز یا هر کاربر فعال پایگاه Zoho : مجموعه زیادی از برنامه های مبتنی بر وب ، بیشتر برای استفاده شرکتها
Platform as a Service (PaaS) : فواید مدل سرویس PaaS از استانداردسازی IaaS کمتر است. سازمان هایی که PaaS را خریده اند برای مزایای درک شده از پلت فرم توسعه انجام داده اند. این پلتفرم قابلیت های بسیاری در خارج از باکس ، مانند محیطهای مدیریت برنامه ، احرازهویت کاربر ، ذخیره سازی داده ، پیامهای قابل اعتماد ، و دیگر قابلیتهایی که در مقابل کتابخانه هایی که میتواند برنامه ها را یکپارچه کند ارائه میدهد. این قابلیت به یک زبان خاص و زمان اجرای محیط گره خورده است. برای مثال موتور برنامه های گوگل پشتیبانی میکنند از برنامه هایی که در محیطهای جاوا ، پایتون و گو نوشته شده است. مایکروسافت Azure پشتیبانی میکند از برنامه هایی که در محیط دات نت و بیشتر برنامه هایی که در محیط جاوا ، پی اچ پی و نود دات جی اس نوشته شده است. انگیزه ها برای اتخاذ PaaS در درجه اول توسعه سریع و استقرار و پتانسیل برای این برنامه هایی که به تعداد بیشتری از مشتریان خدمات میدهند ، میباشد. درخواست خرید به یک ارائه دهنده Paas به معنای خرید از یک پلتفرمی در همان راهی است که سازمان ها به طور سنتی دارند ، مبتنی بر ارزش افزوده ، مهارتها ، و هر معیار دیگری است. ارائه دهندگان میتوانند برنامه ها را با انتخاب پلتفرم هایی که از ابزارها و زبانهای بیشتر استاندارد شده پشتیبانی میکنند ، مانند آنهایی که مبتنی بر زبانهای جاوا یا اینترفیس های دسترسی به داده استاندارد ، شامل اتصال به پایگاه داده جاوا (JDBC) ، اتصال به پایگاه داده باز (ODBC) و SQL ، را سازگارتر کنند. با این حال ، حتی در میان ارائه دهندگانی که از همان زبانهای برنامه نویسی پشتیبانی میکنند ، اینترفیس هایی وجود دارد بر پایه سرویسهایی مانند احرازهویت ، فایلها ، صف ها ، توابع هش ، و وظایف ، که ممکن است سازگار نباشند. علاوه بر این ، گزینه های بومی ممکن از قویتر از گزینه های استاندارد شده باشند. (بعنوان مثال ، سود بیشتری که اتخاذ یک تصمیم میتواند ایجاد انگیزه کند). برای مثال ، داده ها به طور پیشفرض در موتور برنامه گوگل ذخیره میشوند که تکرار بالایی در انبارداده دارند که به طور خودکار تکرار همه داده های دیتاسنترها را ارائه میدهند. یک کاربر میتواند به منبع داده با یک API استاندارد یا یک API سطح پایین دسترسی داشته باشد. این مبادله ایست که API استاندارد در بیشتر برنامه های پرتابل مهیا میسازد اما کنترل کمتر و ارزش افزوده ارائه دهنده خاص کمتر ویژگیهایست که API سطح پایین ، و در نتیجه پایینترین مخرج مشترک برای ویژگیها را ارائه میدهد.
Software as a Service (SaaS): SaaS یک مدل تا حدودی متفاوت از IaaS و PaaS میباشد زیرا یک موافقت نامه صدور مجوز به نرم افزار شخص ثالث بجای یک مدل استقرار متفاوت برای منابع موجود در محدوده ای از ذخیره سازی داده تا برنامه ها است. مزایای استانداردسازی برای SaaS حتی محدودتر از PaaS میباشد. برای SaaS ارائه هایی مانند Salesforce.com CRM میشود ، کاربر ، کاربرنهایی (end user) است. با این حال ، دیگر ارائه های SaaS مانند نقشه های گوگل یا یاهو اجتماعی (Yahoo Social) که در آن کاربر میتواند به یک توسعه دهنده که ادغام قابلیتها از این سرویسها به دیگر برنامه ها را پیدا کند ، وجود دارد. در مورد دوم ، APIهای استاندارد شده مفید هستند زیرا آنها فرآیند توسعه را تسهیل میبخشند. با این حال ، مگر اینکه APIها از دیدگاه عملکردی یکسان هستند ، این استانداردسازی کمی به انتقال کمک میکند. انتقال برای این مورد هنگامی است که کاربر SaaS کاربرنهایی بوده باشد در همان راهی که با هر انتقال نرم افزار رخ میدهد زیرا هر ارائه دهنده SaaS منطق پردازش خود را دارد ؛ این به سادگی یک راه مختلف برای مجوز نرم افزار است. در این مورد ، تنها منطقه ای که SaaS از استاندارد سازی مفید میباشد ذخیره سازی داده است زیرا مهمترین نگرانی برای مصرف کنندگان SaaS ، خصوصا برای شرکت نرم افزاری SaaS مانند CRM یا منابع انسانی ، چگونگی استخراج داده های خود است. در یک حادثه که بطور گسترده به اطلاع عموم رسید ، سرویس ذخیره سازی آنلاین شات دان شد و یک ارائه دهنده SaaS 45% از داده های مشتری خود را از دست داد. در این مورد ، مصرف کننده مجبور به استخراج داده های خود از ارائه دهنده SaaS شد ، ارسال منطقی داده های متحول شده و سپس بارگزاری داده ها به یک ارائه دهنده SaaS جدید ، انجام شد. APIهای استاندارد شده میتوانند بطور بالقوه این کار را آسانتر کنند.
مقایسه رایانش ابری و SOA
نمودار ون زیر روابط بین وب سرویسها ، ساختار سرویس-اورینتد (SOA) و رایانش ابری را نشان میدهد. وب سرویس معرف رایانش ابری در این نمودار است زیرا رایانش ابری از وب سرویس برای اتصال به شبکه استفاده میکند. ( ممکن است شما استثنا پیدا کنید اما آنها بسیار نادر هستند.) این امکان وجود دارد ، با این حال ، وب سرویس ها در شرایط دیگری از رایانش ابری استفاده میشوند. این قبیل استفاده از وب سرویس ها ممکن است بخشی از یک ساختار سرویس-اورینتد باشد ، اما این ممکن نیست. وب سرویس ها میتوانند به سادگی یک کانکشن باشند. نهایتا ممکن است یک معماری سرویس-اورینتد و نه استفاده وب سرویسها برای ارتباطات را داشته باشید.
رایانش ابری و SOA در نگرانی ها و ملاحظات مشترک تداخل و همپوشانی دارند ، همانطور که در شکل 4 نشان داده شده است. مهمترین همپوشانی در نزدیکی بالای پشته رایانش ابری رخ میدهد ، در این منطقه از سرویسهای ابری شبکه، در دسترس اجزای برنامه و سرویسهای نرم افزاری میباشد ، مانند وب سرویسهای معاصر.
تعامل با وب سرویس
کشف سرویسهایی که از استانداردهای تکنولوژی موجود استفاده میکنند عمدتا وظیفه جستجو بر اساس کلیدواژه را در شرح سرویس پیچیده کمتر یا بیشتر را دارد. این فراتر از محدوده این مقاله به اظهارنظر در تمام مشکلاتی که هنگام تلاش برای کشف سرویسها برای کاربر رخ میدهد میباشد. امروزه تکنیکهای مورد استفاده کاربر بعنوان مثال استفاده از عبارات دقیق و شناخت کامل آن، توسط استانداردهایی مانند WSDL ارائه شده است. ارتقای این وضعیت بوسیله چند روش تکنیکهای موجود برای تطبیق شناخت کامل و یا گسترش توسط اصطلاحنامه مناسب داده شده است. در ادامه ما با انتخاب task سرویسهای مناسب برخورد خواهیم کرد که پس از کشف یک سرویس مطابق task یک کاربر علاقمند ، به همراه خواهد داشت.
رایانش ابری و SOA هردو مفاهیمی از سرویس اورینتیشن را به اشتراک میگذارند. انواع بسیاری از سرویسها بر روی یک شبکه عمومی برای استفاده مصرف کنندگان در دسترس است. رایانش ابری بر روی تبدیل جنبه های محاسباتی پشته آی تی به کالا که میتواند بصورت تدریجی از ارائه دهندگان کلودبیسد (مبتنی بر رایانش) خریداری کرده و بتواند یک نوع از انواع بسیاری از برون سپاری را درنظر بگیرد ، تمرکز دارد. برای مثال ، مقیاس بزرگ ذخیره سازی آنلاین را میتوان تهیه و بطور خودکار در واحد ترابایت از ابر اختصاص داد. بطور مشابه ، یک پلتفرم مجری برنامه های مبتنی بر وب را میتوان از دیتاسنتر های از کارافتاده (برکنارشده) در ابر اجاره کرد. بهرحال ، رایانش ابری درحال حاضر یک واژه گسترده تری از SOA و تمام پشته از سخت افزاری که از طریق لایه سیستمهای نرم افزاری اجرا میگردد را دربرمیگیرد. SOA اگرچه از نظر مفهومی به نرم افزار محدود نیست ، اغلب در عمل بعنوان قطعه ها یا سرویس های نرم افزار پیاده سازی میشود ، بعنوان نمونه ای در استانداردهای وب سرویس در بسیاری از پیاده سازیها استفاده شده است. این قطعات میتوانند با یکدیگر و در بسیاری از پلتفرمهای سراسر شبکه برای ارائه یک عملکرد تجاری ادغام شوند.
به کارگیری سرویس وب پویا در یک محیط ابری
برای استفاده از سرویس های وب، نیاز به استقرار آن ها می باشد. فقط تصاویر سرور ها در فضای کاری ابر آپلود می شوند، و مشخصات جریان کاری که برای آنها ایجاد شده است، توانایی برقرای ارتباط با مراحل مختلف فرآیند اجرایی را دارا می باشند. برای فرآیند مذکور، دو نوع استقرار مورد استفاده قرار می گیرد. تصویر TAVERNA به عنوان یک سرور اختصاصی و TICCLOPS و تصویر FROG، به عنوان سرویس های وب پویا به کار گرفته شده اند. به منظور دستیابی به سناریوی استقرار پویا، سرویس های مورد نظر فقط در زمان نیاز به آن ها درخواست و در قسمتی از جریان کاری استفاده می شوند. این دو سرویس، برای مدیریت پیکربندی جریان کاری و مدیریت بکارگیری تصاویر و فرآیند تخریب، ایجاد شده است. زمانی که یک جریان کاری به سمت سرویس اول ارسال می شود، ارزیابی می شود که آیا هر یک از سرویس های مندرج در فرآیند جریان کاری، ماهیت پویا دارد یا خیر.