خدمت توزیع داده

از ویکی‌پدیا، دانشنامهٔ آزاد

سرویس توزیع داده(DDS) یا به اختصار (Data Distribution Service)برای سیستم‌های بدون وقفه یک استانداردگروه مدیریت شی (OMG)ماشین به ماشین (به انگلیسی: Object Management Group) است (که میان‌افزار یا چارچوب اتصال نامیده می‌شود) هدف آن ممکن کردن مبادله‌های قابل اعتماد، با کارایی بالا، تعامل پذیر، بلادرنگ و مقیاس پذیر داده با استفاده از الگوی انتشار-اشتراک است. DDSبه نیازهای برنامه‌هایی مانند هوافضا و دفاع، کنترل ترافیک هوایی، وسایل نقلیه خودران، دستگاه‌های پزشکی، روباتیک، تولید برق، شبیه‌سازی و آزمایش، مدیریت شبکه هوشمند، سیستم‌های حمل‌ونقل و سایر برنامه‌هایی که نیاز به تبادل اطلاعات در زمان واقعی دارند، می‌پردازد.

معماری[ویرایش]

مدل[ویرایش]

DDS یک میان‌افزار شبکه است که برنامه‌نویسی شبکه‌های رایانه‌ایرا ساده می‌کند. این میان افزار(firmware)الگوی انتشار-اشتراک را برای ارسال و دریافت داده‌ها، رویدادها و دستورهادر میاننودها(nodes) پیاده‌سازی می‌کند. ره‌هایی که اطلاعات تولید می‌کنند (ناشران)، «موضوعاتی» را ایجاد می‌کنند (به عنوان مثال دما، مکان، فشار) و «نمونه‌هایی» را منتشر می‌کنند. DDS نمونه‌ها را به مشترکینی که به آن موضوع علاقه دارند تحویل می‌دهد.

DDS کارهای انتقال را انجام می‌دهد: آدرس‌دهی پیام، صف آرایی یا صف زدایی (تا مشترکان بتوانند در پلت‌فرم‌های مختلفی از ناشر باشند)، تحویل، کنترل جریان، تلاش‌های مجدد، و غیره. هر گره می‌تواند یک ناشر، مشترک یا هر دو به‌طور همزمان باشد.

مدل انتشار-اشتراک DDS عملاً برنامه‌نویسی شبکه‌های رایانه‌ایرا برای برنامه‌های توزیع شده حذف می‌کند.

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

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

DDS به یک کاربر اجازه می‌دهد تا پارامترهای کیفیت خدمت(quality of service)یا به اختصار(QOS) را برای پیکربندی مکانیزم‌های کشف و رفتار از قبل مشخص کند. DDS با مبادله پیام‌ها به صورت ناشناس، برنامه‌های توزیع شده را ساده می‌کند و برنامه‌های پیمانه ای وبا ساختار مناسب را تشویق می‌کند. DDS همچنین به‌طور خودکار در صورت شکست اولیه ناشران اضافی را با جایگزین کردن آنها مدیریت می‌کند. مشترکین همیشه نمونه‌هایی با بالاترین اولویت که داده‌های آن هنوز معتبر هستند دریافت می‌کنند (یعنی دوره اعتبار مشخص شده توسط ناشر منقضی نشده باشد). پس از بازیابی، به‌طور خودکار به حالت اولیه برمی گردد.

تعامل پذیری

هر دو پیاده‌سازی نرم‌افزاری اختصاصی و منبع باز DDS در دسترس هستند. که اینها شامل رابط‌های برنامه‌نویسی (API) و کتابخانه‌های پیاده‌سازی شده در زبان‌های ایدا، سی، C++، سی شارپ، جاوا، پایتون، اسکالا، لوآ، فارو و روبی است.

عرضه‌کنندگان DDS برای ابراز و به نمایش کشیدن تعامل پذیری DDS در محل جلسه‌های فنی OMG Spring از سال ۲۰۰۹ تا ۲۰۱۳ حضور پیدا کرده‌اند.

در طی دموها، هر عرضه‌کننده با استفاده از یک مجموعه آزمایشی به نام نمایش اشکال، موضوع‌های یکدیگر را منتشر می‌کردند و به اشتراک آن درمی‌آمدند. به عنوان مثال، یک عرضه‌کننده اطلاعاتی در مورد یک شکل منتشر می‌کند و سایر عرضه‌کنندگان می‌توانند در موضوع مشترک شوند و نتایج را در صفحه نمایش اشکال خود نمایش دهند. هر عرضه‌کننده به نوبت اطلاعات را منتشر می‌کند و دیگری مشترک می‌شود. دو چیز دموها را ممکن کرد: پروتکل DDS-I یا انتشار اشتراک در زمان واقعی(Real-Time Publish-Subscribe)یا یه اختصار(RTPS) و توافق برای استفاده از یک مدل مشترک.

در مارس ۲۰۰۹، سه عرضه‌کننده تعامل پذیری بین محصول‌های مجزا و مستقل را نشان دادند که پروتکل OMG Real-time Publish-Subscribe نسخه ۲٫۱ را از ژانویه ۲۰۰۹ اجرا می‌کردند. این نمایش شامل کشف ناشران و مشترکان یکدیگر در سیستم عامل‌های مختلف (میکروسافت ویندوز و لینوکس) بود و ارتباط‌های شبکه چندپخشی و تک پخشی را پشتیبانی می‌کرد. نمایش تعامل پذیری DDS از سناریوهایی مانند:

  • اتصال ساده به شبکه با استفاده از پروتکل اینترنت (IP)(internet protocol)
  • کشف ناشران و مشترکین
  • کیفیت خدمات (QoS) سازگاری بین درخواست کننده و ارائه دهنده
  • شبکه تحمل تأخیر
  • چندین موضوع و نمونه از موضوع‌های
  • مالکیت انحصاری موضوع‌های
  • فیلتر کردن محتوای داده‌های موضوعی از جمله زمان و جغرافیا

تاریخچه[ویرایش]

توسعه خصوصیات DDS در سال ۲۰۰۱ آغاز شد. این خصوصیات توسط Real-Time Innovations (RTI)، یک شرکت چارچوب نرم‌افزاری، و Thales Group، یک شرکت صنایع جنگ‌افزاری و هوافضایی فرانسوی توسعه داده شده است. در سال ۲۰۰۴، گروه مدیریت شی (OMG) نسخه 1.0 DDS را منتشر کرد. نسخه ۱٫۱ در دسامبر ۲۰۰۵، ۱٫۲ در ژانویه ۲۰۰۷ و ۱٫۴ در آوریل ۲۰۱۵ منتشر شد. DDS توسط چندین حق ثبت اختراع ایالات متحده پوشش داده شده است. خصوصیت‌های DDS دو سطح از رابط‌ها را توصیف می‌کند:

  • انتشار-اشتراک با محوریت داده (DCPS) (data-centric publish-subscribe) سطح پایین‌تر که در جهت ارائه کارآمد اطلاعات مناسب به گیرندگان مناسب است.
  • یک لایه اختیاری بازسازی محلی داده (DLRL) (data local reconstruction layer) بالاتر، که امکان ادغام ساده DDS را در لایه کاربرد فراهم می‌کند.

سایر استانداردهای مرتبط از سند اصلی اولیه پیروی کردند. پروتکل بیدرنگ انتشار-اشتراک سیم پروتکل DDS تعامل پذیری پروتکل سیمی (The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification) تضمین کرد که اطلاعات منتشر شده در مورد موضوعی با استفاده از اجرای DDS یک عرضه‌کننده، توسط یک یا چند مشترک با استفاده از پیاده‌سازی‌های DDS عرضه‌کننده یکسان یا متفاوت قابل مصرف است. اگرچه این خصوصیت‌های جامعه DDS را هدف قرار داده است، اما استفاده از آن محدود نیست. نسخه ۲٫۰ در آوریل ۲۰۰۸، نسخه ۲٫۱ در نوامبر ۲۰۱۰، ۲٫۲ در سپتامبر ۲۰۱۴ و ۲٫۳ در می ۲۰۱۹ منتشر شد.

DDS برای CCM سبک (dds4ccm) (به انگلیسی: DDS for Lightweight CCM) یک الگوی معماری ارائه می‌دهد که منطق تجاری را از ویژگی‌های غیر کاربردی جدا می‌کند. یک برنامه افزودنی در سال ۲۰۱۲ پشتیبانی از جریان‌ها را اضافه کرد. یک PSM زبان جاوا ۵ برای DDS یک اتصال جاوا ۵ را تعریف کرد که به عنوان یک مدل خاص بستر (PSM) (به انگلیسی: Platform Specific Model) برای DDS نامیده می‌شود. این فقط بخش انتشار-اشتراک داده محور (DCPS) (به انگلیسی: Data-Centric Publish-Subscribe) را از خصوصیت‌های DDS را مشخص کرد. علاوه بر این، APIهای DDS معرفی شده توسط DDS-XTypes و DDS-CCM را نیز در بر می‌گیرد. DDS-PSM-Cxx اتصال زبان ISO/IEC C++ PSM را تعریف می‌کند که به عنوان یک مدل خاص پلتفرم (PSM) برای DDS شناخته می‌شود. این یک API جدید C++ برای برنامه‌نویسی DDS ارائه می‌دهد که برای یک برنامه‌نویس C++ طبیعی تر است. این خصوصییت‌های نگاشت‌هایی را برای رابط‌های برنامه‌نویسی (API) مشخص شده در DDS-XTypes و دسترسی به پروفایل‌های کیفیت خدمت (QoS) مشخص شده در DDS-CCM ارائه می‌دهد.

انواع موضوع‌های توسعه پذیر و پویا برای DDS (DDS-XTypes) از ارتباط انتشار-اشتراک داده محور پشتیبانی می‌کند که در آن موضوع با ساختارهای داده خاص تعریف می‌شوند. برای توسعه‌پذیر بودن، موضوع DDS از انواع داده‌هایی استفاده می‌کنند که قبل از زمان کامپایل تعریف شده و در سرتاسر فضای داده جهانی DDS استفاده می‌شوند. این مدل زمانی مطلوب است که بررسی نوع استاتیک مفید باشد. نمایه زبان مدلسازی یکپارچه (UML) دامنه‌ها و موضوع DDS را به عنوان بخشی از تحلیل و مدل‌سازی طراحی مشخص می‌کند. این خصوصیات همچنین نحوه انتشار و اشتراک اشیاء را بدون توصیف انواع به زبان دیگری مانند XML یا OMG IDL تعریف می‌کند. یک زبان توصیف واسط (IDL) در سال ۲۰۱۴ به‌طور مستقل از بخش ۳ خصوصیت معماری کارگزار درخواست مشترک شیء (CORBA) (به انگلیسی: Common Object Request Broker Architecture) مشخص شد. این IDL 3.5 با خصوصیت CORBA 3 سازگار بود، اما به عنوان خصوصیت خود استخراج شد و به آن اجازه می‌داد مستقل از CORBA تکامل یابد.

پروتکل‌های دیگری که باید ذکر شوند عبارتند از: DDS-XRCE (DDS برای محیط‌هایی با محدودیت منابع شدید)، این پروتکل مشخصه‌های امکان ارتباط بین دستگاه‌های دارای منابع محدود، مانند میکروکنترلر و یک شبکه DDS را فراهم می‌کند. انتشار و اشتراک موضوعات را از طریق یک سرویس میانی در دامنه DDS و DDS-RPC (RPC Over DDS) که فراخوانی رویه‌ای دوردست را تعریف می‌کند را ممکن می‌سازد. اینها یک ارتباط درخواست/پاسخ دو طرفه را ارائه می‌دهند و خدمات توزیع شده را تعیین می‌کنند و با استفاده از یک رابط سرویس به تفصیل می‌پردازند. همچنین از فراخوانی روش همزمان و ناهمزمان پشتیبانی می‌کند. با شروع DDS نسخه ۱٫۴ در سال ۲۰۱۵، لایه اختیاری DLRL به یک آیین‌نامه جداگانه منتقل شد.

جستارهای وابسته[ویرایش]

منابع[ویرایش]