Google App Engine – بخش دوم

بابک فخریلو

تو بخش قبلی یه مقدمه ای از حرکت شرکت Google برای فراهم کردن فرصت توسعه ی  برنامه ها تحت  Cloud با هزینه کم، صحبت کردیم، که این طرح در قالب App Engine به توسعه دهنده ها ارائه میشه. آخر همون مطلب هم گفتم که دارم تست اش می کنم. من مدتی بود کار با python رو شروع کردم و تصمیم گرفتم SDK مربوط اش رو از گوگل دانلود کنم (با هزار بدبختی، گفتم که برای ایران بسته است) و شروع کردم Tutorial که با زبان python توسعه ی یه برنامه ساده تحت App Engine رو شرح می داد، کار کردم. اما به انتها که رسید و خواستم به قول معروف Upload کنم تو سرور گوگل، دیدم بله، چشم تون روز بد نبینه، شماره تلفن موبایل می خواد و ایران رو هم پشتیبانی نمی کنه. به سلامتی…

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

محیط برنامه

توسعه ی یک برنامه که بتواند با قابلیت اطمینان کار کند، حتی در شرایطی که load روی آن زیاد باشد و با داده های زیادی در گیر شود، با Google App Enigne ساده خواهد بود. ویژگی هایی که این بستر دارد را می توانید به طور فهرست وار در زیر ببینید:

  • پشتیبانی کامل از تکنولوژی های متدال در وب همراه با dynamic web serving
  • فضای ذخیره سازی پایدار با امکان گرفتن Query، مرتب سازی و انجام تراکنش روی آن (همان Database)
  • امکان توسعه پذیری و load balancing خودکار
  • API برای هویت سنجی کاربران (authenticating) و ارسال ایمیل با استفاده از حساب های کاربری Google
  • محیط توسعه ی محلی که App Engine را در کامپیوتر شما شبیه سازی می کند
  • صف بندی Task ها برای اجرا در حوزه ای  خارج از یک درخواست وب (مانند انجام فرآیندهایی که در قالب برنامه های تحت وب انجام شان ناشدنی یا سخت است)
  • Task های زمان بندی شده برای فعال کردن رویدادهایی در زمان یا بازه های زمانی مشخص (مانند بررسی یه مقدار از سطری خاص در پایگاه داده در بازه های زمانی 5 دقیقه ای)

SandBox

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

(من به شخصه برای تست App Engine از زبان python استفاده کردم، و به همین خاطر هم از بین سه زبان، شرح زبان python رو اینجا آوردم، برای دو زبان دیگر، لینک پایانی را کلیک کنید)

Python Runtime

با استفاده از Python runtime environment، می توانید برنامه ی خود را با استفاده از زبان برنامه نویسی Python پیاده سازی کنید، و آن را روی یک مفسر بهینه شده اجرا کنید. App Engine شامل API ها و ابزارهایی برای توسعه برنامه های وب به زبان Python است، که نمونه اش API مخصوص مدل سازی داده است، یک قالب کاری ساده برای برنامه های تحت وب، و ابزارهایی برای مدیریت و دسترسی برنامه به داده ها.  حتی می توانید از ویژگی های کتابخانه ها و قالب های کاری که برای توسعه ی برنامه های وب با Python ایجاد شده اند استفاده کنید. یکی از این قالب های کاری، Django است که در بین برنامه نویسان Python شهرت خوبی کسب کرده است.

Python runtime environment از نسخه ی 2.5.2 زبان Python استفاده می کند، اما می توانید از 2.7.2 هم استفاده کنید.

Python environment، کتابخانه ی استاندارد Python را دارد. اما نه همه ی ویژگی های آن. برای نمونه، فراخوانی یک متد که می خواهد یک socket را باز کند، یا روی فایلی بنویسد، موجب بروز exception خواهد شد. برای راحتی کار، چندین Module از کتابخانه استاندارد که ویژگی ها شان توسط runtime environment پشتیبانی نمی شود، غیرفعال شده اند، و import کردن آنها سبب بروز خطا خواهد شد.

Datastore

یک سرویس ذخیره سازی برای داده ها که توزیع شده است، و امکان گرفتن query و انجام تراکنش ها را فراهم می سازد. همان طور که وب سرور توزیع شده با ترافیک ورودی به برنامه شما افزایش می یابد، فضای ذخیره سازی توزیع یافته هم با داده های شما گسترش پیدا می کند. برای فضای ذخیر سازی دو گزینه پیش رو دارید، یکی تضمین می کند که همیشه در دسترس باشد، دیگری پایداری را تضمین می کند. بسته به نوع برنامه تان می توانید یکی از این دو را انتخاب کنید.

موجودیت ها در فضای ذخیره سازی داده، اصطلاحا » schemaless» هستند. ساختار موجودیت های داده توسط کد برنامه شما مشخص می شود. واسط های Java JDO/JPA و Python ویژگی های دارند که می توانید این ساختار را در برنامه خود تعریف کنید.

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

Google Accounts

یکپارچگی با حساب های کاربری Google، یکی دیگر از ویژگی هایی است که App Engine پشتیبانی می کند. برنامه شما این امکان را به کاربر می  دهد تا با حساب Google خود وارد (login) شود. استفاده از حساب های کاربری Google به کاربر تجربه ی سریع تری در کار کردن با برنامه می دهد، چرا که دیگر نیازی نیست کاربر حساب جدیدی ایجاد کند. همچنین شما به عنوان توسعه دهنده برنامه، دیگر نیاز به ایجاد یک سیستم مجزا برای مدیریت حساب های کاربران نخواهید داشت.

Development Workflow

SDK هایی که App Engine برای زبان های Java، Python و Go فراهم کرده، یک وب سرور دارد که تمامی سرویس های App Engine را در کامپیوتر شما شبیه سازی می کند. هر SDK تمامی کتابخانه ها و API های موجود در App Engine را در خود دارد. وب سرور حتی محیط sandbox را می تواند شبیه سازی کند، و در همان کامپیوتر خودتان هم متوجه می شوید که به چه متدها و کتابخانه هایی نمی توانید دسترسی داشته باشید.

همچنین ابزاری برای Upload کردن برنامه تان به App Engine وجود دارد. وقتی کد برنامه، فایل هایی مانند تصاویر، فرمت بندی ظاهر و تنظیمات آماده شد، از این ابزار برای upload کردن استفاده خواهید کرد.

نکته جالبت اینجاست که همان طور که برای توسعه ی برنامه های  Android، plug-in برای Eclipse طراحی شده تا توسعه را راحت تر کند، در صورتی که از زبان Java برای توسعه برنامه های App Engine استفاده می کنید، می توانید plug-in مخصوص را دانلود کرده و برنامه ها را ایجاد، تست و آپلود کنید.

برگرفته از :

https://code.google.com/appengine/docs/whatisgoogleappengine.html

Advertisements

دربارهٔ Persian Developer

I Love Developing applications

Posted on فوریه 1, 2012, in Cloud, وب and tagged , , , , . Bookmark the permalink. بیان دیدگاه.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: