نمایش مطلب نمایش مطلب

معماری PVM


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

«سامانه مدیریت ماشینهای‌ مجازی پویش داده نوین (PVM - Pouyesh Dadeh Novin Virtual Machines Management System)»، نرم‌افزاری توسعه یافته توسط شرکت پویش داده نوینمی‌باشد که به منظور پیاده‌سازی تکنولوژی ماشینهای مجازی و مدیریت آنها در محیطData Center ادارات، شرکتها و سازمانها طراحی و معرفی شده است. «PVM» با کسب تائیدیه فنی از شورای عالی انفورماتیک کشور و ثبت در وزارت فرهنگ و ارشاد اسلامی در صدد رفع نیاز رو به رشد کشور به محصولات مشابه خارجی، با تکیه بر توان و دانش بومی است.

13

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

 

  • معماری PVM

سامانه PVM دارای اجزای مختلفی است که این اجزا توسط نرم⁠افزار SballTalk مدیریت و کنترل می⁠شوند. یکی از این اجزا محصول متن باز KVM می⁠باشد. شرکت پویش داده نوین در ادامه تحقیقات گذشته موجود بر روی این محصول، فعالیتهای ویژه ای را در جهت بهبود کارآیی آن انجام داده است که در قالب PVM OS ارایه گردیده است.

 

  • اجزای PVM عبارتند از:

  • PVM OS
  • XFramework
  • XParam
  • XList
  • XObject

SballTalk تمامی اجزا نوآوریهای ویژه‌ای در دنیای فناوری اطلاعات میباشند که در ادامه به تفصیل مورد بررسی قرار میگیرند.

Architecture_(3)

در تصویر (3) اجزای مختلف PVM و نحوه ارتباط آن‌ها با یکدیگر ارائه شده است. براساس تصویر فوق، محصول KVM وظیفه ایجاد ماشین⁠های مجازی (VM) را بر عهده دارد و محصول PVM عهده⁠دار مدیریت ماشین⁠های مجازی و سایر عملیات و وظایف مربوطه می⁠باشد.اختصارات بکار رفته در تصویر (3) به شرح ذیل است:

 VM: Virtual Machine Management Module VS: Virtual Switch Management Module UM: User Management Module TM: Task Management Module

 

  • PVM OS

لینوکسی بهینه شده جهت اجرای سامانه PVM می⁠باشد که با هدف سبکی و بهینگی در اجرای ماشینهای مجازی توسعه یافته است. این سیستم عامل در سطح هسته دارای بهینه سازیهای ویژه ای می⁠باشد و همچنین مباحث امنیتی را مبتنی بر مباحث Hardening پوشش داده است.

 

  • XFramework

چارچوبی طراحی شده توسط تیم فنی شرکت پویش داده نوین جهت طراحی و توسعه برنامه⁠های Modular می⁠باشد. Code Name مربوط به این پروژه putil است. XFramework با تفکر ایجاد محیطی منعطف و کارا جهت توسعه برنامه های Modular طراحی شده است.

منطق این چارچوب، توسعه سریع و مستقل ماژولها و امکان انجام فعالیتهای مبادله⁠ای با رابط کاربری به صورت پویا است.

در XFramework مبادله اطلاعات در قالب پیامهای XML انجام می‌شود. اجزای تشکیل‌دهنده آن به شرح زیر است:

 

  • Action Repository

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

Architecture_(4)

 

  • FireLoop

حلقه دریافت فرامین از کاربر (رابط کاربری) و ارائه پاسخ مربوطه می⁠باشد.

FireLoop قادر است با استفاده از متدهای ارتباطی مختلف فرامین را در قالب XML از کاربر دریافت کرده و پاسخ دریافت شده از اجرای دستور را به صورت XML به کاربر ارائه دهد.

 

  • XParam

از آنجا که در دنیای امروز تبادل و ذخیره⁠ سازی داده ⁠ها در قالب XML رواج یافته است لذا بر آن شدیم تا ساختاری را بوجود بیاوریم که برنامه نویسان شیء⁠گرا بدون هیچگونه دغدغه⁠ای در زمینه تبدیل اشیای موجود در برنامه در قالب XML قادر به برنامه نویسی باشند، این ایده سبب متولد شدن کتابخانه کارا و منعطف XParam گردید.

برنامه نویسان با استفاده از این کتابخانه قادر خواهند بود فایل یا رشته ای در قالب XML در اشیای برنامه بارگذاری کنند و یا اعضای داده⁠ای یک شی را تبدیل به XML نمایند.

این کتابخانه علاوه بر امکان ذکر شده، مفاهیم و امکانات نوین دیگری ارائه می دهد که برنامه⁠نویسی شیء گرا را به شبیه⁠سازی دنیای واقعی نزدیکتر می⁠کند که تحت عنوان XObject توضیح داده خواهد شد.

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

XParam در زبان ++C توسعه یافته است.

این بسته نرم‌افزار دارای مشابهی در دنیای فناوری اطلاعات از نظر ایده و شیوه عملکرد نمیباشد. جهت کسب اطلاعات بیشتر مقاله «نوآوریهای PVM» را مطالعه فرمایید.

 

  • XList

کار با اشاره⁠گرها در ++C و در محیطهای چندنخی (Multi Thread) عملی بسیار حساس می⁠باشد، چرا که ارجاع ناصحیح به فضایی که قبلاً آزاد شده است، باعت خروج کل برنامه می⁠شود.

XList به دنبال شیوه ای است که در صورت ارجاع به یک عنصر در لیست، تازمانی که ارجاع به آن عنصر در حال استفاده است، از حذف فیزیکی عنصر جلوگیری کند. در نتیجه در فضای Multi Thread ، هر نخ با در دست داشتن یک یا چند ارجاع به یک عنصر در لیست، این اطمینان را خواهد داشت که تا زمانیکه ارجاع معتبر است، عنصر مورد نظر نیز در حافظه وجود دارد.

XList با منطق لیستهای پیوندی پیاده⁠سازی شده است و هر ارجاع به لیست با iterator شبیه⁠سازی می⁠شود.

حذف عناصر دارای دو مرحله می⁠باشد:

خروج از لیست پیوندی، که در این صورت مرورهای آینده لیست، از وجود عنصر مطلع نمی⁠شوند، و همچنین ارجاعات موجود بر روی عنصر هدف نیز قابلیت جلو و عقب شدن را دارند. حذف فیزیکی عنصر، حذف فیزیکی منتظر می⁠ماند تا تمامی ارجاعات به عنصر پایان پذیرد، بعد از اتمام ارجاعات، عنصر حذف فیزیکی می⁠شود. در XList فعالیتهای Read بر روی لیست نیاز به استفاده از Lock جهت مدیریت همزمانی ندارند. همچنین همزمان با فعالیتهای Read یک عمل write (حذف و اضافه از/به لیست) میتواند انجام پذیرد.

این بسته نرم‌افزار دارای مشابهی در دنیای فناوری اطلاعات در حوزه زبان ++C نمیباشد وتوانسته است ساختمان داده‌ ای جدید و کارا به زبان قدرتمند ++C بیفزاید. جهت کسب اطلاعات بیشتر مقاله «نوآوریهای PVM» را مطالعه فرمایید.

 

  • XObject

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

در این حالت یک شیء می تواند با دیگر اشیاء ارتباط برقرار کند، از پذیرفتن ارتباطی خودداری کند و یا با برقراری/قطع ارتباطی عکس العملی خاص از خود نشان دهد.

از آنجا که این ابزار برپایه ی XParam بنا شده است، می⁠توان اشیاء و ارتباطات آن ها را به قالب XML تبدیل کرد، یا آن ها را ذخیره کرد و یا از طریق شبکه به نقطه دیگری ارسال نمود و بر اساس XML اشیاء و ارتباطات آنها، فضایی معادل فضای موجود در نقطه ای دیگر بوجود آورد. این ویژگی در سامانه⁠های پشتیبانی و سامانه⁠های برپایه Cluster دارای اهمیت بسیار و کاربرد فراوانی می⁠باشد.

عناصر پایه⁠ای این بسته نرم⁠افزاری عبارتند از :

XObject که شامل پیاده⁠سازی اشیاء (object یا شیء به مفهوم عام) می⁠باشد. XConnection که اتصال بین اشیاء را نشان می⁠دهد، این اتصال می⁠تواند مواردی همچون عضویت، دوستی و ... باشد. XObject یک نوآوری در دنیای فناوری اطلاعات به حساب می‌آید و قادر است شیوه جدیدی به منظور توسعه برنامه‌های کاربردی را در اختیار برنامه‌نویسان قرار دهد.

 

  • SballTalk

یک Cluster Engine است و وظیفه اصلی آن ذخیره⁠ سازی و همسان⁠ سازی اطلاعات اشیاء (Xobject) در سطح Cluster می⁠باشد. به عبارتی مدیر اشیا Cluster بر پایه Corosync است.

SballTalk با استفاده از زبان برنامه نویسی ++C بصورت شیء گرا و بر مبنای XObject توسعه یافته است. SballTalk دارای مخزنی از اشیاء است که این اشیاء می توانند هر چیزی از قبیل گره⁠ها، کاربران، وظایف، خدمات، منابع و غیره باشند.

بعلاوه SballTalk دارای ماژولهایی است که می توانند بصورت پویا به هسته اضافه گردند. هر کدام از این ماژول ها وظیفه خاصی از قبیل رصد منابع، مدیریت ماشین های مجازی، مدیریت سویچ های مجازی و غیره را بر عهده دارند.

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

SballTalk با ارایه مجموعه ای از امکانات و ابزارها چهارچوبی جهت پیاده⁠سازی برنامه‌ها به صورت Cluster فراهم می⁠آورد. همچنین بخاطر وجود قابلیت اضافه شدن ماژول ها بصورت پویاِ SballTalk از انعطاف پذیری خوبی برخوردار می⁠باشد و به سهولت می⁠توان آن را توسعه داد و برای اهداف گوناگون سفارشی نمود.

از نگاه محاسبات ابری، SballTalk می⁠تواند عنصر ساختاری در ارائه و توسعه برنامه⁠های ابری باشد که بر مفهوم Object به جایVirtual Machine تمرکز دارد.

با توسعه و تکمیل این محصول، SballTalk رقیبی جدی برای RGManager و Pacemaker خواهد بود زیرا آنچه این نرم افزارها ارائه می دهند، در قالب یک یا چند ماژول SballTalk عرضه خواهد شد.

 

  • مفهومی تازه در دنیای محاسبات ابری

ُSballTalk مفهوم جدیدی را به دنیای فناوری اطلاعات و محاسبات ابری عرضه می کند. هم‌اکنون تعریف محاسبات ابری بر پایه ماشینهای مجازی می باشد.

SballTalk فضای تعاریف را گسترش داده و Object را به عنوان عنصر پایه‌ای و ساختاری محاسبات ابری معرفی میکند.

به عبارتی در فضای ابری همه چیز به شکل Object قابل عرضه است که در یک دنیای ابری پراکنده شده و توسط زیرساخت ابری مدیریت می⁠شوند و کاربران فضای ابری بر اساس سطوح دسترسی از هر جای دنیا به Objectهای خود دسترسی خواهند داشت.

آدرس کوتاه :