بخشی از مقاله
بررسی معماری نرم افزاری مبتنی بر PUBLISH/SUBSCRIBE وکاربردهای آن
چکیده:
این نوشتار برگرفته از پژوهشی می باشد که جهت شناسایی معماری نرم افزاری مبتنی برانتشار/اشتراک و نقش معماری فوق در شبکه های کامپیوتری انجام گرفته است در این پژوهش تلاش بر این بوده است که با رویکردی توصیفی با توجه به نیاز روزافزون به ایجادوتوسعه معماری های نرم افزاری ، ویژگیهای این مدل بیان گردیده وکاربردهای آن در چند شبکه کامپیوتری بیان گردد.بنابراین ابتدا تعریفی از مدل اشتراک / انتشارو سیرتکاملی آن ارائه شده ودر مرحله بعدی ویژگیهای این مدل موردبررسی قرار گرفته و در ادامه چند نمونه از کاربردهای این سیستم به اختصارتشریح شده است .
که محتوای آن را نشان مـی دهـد، برچسـب شـده اسـت. ایـن موضوع می تواند یک رشته اختیاری و یا رشته ای از یک دامنه تاییــد شــده باشــد. عــلاوه بــر تطــابق دقیــق، مشــترکان می توانند تمامی موضوعاتی که به عنوان مثال با کلمه شـغل" " آغاز می شوند را درخواست نمایند.
در سال های اخیر، یک الگوی انعطاف پذیرتر به نام آدرس دهی محتوایی (مبتنی بر محتـوا) ایجـاد شـده اسـت.یـ ک سیسـتم محتوایی با اجازه دادن به مشترک برای بیان سلیقه هـای خـود در پـــرس و جـــوی دلخـــواه دربـــاره محتویـــات رویـــدادها، انعطاف پذیری بیشتری فراهم می کند. بنابراین، به جای تکیـه بــر ناشــر بــرای طبقــه بنــدی رویــدادها در قالــب گــروه هــا و موضـوع هــا، مشــترک مــی توانــد توصــیفات پیچیــده ای مثــل درخواست زیر را فراهم کند " من قیمت تمامی سهام برای سهم X را از زمان A تا زمانB را برای حالتی کـه قیمـت بـیش از 35 باشد، می خواهم ". به طور حسی، از آنجایی که اشتراک هـا می توانند پیچیده باشند، پیدا کردن تطابق ها بین رویداد هـا و اشتراک ها در سیستم های موضوعی یا گروهی ، بسیار دشوارتر است[4]
.3 مدل Publish/Subscribe
پیدایش سیستمهای نرم افزاری با کاربردهای خاص در سالهای اخیرکه براساس دریافت، پردازش و ارسال رویداد کار می کنند حوزه های جدیدی از تحقیقـاتنـرم افـزاری را بوجـود آورده است .بعنوان مثال، سیستمهای نهفته یا سیسـتمهایبیـدرنگ شاخه ای از این نوع کاربردهـا میباشـندکـه بصـورت مبتنـی بررویداد طراحی و پیاده سازی میشوند.[5]
معماری نرم افزاری مبتنی بررویداد از فرایندهای کنترل رویداد تشکیل شده است که فقط در پاسخ به رویدادها اجرامیشـوند . آگاه کـردن ازیـک رویـداد هسـته یاصـلی معمـاری مبتنـی بررویداد3 می باشـد[6] .ایـن قسـمت سرویسـها، رویـدادها و مصرف کنندگان را درمحیط پویا بصورتقابـل اطمینـانبهـم متصل میکند .هنگامیکه یک رویداد رخ میدهد تولید کننده ها پیامها را منتشر کرده و در نهایت به مصرف کننـدگان رویـداد، داده خواهد شد؛ هسته ی اصلی سیستم های مبتنی بررویداد از مدل زیرساختی پایه ای اشتراک /انتشارتشکیل شده است.
سیستمی که براساس مدل انتشار/اشتراک بنا شده باشد با ارسال رویدادها از منبع تولید رویداد به کاربر آن، فراهم کننده ی اطلاعات و مصرف کننده ی آنرا بهم متصل میکند .در این مدل کاربر اطلاعات، علاقه مندی خود به محدوده ی خاصی ازاطلاعات را توسط مفهومی بنام اشتراک4 بیان کرده و هنگامیکه یک رویداد در سیستم تولید شد زیرساخت اشتراک /انتشارمسئول است که رویداد رسیده را برای تمام اشتراکهای موجود چک کندودرصورت مطابقت با هرکدام از آنها، آنرا به کاربر مربوط ارسال نماید.
مدل ارتباطی در اشتراک /انتشار با آنچه در مدل ارتباطی نقطه به نقطه 5 وجود دارد از چند جنبه متفاوت میباشد .اول در این روش ارتباطی، طرفین یک ارتباط، لزومـی بـه شـناختهـم و دانستن آدرس یکدیگر ندارند .بعبارت دیگر،دریافت کننـده ی داده در این روش بجای اینکه آدرسگـره ی خاصـی را بـرای دریافــت بیــان کنــدصــرفًا خصوصــیات داده ای را کــه می خواهد،توصیف میکند.دوم این نوع ازارتبـاط غیرهمزمـان است، زیرا در این ارتباط ارسال کننده ی داده منتظر دریافـت پیام تصدیق ازدریافت کننده ی داده نمی ماند در عین حالیکه زیرساخت بعنوان مثال، کاربر بهتمـام رویـدادهایی کـه درمـورد "دمـای محیط دریافت شده توسط حسگر "باشد علاقه مند میباشد. روش سوم مبتنیبـر محتـوا میباشـد .ایـن روش از آنجاییکـه براساس پرس وجو عمل میکنـد انعطـاف بیشـتری از دو روش قبل دارد .در این روش کاربر داده، بجای اینکه براساس گروه یا موضوع خاص تمایـل خـود را بـرای دریافـت دادهاعـلام کنـد براساس یک جمله ی پرس وجوی سطح بالا اشـتراک خـود را اعلام میکند .بعنوان مثال، در محیطیکـه دمـای هـوا توسـط حسگرها دریافت میشود جمله ی " دمای هوای بین 20 تا 30 درجـه ی سـانتیگراد "نشـان دهنـده ی اشـتراک یـک کـاربر میباشد.
شکل1 یک نمونه ی ساده و اولیه از مکانیزم اشتراک /انتشـار را نشان میدهد .همانطور که نشان داده شده است کانال ورودی، سرور اشتراک /انتشار را تغذیه می کند که این بخش بنوبـه ی خود از محل ذخیره ی داده، در مـورد اطلاعـات علاقـه منـد ی کاربران یا همان اشتراک، پرس وجو انجام می دهد سپس بـرا ی کاربرانی که اشتراک آنهـا بـا محتویـات رویـداد ی کـه از کانـال ورودی آمده است منطبق باشد، یک کپی از رویـداد را جداگانـه در چندین کانال خروجی برای آنها می فرستد.
همانطور که گفته شد هسته ی اصلی معماری مبتنی بررویداد الگـــوی اشـــتراک / انتشـــارمی باشـــد.باانطبـــاق معمـــاری نرم ا فزاری مبتنیبرمـ دل اشـتراک /انتشـار بـرای کاربردهـا، تعــدادی مزیــت بصــورت ذاتــی بــه سیســتم تعلــق می گیرد . اول دو شرکت کننده در رویداد غیرمتصل خواهند بود، بطوریکه تعامل در مورد اطلاعاتی است که باید دریافـت و ارسال گردد . دوم اینکه اشتراک/انتشار از تعامل چند بهچنـد پشتیبانی می کند که در آن سیستمها، اطلاعـاتی از رویـداد را در شبکه منتشر می کنند بطوریکه تعدادی دیگر از سیسـتمها که عضو دریافت کنند ه ی پیام هستند می توانند آنرا دریافـت کرده و بر روی آن پردازش انجام دهند.در نهایت جنبه ی مهم این مدل، پشتیبانی از تبادل پیام بصورت غیرهمزمان می باشد که موجب می شود فرسـتنده ی پیـام، منتظـر پیـام تأییـد از دریافت کننده ی پیام نماند و لزومی به برقـرارییـک ارتبـاط زنده بین شرکت کنندگان نمی باشد1[]
.4 کاربردهای مدل اشتراک /انتشار 4-1 سیستم های انتشار / اشتراک محتـوا - آگـاه بـرایV A NE T
در[8] ضمن بررسی راه حل های موجود بـرای سیسـتم هـای انتشار / اشتراک در V A NE T ، ویژگی های اصلی V A NE T هـا و شبکه های موردی هوایی که یک زیـر گـروه از V A NE T هـا هستندبیان شده است . سپس دو نمونه از کاربرد یـک سیسـتم انتشار / اشتراک در زمینه خاصی از A A NE T ها در هواپیمـایی شهری ارائه گردیده اسـت . بـا اسـتفاده از ایـن دو کـاربرد، دو ویژگی مطلوب سیستم های اشـتراک انتشـار/ بـرای V A NE T هـا مشخص شده اسـت ، یعنـی فیلتـر محتـوای گـره و مانـدگاری رویدادها در شبکه. در نهایت، سه کلاس از راه حل ها برای ایـن سیستم ها در V A NE T که شامل -1 راه حل های جغرافیـایی مبتنی بـر مسـیریابی -2 راه حـل هـای مبتنـی بـر مجـاورت و راهکارهای مبتنی برشبکه های overlay معرفی مـی گـردد. راه حل های مبتنی بر مسیریابی جغرافیایی و مسـیریابی مجـاورت برای مواردی که در آن مشترکان در سراسر شبکه منتشر شـده اند سازگار نیستند. به همین دلیـل بـه نظـر مـی رسـد شـبکه overlay بهترین روش است، اما سـربار معرفـی شـده بـه دلیـل نگهداری از این نوع شبکه ممکن اسـت یـک مشـکل در منـابع محدود V A NE T باشد.
V A NE T یک شـبکه ی شـکیبادر مقابـل تـأخیر و آسـنکرون, مستقل بودن از مشخصات ذاتی آن می باشـد. همـان طـور کـه الگوی ارتباطاتی اشتراکی/ انتشاری جـدا سـازی زمـان، فضـا و جریــان بــین واحــدهای ارتباطــاتی را فــراهم مــی کنــد، بــرای محیط های V A NE T بسیار مناسـب مـی باشـد. جداسـازی در زمان به معنای این است که مشترک رویداد و ناشر رویداد نیـاز ندارند که در یک زمان در حال اجرا باشند. جداسازی در جریان به معنای این است که فرستادن و دریافت شرکت کننـده هـا را مسدود نمی کند. جداسازی در فضا بـه معنـای ایـن اسـت کـه مشترک می تواند از یک مکان به مکـان دیگـری بـدون اطـلاع دادن به ناشر جابجا شود. به علاوه, در V A NE T وسـایط نقلیـه در حال حرکت و مستقل هستند و ایجاد هر گونه قدرت اجرایی امکان پذیر نمـی باشـد، کـه ایـن، روش اشـتراکی/ انتشـاری را مناسب ترین روش برای محیط ها می سازد.
4-2 سیستم های انتشار / اشتراک برای تلفن همراه
بسیاری از پژوهش هـایی کـه تـا کنـون دربـاره سیسـتم هـای انتشار/ اشتراک انجام گرفته مربوط به شبکه های ثابت بوده اند. استدلال این است که سیستم های انتشار/ اشـتراک در محـیط بی سیم یا تلفن همراه نیـز کـارایی دارنـد . گمنـامی و پویـایی انتشار / اشتراک به سیستم ها اجازه می دهد که بـه سـرعت بـا قطــع و وصــل هــای مکــرر بــا گــره هــای تلفــن همــراه کــه از ویژگی های شبکه تلفن همراه است، تطابق پیدا کند. ناهمزمانی نیز مفید می باشد، برای اینکه دستگاه های تلفن همراه اغلب به مدت طولانی از شبکه قطع هسـتند و یـا خـاموش مـی باشـند . دستگاه های بی سیم دارای قابلیت ها و پهنـای بانـد محـدودی است. ماهیت چند پخشی ا شتراک/ انتشـاربـه سیسـتم کمـک می کند که به اندازه میلیون ها واحـد گسـترش پیـدا کنـد . بـا افزایش محبوبیت دستگاه های تلفن همراه، نیاز برای گسـترش انتشار/ اشتراک با یک محیط تلفن همراه وجود دارد.
در[9] درباره نحوه سازگاری یک سیسـتم انتشـار/اشـتراک در یک محیط عملیاتی تلفن همراه بحث گردیده و معمـاری هـای متعددی از یک سیستم انتشار/اشتراک از رویکرد متمرکز سـاده ، به رویکردهای توزیع یافته بـا مقیـاس پـذیری پیشـرفته، و در نهایت به تکرارهایی که قابلیت اطمینان را افزایش می داد بیـان گردیده است .اما این معماریها می تواند مشکلات پایداری را در بر داشته باشد
4-3 سیستمهای انتشار/ اشتراک در حوزهی گردشگری
انتشار/ اشتراک یک پارادایم ارتبـاطی اسـت کـه بـه دلیـل دارا بــودن مکــانیزمهــای ارتبــاطی کوپلینــگ ضــعیف6،