بلوم زبان برنامه نویسی نامنظمی برای جهان توزیع شده!
بلوم یک چارچوب زبانی است برای برنامه نویسی های بی نظم در سیستم های ابری بر اساس temporal logic ، eventual consistency و logical monotonicity
با توجه به اینکه از زبان بلوم در برنامه های توزیع شده استفاده می شود،لازم است در مورد این نوع برنامه ها موارد زیر را بدانیم :
تشریح یک برنامه توزیع شده :
- ما در یک برنامه توزیع شده موارد زیر را میبینیم :
- ارتباطات ، پیام ، ترتیب
- اداره کردن و بررسی رویداد
- همزمانی و هماهنگی
- تحمل خطای صریح
- در این نوع برنامه ها به دنبال چه هستیم؟
- صحت (ایمنی و زنده بودن و …)
- انطباق با مشخصات
- ویژگه عملکرد سطح بالا
Bloom and (Orders of Magnitude Berkeley) BOOM
بلوم : یک زبان اطلاعات محور و سطح بالا است که برای محاسبات توزیع شده طراحی شده است.
بلوم یک زبان از پروژه ی BOOM میباشد. بلوم طراحی شده برای پرهیز از عدم تطابق سنتی بین پلتفرم های توزیع شده و زبان های برنامه نویسی ترتیبی.
اهداف طراحی زبان بلوم :
- Familiar syntax (list comprehensions, callbacks)
- Integration with imperative languages
- Modularity, encapsulation, and composition
بلوم در حال توسعه (Bloom Under Development) : BUD
مدل عملیاتی بلوم به شکل زیر می باشد :
این مدل دارای سه بخش اصلی به شرح زیر می باشد :
Setup : scratches emptied, network messages placed in channels
logic: Bloom <= rules evaluated until fixpoint
transition: items derived by <+ and <- inserted/deleted from collections, items derived by <~ sent
قوانین بلوم :
Bloom Rule Syntax
برخی از ویژگی های زبان Bud
سیستم ماژول
- کپسوله و ترکیب از طریق mixin
- رابط چکیده و خلاصه
- پیاده سازی واقعی
نوشتن برنامه های توزیع شده در بلوم
اعلامیه ها و رابط های چکیده و خلاصه :
پیاده سازی واقعی :
مراجع :
۱. Declarative Distributed Programming with Dedalus and Bloom [Peter Alvaro, Neil Conway UC Berkeley
۲. Bloom: Using disorderly programming to build eventually-consistent distributed systems [Bill Marczak UC Berkeley]
۳. Cloud Programming: From Doom and Gloom to BOOM and Bloom [Peter Alvaro, Neil Conway ]
۴. Disorderly programming for a distributed world [Peter Alvaro UC Berkeley ]
۵. http://boom.cs.berkeley.edu/