
کتابخانه fast-dds یک پیاده سازی بروز از پروتکل DDS است که با زبان سی پلاس پلاس توسعه پیدا کرده است. در صورتی که با DDS آشنایی ندارید میتوانید به لینک معرفی Data DIstribution Service (DDS) مراجعه فرمایید.
DDS یک پروتکل دیتا محور است که بر روی لایه زیرین خود یعنی RTPS یا اشتراک و انتشار برخط بنا شده است و روند کاری آن مانند دیگر سیستم های اشتراک و انتشار شامل یک منتشر کننده و یک مشترک میشود اما از قابلیتهای کاربردی DDS میتوان به قابلیت فیلتر محتوا اشاره کرد. درست است که در یک سیستم اشتراک و انتشار ما برای دیتای مورد نیاز مشترک میشویم اما همیشه تمامی دیتای مورد نظر را نیاز نداریم و بنابراین نیاز به یک روند برای فیلتر محتوای دریافتی نیاز داریم اما چون DDS توزیع شده است و ممکن است ناشر و مشترک در یک سیستم نباشند این موضوع که این فیلتر در سمت کدامیک صورت بپذیرد از چند جنبه اهممیت دارد مثلا اگر این فیلتر سمت ناشر صورت بگیرد پهنای باند شبکه کمتری مصرف میشود اما همانطور که مشخص است انجام این فیلتر به منابعی نیاز دارد که ممکن است این منابع در سیستم ناشر موجود نباشد یا در اختیار برنامه ما نباشد.
شرایطی که برای فیلتر سمت نویسنده داده موجود است به شرح زیر است
یک نویسنده داده زمانی فیلتر مورد نظر خواننده داده را انجام میدهد که تمامی شرایط زیر برقرار باشد و در غیر این صورت فیلتر سمت خواننده دیتا صورت میپذیرد.
- DataWriter از سرزندگی (liveliness) بی نهایت برخوردار باشد. اطلاعات بیشتر 17.1.1.3.19. LivelinessQosPolicy
- ارتباط با DataReader از نوع درون فرایندی یا اشتراک گذاری داده نباشد.
- DataReader از multicast استفاده نکند.
- DataWriter برای تعداد کمتری از مقدار مشخص شده در reader_filters_allocation در حال انجام فیلتر باشد.
- یک خط مشی محدودیت منبع در DataWriterQos وجود دارد که رفتار تخصیص منابع فیلتر سمت نویسنده را کنترل می کند. تنظیم حداکثر مقدار 0 ارزیابی فیلتر را در سمت نویسنده غیرفعال می کند. حداکثر مقدار 32 (مقدار پیش فرض) به این معنی است که نویسنده ارزیابی فیلتر را برای حداکثر 32 خواننده انجام می دهد.
- اگر DataWriter در حال ارزیابی فیلترها برای writer_resource_limits.reader_filters_allocation باشد.یعنی حداکثر DataReader، و یک فیلتر DataReader جدید ایجاد شود، سپس فیلتر برای DataReader جدید ایجاد شده در سمت خواننده ارزیابی می شود.
آیا تابحال از این قابلیت استفاده کردهاید ؟
در رابطه استفاده از DDS سوالی دارید ؟
از طریق ایمیل project@moderncloud.ir برای مشاوره با ما در ارتباط باشید.