مقاله / معرفی مختصری از پلتفرم‌های Cloud
Loading
نمایش نتایج: از 1 به 2 از 2

موضوع: مقاله / معرفی مختصری از پلتفرم‌های Cloud

  1. #1
    مهرداد تاجيك - مدير سایت Array admin آواتار ها
    تاریخ عضویت
    Thursday 30 June 2005
    محل سکونت
    تهران - ایران
    نوشته ها
    1,818
    Thanks
    22
    Thanked 47 Times in 42 Posts

    Post مقاله / معرفی مختصری از پلتفرم‌های Cloud




    پلتفرم تحت Cloud چیست؟
    هر تغییر جدیدی که در Cloud ایجاد می‌شود، تغییرات بزرگتری را در صنایع ایجاد می‌کند. یکی از مهم‌ترین بخش‌های این تغییر ظهور پلتفرم‌های تحت Cloud است. همان‌طور که از نامش پیداست، این نوع از پلتفرم، به برنامه‌نویسان اجازه می‌دهد تا بتوانند برنامه‌ای بنویسند که تحت Cloud عمل کند یا از سرویس‌هایی که تحت این عملکرد هستند استفاده‌کنند. امروزه نام‌های مختلفی از جمله پلتفرم on-demand و پلتفرم به عنوان سرویس(PaaS) را برای این نوع از پلتفرم استفاده می‌کنند. این نوع از ارائه سرویس پتانسیل بالایی را برای برنامه‌ها ایجاد می‌کند.

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




    Businessman drawing a Cloud Computing diagram on the whiteboard

    سه نوع سرویس Cloud

    برای درک پلتفرم تحت Cloud بهتراست اول سرویس‌های عمومی Cloud را بشناسید. همان‌طور که در شکل یک نشان داده شده، خدمات در Cloud به سه دسته تقسیم می‌شود. این طبقه‌بندی شامل:
    • سرویس به عنوان خدمت (SaaS): برنامه تحت SaaS به صورت کاملی روی Cloud اجرا می‌شود(بر روی سرورها در یک فضا دسترسی با اینترنت به سرویس دهنده). رابط کاربری این سیستم‌ها معمولا مرورگرها یا رابط های ساده دیگری هستند. نمونه معروفی از برنامه SaaS برنامه Salesforce.com می‌باشد.
    • سرویس‌های وابسته: هر برنامه مستقری عملیات مفیدی را برای خودش ایجاد می‌کند. یک برنامه گاهی می‌تواند این عملکردها را با دسترسی به برنامه‌های خاصی تحت Cloud امکان‌پذیر کند. به دلیل اینکه این سرویس‌ها تنها برای این برنامه خاص قابل استفاده است، آنها را با نام برنامه‌های وابسته می خوانند. یکی از مثال‌های قابل لمس این عملکرد برنامه Apple iTunes است؛ در پس زمینه این برنامه قابلیت اجرا موزیک به صورت همزمان فراهم است درحالی‌که برنامه وابسته دیگری به کاربر اجازه خرید فایل صوتی و ویدئویی جدید را می‌دهد. سرویس‌های میزبانی تغییر مایکروسافت (Microsoft’s Exchange Hosted Services) برای یک واحد اقتصادی علاوه بر فیلتر تحت Cloud، ذخیره‌سازی بر روی نرم‌افزار مستقر را نیز فراهم می‌کند.
    • پلتفرم‌های Cloud: یک پلتفرم Cloud، سرویس‌های تحت Cloud را برای تولید نرم‌افزار آماده می‌کند. به جای اینکه برنامه‌نویسان از پایه یک برنامه را بنویسند برنامه SaaS را بر روی پلتفرمCloud پیاده‌سازی می‌کنند. همانطور که در شکل یک نیز نشان داده شده ،استفاده‌کنندگان نهایی پلتفرمCloud برنامه‌نویسان هستند.

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


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

    درحالی که در این رابطه در شکل ۲ چیزی نشان داده نشده اما ابزارهای برنامه‌نویسی بخش مهم دیگری از این داستان است. ابزارهای جدید می‌توانند به برنامه ‌نویسان در تولید
    برنامه‌ها با استفاده از هر سه بخش پلتفرم کمک‌کنند.



    برای اینکه درک عملیاتی از این موضوع داشته‌باشید، نحوه ارتباط بین اکثر پلتفرم‌های مستقر را بررسی می‌کنیم. اساس برنامه‌های مستقر شبیه به موارد زیر است :
    • سیستم‌های عملیاتی: گزینه‌های غالب Windows ،Linux و دیگر ورژن‌های Unix است.
    • پشتیبانی بومی: تکنولوژی‌های مختلف بر اساس مدل‌ برنامه‌های متفاوتی استفاده می‌کنند. سرورهای برنامه تحت چارچوب .Net و Java EE پشتیبانی عمومی را برای برنامه‌های تحت وب در حالی که دیگر تکنولوژی‌ها تنها از نوع خاصی از برنامه‌ها حمایت می‌کند. برای مثال، محصول Microsoft Dynamics CRM شامل پلتفرمی برای ایجاد نوع خاصی از برنامه‌های تجاری است. به صورت مشابه، پایگاه‌های ذخیره‌سازی متفاوتی برای فرایندهای مختلف مورد نیاز است. در حالی که انبارداده ساختاریافته بیشتری توسط تکنولوژی‌های انبارش مثل Oracle DBMS, MySQL, Microsoft SQL Server, and IBM DB2 ایجاد می‌شود، پایگاه ذخیره خامی توسط سیستم های فایل درWindows ، Linux یا دیگر سیستم عامل‌ها ایجاد می‌شوند.

    برای سرویس‌های ساختاری مستقر مدل معمول به صورت زیر است:
    • انبارش: همانند ذخیره‌سازی در بنیان برنامه، ساختار انبارش نیز مدل‌های مختلفی دارد. ممکن است سیستم فایل‌بندی خارجی تنها یک انبار یک بیتی ساده را ارائه دهد، در حالی که برنامه Microsoft sharepoint مدل‌های بیشتری را ارائه می‌دهد. برنامه‌ها همچنین می‌توانند در حالی که باقی ساختارهای ذخیره‌سازی عمل می‌کنند به پایگاه داده سیستم‌ها از راه دور هم دسترسی داشته‌باشند.
    • یکپارچگی: ارتباط برنامه‌ها در درون سازمان معمولا به سرویس‌های از راه دوری که توسط برخی از محصولات یکپارچه‌سازی ارائه می‌شود وابسته است. ارتباط پیام نمونه ساده از این عنوان است. در حالی که نمونه‌های پیچیده‌تر دیگری مثل، IBM’s WebSphere Process Server, Microsoft’s BizTalk Server هستند.
    • انطباق: ایجاد تطابق اطلاعات نیاز اساسی برای اکثر برنامه‌هاست. تکنولوژی‌های معمول مستقر به این شکل Microsoft’s Active Directory و دیگر سرورهای LDAP است.

    سرویس‌های برنامه مستقر، طبقه‌بندی سومی است که در شکل ۲ نشان داده شده و از سازمانی به سازمان دیگر تنوع دارد. دلیل ساده این امر این است که سازمان‌ها از برنامه‌های مختلفی استفاده می‌کنند که موجب ایجاد خدمات گوناگونی می‌شود. برنامه‌هایی که تحت پلتفرم‌های مستقرند به دو دسته تقسیم می‌شوند:
    • برنامه‎های پکیجی: که شامل نرم افزارهای کسب وکار مثل SAP، Oracle و Microsoft dynamic نمونه‌های بیشمار دیگری می‌شوند. درحالی که همه برنامه‌های پکیجی همه خدمات را به دیگر برنامه‌ها ارائه نمی‌دهند اما هر روز تعداد بیشتری این قابلیت را ایجاد می‌کنند.
    • برنامه‌های سفارشی: بسیاری از سازمان‌ها سرمایه گذاری‌های عظیمی در نرم‌افزارهای سفارشی داشته‌اند. این نرم‌افزارها هم عملکردشان را از طریق خدماتی که ارائه می‌دهند توسعه می‌دهند و هم بخشی از برنامه‌های مستقر پلتفرم‌ها می‌شوند.

    هنگامی که به این شکل توصیف می‌شود، پلتفرم برنامه‌های مستقر بسیار پیچیده به نظرمی‌رسند. واقعیت این است که این پلتفرم ها در طول زمان تکامل یافته‌اند. در اوایل این روند، پلتفرم برنامه چیزی جز چند عملکرد نبود. (مثل MVS و IMS در چارچوب اصلی IBM) در سال‌های ۱۹۸۰ و ۱۹۹۰ با گسترش کامپیوترها، سرویس‌های ساختاری مستقری مثل انبارش، یکپارچگی و انطباق معمول شدند. امروزه با ظهور برنامه‌های سرویس‌گرا، سرویس‌های برنامه مستقر بخشی از پلتفرم‌ها شده‌اند. در مرحله بعدی که کاملا مشخص است ایجاد ورژن‌های تحت Cloud این سه بخش است.

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




    * نوشته هدیه قربانی
    منبع: http://www.davidchappell.com/CloudPlatforms–Chappell.pdf
پاسخ با نقل قول پاسخ با نقل قول

  • #2
    مهرداد تاجيك - مدير سایت Array admin آواتار ها
    تاریخ عضویت
    Thursday 30 June 2005
    محل سکونت
    تهران - ایران
    نوشته ها
    1,818
    Thanks
    22
    Thanked 47 Times in 42 Posts

    Post معرفی مختصری از پلتفرم‌های Cloud (بخش دو)

    ارزیابی پلتفرم‌های Cloud

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

    بنیانCloud
    شبیه به مدل مستقر، زیرساخت
    Cloud عملکردهای داخلی مورد نیاز برنامه‌ها را نیز فراهم می‌کند که شامل سیستم‌های عملیاتی زیربنایی و پشتیبانی‌های داخلی است. چگونگی عملکرد پلتفرم Cloud بر اساس نوع استفاده‌ای که از آن می شود متفاوت است و به صورت زیر تقسیم‌بندی می‌شود:

    سیستم عملیاتی از نقطه نظر پلتفرم، یک سیستم عملیاتی رابط اساسی برای استفاده از برنامه‌ها را ایجاد می‌کند. نمونه معروفی از این نوع سیستم‌های عملیاتی که تحت Cloud عمل می‌کنند (Elastic Compute Cloud (EC2 آمازون است. EC2 برنامه Linux سفارشی را به جای (virtual machines (VMs اجرا می‌کند. از دیدگاه فنی، بهتراست EC2 را به عنوان پلتفرمی برای VMs ببینیم تا اینکه آن را سیستمی عملیاتی بنامیم. اما هنوز برنامهنویسان سیستم عملیاتی را به عنوان یک رابط میبینند. هر تیم برنامه‌نویسی می‌تواند از انواع زبان‌های برنامه‌نویسی مثل Java EE یا MySQL و… در EC2 استفاده کند. در حالیکه EC2 درعین حال بسیار ساده است می‌تواند در روش‌های مختلفی نیز مورد استفاده قرارگیرد.

    پشتیبانی داخلی در یک پلتفرم مستقر، برنامه‌نویس می‌تواند بخش‌هایی را که می‌خواهد به هم مرتبط کند. برای مثال استفاده از چارچوب .NET در ویندوز با استفاده از پایگاه داده خاصی مغایرت ندارد. به صورت مشابه، یک برنامه مستقر که از چارچوب .NET استفاده می‌کند قابلیت دسترسی به لایه‌های زیرین ویندوز را همانند نرم‌افزاری که تحت Java نوشته می‌شود دارد. امروزه عملکرد پشتیبانی داخلی در بنیان Cloud به صورتی دیگر اجرا می‌شود. پشتیبانی داخلی یک Cloud معمولا شامل انبار دخیره خودش می‌باشد و هر چیزی که لایه زیرین سیستم عملیاتی ممکن است باشد را پنهان می‌کند. برنامه‌نویسانی که پشتیبانی داخلی برنامه را انتخاب می‌کنند باید محدودیت‌هایی که دارد را نیز مد نظر قراربدهند. البته دلایل خوبی برای این محدودیت‌ها وجود دارد، یکی از گزینه‌هایی که Cloud را جذاب می‌کند پتانسیل مقیاس‌پذیری آن است. اما پیاده‌سازی یک برنامه تحت Cloud که می‌خواهد بارگذاری‌های عظیمی را انجام بدهد از برخی جهات دارای محدودیت است. با سفارشی‌سازی عملکرد پشتیبانی داخلی، تامین‌کننده پلتفرم Cloud آزادی بیشتری در بهینه‌سازی محیط نرم‌افزار دارد. بر همین اساس، هر گروه از عملکردهای پشتیبانی داخلی در Cloud بر پشتیبانی بخش خاصی از برنامه تمرکزدارد. برای مثال AppEngine گوگل پشتیبانی داخلی برنامه‌های Python Web را ایجاد می‌کند.

    همزمان با اجرای نرم‌افزار
    Python ، AppEngine هم یک ذخیره‌سازی عمودی از داده‌ها با زبان برنامه خود انجام می‌دهد. نمونه دیگری از پلتفرم Cloud که پشتیبانی داخلی را انجام می‌دهد Force.com است که توسط Salesforce.com ارائه می‌شود. Force.com علاوه بر اهدافی که دارد، برنامه‌های کسب وکار محور نیز تولید می‌کند. بر این اساس، پشتیبانی‌های خاص خود را برای پایگاه داده این برنامه‌ها دارد و به جای اینکه مثل سایر برنامه‌ها از زبان‌های برنامه‌نویسی معمول استفاده کند، از زبان خاص خود با نام Apex استفاده می‌کند.

    سرویس‌های ساختاری
    Cloud

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

    ذخیره‌سازی برنامه‌ها معمولا چند نوع پایگاه ذخیره‌سازی داخلی دارند و بر همین اساس سیستم‌های Cloud و مستقر هر دو دارای بخش ذخیره‌سازی هستند. ذخیره‌سازی خارجی اغلب در مدل مستقر مشاهده می‌شود. با این اوصاف مشخص‌است که باید انتظار سرویس ذخیره‌سازی در Cloud را متعاقبا داشته‌باشیم. همانند سیستم‌های مستقر، ذخیره‌سازی خارجی در Cloud هم مدل‌های مختلفی دارد. برای مثال، سرویس ذخیره‌سازی ساده ،Amazon (S3) یک سری ذخیره‌سازی خارجی غیرساختاری را فراهم می‌کند و مدلی که برای برنامه‌نویسان فراهم می‌آورد بسیار ساده است. objectها که در واقع دسته‌ای از بایت‌ها هستند در یک فضا ذخیره شده‌اند. برنامه‌ها می‌توانند این فضاها و object ها را بسازند، خوانده یا پاک کنند. object ها نمی‌توانند به روزرسانی شوند و تنها می‌توانند جایگزین بشوند. این مثال که سرویس‌ پلتفرم‌ها چگونه باید تغییر کند تا بتواند حجم اینترنتی مورد استفاده را پشتیبانی‌کند نمونه دیگری است که خود Amazon هم روی آن تمرکزکرده است. این سرویس ذخیره‌سازی ساده و محدود برای مقیاس‎پذیری از نمونه‌های پیشنهادی کامل راحتتر است. استفاده تجاری آن نیزدر اینجا مشخص می‌شود که برنامه‌نویسان نرم‌افزار از پایگاه ذخیره‌سازی ارزان‌تری در Cloud استفاده می‌کنند اما ممکن است که نیاز باشد تا بر روی برنامه‌ها برای استفاده کاراتر تمرکز بیشتری داشته باشند. رویکرد دیگری در ذخیره‌سازی تحت ،Cloud پشتیبانی از ساختارهای داده متنوع است.

    برای مثال در
    مایکروسافتSQL Server Data Services (SSDS)که در شکل ۴ نشان داده شده است، یک کانتینر(container) شامل یک یا چند تا انتتی (entities) . هر کدام از این انتتی‌ها تعدادی عدد یا پراپرتیز (properties ) را در خود نگه می‌دارد. یک برنامه می‌تواند کوئری‌ها را با عملگرهای ==، =!، <، > ، AND، OR و NOT به کوئری‌ها حواله کند. لازم است یادآوری کنیم که این مدل نمونه‌ای از پایگاه داده وابسته به نسبت(relational) نیست و زبان کوئری هم SQL نیست. در اینجا با تضادی از چگونگی تغییر تکنولوژی پلتفرم برنامه‌ها هنگامی که به Cloud انتقال پیدا می‌کنند مواجه می‌شویم. این رویکرد ساده برای استفاده راحت‌تر از پایگاه داده Relational است. در این مدل نیازی به معرفی الگو نیست و درآن ایجاد مقیاس پذیری ساده‌تر عمل می‌کند.

    برنامه SimpleDB مازون نمونه دیگری از ارزش ذخیره‌سازی ساختار در Cloud را نشان می‌دهد. روشی که SimpleDB اطلاعات را ذخیره می‌کند شبیه به برنامه SSDS است (سلسله‌ای از دومین‌ها، گزاره‌ها و ارزش‌ها) و همچنین از زبان برنامه‌ای غیر از SQL استفاده می‌کند. همانند SSDS این برنامه هم نیازی به مشخص کردن الگو ندارد و در واقع برنامه ترکیبی از انعطاف‌پذیری و مقایس‌پذیری را فراهم می‌کند.

    یکپارچگی ارتباط بین برنامه‌ها جز اصلی محاسبات شده است و تولیدکنندگان نرم‌افزار سرویس‌های ساختاری مستقر زیادی را برای این منظور تولید کرده‌اند و این بازه از تکنولوژی‌های مرتبط با پیام‌رسانی تا سرورهای یکپارچه پیچیده را در برمی‌گیرد. همزمان با اینکه سرویس‌های تحت Cloud یکپارچه می‌شوند، یک سری تکنولوژی‌ها نیز پا به عرصه می‌گذارند. برای مثال برنامه Simple Queue Service (SQS) امازون همانطور که از نامش پیداست تنها روشی ساده برای نرم‌افزارها برای جابه‌جایی پیغام‌ها در محیط Cloud است. عملکرد SQS در واقع نشان می‌دهد که سرویس مستقر مشابه هنگامی که همانند سرویس Cloud عمل می‌کند چگونه کار می‌کند. چرا که برنامه SQS میزان پیام‌ها را در طول صف‌های مختلف افزایش می‌دهد و گارانتی وجود ندارد که برنامه‌های که یک صف را می‌خواند همه پیام‌هایی که در صف‌های مختلف برای یک درخواست خاص وجود دارد را نیز ببیند. برنامه SQS همچنین بنا بردرخواست نمی‌تواند مستقرباشد و این ساده‌سازی‌ها به امازون اجازه می‌دهد تا SQS را مقیاس‌پذیرتر کند. اما این مورد بدان معناست که برنامه‌نویسان باید از SQS به صورتی متفاوت با یک تکنولوژی درخواست پیام در حالت مستقر استفاده کنند.

    انطباق چه یک برنامه به صورت مستقر یا تحت Cloud عمل کند نیازمند اطلاعاتی درباره کاربرانش است. براین اساس، نرم‌افزار از هر کاربر تقاضا می‌کند تا شناسه دیجیتالی داشته باشد، گروهی از بایت‌ها که کاربر را ممایز می‌کند. بر اساس اینکه این بایت‌ها چه محتویاتی داشته باشند و چگونه شناسایی شوند، برنامه می‌تواند تشخیص دهد که کاربر چه کسی است و دسترسی چه فعالیت‌هایی را دارد. بسیاری از سیستم‌های مستقر امروزه به سرویس ساختاری مستقر وابسته هستند. مثل Active Directory که این اطلاعات شناسایی را فراهم می‌کند. هنگامی که یک کاربر به برنامه Cloud یا نرم‌افزار مستقر به سرویس Cloud دسترسی پیدا می‌کند، شناسایی مستقر معمولا نمی‌تواند عمل کند. برنامه‌هایی که تحت Cloud هستند چگونه اطلاعات شناسایی خود را بازیابی می کنند؟ سرویس شناسایی در Cloud می‌تواند این عملکرد را انجام بدهد. به دلیل اینکه از شناساگرهای دیجیتال افراد، برنامه‌های مستقر و برنامه‌های Cloud می‌توانند استفاده‌کنند، سناریوهای مختلفی را می‌توان تعریف‌کرد. درواقع، یک نشانه از اهمیت این نوع از سرویس‌های شناسایی، تعداد سرویس‌های شناسایی Cloudاست که امروزه در دسترسند. برای مثال دسترسی به سرویس‌های Cloud امازون مثل EC2 و S3 نیازمند نمایش شناسایی امازون است و یا استفاده از AppEngin گوگل نیازمند یک حساب کاربری گوگل است. مایکروسافت Windows Live ID می‌تواند برای برنامه‌های خود مایکروسافت و برنامه‌های دیگر استفاده شود.

    سرویس‌های برنامه‌های
    Cloud


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

    سرویس‌های برنامه
    SaaS

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

    جستجو

    سرویس‌هایی که توسط برنامه‌های SaaS ارائه می‌شوند با این حال که کارآمدند اما تمام ماجرا نیستند. برخی دیگر از سرویس‌های برنامه Cloud نیز اهمیت دارند. برای مثال درباره موتورهای جستجوگر گوگل و Live فکر کنید. با توجه به میزان اهمیتی که این برنامه‌ها برای افراد دارند، چرا نمی‌توانند سرویس‌های برنامه Cloud را نیز ارائه دهند؟ پاسخ به این سوال این است که آنها هم می‌توانند. برای مثال موتور جستجوگر لیو مایکروسافت، سرویس‌هایی را ارائه می‌دهد که به برنامه‌های مستقر و Cloud اجازه می‌دهد تا جستجویی را ثبت و نتیجه را دریافت کنند. شرکتی را درنظر بگیرید که پایگاه داده‌ای از اطلاعات مورد تقاضا را فراهم می‌کند و به مشتریان اجازه می‌دهد تا هم داده‌های خودشان و هم وب را در یک درخواست جستجو کنند. آنها می‌توانند با ایجاد یک برنامه مستقر که هم داده مورد نظر را جستجو می‌کند و هم وب را این کار را انجام بدهند. بهتر است بگوییم که بسیاری از برنامه‌ها این نوع از سرویس را نیاز ندارند چرا که دلیلی وجود ندارد که این جستجو از طریق سرویس برنامه انجام بشود. به جای آن این کار از طریق سرویس ساختار انجام می‌شود.

    نقشه خوانی
    بسیاری از برنامه‌های وب امروزه مکان‌هایی را نمایش می‌دهند. وبسایت‌های هتل‌ها و خرده فروشان مکان فروشگاه هایشان را در وبسایتشان نمایش می‌دهند. افرادی که این برنامه‌ها را تولید می‌کنند قطعا زمان، علاقه و بودجه کافی برای ایجاد این عملکرد در سایت خودشان را ندارند. درحالی که بسیاری از برنامه‌ها به این عملکرد نیاز دارند تا سرویس برنامه Cloud آن را فراهم آورد. همانند سرویس مکان یابی Google Map و Virtual Earth مایکروسافت. هر دو این برنامه‌ها سرویس‌هایی تحت Cloud فراهم می‌کنند تا برنامه‌نویسان نرم‌افزارها بوسیله آن بتوانند مکان را در صفحات وب نشان بدهند. این سرویس‌های مکان‌یابی مضاعف بر سرویس جستجو که بر روی وب سایت‌ها وجود دارد کاربران را به صورت خاص هدف قرار می‌دهد. به این معنی که آنها جزئی از سرویس‌های برنامه Cloud می‌شوند.

    دیگر سرویس‌های برنامه
    امروزه سرویس‌های برنامه دیگری نیز وجود دارند. درواقع، تقریبا هر وبسایتی می‌تواند عملکردهای سرویس تحت
    Cloud خود را برای برنامه‌نویسان نمایان‌کند. سایت‌های اشتراک عکس همانند Picasa گوگل و Windows Live Photo Gallery مایکروسافت این کار را به صورتی انلاین برای کاربرانشان انجام می‌دهند. هدف از نشان‌دادن این سرویس‌ها ایجاد mash-ups هایی است که عملکردهای برنامه‌های تحت وب را نمایان‌کند. فروشندگان نرم‌افزار گاهی سرویس‌های برنامه Cloud را به صورت گروهی زیر یک چتر ارائه می‌دهند. برای نمونه سرویس‌های دستیابی به اطلاعات در حساب گوگل،Picasa از جمله برنامه‌های داده گوگل است. به صورت مشابه هم مایکروسافت گروهی از برندهای مختلف در زمینه اطلاعات خود را با نام پلتفرم Live گرد هم آورده. فاصله بین سرویس‌های ساختاری Cloud و سرویس‌های برنامه Cloud گاهی با هم همپوشانی دارد. سرویس‌های عمومی ذخیره‌سازی Cloud مثل S3 و SSDS کاملا ساختاری‌اند. سرویس مکان‌یابی مثل Google Earth کاملا برنامه‌ای است که فقط برنامه‌های مشخصی بهآن نیازدارند. پلتفرم‌های Cloud حوزه جدیدی هستند، برای همین عجیب نیست که توضیح طبقه‌بندی آن چالش برانگیز باشد. با نوع رویکرد، مشخص می‌شود که سرویس‌های برنامه Cloud نقش مهمی را بازی می‌کنند. امروزه برای هر کسی که نرم افزارها را طراحی و اجرا می‌کند اینکه چه امکاناتی در Cloud وجود دارد مشخص است.

    نتیجه‌گیری
    معمولا یک برنامه پلتفرم جدید همیشه موفق نیست. اما وقتی یک نوآوری موفق از پلتفرم ظاهر می‌شود، تاثیر بزرگی دارد. کامپیوترهای شخصی دنیای
    mainframes و minicomputers را دسته‌بندی کرده یا اینکه پیشرفت پلتفرم‌های برنامه‌ها مدلی را که افراد برنامه‌نویسی می‌کنند تغییر داده است. این در حالی است که مدل‌های قدیمی به صورت کامل منسوخ نشده‌اند، تنها رویکردهای جدید به سرعت در کانون توجه برنامه‌های جدید قرار می‌گیرد. پلتفرم های Cloud هنوز طیف کاملی از برنامه‌های مستقر را پوشش نمی‌دهند. برای مثال، برنامه BI به عنوان بخشی از پلتفرم هنوز معمول نشده و همچنین پشتیبانی از تکنولوژی‌های مدیریت فرایند کسب‌وکار وجود ندارد. همچنان که این موج تکنولوژی به سمت جلو پیش می‌رود، این مشکلات همه چیزهایی است که وجود دارد و باید تغییرکند. پلتفرم‌های Cloud هنوز کانون توجه اکثر افراد نیست. اما در طی ۵ سال آینده پیش‌بینی می‌شود که روند برعکس پیش برود. جدابیت Cloud در مقیاس‌پذیری و هزینه‌های پایین آن است. اگر در بخش برنامه‌نویسی باشید یا قسمت نرم‌افزار یا به عنوان کاربر باید منتظر این موضوع باشید که Cloud نقش بسزایی را در آینده ایفا خواهد کرد. نسل جدید پلتفرم‌ها تحت Cloud خواهندبود.

    * هدیه قربانی
    منبع : http://www.davidchappell.com/CloudPlatforms–Chappell.pdf

  • علاقه مندي ها (Bookmarks)

    علاقه مندي ها (Bookmarks)

    مجوز های ارسال و ویرایش

    • شما نمیتوانید موضوع جدیدی ارسال کنید
    • شما امکان ارسال پاسخ را ندارید
    • شما نمیتوانید فایل پیوست کنید.
    • شما نمیتوانید پست های خود را ویرایش کنید
    •