تماس با ما
 
بدان
 
امروز پنجشنبه ، ۱۳۹۹/۱۲/۰۷
 
کلیه مقالات

یک مدل مرجع برای وسایل ارتباط بین المللی اینترنت

a reference model for internet of things middleware

یک مدل مرجع برای اینترنت اشیاء Middleware؛

خلاصه:

Internet of Things (IoT) اصطلاحی است که برای توصیف محیطی استفاده می شود که میلیاردها اشیاء ، محدود از نظر منابع (â € âthingsâ €) ، به اینترنت متصل شده و به طور مستقل در تعامل هستند.

با داشتن تعداد زیادی اشیاء در راه حل های IoT ، محیطی که در آن قرار می گیرند ، باهوش تر می شود.

یک نرم افزار به نام Middleware ، از آنجایی که مسئولیت اکثر اطلاعات در IoT ، ادغام داده ها از دستگاه ها ، برقراری ارتباط به آنها و تصمیم گیری بر اساس داده های جمع آوری شده ، نقش اساسی دارد.

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

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

سرانجام ، این مشکلات را برای دستیابی و اجرای یک استاندارد جهانی برجسته می کند.

بنابراین ، نتیجه گرفته می شود که میان افزار نقش مهمی در راه حل های IoT ایفا می کند و از روش معماری پیشنهادی می توان به عنوان یک مدل مرجع برای واسطه IoT استفاده کرد.

مقدمه :

TERM Internet of Things (IoT) به کوین اشتون تعلق می گیرد ، زیرا در سال 1999 ، او ارائه ای را با عنوان "این Internet € ک اینترنت اشیاء" â چیزها "انجام داد. [1]

از آن زمان ، مشارکتهای عظیمی از جمله امنیت ، اتصال ، بهره وری انرژی و موارد دیگر در این موضوع انجام شد.

در حال حاضر IoT برای محققان ، مصرف کنندگان و ارائه دهندگان خدمات موضوعی در نظر گرفته شده است.

از آغاز آن ، این اصطلاح دچار حداقل تغییرات شد.

با این وجود ، اصول اولیه هنوز یکسان است.

IoT را می توان به عنوان یک اصطلاح فانتزی برای یک سناریو توصیف کرد که در آن هر چیزی ممکن است در یک شبکه درج شود ، بطور منحصر به فرد شناسایی شود و با حداقل مداخله انسانی تعامل داشته باشد [2] - [4].

این چیزها می توانند متعلق به دنیای واقعی (چیزهای جسمی) باشند چه از قطعه های بی جان و چه از حیوانات زنده ، یا به دنیای مجازی ("مجازی" âthingsâ €) که فقط در یک محیط شبیه سازی وجود دارد [5].

برای روشن شدن ، یک وسیله معمولی است که می تواند به صورت منحصر به فرد شناسایی و به اینترنت متصل شود.

سپس ، اگر کاربران یا برنامه های کاربردی از طریق اینترنت به اطلاعات دسترسی پیدا کرده و با این موارد (اشیاء) ارتباط برقرار کنند ، می توان آن را سناریوی IoT در نظر گرفت.

از سال 2015 ، این تلفن هوشمند از لپ تاپ به عنوان مهمترین وسیله اتصال به اینترنت در انگلستان پیشی گرفته است و از سال 2008 تعداد بیشتری دستگاه متصل به اینترنت از همه جمعیت جهان است [6].

پیش بینی می شود ، تا سال 2020 ، حدود 50 میلیارد شی ممکن است به اینترنت وصل شود [7].

در نگاه اول ، ممکن است یک عدد اغراق آمیز به نظر برسد (و ، شاید ، ممکن است هم باشد) ، اما تاریخ نشان داده است که با افزایش اندازه فیزیکی و قیمت برخی فن آوری ها ، تعداد بیشتری از افراد می توانند به آنها دسترسی پیدا کنند و به تبع آن ، حضور آنها تبدیل می شود. همه جا در زندگی روزمره

با توجه به تعریف IoT ، به راحتی می توان نتیجه گرفت که اینترنت اشیاء با استفاده از فن آوری هایی که ارتباط خوبی بین آنها برقرار می کند ، از اصل اساسی چیزها - «انجام» همان زبان پیروی می کند.

برای نشان دادن آن ، سناریوی زیر را تصور کنید: یک پروفایل زن جالب در یک شبکه اجتماعی مشاهده می شود و گفتگو از طریق گپ آغاز می شود.

هر دو درک می کنند که یکی انگلیسی صحبت می کند و دیگری روسی.

نتیجه گیری ساده است.

آنها علی رغم داشتن راهی مستقیم برای برقراری ارتباط ، یکدیگر را نمی فهمند ، زیرا فقط داده ها (محتوای) بی معنی را ارسال و دریافت می کنند.

بنابراین ، هیچ یک از آنها نمی توانند معنای آن را بدست آورند.

همین اصل وقتی اعمال می شود بدون در نظر داشتن ارتباط اینترنتی ، در تعامل همه چیز است.

اگر آنها نتوانند یکدیگر را تفسیر کنند ، ارتباطات بی نتیجه خواهد بود و وجود ندارد.

از دیگر کاربردهای IoT می توان به طور گسترده در ادبیات و صنعت (مدیریت آب خام و خانه های هوشمند) و به طور عمده زمینه های درمانی برای نظارت از راه دور مراقبت های بهداشتی و کنترل علائم حیاتی از سنسورهای پوشیدنی استفاده کرد.

بنابراین ، برای ایجاد واسطه در این تعامل نیاز به یک سیستم نرم افزاری میان افزار قوی است.

بدون راه حل های میان افزار ، برنامه نویسان باید هر بار که یکپارچه سازی بسته های نرم افزاری جدید را انجام می دهند ، مشخصات نرم افزار جدید را بخوانند ، این کارها را دشوار و بسیار زمان بندی می کنند [8] ، [9].

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

در IoT ، سازمان ها و کاربران از چندین نرم افزار (و ناسازگار) استفاده می کنند.

در واقع ، میان افزار یکی از فناوری های توانمند آن است [3] ، [10].

آنها با شناخت نقش مهم وسايل كاربرد مياني در محيط هاي IoT ، محور اين مقاله هستند.

سپس ، سهم اصلی این مقاله به شرح زیر است.

1) بررسی عمیق از وضعیت هنر در سیستم عامل های میان افزار IoT.

2) یک مدل مدل معماری مرجع برای میان افزار IoT که بهترین روش عملکرد برای هر ماژول را شرح می دهد.

3) پيشنهاد ويژگي هاي امنيتي كه ميانگر IoT بايد براي محيط امن تر IoT تطبيق دهد.

4) بحث عمیق در مورد مشکلات دستیابی به یک استاندارد جهانی برای IoT و همچنین تفاوت های بین اینترنت معمولی و IoT.

در این مقاله به اهمیت واسطه IoT و نقش اساسی آنها اشاره شده است.

باقیمانده این مقاله به شرح زیر سازماندهی می شود.

بخش دوم پیش زمینه ای درباره دشواری های دستیابی و اجرای یک استاندارد جهانی ارائه می دهد.

سپس زمینه ای درباره چگونگی تفاوت اتصال اینترنت در IoT در مقایسه با اینترنت معمولی به دلیل نیازهای آنها ارائه می دهد.

بخش III یک معماری لایه بندی شده IoT را ارائه می دهد.

سپس با نشان دادن الزامات آنها و در نظر گرفتن سه دسته از سیستم عامل های IoT ، لایه سکو را برجسته کنید.

بخش چهارم واسطه IoT و نحوه عملکرد آنها را تعریف می کند.

در این بخش به تفصیل برخی راه حل های میان افزار بسته و منبع باز می پردازد.

بخش V ، عملکرد ماژول های مربوط به یک مدل میان افزار IoT را برای برآورده کردن نیازهای اینترنت اکسپلورر توصیف می کند ، همچنین ویژگی های امنیتی اساسی را ارائه می دهد که واسطه ها باید برای IoT ایمن تر مطابقت داشته باشند.

موضوعات باز و چالشهای تحقیق در بخش ششم شناسایی و مورد بحث قرار می گیرد و سرانجام ، بخش VII این مقاله را نتیجه می گیرد.

II.STANDARDS رقابت:

در IoT دستگاه های مختلفی از مارک ها و فروشندگان مختلف وجود خواهد داشت.

در حال حاضر ، اکثر دستگاه های IoT فقط با دستگاه های همان مارک تجاری یا مارک های شریک سازگار هستند.

به همین دلیل چندین ابتکار استاندارد سازی مانند IPSO Alliance ، AllSeen Alliance ، OneM2M ، Openconnectivity ، Fiware ، OpenFog ، OpenDaylight و بسیاری موارد دیگر ایجاد شد.

همه این ابتکارات در حال ایجاد معماری های مرجع یا استانداردهای لازم برای کلیه لایه های IoT با هدف ارائه IoT کارآمدتر و پایدار هستند.

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

سوکت های برق نمونه بارز آن هستند ، حداقل برای یک قرن وجود دارند و استانداردهای مختلفی در سراسر جهان به تصویب رسیده است.

شرکت های بزرگ فناوری بیش از یکی از ابتکارات ذکر شده در لیست اعضای این شرکت ظاهر می شوند: اینتل (5) ، سیسکو (4) ، اریکسون ، مایکروسافت ، کوالکام ، ال جی (3) و بوش (2).

به عنوان مثال ، پایه اتصال باز را بگیرید ، با وجود اینکه هر دو چارچوبی هستند که به اتصال دستگاه کمک می کنند ، از IoTivity [11] و Alljoyn [12] پشتیبانی می کند.

بسیار آسان است که شرکتهای فناوری مطمئن نیستند که چه استانداردی رایج خواهد بود و حاضر به تعهد کامل نیستند.

جنبه دیگر رقابت استانداردها این است که علاوه بر ابتکارات ذکر شده ، سایر نهادهای استانداردسازی استاندارد ، مانند IEEE ، پروژه مشارکت نسل سوم) ، از جمله دیگر ، در حال تدوین استانداردهای IoT هستند.

با وجود بسیاری از نهادها که استانداردهای رقیب را توسعه می دهند ، سؤال دیگری مطرح می شود ، ماندگاری چنین استانداردها چیست ، همچنین ، وقتی یک استاندارد تعیین می شود چه اتفاقی می افتد و دیگری که برتر است توسعه می یابد.

بنابراین انتظار برای دستیابی به قابلیت همکاری در بین دستگاهها با اجرای استاندارد جهانی تا حدودی بی گناه است.

A. اتصال به اینترنت در IoT در IoT ، اکثر اشیاء در منابع محدود هستند.

به همین دلیل ، تقریباً هر آنچه در اینترنت فعلی کار می کند ، نیاز به یک نسخه IoT سبک دارد [13] ، [14].

تجزیه و تحلیل سریع متداول ترین روش های بی سیم دسترسی به اینترنت نشان می دهد که پشته پروتکل اینترنت فعلی محدودیت های IoT را در نظر نمی گیرد.

Wi-Fi (IEEE 802.11 a / b / g / n / ad / ac) باتری ندارد ، مساحت بزرگی را پوشش نمی دهد و از تعداد بالایی از برنامه های نهایی پشتیبانی نمی کند.

به همین دلیل ، گزینه های دیگری مانند بلوتوث 5 و IEEE 802.15.4 در راه حل های IoT مستقر می شوند.

بلوتوث 5 جدیدترین نسخه استاندارد جریان اصلی بلوتوث است.

مانند بلوتوث 4.2 ، بلوتوث 5 از شبکه های IP نیز پشتیبانی می کند [15] (قابلیت های IP بلوتوث به ندرت توسط کاربران نهایی کاوش می شوند).

IEEE 802.15.4 استانداردی برای شبکه های شخصی بی سیم با سرعت کم است که لایه های فیزیکی و MAC مدل OSI را مشخص می کند [15].

رایج ترین پیاده سازی IEEE 802.15.4 IPv6 بر روی شبکه های بی سیم کم قدرت بی سیم (6LoWPANs) و ZigBee است.

6LoWPAN یک رویکرد نیروی کار مهندسی اینترنت است که هدر های IPv6 را فشرده و محاصره می کند ، سپس آنها را در قاب IEEE 802.15.4 جای می دهد [15].

ZigBee توسط ZigBee Alliance توسعه و نگهداری شد.

این شهر به دلیل توپولوژی مش مشهور است ، اما از توپولوژی های دیگر ، مانند ستاره و درخت نیز پشتیبانی می کند [15].

بارزترین مزیت 6LoWPAN این است که بصورت محلی از شبکه های IP پشتیبانی می کند.

هنگام استفاده از ZigBee یا بلوتوث سنتی ، یک دروازه برای ارتباط با اینترنت لازم است که این امر باعث افزایش سربار می شود.

همه فن آوری هایی که IP را پشتیبانی نمی کنند بطور بومی از یک مفهوم مشابه برای اتصال به اینترنت استفاده می کنند.

ZigBee اهمیت شبکه های IP را تشخیص داد و ZigBee IP را منتشر کرد که از بسیاری از مفاهیم 6LoWPAN استفاده می کند ، به خصوص طرح تقسیم بندی و فشرده سازی هدر [15].

روش دیگر بی سیم دسترسی به اینترنت از طریق شبکه های 3G / 4G است.

در مورد محیط IoT ، هر دو مشکل Wi-Fi دارند.

به همین دلیل ، راه حل های شبکه بی سیم با برد طولانی مانند Sigfox ، LoRa و IEEE 802.

11ah (HaLow) [16] توسعه داده شد.

این شبکه ها باتری کمتری را در دستگاه های نهایی مصرف می کنند و پوشش گسترده ای را ارائه می دهند.

هر دو LoRa و Sigfox به یک درگاهی احتیاج دارند که با دستگاه های نهایی ارتباط برقرار می کند.

این دروازه به پشتیبان اتصال می یابد که اتصال به اینترنت را فراهم می کند [17] ، این در شکل 1 نشان داده شده است.

یکی از تفاوت های LoRa و Sigfox این است که Sigfox به طور مشابه با ISP سنتی عمل می کند ، جایی که کاربر برای استفاده از آن مجبور است در این سرویس مشترک شود ، در حالی که LoRa فناوری هایی را ارائه می دهد که هر کاربر می تواند آن را خریداری ، نصب زیرساخت ها و استفاده از شبکه در صورت میل.

مزیت IEEE 802.11ah نسبت به LoRa و Sigfox این است که به عنوان یک استاندارد IEEE 802.11 ، بومی از شبکه های IP پشتیبانی می کند [18].

یکی دیگر از روشهای امیدوار کننده برای دسترسی به اینترنت از طریق IoT ، فناوری 5G است که انتظار می رود در حدود سال 2020 به عموم مردم عرضه شود [19].

5G شرایط مختلف عملکرد را برای سناریوهای مجزا ارائه می دهد و IoT یکی از آنهاست.

معماری فعلی اینترنت از پروتکل انتقال hypertext (HTTP) در لایه ارائه (اشاره به مدل OSI) استفاده می کند ، اما درخواست HTTP رایج منابع زیادی را مصرف می کند.

به همین دلیل ، پروتکل های سبک وزن جایگزین که برای دستگاه های نهایی کارآمدتر و کاربردی تر هستند ، برای IoT ارائه شده اند [20].

دو پروتکل که در این رابطه برجسته است پروتکل محدود برنامه کاربردی (CoAP) و حمل و نقل تله متری پیام (MQTT) است که هر دو انتظار TCP / IP پشته را دارند و در استقرارهای مختلف IoT مستقر می شوند.

MQTT فراتر از TCP است ، در حالی که CoAP فراتر از UDP است [21] ، [22].

CoAP براساس مدل انتقال حالت بازنمایی (REST) ​​بنا شده است ، به این معنی که دستگاه های محدود دارای یک روش سبک وزن برای انجام درخواست های REST هستند.

MQTT به مدل انتشار / اشتراک (Pub / Sub) متکی است و به یک کارگزار پیام نیاز دارد.

تغییر پروتکل MQTT برای شبکه هایی که مبتنی بر TCP / IP نیستند ، MQTTSN نامیده می شود [23].

در صورت کم بودن تلفات بسته ، CoAP نسبت به MQTT دارای سربار کمتر است. وقتی از دست رفتن بسته بیشتر باشد ، CoAP فقط در صورت کوچک بودن اندازه پیام ، سربار کمتری تولید می کند [22].

هنگامی که پیام بزرگ است ، احتمال اینکه TCP پیام را از دست بدهد ، کوچکتر از UDP است ، که باعث می شود MQTT مجدداً بار دیگر کل پیام را از CoAP بار دیگر ارسال کند [22].

جنبه دیگر IoT نمایش داده ها است.

در حال حاضر ، بیشترین استفاده از تکنیک رمزگذاری ، نوتیفیکیشن شی JavaScript (JSON) است ، اما یکی از بزرگترین نقاط قوت آن (که به راحتی برای انسان قابل خواندن است) دلالت بر ظرفیت محاسباتی بیشتری هنگام رمزگذاری یا رمزگشایی و همچنین انتقال دارد.

با این حال ، JSON به مراتب برتر از رقیب خود Extensionible Markup Language (XML) است [24].

در شکل فعلی 2.

معماری لایه بندی شده IoT.

اینترنت ، این ناکارآمدی دارای مزایایی است ، اما در IoT هر بایت حساب می شود.

بنابراین ، رمزگذاری های باینری مانند Apache Thrift و بافر پروتکل Googleâ برای اکثر دستگاه های IoT مناسب تر هستند [25].

با وجود ناکارآمدی JSON در IoT ، بسیاری از دستگاه ها در محیط های IoT هنوز از آن استفاده می کنند.

با این حال ، برای به حداکثر رساندن کارآیی ، آنها فقط باید در صورت لزوم از رمزگذاری JSON استفاده کنند.

III.IoT PLATFORMS:

در علم کامپیوتر و مهندسی کامپیوتر ، یک معماری ، سازمان کلی یک سیستم را توصیف می کند و از محدودیت هایی همچون فناوری اجرای استفاده می کند [26].

این هدف برای درک و توصیف رفتار یک سیستم است.

در [2] ، مناسب ترین پیشنهادات معماری برای IoT مورد بررسی و بررسی قرار گرفته است.

برای خلاصه کردن رویکردهای مختلف ، مناسب ترین لایه هایی که در اکثر راه حل های IoT موجود است در شکل 2 نشان داده شده است.

آنها به شرح زیر است: 1) کاربران یا برنامه های کاربردی. 2) بستر IoT؛ و 3) دستگاه ها و زیرساخت ها.

کاربران یا برنامه ها: این لایه فوقانی به کاربران و برنامه های کمکی مانند ابزار پشتیبانی تصمیم گیری یا رسانه های اجتماعی می پردازد.

پلت فرم IoT یک بسته نرم افزاری است که دستگاه ها ، شبکه ها و برنامه ها را ادغام می کند.

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

دستگاه ها و زیرساخت ها: در لایه کم ، زیرساخت فیزیکی IoT قرار دارد.

این شامل دستگاه های شبکه (از جمله موارد) ، دسترسی چندگانه و تکنیک های مدولاسیون است.

مانند بسیاری از نرم افزارها ، سیستم عامل ها دارای شرایط لازم هستند.

مهندسی نرم افزار بیان می کند که نیازها به صورت کاربردی و غیر کاربردی تقسیم می شوند [28].

الزامات عملکردی:

الزامات عملکردی کارکردهایی هستند که توصیف آنچه یک سیستم باید برای انجام آن صلاحیت داشته باشد (آنچه باید انجام شود) است [29].

مواردی وجود دارد که الزامات عملکردی آنچه را که سیستمها نباید انجام دهند بیان می کند [28].

در هر صورت الزامات عملکردی برآورده می شوند یا خیر ، هیچ روش عینی برای تعیین کمیت آنها وجود ندارد.

الزامات عملکردی سیستم عامل های IoT به شرح زیر است.

1) کشف منابع: اگر فردی نمی داند قابلیت های او چیست ، نمی تواند آنها را به دیگران تبلیغ کند.

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

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

کشف منابع فرایندی است که توسط یک دستگاه برای جستجوی منابع مورد نظر ، که در آن کل شبکه برای خدمات مورد بررسی قرار گرفته است ، استفاده می شود.

2) مدیریت منابع: هر برنامه ای نیاز به کیفیت خدمات (QoS) قابل اعتماد داشته باشد ، و این تنها با تخصیص منابع منصفانه امکان پذیر است.

بسترهای نرم افزاری می توانند برای تسهیل در تخصیص منابع و برآورده کردن نیازهای برنامه ، زمان باتری دستگاه ، میزان استفاده از حافظه فعلی و سایر داده های داخلی مربوط را تخمین بزنند.

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

3) مدیریت داده: داده ها در هر برنامه حیاتی هستند.

این بخش بزرگی از ارزش IoT را در خود جای داده است ، بنابراین باید به طور مناسب با آن برخورد شود.

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

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

4) مدیریت رویداد: برنامه های IoT می توانند تعداد زیادی از رویدادها را ایجاد کنند.

مدیریت رویداد گسترش مدیریت داده است.

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

5) مدیریت کد: بروزرسانی هر دستگاه به صورت شخصی غیر عملی است و IoT تعداد زیادی از آنها را خواهد داشت.

بسترهای نرم افزاری باید عملیات به روزرسانی را تسهیل کنند زیرا این دستگاه ها به دستگاه ها ارتباط دارند.

الزامات غیر عملکردی الزامات غیر عملکردی جنبه های خاصی است که یک سیستم برای تضمین QoS باید تضمین کند [29].

این الزامات به شرح زیر است.

1) مقیاس پذیری: یک پلت فرم IoT باید مقیاس پذیر باشد ، زیرا چیزهای متصل به یک شبکه بصورت تصاعدی رشد می کنند ، بنابراین مقدار داده ها نیز افزایش می یابد.

بسترهای نرم افزاری باید با گذشت زمان و افزودن دستگاه های بیشتری ، QoS مشابهی را ارائه دهند.

2) Real-Time یا به موقع: بیشتر برنامه ها به داده های زمان واقعی متکی هستند ، بنابراین داده ها باید به طور مداوم به روز شوند.

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

قابلیت اطمینان این احتمال است که نرم افزار در یک بازه زمانی مشخص هیچ گونه خرابی را تجربه نکند.

بازه زمانی مشخص به سناریو بستگی دارد.

این بدان معناست که بازه زمانی می تواند مدت زمان یک کار واحد یا حتی کل چرخه عمر نرم افزار باشد.

3) در دسترس بودن: بسترهای نرم افزاری که از برنامه های مهم IoT پشتیبانی می کنند باید همیشه در دسترس باشند.

این سکوی باید هنگام اجرای وظایف ، حتی اگر دچار شکست باشد ، عملیاتی شود.

قابلیت اطمینان و در دسترس بودن باید با هم کار کند تا برخی از تحمل خطا را تضمین کند.

4) امنیت: یکی از مهمترین نگرانی ها در هر برنامه همیشه امنیت است.

در IoT ، این جنبه حتی بسیار مهم تر است زیرا یک شیء سازش شده می تواند انواع حملات مانند انکار سرویس [30] را انجام دهد ، یا حتی اطلاعات حساس مانند مکان کاربر ، برنامه منظم یا حتی فیلم زنده را فاش کند.

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

5) حریم خصوصی: مقدار قابل توجهی از درآمد فیس بوک و گوگل از جمع آوری داده های کاربران و فروش به تبلیغ کنندگان حاصل می شود (رضایت کاربران از این عمل در توافق نامه خدمات).

با این حال ، هیچ راهی برای اطمینان از اطلاعاتی که آنها جمع آوری می کنند وجود ندارد.

مسائل مربوط به حریم خصوصی مربوط به افشای اراده داده ها یک نگرانی بزرگ است.

هنگامی که از VoiceLabs (دستگاه هایی که همیشه در حال گوش دادن هستند) استفاده می شود [31] ، مانند Amazon Alexa و دستیار Google ، این مشکل حتی جدی تر است.

یک پلت فرم IoT با میزان داده های جمع آوری شده خطرات را بیشتر می کند.

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

مزیت راه حل های PaaS این است که آنها در ابر واقع شده اند و کاربران معتبر می توانند از هر نقطه در سراسر جهان به داده های مستقر در سرور دسترسی پیدا کنند بدون اینکه نگرانی در مورد استقرار یا مدیریت زیرساخت ها داشته باشند [32].

6) سهولت استفاده ، نگهداری و استفاده: این سیستم عامل ها توسط کاربرانی استفاده می شوند که ممکن است تخصص فنی نداشته باشند.

کاربر متوسط ​​باید بتواند به راحتی سیستم عامل را نصب ، نگهداری و استفاده کند.

نرمافزارهایی که استفاده از آن آسان است مورد استفاده عموم قرار گرفته و قابلیت استفاده بدون به خطر انداختن امنیت احتمالاً یکی از جنبه های اصلی راهکارهای موفقیت آمیز IoT خواهد بود.

7) قابلیت همکاری: این بستر باید با دستگاهها و برنامه های مختلف با حداقل تلاش توسعه دهندگان سازگار باشد.

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

راهی برای دستیابی به قابلیت همکاری این است که علاوه بر HTTP محبوب (S) محبوب ، این پلت فرم همچنین از پروتکل های ارتباطی IoT مانند CoAP و MQTT پشتیبانی می کند.

همچنین ، سیستم عامل ها باید برخی از ویژگی ها را از طریق رابط های برنامه نویسی برنامه (API) در معرض دید قرار دهند.

API ها به نرم افزار اجازه می دهند تا بدون به اشتراک گذاشتن کد واقعی ، عملکردها را در معرض سایر برنامه ها و موارد دیگر قرار دهد.

8) تعامل خود به خود: دستگاه های جدید بطور مداوم به شبکه اضافه می شوند و یا حتی دوباره تعویض می شوند.

این تغییرات در شبکه در هر زمان اتفاق می افتد.

بسترهای نرم افزاری باید به دستگاهها كمك كنند تا با حداقل دخالتهای انسانی ، یکدیگر را كشف و تعامل كنند.

9) تعدد: انتظار می رود چندین دستگاه به طور همزمان ارتباط برقرار کنند. هنگامی که دستگاه های مختلف خدمات مشابهی ارائه می دهند ، سیستم عامل ها باید به سایر مداخلات IoT کمک کنند تا تصمیم بگیرند کدام یک بهترین خدمات را ارائه می دهد.

اگر دستگاه به جای پرس و جو از یک نهاد واحد ، صرفاً یک درخواست سرویس را به کل شبکه پخش کند ، دستگاه باید تصمیم بگیرد که بهترین (در صورتی که بیش از یک نهاد خدمات مورد نظر را ارائه دهد) بهترین است.

اگر یک نهاد واحد برای بهترین دستگاه برای یک سرویس پرس و جو شود ، تصمیم مناسب ترین سرویس به یک بازیکن "€ msmarter" منتقل می شود.

مشکلی که در جستجوی یک واحد واحد وجود دارد این است که دستگاه های بهتری در اولویت قرار دارند.

بنابراین ، دستگاههای بهتر به دلیل محدودیت حافظه (درخواست بیش از حد بسیاری از درخواست ها) یا حتی محدودیت هایی از دنیای فیزیکی مانند فاصله ، همیشه قادر به ارائه بهترین خدمات نخواهند بود.

اینها موضوعات مربوط به تعدد است [33] ، و سیستم عامل ها هنگام پاسخ باید آنها را در نظر بگیرند.

10) سازگاری و انعطاف پذیری: این بستر باید قادر به سازگاری با تغییرات بلند مدت باشد ، همچنین برای تغییرات کوتاه مدت انعطاف پذیر باشد.

این پلتفرم همچنین باید در سناریوهای متعدد قابل اجرا باشد.

طبقه بندی بستر های نرم افزاری C.IoT:

بهترین کار برای سیستم عامل های IoT برای پشتیبانی از کلیه الزامات ذکر شده است.

در عوض ، اکثر سیستم عامل های IoT ساخته شده اند تا برخی از نیازهای قبلی را پشتیبانی کنند و در زیر سه دسته قرار می گیرند که به شرح زیر است: 1) مدیریت دستگاه؛ 2) توسعه برنامه؛ و 3) امکان برنامه.

جدول I لیستی از سکوهای IoT را به ترتیب حروف الفبا نشان می دهد ، همچنین نشان می دهد که هر یک از کدام یک را هدف قرار می دهند.

هیچ مقوله ای مهمتر از گروه دیگر نیست.

با این وجود ، تمرکز این مقاله بر روی سیستم عامل های امکان پذیر برنامه است.

سیستم عامل های مدیریت دستگاه بر مدیریت دستگاه از راه دور و بهینه سازی منابع شبکه متمرکز شده اند.

تعریف مدیریت دستگاهی که در این مقاله مورد استفاده قرار می گیرد ، در مشخصات مدیریت دستگاه متحد تلفن همراه الهام گرفته شده است.

مطابق این استاندارد ، مدیریت دستگاه شامل تنظیم (اما محدود نشده) تنظیم تنظیمات اولیه (تهیه) ، تغییر پارامترها یا تنظیمات (نگهداری) ، ارائه به روزرسانی ها (به روزرسانی) ، وضعیت دستگاه پرس و جو ، تشخیص ، گزارش خطا (گزارش) و رویداد است. پردازش [34].

این سیستم عامل ها همچنین بر اتصال و همچنین بهینه سازی استفاده از منابع شبکه متمرکز شده اند.

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

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

افزونه و بازی یکی دیگر از نگرانی های این نوع پلتفرم است ، بنابراین وقتی دستگاه های جدید وارد شبکه می شوند یا دوباره مورد استفاده قرار می گیرند ، پیکربندی کمی توسط کاربر ضروری است.

توجه به این نکته ضروری است که مدیریت دستگاه معمولاً مستلزم نصب نرم افزار اضافی روی دستگاه است.

توجه کنید که برخی فریم ورک های نرم افزاری که دستگاه را به دستگاه وصل می کنند نیز در این گروه قرار می گیرند.

سیستم عامل های توسعه برنامه بر توسعه برنامه های ایمن متمرکز هستند که می توانند برای بسیاری از کاربران مقیاس دهند و با ناهمگونی موجود در محیط های IoT مقابله کنند.

این نوع سکوها همچنین ابزارهای داخلی برای ادغام با ارائه دهندگان خدمات رایج ارائه می دهند که به برنامه های توسعه یافته اجازه می دهد تا با آنها سازگار باشند.

پلتفرم هایی که صرفاً کیت های اولیه توسعه نرم افزار (SDK) را برای ارسال / دریافت داده بر روی پلتفرم خود ارائه می دهند ، در این گروه قرار نمی گیرند.

با این حال ، چارچوب های توسعه نرم افزار و ابزارهای ویژه برای IoT در این گروه قرار خواهند گرفت.

سیستم عامل های فعال سازی برنامه روی فعال سازی و یکپارچه سازی برنامه های خارجی متمرکز شده اند.

آنها وسیله ای برای مدیریت و تجسم داده ها را فراهم می آورند ، که توسعه برنامه را تسریع می کند و ادغام با سیستم های سازمانی ، مانند مدیریت ارتباط با مشتری (CRM) و برنامه ریزی منابع سازمانی (ERP) را تسهیل می کند.

علاوه بر این ، این سیستم عامل ها همچنین داده های کاربر را ایمن کرده و امکان تبادل اطلاعات در بین دستگاه ها / برنامه های مختلف را فراهم می کنند.

این نوع پلتفرم همچنین به عنوان IoT middleware platform یا IoT middleware نامیده می شود و محور این مقاله است.

بسیار رایج است که این نوع پلتفرم نیز خود را به عنوان پشتیبان مدیریت دستگاه تبلیغ کند.

با این حال ، اکثر آنها روش ارائه بروزرسانی ها را ارائه نمی دهند.

از اینجا به بعد ، اصطلاحات middleware ، IoT middleware و IoT middleware به صورت متناوب مورد استفاده قرار می گیرند.

میان افزار یکی از فناوری های توانمند برای IoT است [3] ، [10].

جزئیات بیشتر در مورد سیستم عامل های میان افزار IoT را می توان در بخش IV یافت.

IV.IOT PLATFORMS MIDWARE:

همانطور که از نام آن پیداست ، Middleware یک نرم افزار است که در وسط قرار دارد (بین دو چیز).

هدف اصلی یک واسطه ، جمع آوری سیستم های مختلف است تا بتوانند با یکدیگر تعامل داشته باشند [70].

نقش واسطه نه تنها برای فعال کردن ارتباط بلکه تسهیل آن است.

هیچ واسطه ای برای هر سناریو قابل استفاده نیست ، بنابراین آنها معمولاً برای سناریوهای خاص یا مجموعه ای ساخته شده اند.

در ادبیات ، راه حل های میان افزار IoT بعضی اوقات به عنوان سیستم عامل IoT یا سیستم عامل میان افزار IoT گفته می شود ، زیرا به طور کلی ، میان افزار یک بستر است ، اما این تنها نوع پلت فرم IoT نیست.

در IoT ، میان افزار به عنوان مترجم عمل می کند.

برای نشان دادن آن ، سناریویی را تصور کنید که سه نفر از ملیت های مختلف در آن بحث می کنند.

اگر یک زبان مشترک در بین آنها وجود نداشته باشد (گزینه استاندارد سازی) ، به یک مترجم واسطه مکالمه نیاز دارند.

حال تصور کنید که این سه نفر برنامه های متفاوتی دارند (APP).

برنامه ها از طریق API (زبان) ارتباط برقرار می کنند ، هر برنامه دارای API مخصوص به خود است.

بدون برنامه واسط (مترجم) هر APP باید همه API های دیگر را درک کند.

این ایده ساده به کاربران اجازه می دهد تا روی مسئله متمرکز شوند و در شکل نشان داده شده است.

4 ، زیرا کاربران به جای دانستن نحوه عملکرد هر برنامه ، داده ها را از یک برنامه (میان افزار) دستکاری می کنند.

بسیاری از راه حل های میان افزار IoT موجود در ادبیات و همچنین بازار وجود دارد.

برخی از این راه حلها متن باز و رایگان برای بارگیری هستند ، محاکمه ، مانند اکثر openource ها ، کد را می توانید در صورت تمایل تغییر دهید.

راه حل های دیگر منبع بسته هستند و فقط به صورت PaaS در ابر موجود هستند.

مزیت راه حل های PaaS این است که آنها در ابر واقع شده اند و کاربران معتبر می توانند از هر نقطه در سراسر جهان به داده های مستقر در سرور دسترسی پیدا کنند بدون اینکه نگرانی در مورد استقرار یا مدیریت زیرساخت ها داشته باشند [32].

راه حل های میان افزار منبع باز و بسته از جدول 1 در زیر آمده است.

پلت فرم آمازون IoT [36] یک بستر میانجی IoT است که توسط آمازون ساخته شده است.

این برنامه از ارتباطات MQTT ، REST و Websockets با سرور خود پشتیبانی می کند.

یکی از بزرگترین مزیت های Amazon IoT این است که به راحتی امکان تعامل با سایر خدمات آمازون مانند S3 ، یادگیری ماشین ، CloudWatch و موارد دیگر را فراهم می آورد.

مدل تجاری آنها PaaS است.

Artik cloud [37] سکویی است که توسط سامسونگ ساخته شده است.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

این برنامه از MQTT ، REST ، Websockets و CoAP با سرور خود پشتیبانی می کند.

یکی از مزایای Artik Cloud این است که برنامه ها و دستگاه های محبوب IoT مانند Amazon echo و Google Home می توانند به راحتی با آن ادغام شوند.

مدل تجاری آنها PaaS است.

اتصال فیوژن Autodesk [38] یک سیستم عامل میان افزار IoT است که توسط Autodesk ساخته شده است.

این فروشگاه به عنوان پشتیبانی از کلیه پروتکل های دستگاه به ماشین و فن آوری خاص از فروشنده از بیش از 50 دستگاه استفاده می شود.

یکی از بزرگترین قدرت آن این واقعیت است که ابزار جامع تجزیه و تحلیل را ارائه می دهد.

مدل تجاری آنها PaaS است.

Carriots [39] سکویی است که توسط Carriots ساخته شده است.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

مدل تجاری آنها PaaS است و می تواند با سیستمهای خارجی مانند Dropbox ادغام شود.

Cloudplugs [42] یک بستر میان افزار IoT است که توسط Cloudplugs ساخته شده است.

این برنامه از ارتباطات MQTT ، REST و Websockets با سرور خود پشتیبانی می کند.

مدل تجاری آنها PaaS است.

Devicehive [43] یک بستر میان افزار منبع باز است که توسط DataArt ساخته شده و تحت مجوز Apache 2 توزیع می شود.

1

این برنامه از ارتباطات MQTT ، REST و Websockets با سرور خود پشتیبانی می کند.

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

برای استقرار موفقیت آمیز این راه حل ، کاربران باید PostgreSQL ، Apache Kafka و Java 8 یا بالاتر را نصب کنند.

نکته منفی دستگاه Devicehive (هنگام استقرار سرور خصوصی) این است که داده های اندازه گیری از دستگاه ها ذخیره می شوند ، به این معنی که اگر سرور مجدداً راه اندازی شود ، یا حافظه تمام شود ، تمام داده ها از بین می روند.

در صورت تمایل کاربر از این ویژگی ، لازم است یک کانکتور اضافی ایجاد کنید یا منطق باطن را اصلاح کنید.

با این حال ، Devicehive قصد دارد از این ویژگی در نسخه های بعدی پشتیبانی کند.

EVRYTHNG [44] یک سکوی میان افزار IoT است که توسط EVRYTHNG ساخته شده است.

این برنامه از MQTT ، REST ، Websockets و CoAP با سرور خود پشتیبانی می کند.

یک ویژگی جالب این است که امکان ادغام با سیستمهای اطلاعاتی تجاری خارجی را فراهم می کند.

مدل تجاری آنها PaaS است.

Fiware (Orion + STH): معمول است که از Fiware به عنوان یک بستر میان افزار استفاده شود.

در واقعیت ، کارگزار Orion Context واسطه ای است.

Orion یک پلتفرم میان افزار منبع باز است که توسط Fiware ساخته و نگهداری می شود و تحت مجوز نسخه 3 Affero General Public License مجاز است.

این یک اجرای Pub / Sub از مشخصات NGSI-9 و NGSI-10 Open RESTful API است.

این تنها ارتباطات REST را با سرور خود پشتیبانی می کند.

برای استقرار با موفقیت راه حل ، کاربران باید MongoDB را نصب کنند.

نکته منفی Orion (در هنگام استقرار سرور خصوصی) این است که مشخصات آن بیان می کند که فقط آخرین مقدار جمع آوری شده در پایگاه داده ذخیره می شود ، به این معنی که مشاوره داده های زمانی امکان پذیر نیست.

شناختن محدودیت های Orion ، Cygnus ، و تاریخی کوتاه مدت (STH) توسط فیور توسعه داده شد.

هردو در اعلان های Orion مشترک هستند و هنگامی که مقادیر تغییر می کنند ، به بانک اطلاعاتی ادامه می دهند.

تفاوت اصلی بین Cygnus و STH در این است که Cygnus فقط داده ها را ذخیره می کند ، و هیچ مشورت امکان پذیر نیست ، در حالی که STH هر دو را اجازه می دهد.

فیور رسما از Cygnus و STH پشتیبانی می کند.

InatelPlat یک بستر میان افزار است که در آگوست 2017 ، در Instituto Nacional de Telecomunica أ§؟ esâ € ™ s (INATEL) ICC (مرکز صلاحیت INATEL) ایجاد شده است.

هدف تهیه PaaS برای خریداران علاقمند است.

در حال حاضر ، فقط از ارتباطات REST با سرور خود پشتیبانی می کند ، اما هدف این است که از پروتکل های دیگر تا اوایل سال 2018 پشتیبانی کنید.

اطلاعات دیگری در مورد اجرای ارائه نشده است زیرا INATEL می خواهد این اطلاعات را خصوصی نگه دارد.

نام InatelPlat موقتی است و نسخه نهایی نام دیگری خواهد داشت.

Kaa [49] یک سکوی میانبر منبع باز است که توسط KaaIoT ساخته و نگهداری می شود و تحت مجوز Apache 2.0 مجوز دارد.

اگرچه منبع باز است ، کاربران می توانند با تماس با KaaIoT به یک نسخه پولی گسترش یابند.

این برنامه از ارتباطات REST با سرور خود پشتیبانی می کند و SDK ها را می توان به دستگاه ها اعزام کرد.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید Oracle Java SDK ، یا MariaDB یا PostgreSQL ، MongoDB یا Cassandra و Zookeeper داشته باشند.

نکته منفی کا (در هنگام استقرار سرور خصوصی) این است که نمی توان از طریق REST API داده های ذخیره شده از سرور را پرس و جو کرد ، به این معنی که کاربر باید برنامه دیگری را برای این ویژگی تهیه کند.

برای کسانی که علاقه مند هستند ، می توان یک API REST ساخت که داده ها را از یک پایگاه داده MongoDB با استفاده از ابزارهای رایگان مانند مجموعه ابزار بهار [7] بازگرداند.

Konker [50] یک سکوی میان افزار منبع باز است که توسط KonkerLabs برزیلی ایجاد و نگهداری می شود.

تحت مجوز آپاچی 2.0 دارای مجوز است.

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

این برنامه از ارتباطات REST و MQTT با سرور خود پشتیبانی می کند.

برای بکارگیری موفقیت آمیز این راه حل ، کاربران باید Java SDK ، MongoDB ، Cassandra ، سرور برنامه ای که از سرویس دهنده پشتیبانی می کند ، داشته باشند.

Linksmart [51] ، که قبلاً با نام Hydra [73] شناخته می شد ، یک پلت فرم کامل IoT است که از مدیریت دستگاه و همچنین قابلیت برنامه پشتیبانی پشتیبانی می کند.

ماژول فعال سازی برنامه به Datastore تاریخی Linksmart (HDS) گفته می شود.

HDS یک پلتفرم میان افزار openware است که تحت مجوز Apache 2.0 دارای مجوز است.

این برنامه از ارتباطات REST با سرور خود پشتیبانی می کند و تجسم داده ها از طریق گرافانا انجام می شود.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید یا influxDB یا MongoDB نصب کرده باشند.

با توجه به سیستم عامل هایی که در این مقاله وجود دارند ، تنها کسی است که از زبان نشانگر سنسور (SenML) استفاده می کند [74].

Losant [52] سکویی است که توسط Losant ساخته شده است.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

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

یکی از بزرگترین مزایای آن این است که علاوه بر آنالیز می توان از آن در لبه دستگاه های IoT نیز استفاده کرد.

مدل تجاری آنها PaaS است.

Microsoft Azure IoT Suite [54] یک پلتفرم میان افزار IoT است که توسط مایکروسافت ساخته شده است.

این برنامه از MQTT ، AMQP و ارتباطات REST با سرور خود پشتیبانی می کند.

یکی از بزرگترین مزایای مجموعه Azure IoT این است که به راحتی امکان تعامل با سایر خدمات لاجوردی مانند یادگیری ماشین ، ذخیره سازی داده ها و موارد دیگر را فراهم می آورد.

مدل تجاری آنها PaaS است.

نیتروژن [56] یک بستر میان افزار منبع باز است.

برخی از ماژول های آن تحت مجوز MIT دارای مجوز هستند و برخی دیگر تحت مجوز Apache 2.0.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید Nodej ها را نصب کنند.

نقطه ضعف این است که فقط دستگاه های فعال شده با نیتروژن (دستگاه هایی که نرم افزار نیتروژن را اجرا می کنند) می توانند با سرور ارتباط برقرار کنند.

این پروژه از مارس 2015 هیچگونه به روزرسانی در مخزن Github خود دریافت نکرده است ، و دامنه وب سایت رسمی (nitrogen.io) برای فروش است [75].

که این مقاله را به این نتیجه می رساند که پروژه به پایان رسیده است.

Nimbits [55] یک سیستم عامل میان منبع منبع باز است که توسط Nimbits ساخته و نگهداری می شود. تحت مجوز Apache 2.0 دارای مجوز است.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

اگرچه منبع باز است ، نسخه آنلاین به صورت PaaS در دسترس است که در آن کاربران می توانند به صورت رایگان آزمایش کنند.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید Java ، Redis ، یک برنامه سرور جاوا و Mosquitto MQTT را نصب کنند.

مشکلی که در مورد Nimbits وجود دارد این است که در حال تغییر ساختار است و کلیه اسناد مربوط به استفاده از اسناد رسمی پاک شده است و ابر عمومی بدون تاریخ تخمین زده شده در حال کاهش است.

OpenIoT [57] یک پلتفرم منبع باز است که از مدیریت دستگاه و همچنین قابلیت برنامه پشتیبانی می کند.

توسط کنسرسیوم OpenIoT ایجاد و نگهداری می شود ، تحت مجوز آپاچی 2.0 مجاز است.

این برنامه از ارتباطات REST و GSN با سرور خود پشتیبانی می کند.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید Java ، Maven ، JBoss و Local Virtuoso را نصب کنند.

اگرچه این یک پروژه جذاب است ، اما از نوامبر 2015 هیچ آپدیتی برای مخزن Github خود دریافت نکرده است.

Sitewhere [58] یک پلت فرم میان افزار منبع باز است که توسط Sitewhere ساخته و نگهداری می شود و تحت مجوز مشترک عمومی Attribution نسخه 1.0 مجاز است.

اگرچه منبع باز است ، کاربران می توانند با تماس با Sewhere ، به نسخه پرداخت شده گسترش دهند.

این برنامه از MQTT ، AMQP و ارتباطات REST با سرور خود پشتیبانی می کند.

برای استقرار موفقیت آمیز این راه حل ، کاربران باید Java ، MongoDB ، HiveMQ و Apache Tomcat را داشته باشند.

Tago [61] یک بستر میانجی IoT است که توسط Tago ساخته شده است.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

مدل تجاری آنها PaaS است.

پلت فرم Telit IoT [62] یک پلت فرم IoT است که توسط Telit ساخته شده است.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

یکی از بزرگترین مزایای آن این است که علاوه بر آنالیز می توان از آن در لبه دستگاه های IoT نیز استفاده کرد.

ThingSpeak [64] یک واسط IoT است که توسط ThingSpeak ساخته شده است.

این ارتباطات REST را با سرور خود پشتیبانی می کند.

تفاوت این پلتفرم این است که آنالیز MATLAB را ارائه می دهد.

ThingSpeak به عنوان یک پروژه منبع باز شروع شد ، اما در حال حاضر خدمات خود را در قالب PaaS ارائه می دهد ، اگرچه نسخه قدیمی سرور هنوز در مخازن Github موجود است.

پلت فرم Thingworx IoT [65] یک پلت فرم IoT است که توسط PTC ساخته شده است.

این برنامه از ارتباطات REST با سرور خود پشتیبانی می کند و اتصالات اضافی در بازار آن موجود است.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

یکی از بزرگترین مزایای آن این است که علاوه بر آنالیز می توان از آن در لبه دستگاه های IoT نیز استفاده کرد.

Ubidots [66] یک سیستم عامل میان افزار IoT است که توسط Ubidots ساخته شده است.

این ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

مدل تجاری آنها PaaS است.

Xively [69] یک بستر IoT است که توسط LogMeIn ساخته شده است.

این برنامه امکان تنظیم برنامه و همچنین مدیریت دستگاه را فراهم می کند.

Xively ارتباطات MQTT و REST را با سرور خود پشتیبانی می کند.

یکی از بزرگترین مزایای آن این است که علاوه بر آنالیز می توان به راحتی با سرویس های وب آمازون ، Salesforce Device Bridge و یکپارچه سازی سفارشی با ابزارهای CRM و ERP خارجی نیز امکان پذیر شد.

مدل تجاری آنها PaaS است.

Webinos [68] یک پلت فرم سرویس منبع باز است که از مدیریت دستگاه و همچنین قابلیت برنامه پشتیبانی می کند.

این برنامه به عنوان بخشی از برنامه ICT FP7 EU تهیه شده و تحت مجوز Apache 2.0 دارای مجوز است.

Webinos از مفهوم مناطق شخصی استفاده می کند ، که امکان ارتباط بین سرویس ها و دستگاه ها را فراهم می آورد.

مناطق شخصی به دو بخش تقسیم می شوند: 1) قطب منطقه شخصی (PZH) و 2) پروکسی منطقه شخصی (PZP).

یک PZH دارای یک آدرس IP عمومی است و در ابر اجرا می شود [76].

PZP دستگاهی است که قادر به اجرای خدمات Webinos است.

برای استقرار موفقیت آمیز یک منطقه شخصی ، کاربران باید نودج را نصب کنند.

ضرر این است که فقط دستگاه های Webinos را فعال کنید (دستگاه هایی که نرم افزار Webinos را اجرا می کنند) می توانند با سرور ارتباط برقرار کنند ، علاوه بر این ، برای سیستم های واقعی مناسب نیست ، زیرا بسیاری از ویژگی های مهم هنوز عملی نشده اند.

این شرکت از فوریه 2014 و PZH از مارس 2015 هیچ گونه به روزرسانی در ماژول PZP مخزن Github خود دریافت نکرده است.

V.REFERENCE MODEL برای Middleware Iot:

هنگامی که IoT تبلیغ می شود ، سناریوهای زیبایی ارائه می شود که اسباب بازی ها عادات کاربر را مطالعه می کنند و همچنین نسبت به آنها واکنش نشان می دهند ، کیفیت زندگی و تجربه کاربر را بهبود می بخشد.

بیشتر سناریوهای ارائه شده با جمله ای مشابه با این جمله به پایان می رسند: "اینها با حداقل مداخله انسانی".

این سناریوها فقط به دلیل سیستم عامل های میان افزار که داده های همه دستگاه ها را ادغام کرده و براساس آن عمل می کنند امکان پذیر است.

به همین دلیل ، میان افزار در اکثر سناریوهای IoT وجود دارد.

جمع آوری داده ها و واکنش مناسب بر این اساس یکی از ویژگی های مهم در IoT است زیرا اکثر دستگاه ها کوچک هستند و منابع برای تصمیم گیری های پیچیده محدود هستند.

بنابراین ، سیستم عامل های میان افزار مسئول بخشی از اطلاعات موجود در IoT هستند.

برای دستیابی به اهداف خود ، ماژول های یک معماری پلت فرم میان افزار IoT باید موارد زیر را به شرح زیر منعکس کنند: 1) قابلیت همکاری. 2) پایداری و تحلیلی؛ 3) زمینه؛ 4) منبع و رویداد؛ 5) امنیت؛ و 6) رابط کاربری گرافیکی (GUI).

ماژول های میان افزار IoT ایده آل در نظر گرفته شده در شکل 4 ارائه شده و به شرح زیر است.

1) ماژول قابلیت همکاری: IoT یک محیط ناهمگن است و بستر میان افزار هم یکپارچه است.

بنابراین ، باید API را فراهم کند که به نرم افزار اجازه دهد بدون به اشتراک گذاشتن کد واقعی ، عملکردها را در سایر برنامه ها و موارد دیگر قرار دهد.

درخواست های API ساخته شده توسط چیزها / برنامه ها می تواند از طریق هر پروتکل انجام شود ، بنابراین واسط حداقل باید از محبوب ترین پروتکل های برنامه IoT مانند CoAP ، MQTT و HTTP (S) پشتیبانی کند.

این ماژول همچنین باید از روشهای استاندارد نمایش داده ها مانند XML و JSON پشتیبانی کند و همچنین رمزگذاری باینری (پرش Apache) ، بافر پروتکل Google) ، نمایش داده دیگری که برای IoT پدیدار می شود SenML است [74].

برای گسترش بیشتر قابلیت همکاری ، میان افزار باید SDK های اصلی را فراهم کند ، بنابراین کد می تواند به سرعت در دستگاه ها مستقر شود و آنها می توانند داده ها را از / یا از بستر میان افزار ارسال کنند.

SDK ها می توانند بسیار حیاتی باشند ، زیرا اضافه کردن دستگاه های جدید به میان افزار نسبتاً آسان است ، اما به این معنی نیست که کاربر بتواند وسایل مختلف را به طور همزمان اضافه کند خسته کننده است.

سپس ، افزودن دستگاههای جدید باید بیشتر ساده شود (بدون به خطر انداختن امنیت).

این ماژول برای برنامه های آینده در نظر گرفته شده است و ایده آل است که فناوری های جدید و پیش بینی نشده در اینجا یکپارچه شوند.

2) ماژول پایداری و تحلیلی: IoT حجم عظیمی از داده ها را تولید می کند ، که باید به سرعت و به طور مداوم برای مشاوره زمانی و پردازش بیشتر ذخیره شود [77].

واسط IoT باید از بانکهای اطلاعاتی NoSQL برای ذخیره داده استفاده کند زیرا آنها معمولاً سریعتر از پایگاه داده SQL هستند زیرا مدل داده آنها ساده تر است [78].

معمولاً گفته می شود که در IoT ، چیزها از عادت های کاربر یاد می گیرند.

در عمل ، دستگاه ها از نظر منابع محدود هستند و واسطه کسی است که از داده های جمع آوری شده یاد می گیرد.

بنابراین ، میان افزار حداقل آن را باید تجزیه و تحلیل های اساسی ، مانند نمودارهای ساده ، میانگین ها یا مقادیر min / max [8] ارائه دهد.

با این حال ، بهترین کار ، پردازش بیشتر داده ها از طریق ذخیره سازی داده ها ، داده های بزرگ یا حتی تغذیه این داده ها به الگوریتم های یادگیری عمیق / ماشین است زیرا داده های جمع آوری شده به ویژه پس از پردازش بسیار با ارزش هستند.

3) ماژول متن: در یک ارتباط ، زمینه برای مکالمه معنی می دهد.

انتظار می رود محیط IoT با محیط اطراف تطبیق یابد و زمینه نقش مهمی در این زمینه بازی خواهد کرد [4].

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

با توجه به تعامل کاربر ، سیستم ها به سه سطح محتوا طبقه بندی می شوند: 80) شخصی سازی. 2) منفعل؛ و 3) فعال.

شخصی سازی متن آگاهی زمانی است که کاربر دقیقاً آنچه را که می خواهد به سیستم می گوید و سیستم صرفاً آنچه را که برنامه ریزی شده بود دنبال می کند (به عنوان مثال ، کاربر هنگام ورود به اتاق ، چراغ ها را روشن می کند تا روشن شوند).

زمینه آگاهی غیرفعال هنگامی است که سیستم محیط را رصد می کند و مطابق با داده های نظارت شده اقداماتی را پیشنهاد می کند (به عنوان مثال ، کاربر وارد یک اتاق می شود و سیستم از وی می پرسد که آیا او باید چراغ ها را روشن کند).

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

آگاهی از متن بر توانایی انطباق با شرایط یا محیط های جدید تأثیر می گذارد و عمیقاً با تشخیص / مدیریت رویداد ارتباط دارد.

برای رسیدن به آگاهی از متن ، باید الگوسازی شود.

در سالهای اخیر مدل سازی مبتنی بر هستی شناسی تبدیل به جریان اصلی شده است و استانداردهای مختلفی را ایجاد می کند.

یک استاندارد محبوب ، یک زبان هستی شناسی وب است که توسط کنسرسیوم جهانی وب پشتیبانی می شود).

اطلاعات بیشتر در مورد سایر تکنیک های مدل سازی متن ، و همچنین زمینه به طور کلی می توان در [80] یافت.

تفسیر معنایی و هستی شناسی در این ماژول انتظار می رود زیرا افراد به صورت معنایی با هم ارتباط برقرار می کنند و انتظار می رود وقتی انسان در محیط های IoT با دستگاه ها ارتباط برقرار کند ، یکسان باشد.

برای IoT که بهترین تصور پیش بینی شده است ، هوش مصنوعی در این ماژول (یکی از چالش برانگیزترین زمینه های این فناوری) است ، اما بستر میان افزار می تواند از API های خارجی برای دستیابی به این هدف استفاده کند.

در حال حاضر ، برخی از پیشنهادهای واسط ، از جمله Linkmart و OpenIoT برای رسیدن به قابلیت همکاری معنایی بین داده های حس شده به هستی شناسی متکی هستند [81].

4) منبع و ماژول رویداد: برای اینکه دستگاه ها در عملکرد خود کارآمد باشند ، باید بدانند که چه چیزی می توانند انجام دهند و وضعیت عملکرد داخلی آنها (سطح باتری ، دمای داخلی / خارجی و استفاده از حافظه فعلی) ، تا بتوانند منابع خود را تبلیغ کنند و منابعی را از دیگران کشف کنید.

انتظار می رود چندین دستگاه به طور همزمان با یکدیگر ارتباط برقرار کنند. آنها حتی می توانند همان سرویس را ارائه دهند ، و قرار است دستگاه های بهتری نسبت به سایرین درخواست شود.

این بدان معناست که به دلیل محدودیت حافظه (درخواست های بیش از حد زیادی) یا حتی محدودیت هایی از دنیای فیزیکی مانند فاصله ، آنها همیشه نمی توانند بهترین خدمات را ارائه دهند.

این مسائل نگرانی مربوط به تعدد اقدامات و محدودیت های دستگاه کوچک است [33].

سیستم عامل های Middleware می توانند با مدیریت و بهینه سازی این تعامل ها ، این مشکلات را به حداقل برسانند.

هنگام اتصال اولین بار به یک سیستم عامل میان افزار ، دستگاه ها و برنامه های خارجی باید قابلیت های خود را از طریق نوعی پیام متنی (به عنوان مثال در JSON) اعلام کنند.

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

واسطه متوسط ​​تمام قابلیتهای فراهم شده توسط محیط را درک می کند و می تواند رویدادهای مناسبی را ایجاد کند.

Middleware همچنین باید بروزرسانی رویدادها را از طریق دستگاهها تسهیل کند [9] ، زیرا انتظار نمی رود شخص بتواند به صورت دستی هر دستگاه را در محیط های بزرگ ، مانند شهرهای هوشمند ، مدیریت کند.

5) رابط کاربری گرافیکی: رابط کاربری گرافیکی یک نرم افزار ضروری برای هر نرم افزار مدرن است ، زیرا باعث می شود برنامه های کاربردی کاربر پسند باشند.

در میان افزار IoT ، رابط کاربری گرافیکی غالباً به عنوان داشبورد گفته می شود ، زیرا داده های زیادی رد و بدل می شوند و داشبورد داده ها را به روشی ارائه می دهد که خواندن آن آسان است.

با وجود این که رابط کاربری گرافیکی بسیار مهم است ، متداول است که سیستم عاملهای منبع با منبع آزاد دارای رابط کاربری گرافیکی بومی نباشند ، در عوض با تکیه بر ادغام برنامه های شخص ثالث مانند Freeboard [82] یا Grafana [83] برای تهیه داشبورد متکی هستند.

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

6) ماژول امنیتی: IoT بدون افزونه و بازی محبوب نخواهد شد.

این بدان معناست که میان افزار باید به اندازه کافی انعطاف پذیر باشد تا یک کاربر متوسط ​​بتواند از آن استفاده کند.

متأسفانه ، دستیابی به سهولت استفاده (قابلیت استفاده) با سطح امنیت مورد نیاز میان افزار دشوار است.

اگر داده ها توسط کاربر یا برنامه مخرب دستکاری یا بازیابی شوند ، تهدیدات بی حد و مرز خواهد بود.

دستگاه های IoT به دلیل امنیت خود شناخته شده نیستند و سیستم عامل های میان افزار نباید از همان روند پیروی کنند زیرا آنها مغز IoT هستند.

مقدار و ارزش داده های جمع آوری شده قابل توجه است و باید ایمن باشد ، اما راه حل برای هر سناریوی IoT از جمله میان افزار ساده نیست ، زیرا دستگاه ها در منابع بسیار محدود هستند.

برای مثال رمزگذاری بسیار پرهزینه است (در مورد پردازش) ، بنابراین از ابزارهای رمزگذاری سبک یا الگوریتمها برای این هدف باید به همراه پروتکل رمزنگاری سبک استفاده شود [84].

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

رمزنگاری و کلیدهای عمومی هم ویژگیهای اصلی امنیتی هستند که در اینترنت فعلی رایج است و هم محدودیتهای آنها در IoT مشکل موجود را نشان می دهد ، بنابراین هر جنبه امنیتی که کارآمد است و می تواند منحصراً در یک سرور قدرتمند گنجانده شود ، استقبال می شود.

با توجه به این موضوع ، مقاله جنبه های امنیتی اساسی را برای امنیت میان افزار در IoT ارائه می دهد.

آنها عبارتند از: 1) در هر تأیید اعتبار دستگاه؛ 2) اعتبارنامه مشاوره و انتشار داده ها باید متفاوت باشد. 3) دستگاه ها باید با استفاده از اطلاعات شخصی خود به داده های دیگر دستگاه دسترسی پیدا کنند. و 4) میان افزار باید عادات دستگاه را بشناسد و MAC و IP خود را ذخیره کند.

جزئیات بیشتر در مورد اقدامات امنیتی پیشنهادی ، و دلایل دلایل آنها را می توان بعداً در این بخش یافت.

محیط IoT با ناهمگونی آن با در نظر گرفتن فن آوری های مختلف مشخص می شود و داده های جمع آوری شده در بسیاری از عمودی های IoT مورد استفاده قرار می گیرد.

با این حال ، برخی از حالات گسترده تر از سایرین هستند.

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

در عمودی های بزرگ ، مانند شهرهای هوشمند ، که می تواند شامل مدیریت انرژی ، پارکینگ هوشمند ، حمل و نقل هوشمند ، تحرک و غیره باشد ، داده ها غیرقابل پیش بینی هستند.

بستر میان افزار باید به مکانیسم های هوش مصنوعی مجهز باشد تا سناریوهای وسیع تری را تحلیل کند.

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

جنبه های A.Securance مربوط به IoT Middleware:

امنیت جنبه اساسی هر سیستم است و به نظر می رسد توسعه دهندگان IoT آن را به برنامه دوم منتقل می کنند ، به طوری که می توان محصولات را سریعتر توسعه داد و بهره برداری ها بعداً برطرف شد.

با توجه به دیدگاه این مقاله ، میان افزار IoT نباید همان مسیر را دنبال کند ، و باید امنیت داده ها را تضمین کند.

به همین دلیل چهار جنبه اساسی در این مقاله با هدف افزایش امنیت در میان افزار IoT ارائه شده است و بر اساس این فرض است که اعتبار دستگاه به نوعی به خطر افتاده است.

1) احراز هویت هر دستگاه: برای ایمنی داده های میان افزار بسیار مهم است.

هر وسیله ای هنگام دسترسی به بستر میان افزار باید اعتبار شخصی خود را داشته باشد.

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

اما اگر همه دستگاه ها همان اعتبار را به اشتراک بگذارند ، علاوه بر ابطال یا به روزرسانی اعتبار ، کاربر مجبور است آنها را نیز در هر دستگاه دیگر وارد کند.

برخی از سیستم عامل های میان افزار در حال حاضر از این راهنمایی پیروی می کنند.

2) دستگاه ها برای انتشار و مشاوره داده ها از Middleware باید از اعتبارنامه های مختلف استفاده کنند: برخی از قبل از این راهنمایی پیروی می کنند که هر دستگاه باید احراز هویت خاص خود را داشته باشد.

با این حال ، اجرای محدود است ، زیرا اعتبارنامه های مشابه برای انتشار داده های دستگاه ، همان هستند که برای مشاوره استفاده می شوند.

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

به همین دلیل ، احراز هویت در هر دستگاه کافی نیست و برای انتشار و بازیابی داده ها باید از اعتبارنامه های مختلف استفاده شود.

به بهترین وجه دانش این مقاله ، هیچ یک از سیستم عامل های واسط موجود این اندازه گیری امنیتی را اجرا نمی کنند.

3) دستگاه ها باید با استفاده از اعتبار شخصی خود به داده های سایر دستگاه ها دسترسی پیدا کنند: سناریوی سابق نمونه ای عالی از ایستگاه هواشناسی است که در آن می توان داده های دستگاه را توسط هر شخص علاقه مند بازیابی کرد ، اما کشف این که اعتبار دستگاه به خطر افتاده است دشوار می کند.

تصور کنید که یک روز یک دوست نزدیک به خانه کاربر مراجعه می کند و می گوید یکی از دستگاه ها را هک کرده است و حالا همیشه می داند که در یخچال چیست.

راه حل این است که اعتبار مشاوره یخچال را تغییر داده و آنها را به هر وسیله ای که به آن نیاز دارید (و این مشکل است) منتقل کنید.

چند روز بعد همان دوست برگشته است و تعویض تغییر رمز را می گوید اما می گوید که دوباره می تواند با آن مشورت کند.

این دوست همچنین می گوید که تغییر رمز عبور یخچال و فریزر بی معنی است ، زیرا وی برای گرفتن رمز عبور دستگاه دیگری را هک کرده است.

چرخه بی نهایت می رود ، زیرا کاربر نمی تواند تعیین کند که کدام دستگاه نقض شده است.

اما در صورت امکان دسترسی دستگاه ها به داده های دیگر دستگاه ها با استفاده از گواهینامه های شخصی خود ، با بررسی گزارش های میان افزار می توان تعیین کرد که اعتبار دستگاه از یک منبع خارجی استفاده شده است و کاربر می تواند اقدامات مناسب را انجام دهد.

هنگام پیکربندی دستگاه ها ، کاربران باید بتوانند تعیین کنند که سایر دستگاهها یا گروه از پیش تعریف شده دسترسی به حقوق مشاوره چیست.

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

به بهترین وجه دانش این مقاله ، هیچ یک از سیستم عامل های واسط موجود این اندازه گیری امنیتی را اجرا نمی کنند.

4) Middleware باید عادات دستگاه را بشناسد و آدرس MAC و IP خود را ذخیره کند: تمام سناریوهای گذشته فرض می کنند که کاربر متوجه سرقت اعتبار می شود ، اما در زندگی واقعی مشاهده چنین نقض هایی سخت است ، به خصوص اگر واسطه عادت دستگاه ها را درک نکند.

به همین دلیل ، میان افزار باید عادات دستگاه را بشناسد و MAC و آدرس IP خود را ذخیره کند.

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

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

اگر بتواند آدرس MAC و IP را مستقیماً از سر HTTP حذف کند ، پلتفرم میان افزار می تواند با این کار مقابله کند و به کاربر هشدار دهد.

در اینترنت IP تغییر می کند ، بنابراین میان افزار مجبور است تشخیص دهد که IP دستگاه در محدوده معقول تغییر کرده است یا خیر.

تنها سناریویی که سرقت اعتبار با این ویژگی های امنیتی مشخص نمی شود این است که اگر مهاجمی بتواند آدرس IP معمولی دستگاه را جعل کند ، آدرس MAC را کلون کند و عادت های انتقال دستگاه را حفظ کند.

به بهترین وجه دانش این مقاله ، هیچ یک از سیستم عامل های واسط موجود این اندازه گیری امنیتی را اجرا نمی کنند.

VI.OPEN مسائل و فرصت های تحقیق:

IoT چالش ها و فرصت های قابل توجهی را برای شرکت ها و محققان در هر زمینه ایجاد می کند.

تعداد قابل توجهی از دستگاههای متصل که پیش بینی می شود توجه آکادمی ها ، صنعت و تنظیم کننده ها را به خود جلب می کند ، زیرا کل تأثیر اقتصادی سالانه ناشی از IoT تخمین زده می شود تا سال 2025 از 2.7 تا 6.2 تریلیون دلار باشد [85].

نیازهای جدید ظهور می شود ، و یک اکوسیستم کاملاً جدید ممکن است افزایش یابد. محققان باید به سرعت زمینه های جدید را شناسایی کنند ، صنعت باید سریع ایده های نوآورانه را پیاده سازی کند.

وقتی سازمان ها یک نرم افزار خاص را انتخاب می کنند ، یک تعهد بلند مدت است ، در IoT فرقی نخواهد کرد.

Middleware که از طرف جامعه یا بازیکنان اصلی پشتیبانی نمی شود ، دچار ضرر هستند ، زیرا در حال حاضر صدها نفر در دسترس هستند (به ویژه به عنوان سرویس های ابری).

تهیه روشی هدفمند و مفصل برای مقایسه سیستم های میان افزار بسیار مهم است.

در حال حاضر ، مقایسه راه حل های میان افزار به اولویت می رسد.

«کار به محققان» در حال حاضر شامل تهیه لیستی از ویژگی های مربوطه (که منعکس کننده برخی از الزامات واسطه های متوسط) و مشخص کردن اهداف مربوط به آنها است ، چنین رویکردی اغلب برای خوانندگان گیج کننده است زیرا در تئوری ، همه آنها این کار را انجام می دهند. اهداف مشابه

مقایسه وسایل میان افزار واقع در ابر حتی سخت تر است زیرا مقایسه عادلانه بین راه حل های مختلف نشان می دهد که شرایط برای همه آنها در تمام آزمایشات یکسان است.

برای نرم افزار ، این بدان معنی است که آنها منابع در دسترس همان (حافظه ، قدرت پردازش ، فضای دیسک و غیره) را خواهند داشت.

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

از آنجا که نمی توان تعیین کرد که چه منابعی به عنوان مثال ابری اختصاص داده شده است.

در عمل ، این بدان معنی است که با داشتن منابع بیشتر ، نمونه محلی می تواند در مقایسه با منابع کمتری عملکرد بهتری داشته باشد.

چالش دیگر مربوط به مقایسه راه حل های ابری مربوط به هزینه است.

مدل تجاری فعلی اکثر سیستم عامل های ابری شامل صورتحساب ماهانه یا سالانه به ازای هر تعداد درخواست ، تجزیه و تحلیل ، سوابق ذخیره شده یا ایمیل های ارسالی است.

شاید بزرگترین چالش در IoT مربوط به امنیت باشد.

بسیاری از کارشناسان فناوری به مصرف کنندگان توصیه نمی کنند وسایلی از قبیل قفل درب یا اسباب بازی های کودکانی را که به اینترنت متصل هستند خریداری کنند.

آنها چنین توصیه هایی را ذکر می کنند ، زیرا IoT ، عمدتاً به عنوان ناامن دیده می شود ، زیرا توسعه دهندگان از جنبه های مهم امنیتی برای ارائه سریعتر محصولات غافل هستند.

اگر تصویر IoT به زودی تغییر نکند ، بازیابی اعتماد عمومی (کاربران) دشوار خواهد بود.

VII.CONCLUSION:

IoT سناریویی است که بیشتر دستگاه ها در منابع محدود می شوند ، به این معنی که اطلاعات به یک موجود تواناتر واگذار می شود.

این نهاد یک نرم افزار است که به عنوان IoT middleware یا IoT platformware middleware شناخته شده است ، و گاهی اوقات به سادگی به عنوان پلت فرم IoT معرفی می شود اگرچه تنها نوع پلت فرم IoT نیست.

انتخاب بستر مناسب برای یک سناریو خاص می تواند تفاوت بین راه حل IoT خوب و بد باشد زیرا این یک سرمایه گذاری بلند مدت است.

درک آنچه باید میان افزار انجام شود و شناخت نقش آنها در راه حل های IoT برای سازمانها یا افراد علاقمند به بازار IoT بسیار مهم خواهد بود.

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

در حال حاضر ، هیچ روش عینی برای مقایسه واسطه های مختلف وجود ندارد.

بنابراین ، ارزیابی عملکرد مبتنی بر معیارهای عینی می تواند به میزان قابل توجهی در انتخاب وسایل واسطه برای هر محیط کمک کند ، بنابراین باید تلاش بیشتری در این زمینه انجام شود.